Skip to content

feat(cli): add testnode skills add to sync agent skills#18

Closed
douglance wants to merge 1 commit into
mainfrom
feat/testnode-skills-add
Closed

feat(cli): add testnode skills add to sync agent skills#18
douglance wants to merge 1 commit into
mainfrom
feat/testnode-skills-add

Conversation

@douglance

Copy link
Copy Markdown
Collaborator

What

Adds a testnode skills add command that generates and installs agent skill files for the CLI, so AI coding agents (Claude Code, Cursor, etc.) can discover and drive testnode.

$ testnode skills add
7 skills synced
  ~/.agents/skills/testnode-clean
  ~/.agents/skills/testnode-init
  ~/.agents/skills/testnode-logs
  ~/.agents/skills/testnode-snapshot
  ~/.agents/skills/testnode-start
  ~/.agents/skills/testnode-status
  ~/.agents/skills/testnode-stop

Why it needed wiring

incur ships a built-in skills add, but it only activates for a single root Cli. This CLI hand-rolls dispatch across two sub-Clis (start and local groups), so the built-in never ran.

How

apps/cli/src/commands/skills.ts reads each sub-Cli's command map via incur's exported Cli.toCommands, merges them, and passes the result to SyncSkills.sync("testnode", …) — the same call incur's built-in uses. One SKILL.md per command is installed to incur's default global location (~/.agents/skills/testnode-<command>/).

apps/cli/src/index.ts routes skills add and lists it in --help.

Scope

  • 3 files: new skills.ts, index.ts dispatch/help, new skills.test.ts.
  • No existing command behavior changes.
  • pnpm test:run green (161 tests, incl. the new one); build + typecheck clean.

Wire up incur's skills sync so AI coding agents (Claude Code, Cursor,
etc.) can discover and drive the testnode CLI.

The CLI hand-rolls dispatch across two sub-Clis (`start` and `local`
groups) rather than a single incur root, so incur's built-in `skills
add` never activated. This reads each sub-Cli's command map via incur's
exported `Cli.toCommands`, merges them, and passes the result to
`SyncSkills.sync("testnode", ...)` — the same call incur's built-in
uses. `testnode skills add` now generates and installs one SKILL.md per
command (start, init, logs, snapshot, status, stop, clean) to incur's
default global location (`~/.agents/skills/testnode-<command>/`).

No existing command behavior changes.
@douglance

Copy link
Copy Markdown
Collaborator Author

Superseded by #19, which does skills the canonical incur way (built-in skills add via the sync option) as part of refactoring the CLI to a single idiomatic incur root. Closing in favor of #19.

@douglance douglance closed this Jun 18, 2026
@douglance douglance deleted the feat/testnode-skills-add branch June 18, 2026 17:07
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant