Skip to content
/

openspec-skills (chyiiiiiiiiiiii)

openspec-skills · chyiiiiiiiiiiii/openspec-skills · ★ 6 · last commit 2026-01-25

Ports the OpenSpec proposal/apply/archive SDD lifecycle into three plain SKILL.md files requiring zero runtime dependencies.

Best whenZero-dependency distribution: the agent itself is the installer; all workflow logic lives in Markdown rather than CLI code.
Skip ifUsing OpenSpec for bug fixes or small enhancements, Installing skill folders nested in a subdirectory (not directly under .claude/skills/)
vs seeds
openspecskills replicates the identical three-phase lifecycle (proposal/apply/archive)…
Primitive shape 3 total
Skills 3
00

Summary

openspec-skills (chyiiiiiiiiiiii) — Summary

openspec-skills is a minimal three-skill pack for Claude Code that ports the core OpenSpec spec-driven development (SDD) lifecycle — Proposal, Apply, Archive — into the .claude/skills/ directory format so any Claude Code project can adopt OpenSpec without installing the full @fission-ai/openspec CLI.

Problem it solves: Teams that want the structured Proposal → Implementation → Archive discipline of OpenSpec but are unwilling or unable to install the Node.js CLI globally can copy three SKILL.md files directly into their project and invoke them by name from Claude Code.

Distinctive trait: The simplest possible adapter in the entire OpenSpec ecosystem: three self-contained Markdown skill files, no runtime dependencies, no MCP server, no hooks. The full workflow logic (directory creation, template generation, delta spec merging, commit authoring) lives entirely inside the skill prompt text.

Target audience: Individual developers using Claude Code who want an audit-friendly Proposal → Apply → Archive discipline on their own terms, with easy customization by editing SKILL.md files in-place.

Production-readiness: Low stars (6), one contributor, last commit January 2026. Clearly a personal productivity tool, not a team-maintained framework.

Relationship to seeds: Closest to openspec (the reference seed) — it mirrors the same three-phase lifecycle (proposal/apply/archive) and uses the same directory layout (openspec/changes/, openspec/specs/, openspec/archive/). The architectural delta is distribution: where the canonical OpenSpec delivers via npm CLI with 11 slash-commands/skills, this pack delivers the same three-phase loop as three plain SKILL.md files requiring zero additional installs, making it differ from superpowers (which also uses the .claude/skills/ format but focuses on TDD + subagent execution discipline rather than spec governance).

01

Overview

openspec-skills — Overview

Origin

Created by GitHub user chyiiiiiiiiiiii (a Taiwanese developer; the repo also ships a Traditional Chinese README README_zh-TW.md). First commit and only active period appears to be January 2026. The framework is described as "OpenSpec skills for Claude Code - Spec-Driven Development framework."

Philosophy

The README states the core philosophy in its first sentence:

"OpenSpec establishes a 'living specification' as the single source of truth, ensuring alignment between requirements and implementation through a structured workflow."

The workflow model is explicitly:

Proposal → Implementation → Archive
    ↓           ↓             ↓
proposal.md → Write code → Merge specs

The framework philosophy is that AI-assisted development becomes "reliable and traceable" when every change must pass through a documented, reviewable proposal before code is written, and when specs survive the implementation phase (becoming permanent source of truth) rather than being discarded.

Usage guidance

The README includes explicit scope guidance on when to use OpenSpec:

✅ New major features
✅ Cross-team collaboration
✅ Complex multi-phase changes
❌ Bug fixes
❌ Small enhancements

This is an unusual explicit scoping constraint — the framework self-limits to high-ceremony use cases.

Chinese README

The repo ships README_zh-TW.md in Traditional Chinese, indicating the author's primary audience is Chinese-speaking developers. The content is a full translation of the English README, not an adapted version.

Installation philosophy

The install instruction deliberately avoids any CLI tooling:

"All steps can be completed using natural language in Claude Code!"

The recommended install is: tell Claude Code to "Clone https://github.com/chyiiiiiiiiiiii/openspec-skills to a temp folder, then copy the three skill folders..."

This positions Claude Code itself as the installer, eliminating any external dependency.

02

Architecture

openspec-skills — Architecture

Distribution

  • Type: Skill pack (standalone repo, copy-based install)
  • No CLI binary, no npm package, no MCP server, no hooks
  • Install is a manual file copy of three skill directories into .claude/skills/

