CO

cospec-propose

Enforces a 6-stage dev cycle. Use this to ensure thorough planning before writing code.

Install

mkdir -p .claude/skills/cospec-propose && curl -L -o skill.zip "https://agentskills.codes/api/skills/download/18845" && unzip -o skill.zip -d .claude/skills/cospec-propose && rm skill.zip

Installs to .claude/skills/cospec-propose

Activation

This is the description your AI agent reads to decide when to run this skill — the better it matches your request, the more reliably it fires.

Propose a new change and generate every artifact its type requires, in one guided pass.
87 charsno explicit “when” trigger
Intermediate

Key capabilities

  • Propose a new openspec change
  • Generate all required artifacts for a change type
  • Obtain authoritative templates and rules for each artifact
  • Validate artifacts against project rules and format
  • Prepare a change for implementation

How it works

The skill guides the user through creating a new change, generating artifacts based on the chosen type, and validating them against project rules. It provides instructions and templates for each artifact.

Inputs & outputs

You give it
A change type and description (e.g., 'feat: add a greeting endpoint')
You get back
An apply-ready change with all required and validated artifacts

When to use cospec-propose

  • Plan new feature development
  • Verify implementation quality
  • Enforce integration testing
  • Structure dev process

About this skill

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.

1. Pick the type and slug

The argument after the command is either <type>: <free text> (for example feat: add a greeting endpoint) or a bare description.

  • If it begins with a known type followed by :, use that type.
  • Otherwise ask the user to choose a type with AskUserQuestion, offering this table:
TypeWhat it is forArtifacts
buildDependency or build-config changeproposal → blocking-changes → tasks (3 short artifacts)
choreMaintenance not affecting src or testsproposal → blocking-changes → tasks (3 short artifacts)
ciCI configuration and automation pipeline changeproposal → blocking-changes → tasks (3 short artifacts)
docsDocumentation content onlyproposal → blocking-changes → tasks (3 short artifacts)
featA new feature — the full workflowproposal → blocking-changes, specs (+ design) → tasks
fixA bug fixproposal → blocking-changes (+ specs, design) → tasks
perfA performance change with identical behaviorproposal (+ Benchmarks) → blocking-changes → tasks
refactorA structure change with no behavior changeproposal → blocking-changes, design → tasks
revertRoll back a previously shipped changeproposal (+ Reverts) → blocking-changes → tasks
styleFormatting or whitespace onlyproposal → blocking-changes → tasks (3 short artifacts)
testTests for already-specified behaviorproposal → 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.

2. Create the change

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.

3. Build the artifacts in dependency order

Loop until every artifact in the type's apply.requires is written:

  1. cospec status --change <slug> --json — read which artifacts are ready to write next (their dependencies are satisfied) and which are still waiting.
  2. For each ready artifact, run 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.
  3. Write the artifact at the path the instructions name, following the format exactly. blocking-changes.md, the specs/**/spec.md deltas, and verification.md are machine-parsed — small deviations fail validation.
  4. Repeat.

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.

4. Format, then validate

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.

5. Hand off

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.

When not to use it

  • When directly calling `openspec`
  • When hand-editing bookkeeping files under `openspec/changes/`
  • When exploring the repository to learn what to write

Prerequisites

the cospec CLI (@aligned-team/cospec)

Limitations

  • Does not start implementation of the change
  • Requires adherence to specific artifact formats for machine parsing
  • Does not allow adding artifacts that the type forbids

How it compares

This workflow ensures all necessary artifacts are created and validated in a structured, guided manner, unlike a manual process that might miss required steps or introduce formatting errors.

Compared to similar skills

cospec-propose side by side with the closest alternatives in the catalog.

SkillInstallsUpdatedSafetyDifficulty
cospec-propose (this skill)017dNo flagsIntermediate
openspec-onboard105moReviewBeginner
workflow-orchestration-patterns102moNo flagsAdvanced
meta-automation-architect78moReviewAdvanced

Try saying

Example prompts that trigger this skill in your AI assistant.

Search skills

Search the agent skills registry