一键导入
cospec-propose
Propose a new change and generate every artifact its type requires, in one guided pass.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
Propose a new change and generate every artifact its type requires, in one guided pass.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
| name | cospec-propose |
| description | Propose a new change and generate every artifact its type requires, in one guided pass. |
| license | MIT |
| compatibility | Requires the cospec CLI (@aligned-team/cospec). |
| metadata | {"author":"cospec","generatedBy":"cospec@0.5.1","contentHash":"sha256:f9e56d23172fb59e3f07b79306124b499b5d1b155dc2a71f13ef98337eda5ed5"} |
Propose a new openspec change and drive it to apply-ready in one pass — every artifact its type requires, and nothing its type forbids.
All work goes through cospec. Never call openspec directly, and never
hand-edit the bookkeeping under openspec/changes/.
cospec is self-describing — you do not need to explore the repo to learn what
to write. cospec new prints the exact artifact plan for the type, and
cospec instructions <artifact> --change <slug> --json prints the authoritative
template, per-type format, and project rules for each artifact. Trust that
output: do NOT read openspec/schemas/, openspec/config.yaml, or other repo
files to reverse-engineer an artifact's shape. Create the change first with
cospec new, then let the instructions drive each artifact; every wasted
exploration step is a turn you do not spend authoring.
The argument after the command is either <type>: <free text> (for example
feat: add a greeting endpoint) or a bare description.
:, use that type.| Type | What it is for | Artifacts |
|---|---|---|
| build | Dependency or build-config change | proposal → blocking-changes → tasks (3 short artifacts) |
| chore | Maintenance not affecting src or tests | proposal → blocking-changes → tasks (3 short artifacts) |
| ci | CI configuration and automation pipeline change | proposal → blocking-changes → tasks (3 short artifacts) |
| docs | Documentation content only | proposal → blocking-changes → tasks (3 short artifacts) |
| feat | A new feature — the full workflow | proposal → blocking-changes, specs (+ design) → tasks |
| fix | A bug fix | proposal → blocking-changes (+ specs, design) → tasks |
| perf | A performance change with identical behavior | proposal (+ Benchmarks) → blocking-changes → tasks |
| refactor | A structure change with no behavior change | proposal → blocking-changes, design → tasks |
| revert | Roll back a previously shipped change | proposal (+ Reverts) → blocking-changes → tasks |
| style | Formatting or whitespace only | proposal → blocking-changes → tasks (3 short artifacts) |
| test | Tests for already-specified behavior | proposal → blocking-changes → tasks (3 short artifacts) |
Derive a kebab-case slug matching ^[a-z][a-z0-9]*(-[a-z0-9]+)*$ from the
description, or ask the user for one.
cospec new <type> <slug>
This writes openspec/changes/<slug>/.openspec.yaml (its schema is the type)
and prints the artifact plan — the exact set of artifacts you must write for
this type. That plan is authoritative; do not add artifacts the type forbids.
Loop until every artifact in the type's apply.requires is written:
cospec status --change <slug> --json — read which artifacts are ready to
write next (their dependencies are satisfied) and which are still waiting.cospec instructions <artifact> --change <slug> --json. The JSON carries the
template, the type-specific instruction, and any project context and
rules. Treat context and rules as constraints on how you write — never
copy them into the artifact itself.blocking-changes.md, the specs/**/spec.md deltas, and
verification.md are machine-parsed — small deviations fail validation.For blocking-changes.md, scan the other active changes and the archive as the
instruction directs, classify each dependency as hard (Blocked by) or soft
(Soft-blocked by), and confirm the list with the user before finalizing it.
If this repo has a formatter task (for example mise run format:fix; check its
task list / docs), run it over the change directory now — an artifact that
passes validate --strict can still fail the repo's format gate because the
formatter rewraps markdown, and formatting must never be committed unformatted.
cospec validate <slug> --strict
Fix every ERROR and every WARNING; if you edit an artifact to fix one, re-run the formatter over it before re-validating. Re-run until it is clean.
Tell the user the change is apply-ready and that the next step is
/cospec-apply when they want to implement it. Do not start implementation
here.
Run the apply gate for a change and implement its tasks, obeying the gate's exit code.
Archive a completed change — validate, merge specs, verify, and fan blockers out.
Archive a batch of completed changes in dependency order, one cospec archive call at a time.
Resume a partially-built change and finish its remaining artifacts.
Investigate the codebase or a spec question without writing implementation code.
Author every remaining artifact on an already-scaffolded change in one pass, then validate.