Install commands

# Using Claude Code natural language (recommended by author)
# "Clone https://github.com/chyiiiiiiiiiiii/openspec-skills to a temp folder,
#  then copy the three skill folders directly to the project's .claude/skills/ directory"

# Or manually:
git clone https://github.com/chyiiiiiiiiiiii/openspec-skills.git /tmp/openspec-skills
cp -r /tmp/openspec-skills/openspec-proposal ~/.claude/skills/
cp -r /tmp/openspec-skills/openspec-apply ~/.claude/skills/
cp -r /tmp/openspec-skills/openspec-archive ~/.claude/skills/
rm -rf /tmp/openspec-skills

Required runtime

None — all logic lives in SKILL.md text files. No Node.js, Python, or Docker required.

Target AI tools

  • Claude Code (primary — uses .claude/skills/ discovery)
  • Any other AI tool that reads Markdown skill files (not tested)

Repository directory tree

openspec-skills/
├── LICENSE
├── README.md
├── README_zh-TW.md
├── openspec-proposal/
│   └── SKILL.md           ← Proposal creation skill
├── openspec-apply/
│   └── SKILL.md           ← Implementation skill
├── openspec-archive/
│   └── SKILL.md           ← Archive skill
└── templates/
    ├── AGENTS.md          ← AI instructions template for openspec/ directory
    ├── project.md         ← Project info template
    └── README.md          ← Usage tutorial template (placed in openspec/)

Project directory after initialization

<project-root>/
├── openspec/
│   ├── AGENTS.md          ← AI instructions
│   ├── project.md         ← Project conventions (fill this in)
│   ├── README.md          ← Usage tutorial
│   ├── specs/             ← Source-of-truth specifications (living docs)
│   ├── changes/           ← Active changes (each gets its own dir)
│   └── archive/           ← Completed change history

Config files

  • openspec/project.md — project context that skills read before any operation
  • openspec/AGENTS.md — AI behavior instructions copied from template

Global vs. project install

Mode Path Precedence
Global ~/.claude/skills/ Available all projects
Project .claude/skills/ Project-specific (overrides global)
03

Components

openspec-skills — Components

Skills (3)

Name SKILL.md path Purpose
openspec-proposal openspec-proposal/SKILL.md Creates a new change proposal: generates proposal.md, tasks.md, and delta spec files under openspec/changes/{change-id}/
openspec-apply openspec-apply/SKILL.md Implements an existing proposal: reads context files, executes tasks phase-by-phase, updates tasks.md checkboxes, runs quality gates
openspec-archive openspec-archive/SKILL.md Completes a change: verifies all tasks done, merges delta specs into openspec/specs/, moves change to openspec/archive/, commits

Commands

Count: 0 — The skills are invoked directly via Claude Code's skill invocation, not slash commands. The README shows them with a / prefix as usage examples:

/openspec-proposal add user search feature
/openspec-apply add-user-search
/openspec-archive add-user-search

but these are skill names, not registered slash commands.

Subagents

Count: 0 — Single-agent design; no subagent dispatch.

Hooks

Count: 0 — No .claude/settings.json hooks.

MCP Servers

Count: 0 — Zero dependencies.

Scripts

Count: 0 — No bash or Python scripts.

Templates (3)

Template Path Purpose
AGENTS.md templates/AGENTS.md AI instructions for the openspec/ directory
project.md templates/project.md Project info placeholder (user fills in architecture, conventions)
README.md templates/README.md Usage tutorial placed in openspec/README.md

Inline templates

The SKILL.md files themselves embed the document templates that get written to disk during execution:

  • openspec-proposal/SKILL.md embeds: proposal.md template, tasks.md template (with 4-phase structure: Foundation, Business Logic, UI, Integration), delta spec template (ADDED/MODIFIED/REMOVED sections)
  • openspec-apply/SKILL.md embeds: quality gate commands, phase update format
  • openspec-archive/SKILL.md embeds: archive metadata block, git commit message format, merge strategy rules
05

Prompts

openspec-skills — Prompts (Verbatim)

1. openspec-proposal/SKILL.md — Full Header and Execution Steps

This skill demonstrates the "instruction-as-checklist" prompting technique used throughout the pack:

---
name: openspec-proposal
description: Create a new change proposal following the OpenSpec SDD workflow. Use when starting
  a new feature, enhancement, or significant change that needs specification tracking.
allowed-tools: Read, Write, Glob, Grep, Bash
---

# OpenSpec: Proposal

Create a new change proposal following the OpenSpec Spec-Driven Development workflow.

## Execution Steps

### Step 1: Generate Change ID

Convert the description to kebab-case for the change ID.

**Example:** "add user search" → `add-user-search`

### Step 2: Create Directory Structure

mkdir -p openspec/changes/{change-id}/specs

### Step 3: Generate proposal.md

Create `openspec/changes/{change-id}/proposal.md`:

# Proposal: {Feature Title}

**Change ID:** `{change-id}`
**Created:** {YYYY-MM-DD}
**Status:** Draft

## Problem Statement

{Analyze the request and describe:}
- What problem are we solving?
- Who is affected?
- What's the current pain point?

...

## Impact Analysis

| Component | Change Required | Details |
|-----------|-----------------|---------|
| Database | Yes/No | {details} |
| API | Yes/No | {details} |
| State | Yes/No | {details} |
| UI | Yes/No | {details} |

## Risks & Mitigations

| Risk | Probability | Impact | Mitigation |
|------|-------------|--------|------------|
| {risk} | Low/Med/High | Low/Med/High | {strategy} |

Prompting technique: Imperative numbered checklist with embedded document templates. The agent is given exact file paths, exact content structures, and a summary format to output after completion. No "Iron Law" XML tags — purely instruction-as-procedure.


2. openspec-apply/SKILL.md — Context Loading Protocol

The Apply skill demonstrates "read-before-act" protocol enforcement:

---
name: openspec-apply
description: Implement a change proposal following the OpenSpec SDD workflow.
  Use after a proposal is approved and ready for implementation.
allowed-tools: Read, Write, Edit, Glob, Grep, Bash
---

## Execution Steps

### Step 1: Load Context

Read these files in order:

1. `openspec/project.md` - Project conventions
2. `openspec/changes/{change-id}/proposal.md` - What and why
3. `openspec/changes/{change-id}/tasks.md` - Implementation checklist
4. `openspec/changes/{change-id}/specs/*.md` - Delta specifications

### Step 3: Execute Tasks Phase by Phase

For each phase in tasks.md:

#### 3.2 Implement Task
- Follow existing patterns from project's CLAUDE.md
- Write code according to delta spec requirements
- Include tests for new functionality

#### 3.4 Quality Gate
After completing each phase, run project quality checks:
# Example for Flutter projects:
# make format && make analyze && make run_unit_test
# Example for Node projects:
# npm run lint && npm test

### Step 5: Handle Issues

If you encounter blockers:
1. Document in tasks.md under the task
2. Add a `### Blockers` section if needed
3. Ask for clarification before proceeding

  - [ ] 1.2 Add search to repository
    - **Blocker:** Unclear if fuzzy search should use DB or in-memory
    - **Options:** A) Database query, B) In-memory filtering
    - **Waiting for:** Decision from user

Prompting technique: Ordered-read protocol (forces context loading before any action), with explicit blocker-handling templates that keep the agent from silently skipping unclear requirements.


3. openspec-archive/SKILL.md — Merge Strategy + Git Commit Format

### Merge Strategy

#### For ADDED content
- Append to existing spec under appropriate section
- Maintain consistent formatting
- Add creation date comment if helpful

#### For MODIFIED content
- Replace the existing requirement
- Keep the same location in the document
- Note the modification date

