Procedural workflow for adding a new sync capability to agenteq's artifacts sync.
Install
npx skillscat add sunchayn/agenteq/add-capability-stage Install via the SkillsCat registry.
SKILL.md
Adding a Capability Sync Stage
1. How sync works
artifactsManager.sync() builds a SyncPayload and pipes it through ordered stages, each async (payload: SyncPayload) => Promise<SyncPayload>.
- Capability not requested: stage returns
payloadunchanged. - Otherwise: stage returns
payload.withResults(...). - Never mutate a payload in place.
sync()owns stage order. Seeartifacts-manager/index.ts.
2. Steps
- Add the capability to
AgentCapabilityinsrc/modules/artifacts/enums/agent-capability.ts. - Capability needs only a directory or file path: add a string field on
Agent, likecommandsDir/skillsDir/guidelinesPath. Needs more shape: add a plain interface undersrc/modules/agents/types/, likeMcpConfiguration. - Add stage in
src/modules/artifacts/services/artifacts-manager/stages/. Namesync{Capability}Stage. Default export. Signature(payload: SyncPayload) => Promise<SyncPayload>. Guard withpayload.wantsCapability(...). - Call from
sync()inartifacts-manager/index.ts. Pass returned payload to next call.sync()only orders stages. No capability branching inside. - One stage per capability. Share one stage across capabilities only if logic is structurally identical, not merely similar.
3. Related Skills
- General TypeScript conventions: write-typescript-code
- Adding a supported agent: add-agent-definition