Skip to content
Agent Orchestration
Skill

/spec-lite-chorus

Lightweight, Chorus-native local specs for Chorus PM workflows on dsh — a durable local spec `.chorus/specs/<slug>/spec.md` (one per capability/feature) edited in place and NEVER synced (git history is its record), plus one dated folder per change effort

From plugin
chorus
1.2k44 skills7 agents4 commands1 MCP

Claude Code

$ npx -y skills add Chorus-AIDLC/Chorus --skill spec-lite-chorus --agent claude-code

SKILL.md

spec-lite-chorus.SKILL.md
name: spec-lite-chorus
description: Lightweight, Chorus-native local specs for Chorus PM workflows on dsh — a durable local spec `.chorus/specs/<slug>/spec.md` (one per capability/feature) edited in place and NEVER synced (git history is its record), plus one dated folder per change effort `.chorus/specs/<slug>/<YYYY-MM-DD>-<change-slug>/` holding Chorus-typed docs (prd.md, tech_design.md, …) that ARE mirrored 1:1 into persistent Chorus Documents via `--arg-file`. The fallback when OpenSpec isn't in use; a low-token alternative to the heavier openspec-aware-chorus path. Read from proposal / develop / yolo when the spec mode resolves to `lite`.
license: AGPL-3.0
metadata:
  author: chorus
  version: "0.24.0"
  category: project-management
  mcp_server: chorus

spec-lite — durable local spec + per-change synced docs (dsh plugin)

A **shared sub-procedure** for the Chorus stage skills (`proposal-chorus`, `develop-chorus`, `yolo-chorus`) — the lightweight spec mode, modelled on **superpowers** (a durable spec that lives on, plus per-effort artifacts): one **durable local spec** per capability (`<slug>/spec.md`, edited in place, **never synced** — git history is its 留痕), plus one **dated folder per change effort** (`<slug>/<YYYY-MM-DD>-<change-slug>/` of Chorus-typed docs — `prd.md`, … — that **are** mirrored 1:1 into persistent Chorus Documents). No new CLI, MCP tool, backend, or schema — mirroring reuses the existing document tools.

> **Tool namespace:** Chorus MCP tools are exposed under a `mcp__chorus__` prefix on dsh — prepend it when invoking the MCP tools directly (see `chorus`). **Document-mirror calls do NOT go through the MCP harness** — they go through the `chorus` CLI (`chorus mcp call`, preferred) or the package-local `chorus-mcp-call.mjs` wrapper resolved into `$CHORUS_MCP_CALL` (fallback), which talk to the Chorus MCP endpoint over HTTP with your API key. See `openspec-aware-chorus` §2 / §3.6 for the exact contract (same transport, same halt-on-error helper).

Mode (how you got here)

The spec mode is computed by the **chorus-dsh bundle at plugin load** (`resolveSpecMode`, the TS mirror of the canonical bash resolver), **not by you** — the bundle publishes it as the `CHORUS_SPEC_MODE` environment variable and injects a `## Spec Mode` section into your first-step context stating the resolved value. You are here because it resolved to `lite`; if `## Spec Mode` (or `CHORUS_SPEC_MODE`) says anything else, this skill is a no-op — return to the caller. (For the record, the rule: an explicit `CHORUS_SPEC_MODE` wins, else OpenSpec when usable, else lite.)

The durable local spec — `<slug>/spec.md`

`.chorus/specs/<slug>/spec.md` — `<slug>` (kebab-case) names a **capability/feature, not one change**. This is the single, cumulative, human-readable "current truth" of the capability: **edited in place** by every change, **never mirrored to Chorus, carries no Chorus ids**. Minimal frontmatter only (`slug`, `title`, `status: draft|active|done`, `created`), then plain prose — `## Intent`, `## Requirements` (prose + `- [ ]` acceptance points, no `SHALL`/scenario grammar), `## Non-goals`. Start from the inline **durable `spec.md` template** below. Its git history is the whole record — no changelog section, no Chorus round-trip. **This file NEVER enters the mirror loop.**

`status` describes the **capability**, not a single change: `active` while any change is in flight, `done` when the current change delivers and none is open. A **new** change against a `done` capability reopens it to `active`, back to `done` on delivery.

Template — the durable `spec.md`

---
slug: <kebab-case-capability>
title: <Capability title>
status: draft            # draft | active | done
created: <YYYY-MM-DD>
---

## Intent
<what this capability is for, in prose>

## Requirements
<prose, no SHALL/scenario grammar>
- [ ] <acceptance point>

