Fixes #33 — the specialists never reached the runtime. /jdi-bootstrap wrote jdi-doer-{slug} / jdi-reviewer-{slug} to .jdi/agents/, but Claude Code resolves Agent(subagent_type=...) from .claude/agents/ only (Copilot .github/agents/, OpenCode .opencode/agents/, Antigravity .agents/skills/, Junie .junie/agents/). On 4 of the 5 runtimes /jdi-do died on its first spawn until you hand-copied the files; Junie's raw copy shipped the canonical frontmatter unconverted.
🔧 New: sync-specialists
npx -y jdi-cli sync-specialists # materialize into every installed runtime
npx -y jdi-cli sync-specialists --check # exit 1 on a missing/stale copy- Converts the canonical frontmatter with the same emitter
builduses for the core agents (name/description/model/toolsfor Claude and Copilot,mode: subagent+permissionfor OpenCode,triggersskill for Antigravity,toolsallowlist +reasoningLevelfor Junie). - Byte-deterministic and idempotent — bash and PowerShell (5.1 included) produce identical bytes;
GENERATEDmarker after the frontmatter; the pt-BRIDIOMAdirective lands in the same positioninstall --lang pt-BRuses. - You never need to run it by hand:
/jdi-bootstrapruns it and stages the copies,install/updatere-materialize them on a clone,/jdi-do/jdi-verify/jdi-loopself-heal before the first spawn,doctorwarns on drift, and thejdi-artifacts-gateworkflow fails a PR shipping a stale copy.
Existing projects: npx jdi-cli@latest update (or just run your next /jdi-do) — hand-made copies in .claude/agents/ are detected as stale and regenerated from .jdi/agents/. Edit the source, never the copy.
Also fixed
- Every plumbing helper crashed on Windows when given a global flag (
validate-slug auth --no-color→ binder error on-NoColor):jdi.jsnow strips--no-color/--langbefore dispatch. doctorprintedSingle-stack: jon PowerShell.- PowerShell pt-BR injector dropped the directive's trailing blank line (bash kept it) — same install, different bytes per shell. Both now share one implementation (
bin/lib/jdi-agent-emit.{sh,ps1}, also the builders' emitter —runtimes/proven byte-identical before/after).
Full changelog: CHANGELOG.md