openspec-aware

Scaffolds OpenSpec change folders and mirrors Markdown documents into Chorus proposal drafts.

1.2k|104|Updated Feb 4, 2026
One-click install
npx skills add https://github.com/Chorus-AIDLC/Chorus --skill openspec-aware
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: openspec-aware
Source: https://github.com/Chorus-AIDLC/Chorus/tree/main/plugins/chorus/skills/openspec-aware
Command: npx skills add https://github.com/Chorus-AIDLC/Chorus --skill openspec-aware

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

Teams using Chorus for AI-driven project management who also author specs with the OpenSpec CLI face duplicated effort: documents live locally in openspec/changes/ but must be re-typed into Chorus document drafts, burning tokens and risking content drift. This skill automates detection of OpenSpec mode and byte-exact mirroring of local Markdown files into Chorus drafts.

Core Features & Use Cases

  • Automatic OpenSpec detection: Reads CHORUS_OPENSPEC_ACTIVE computed at SessionStart from three signals (env opt-out, openspec/ directory, openspec CLI on PATH), with a manual fallback probe.
  • Change scaffolding and authoring: Runs openspec new change with a kebab-case slug and guides authoring of proposal.md, design.md, and delta specs using ADDED/MODIFIED/REMOVED/RENAMED requirement blocks.
  • Byte-exact document mirroring: Fills the content field from local files via chorus mcp call --arg-file (primary) or the chorus-mcp-call.sh wrapper with json_encode_file (fallback), never re-typing content through the model.
  • Archive workflow: After the last task is verified, runs openspec archive and mirrors updated cumulative specs back to Chorus Documents with round-trip verification.
  • Use Case: A product manager asks the agent to draft a proposal for a new export feature; the skill scaffolds openspec/changes/add-export-csv/, authors the spec files, creates the Chorus proposal with the slug provenance line, and mirrors each document draft without consuming content tokens.

Quick Start

Ask the agent to draft a Chorus proposal for your idea using OpenSpec mode, and it will detect the openspec CLI, scaffold the change folder, and mirror the documents automatically.

Frequently Asked Questions about openspec-aware

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I mirror OpenSpec Markdown files into Chorus document drafts?

Use chorus mcp call chorus_pm_add_document_draft with --arg-file content=<file> so the CLI injects the file's raw bytes as the JSON content string. If the chorus CLI is not on PATH, fall back to the chorus-mcp-call.sh wrapper with the json_encode_file helper.

How does OpenSpec mode detection work in Chorus?

The SessionStart hook sets CHORUS_OPENSPEC_ACTIVE=1 only when CHORUS_OPENSPEC_MODE is not off, an openspec/ directory exists at the project root, and the openspec CLI is on PATH. If the context is unavailable, a manual bash probe reproduces the same three checks.

What document types map to OpenSpec files in Chorus?

proposal.md maps to prd, design.md maps to tech_design, and each specs/<capability>/spec.md maps to a spec draft. tasks.md is never mirrored because Chorus task drafts remain the source of truth for tasks.

Why must document content come from the file instead of being typed by the model?

File-filled content via --arg-file or jq -Rs guarantees byte equality, avoids roughly 20k+ tokens per proposal mirror, and keeps the local openspec file as the single source of truth. Model re-emission drifts on tables, fences, and long URLs.

When does the OpenSpec archive step run in Chorus?

After the last task of an OpenSpec-mode idea is admin-verified, a PostToolUse hook injects a reminder and the agent runs openspec archive <slug> --yes, then mirrors each updated openspec/specs/<capability>/spec.md back to its Chorus Document and verifies the round trip.

What happens if the openspec CLI is not installed?

The skill is a no-op: CHORUS_OPENSPEC_ACTIVE stays 0, no openspec/changes/ folder is created, no slug line is added, and the calling skill falls back to free-form authoring with inline content in direct MCP draft calls.