Install any skill in seconds. Free to start, no credit card required.
Get Started Free →chorus-aidlc/openspec-aware-chorus
Opt-in OpenSpec-mode authoring for Chorus PM workflows on dsh. Runs inline three-check detection for the local `openspec` CLI, scaffolds `openspec/changes/<slug>/` on disk, and mirrors Markdown files into Chorus document drafts via the package-local `chorus-mcp-call.mjs` wrapper. Required reading for the proposal, develop, and yolo skills whenever the user has the `openspec` CLI installed.
Passed 16 of 19 test cases with the skill, and 6 of 19 without it.
and 11 more in the full report
11 fixed7 passed either way4 still failing0 broke
Tokens, turns and time describe resource use, not a dollar price.
One of 11 test cases the skill fixed. Same model, same prompt, with and without the skill.
I scaffolded an OpenSpec change folder containing proposal.md, design.md, specs/auth/spec.md, and tasks.md. Which of these local files should NOT be mirrored as Chorus document drafts?
| Checked | Without skill | With skill |
|---|---|---|
| Excludes tasks.md from document draft mirroring because Chorus tasks are managed directly via task MCP calls. | Missed | Passed |
The instructions your model reads when the skill loads.
This skill is a shared sub-procedure invoked by the Chorus stage skills (proposal, develop, yolo) whenever the resolved spec mode is a usable OpenSpec CLI setup. It is one of the modes the chorus-dsh bundle resolves at load:
CHORUS_SPEC_MODE=openspec or unset, and CHORUS_OPENSPEC_MODE not off, an openspec/ directory at the project root, and the openspec CLI on PATH.CHORUS_SPEC_MODE — spec-lite (the default when OpenSpec isn't usable) or free-form (=off). This skill is then a no-op.See also —
spec-lite-chorus(the lightweight fallback): OpenSpec (this skill) stays the default whenever it is usable. When OpenSpec is absent or disabled — orCHORUS_SPEC_MODE=lite— the mode resolves to spec-lite: a durable local.chorus/specs/<slug>/spec.md(never synced) + per-change dated folders<slug>/<YYYY-MM-DD>-<change-slug>/of Chorus-typed docs mirrored 1:1 into Chorus via the same--arg-filetransport. See thespec-lite-chorusskill.
Tool namespace: Chorus MCP tools are exposed under a
mcp__chorus__prefix on dsh (e.g.mcp__chorus__chorus_pm_create_proposal). Bare names are used in prose for readability — prependmcp__chorus__when invoking the MCP tools directly. Document-mirror calls do NOT go through the MCP harness at all — they go through thechorusCLI (chorus mcp call, preferred) or the package-localchorus-mcp-call.mjswrapper (fallback) (see §2 Rule 1), which talk to the Chorus MCP endpoint over HTTP using your API key, independent of themcp__chorus__namespacing.
dsh difference: the Claude Code plugin resolves the spec mode in a SessionStart hook. dsh has no SessionStart hook, but the chorus-dsh bundle resolves the mode once at plugin load (
resolveSpecMode, the single source of truth — the TS mirror of the canonical bash resolver) and both (a) injects a## Spec Modeblock into your first-step context and (b) publishesCHORUS_SPEC_MODE+CHORUS_OPENSPEC_ACTIVEto the process environment, before the daemon-origin gate, so interactive and daemon-woken sessions inherit it. Consume that value — do NOT re-run detection and do NOT hand-roll an OpenSpec-only check.
The bundle marks OpenSpec active (a CHORUS_OPENSPEC_ACTIVE=1 line + CHORUS_SPEC_MODE=openspec) only when CHORUS_SPEC_MODE is openspec or unset, and all three of these hold:
CHORUS_OPENSPEC_MODE is not set to off (explicit opt-out wins).openspec/ directory (i.e. someone ran openspec init here).openspec CLI is on PATH.Both signals (2) and (3) are required because the OpenSpec authoring path needs the working directory and the CLI — having one without the other leaves the workflow unrunnable. If signal (2) holds but (3) does not, the bundle's ## Spec Mode note carries an install hint (npm i -g @fission-ai/openspec); pass it through if asked rather than silently choosing another mode.
Look for the ## Spec Mode section near the top of your context:
## Spec Mode
CHORUS_SPEC_MODE=openspec (default — openspec/ directory + openspec CLI both present)
CHORUS_OPENSPEC_ACTIVE=1 (openspec/ directory + openspec CLI both present)
or (resolved to lite / off — no CHORUS_OPENSPEC_ACTIVE=1 line):
test cases passed, vs 6 / 19 without
Published skills whose descriptions closely match this one, with their headline benchmark lift.
More skills from the same source and nearby in the registry, with their headline benchmark lift.