Skip to content

nha-in/abdm-integrators-assistant

v0.10.3MIT

Run /abdm-start after installing: it says what this plugin does, offers prompts to start from, and asks what you are building. Agent skills for ABDM integration from the ABDM Developer Portal, compiled from the Catalogue. One skill per module: abdm-gateway, abdm-m1 to abdm-m4 on the provider side, abdm-p1 (P1 Registration and login), abdm-p2 (P2 Consents Management), abdm-p3 (P3 Subscription) and abdm-p4 (P4 Locker) inside a PHR application, abdm-scan-and-register, abdm-scan-and-pay, abdm-record-share, and abdm-fhir for NRCES compliant bundles. Each carries its work as sections that load on demand: scaffold builds the module flow by flow against the sandbox, integrate holds the calls and headers, debug lists every code the specification's examples return and walks a failed call to a fix proved by the original call succeeding. Every step names the operation it came from, and every response shape is unconfirmed until the sandbox has answered. Three commands open the work from the terminal: /abdm-preflight checks what must be true before any call, /abdm-prove-encryption settles the RSA padding before a flow is built on it, and /abdm-decode-error turns a response into its code and the most likely fix. Three agents plan above the skills: abdm-integration-agent takes a goal such as becoming an HIU and sequences the module skills by what each requires and produces, abdm-call-debugger takes one failing call to a fix and verifies it by the original call succeeding, and fhir-compliance-agent validates and repairs the bundles a codebase emits until the validator passes. Every skill declares its domain, what it requires and produces, and that it never orchestrates.

ABDM Integrators Assistant

Three layers, each answering one question.

LayerQuestionLives in
AgentWhat am I trying to accomplish, and what should I do next?agents/
SkillWhat is the correct way to perform this task?skills/
ToolWhat concrete operation can I execute?HTTP, crypto, the validator, the codebase, the sandbox

Commands under commands/ are thin entry points into a skill or an agent, never a fourth layer.

First run

Run /abdm-start after installing. It says what the skills, agents and commands do, offers prompts to start from, and asks what you are building. scripts/build-skills.mjs writes it from the skills manifest and the frontmatter beside it, so edit those rather than commands/abdm-start.md. Each skill's SKILL.md carries its own Try asking section from the same source.

Agents

Three, and only three.

  • abdm-integration-agent takes a goal such as "make my application an HIU", picks the module skills it needs, orders them by their requires and produces, and holds each step to its exit condition.
  • abdm-call-debugger takes one failing call to a fix, verified by the original call succeeding. It reads each module's references/debug.md, which lists codes and operations but no fix per code, and carries no codes of its own.
  • fhir-compliance-agent finds where a codebase generates FHIR, validates representative bundles, corrects the generator, and validates again. It orchestrates abdm-fhir and does not replace it.

Skills

One folder per domain: abdm-gateway, abdm-m1 to abdm-m4, abdm-p1 to abdm-p4, abdm-scan-and-register, abdm-scan-and-pay, abdm-record-share and abdm-fhir. A domain is not one task. Its SKILL.md is a router and its capabilities sit under references/: scaffold builds the journeys flow by flow, integrate holds the calls and headers, debug walks a failed call to a fix, design holds what the journey around the calls must do. The journeys inside scaffold are the granular capabilities an agent sequences, for example consent request, consent status, health information fetch inside M3.

Every skill declares its role in frontmatter: type: skill, its domain, the agent_consumers that may dispatch it, what it requires and produces, and can_orchestrate: false. A skill is a known procedure from a known input to a known output. It never plans.

The skill folders are generated. scripts/build-skills.mjs writes them from the specifications, the journey files and skills-src/. Edit those, never skills/.

The decision rule

Create an agent only when the work has this shape: a goal, an unknown next action, inspect, choose, act, interpret, choose again. A known input through a known procedure to a known output is a skill.

Do not create an agent per module. No M1 agent, no M3 agent, no Scan and Pay agent. A user with a goal should face one agent and its relevant skills, not a choice between thirteen. Statefulness alone does not justify an agent; M3 is stateful and the integration agent orchestrates it.