#### For REMOVED content
- Move to Deprecated section (don't delete immediately)
- Include removal reason and date
- Can be fully removed in future cleanup

### Step 6: Commit the Archive

git add openspec/
git commit -m "docs(openspec): archive {change-id}

- Merged delta specs into main specs
- Archived change history
- Implementation complete"

Prompting technique: "Merge strategy" section pre-answers three common ambiguities (add/modify/remove) so the agent does not have to infer. The exact git commit message format (including the conventional commit type docs(openspec):) is specified inline to enforce consistent history.


Key Prompting Techniques Used

  1. Instruction-as-checklist: Each skill is a numbered step list; the agent creates a TodoWrite per step and marks them done sequentially.
  2. Embedded document templates: All generated file content is specified verbatim inside the skill, including placeholder labels like {Feature Title}.
  3. Read-before-act ordering: The Apply skill explicitly orders the context files to read before any code is written.
  4. Explicit halt conditions: The Archive skill specifies exact error messages to show when preconditions fail ("Cannot archive: {X} tasks still pending").
  5. Convention-citing: Every skill instructs "Follow project's CLAUDE.md" as the first override layer, placing project conventions above skill defaults.
09

Uniqueness

openspec-skills — Uniqueness and Positioning

differs_from_seeds

The closest seed is openspec (canonical, 50k stars, npm CLI). openspec-skills replicates exactly the same three-phase lifecycle (proposal/apply/archive) and the same directory layout (openspec/changes/, openspec/specs/, openspec/archive/), but replaces the npm CLI binary with three plain SKILL.md files installed by file copy. This eliminates the Node.js runtime dependency entirely and moves all workflow logic into the agent's context rather than the host shell. Compared to superpowers (which also uses .claude/skills/ format), this pack has zero behavioral enforcement mechanisms — no Iron Laws, no HARD-GATE tags, no rationalization tables — making it easier to understand but far more fragile: the agent can skip quality gates or merge specs incorrectly with no guard.

Positioning

  • Niche: "Zero-dependency OpenSpec for Claude Code users who don't want to install the CLI"
  • Differentiator from canonical openspec: No Node.js required; skills are human-readable and directly editable
  • Differentiator from superpowers: Pure spec governance, not execution discipline; no TDD enforcement

Observable failure modes

  1. No quality gate enforcement: The Apply skill instructs running quality checks but nothing prevents the agent from proceeding without them. If the agent skips a phase or marks tasks complete prematurely, there is no catch.
  2. Spec merge errors: The Archive skill's "merge strategy" is prose instructions with no validation. An agent could produce malformed openspec/specs/ files and the skill would not detect it.
  3. Scope drift: The Proposal skill warns "avoid feature creep" but provides no hard gate; a chatty agent can scope-creep the proposal with no constraint.
  4. No delta spec validation: The GIVEN/WHEN/THEN scenario format is instructed but not validated; malformed specs pass silently through to archive.
  5. No hooks: Without a SessionStart hook, the agent may not activate these skills proactively; users must explicitly invoke them each time.

Explicit antipatterns (from the README)

  • Installing skills nested in a subdirectory (e.g., ~/.claude/skills/openspec-skills/openspec-proposal/SKILL.md instead of ~/.claude/skills/openspec-proposal/SKILL.md)
  • Using OpenSpec for bug fixes or small enhancements (explicitly called out as inappropriate scope)
04

Workflow

openspec-skills — Workflow

Phases

# Phase Trigger Artifact produced Approval gate?
1 Proposal /openspec-proposal <description> openspec/changes/{id}/proposal.md, tasks.md, specs/{component}_delta.md Yes — review files before Apply
2 Apply /openspec-apply <change-id> Updated source code files, updated tasks.md checkboxes Per-phase: quality gate must pass
3 Archive /openspec-archive <change-id> openspec/archive/{id}/, updated openspec/specs/, git commit Yes — all tasks must be [x]

Phase to artifact map

Phase Artifact
Proposal openspec/changes/{id}/proposal.md
Proposal openspec/changes/{id}/tasks.md
Proposal openspec/changes/{id}/specs/{component}_delta.md
Apply (per phase) Updated source files
Apply (per phase) Updated tasks.md checkboxes
Archive openspec/archive/{id}/ (all change files moved)
Archive openspec/specs/{component}.md (merged living spec)
Archive Git commit: docs(openspec): archive {change-id}

Approval gates

Count: 3

Gate Type Description
Post-proposal review file-review User reviews proposal.md, tasks.md, delta specs before running Apply
Per-phase quality gate yes-no Each of 4 phases must pass project lint/test commands before proceeding
Archive eligibility check typed-confirm All tasks must be [x] and quality checks clean; if incomplete, skill reports missing items and halts

Task structure

The tasks.md template generated by the Proposal skill has a 4-phase structure:

Phase 1: Foundation (Data Layer)
Phase 2: Business Logic (Domain/State)
Phase 3: User Interface
Phase 4: Integration & Polish

Each phase ends with a **Quality Gate:** section containing specific pass/fail criteria.

Change lifecycle

Idea
  ↓
openspec-proposal → proposal.md + tasks.md + delta_spec.md
  ↓ (user reviews)
openspec-apply → code changes + checkbox updates
  ↓ (all tasks [x])
openspec-archive → specs merged + change moved + git commit
  ↓
openspec/specs/{component}.md (living source of truth)

Spec format

Delta specs use three section headers:

## ADDED
## MODIFIED
## REMOVED

Each requirement uses GIVEN/WHEN/THEN scenario format.

06

Memory Context

openspec-skills — Memory and Context

State storage

File-based. No database, no vector store, no MCP bridge.

Persistent files

File Lifecycle Purpose
openspec/project.md Global project Project conventions; read by all three skills before any operation
openspec/AGENTS.md Global project AI behavior instructions for the openspec/ workspace
openspec/changes/{id}/proposal.md Per-change Why/what of the change; read by Apply and Archive
openspec/changes/{id}/tasks.md Per-change Progress tracker; checkboxes updated in-place during Apply
openspec/changes/{id}/specs/*.md Per-change Delta specs; merged into permanent specs during Archive
openspec/specs/{component}.md Permanent Living source of truth; updated at Archive time
openspec/archive/{id}/ Permanent Completed change history

Context compaction

No explicit compaction handling. The skills do not emit continuation prompts or checkpoints. If a session is interrupted mid-Apply, the partially-updated tasks.md checkboxes serve as the resume point — the next Apply invocation reads the file and skips already-[x] tasks.

Cross-session handoff

Yes, via file state. The tasks.md checkbox state persists between sessions. A new Claude Code session running /openspec-apply {id} will pick up from the last completed task.

Memory type

File-based, project-scoped.

No search mechanism. Skills use Read, Glob, and Grep (as listed in allowed-tools) to locate relevant files.

07

Orchestration

openspec-skills — Orchestration

Multi-agent

No. Single-agent design throughout all three skills. No subagent dispatch.

Orchestration pattern

Sequential (linear pipeline). The three skills must be run in order: proposal → apply → archive. Each phase's output is the next phase's required input.

Isolation mechanism

None. All file edits happen in-place on the working directory.

Multi-model

No. No model routing or multi-model configuration.

Execution mode

Interactive-loop. The user invokes each skill manually; there is no continuous loop or daemon.

Prompt chaining

Yes (implicit). The proposal.md produced by openspec-proposal becomes the primary context document that openspec-apply reads at Step 1. The delta specs from openspec-proposal become the implementation contract for openspec-apply. The completed tasks.md from openspec-apply is the prerequisite check in openspec-archive.

Consensus mechanism

None.

Crash recovery

Partial. If openspec-apply is interrupted, tasks.md checkboxes capture progress and the next Apply invocation resumes from incomplete tasks. No explicit recovery protocol.

Auto-validators

None automatic. Quality gates are described in tasks.md templates and instructed in the Apply skill, but the agent must run them manually per phase. No PostToolUse hook enforces this.

08

Ui Cli Surface

openspec-skills — UI, CLI, and Observability

Dedicated CLI binary

None. No binary, no npm package, no CLI entry point.

Local web dashboard

None.

IDE integration

Claude Code only — via .claude/skills/ file discovery. No VS Code extension, no JetBrains plugin, no Zed extension.

Observability

Minimal:

  • openspec/changes/{id}/tasks.md serves as a live progress tracker (checkbox state)
  • openspec/archive/{id}/proposal.md gets an "Archive Information" block appended with duration and outcome
  • No structured logging, no audit log, no JSONL output

Installation surface

The install is self-documenting: the README itself is the only install guide, and the steps are designed to be pasted directly into Claude Code as natural language instructions.

Related frameworks

same archetype · same primary tool · same memory type

Superpowers ★ 207k

Enforces spec-first, TDD, and subagent-reviewed development as mandatory automatic workflows rather than optional practices.

Anthropic Skills (Official) ★ 141k

Official Anthropic reference gallery for the Agent Skills standard, spanning creative, technical, and enterprise capability…

OpenAI Skills (Official) ★ 20k

Tiered library of integration and workflow skills for Codex, with a self-bootstrapping skill-installer that lets agents discover…

daymade/claude-code-skills ★ 1.1k

52 production-hardened skills with emphasis on skill craftsmanship — a fork of Anthropic's official skill-creator with security…

Superpowers Lab ★ 344

Experimental skill incubator extending Superpowers with interactive CLI automation, on-demand MCP discovery, semantic…

Anthropic Skills — IP Guard Delta Report ★ 141k

No ip-guard skill found in the anthropics/skills repo; this entry is a delta report tracking its absence.