## Non-goals
- <explicitly out of scope>

Per-change dated folders — `<slug>/<YYYY-MM-DD>-<change-slug>/`

Each change effort is **one dated folder directly under `<slug>/`** (no `changes/` wrapper), e.g. `.chorus/specs/<slug>/2026-09-08-add-export/`. Date + slug so same-day changes don't collide and folders sort by date. It holds the **Chorus-typed** docs for THAT change — one file per Document type:

| File | `Document.type` | Required? | |---|---|---| | `prd.md` | `prd` | **yes** — the primary per-change doc | | `tech_design.md` | `tech_design` | optional — the "how" | | `adr.md` / `guide.md` / `spec.md` | `adr` / `guide` / `spec` | optional |

These files **ARE synced** — each maps to **one persistent Chorus Document** of its type. Their frontmatter carries the sync ids `proposalUuid` and `documentUuid` (the type is implied by the filename). Start from the inline **dated-folder document template** below. A different change to the same capability is a different dated folder. The **current change's** folder is edited and re-mirrored throughout its effort (until delivery); only **previously-delivered** dated folders are left frozen — you don't reach back and rewrite a past change.

> **Two files named `spec.md`, different roles.** The durable `<slug>/spec.md` (local only, no ids) is > NOT the same as a per-change `spec`-type doc, which would live at `<slug>/<date>-<slug>/spec.md` > (synced, carries ids). Prefer `prd.md` as the per-change primary doc to avoid the confusion.

Template — a dated-folder document

The document **type is implied by the filename** (`prd.md` → `prd`, `tech_design.md` → `tech_design`, …), **NOT** a frontmatter key.

---
title: <Document title as it appears in Chorus>
proposalUuid: <uuid>      # written on first mirror
documentUuid:             # empty until the draft materializes on approval
---

# <Document title>
<body — this file's bytes are the source of truth for the Chorus Document>

Flow (one change)

1. Confirm mode = `lite` (else no-op). 2. Create the dated folder `<slug>/<YYYY-MM-DD>-<c

Read more
@chorus-aidlc
Ships withchorus

The Agent Harness for AI-Human Collaboration, inspired by the AI-DLC (AI-Driven Development Lifecycle)

1.2k44 skills7 agents1 MCP
Get the whole plugin

Stars on GitHub

Momentum

stars in total
1.2k
Star history of Chorus-AIDLC/Chorus on GitHub, a chart by star-history.com

Other skills on chorus.

blog

blog

Write release blog posts for Chorus — problem-first narrative, bilingual (zh/en), following the project's editorial style.

@chorus-aidlc@chorus-aidlcInstall Skill
e2e-verification

e2e-verification

Use when manually verifying a Chorus frontend change in a real browser — finding local login credentials, driving the running dev…

@chorus-aidlc@chorus-aidlcInstall Skill
openspec-apply-change

openspec-apply-change

Implement tasks from an OpenSpec change. Use when the user wants to start implementing, continue implementation, or work through…

@chorus-aidlc@chorus-aidlcInstall Skill
openspec-explore

openspec-explore

Enter explore mode - a thinking partner for exploring ideas, investigating problems, and clarifying requirements. Use when the…

@chorus-aidlc@chorus-aidlcInstall Skill
openspec-propose

openspec-propose

Propose a new change with all artifacts generated in one step. Use when the user wants to quickly describe what they want to…

@chorus-aidlc@chorus-aidlcInstall Skill

More skills from other plugins.

1password

1password

Set up and use 1Password CLI for sign-in, desktop integration, and reading or injecting secrets.

clawdis12d393k
@steipete@steipeteInstall Skill
computer-use

computer-use

Drives the GUI of a visible local app window through `orca computer`: accessibility tree, clicks, typing, menus, dialogs, and…

orca12d111k
@stablyai@stablyaiInstall Skill
agentmail

agentmail

Use your assigned AgentMail inbox to read email tasks, explicitly send or reply, and check delivery. Provided automatically by…

paperclip12d109k
@paperclipai@paperclipaiInstall Skill
adr-create

adr-create

Create a new Architecture Decision Record with sequential numbering and AgentDB registration

@ruvnet@ruvnetInstall Skill

Questions about spec-lite-chorus.

Which coding agents can use spec-lite-chorus?
spec-lite-chorus installs in Claude Code, Codex, Cursor, Gemini CLI, GitHub Copilot, OpenCode and Windsurf with the skills CLI, using each agent's flag shown on this page. Flowy's auto-invocation, which fires a skill when your prompt matches, runs in Claude Code only.