kimchi:requirements

This command should be used to extract and categorize requirements from CONTEXT.md into v1 (must have), v2 (next iteration), and out of scope. Second stage of the Kimchi planning pipeline. Produces .kimchi/REQUIREMENTS.md.

7 stars

Best use case

kimchi:requirements is best used when you need a repeatable AI agent workflow instead of a one-off prompt.

This command should be used to extract and categorize requirements from CONTEXT.md into v1 (must have), v2 (next iteration), and out of scope. Second stage of the Kimchi planning pipeline. Produces .kimchi/REQUIREMENTS.md.

Teams using kimchi:requirements should expect a more consistent output, faster repeated execution, less prompt rewriting.

When to use this skill

  • You want a reusable workflow that can be run more than once with consistent structure.

When not to use this skill

  • You only need a quick one-off answer and do not need a reusable workflow.
  • You cannot install or maintain the underlying files, dependencies, or repository context.

Installation

Claude Code / Cursor / Codex

$curl -o ~/.claude/skills/requirements/SKILL.md --create-dirs "https://raw.githubusercontent.com/Tromml/kimchi/main/plugins/kimchi/skills/requirements/SKILL.md"

Manual Installation

  1. Download SKILL.md from GitHub
  2. Place it in .claude/skills/requirements/SKILL.md inside your project
  3. Restart your AI agent — it will auto-discover the skill

How kimchi:requirements Compares

Feature / Agentkimchi:requirementsStandard Approach
Platform SupportNot specifiedLimited / Varies
Context Awareness High Baseline
Installation ComplexityUnknownN/A

Frequently Asked Questions

What does this skill do?

This command should be used to extract and categorize requirements from CONTEXT.md into v1 (must have), v2 (next iteration), and out of scope. Second stage of the Kimchi planning pipeline. Produces .kimchi/REQUIREMENTS.md.

Where can I find the source code?

You can find the source code on GitHub using the link provided at the top of the page.

SKILL.md Source

# Kimchi Requirements

<command_purpose>
Parse .kimchi/CONTEXT.md and extract all requirements into a structured, prioritized document with acceptance criteria and traceability.
</command_purpose>

## The Iron Law

```
NO CODEBASE INVESTIGATION DURING REQUIREMENTS EXTRACTION
```

Requirements extraction ONLY reads CONTEXT.md. No codebase investigation:
- No Glob to search for files
- No Grep to search code
- No reading implementation files
- No "checking if exists"
- No "understanding current patterns"

**That's research.** Research is the next stage.

## Input

Read `.kimchi/CONTEXT.md`. If it doesn't exist, tell the user: "No CONTEXT.md found. Run `/kimchi:clarify [idea]` first."

## Process

### 1. Extract Requirements

Parse CONTEXT.md for all explicit and implied requirements:
- Each decision implies at least one requirement
- Each deferred idea is a v2 or out-of-scope requirement
- Look for implied requirements not explicitly stated (e.g., "upload files" implies "validate file type")

### 2. Categorize

**v1 (Must Have):** Essential for the feature to be usable. The feature doesn't work without these.

**v2 (Next Iteration):** Valuable but can ship without. Deferred ideas from CONTEXT.md go here.

**Out of Scope:** Explicitly not part of this work. Include reasoning for each.

### 3. Assign IDs and Acceptance Criteria

- ID format: `[CATEGORY]-[NUMBER]` (e.g., UPLD-01, STOR-02, DISP-03)
- Categories emerge from the feature domain (not predefined)
- Each v1 requirement gets acceptance criteria as checkboxes
- Acceptance criteria must be testable and specific

### 4. Write REQUIREMENTS.md

Write to `.kimchi/REQUIREMENTS.md`:

```markdown
# Requirements: [Feature Name]

**Defined:** [today's date]
**Source:** .kimchi/CONTEXT.md

## v1 Requirements (Must Have)

### [Category 1]

- [ ] **[CAT]-01**: [Requirement description]
  - [ ] [Acceptance criterion 1]
  - [ ] [Acceptance criterion 2]

- [ ] **[CAT]-02**: [Requirement description]
  - [ ] [Acceptance criterion 1]

### [Category 2]

- [ ] **[CAT]-01**: [Requirement description]
  - [ ] [Acceptance criterion 1]
  - [ ] [Acceptance criterion 2]

## v2 Requirements (Next Iteration)

### [Category]

- **[CAT]-01**: [Requirement description]
  *Reason for deferral: [why not v1]*

## Out of Scope

| Feature | Reason |
|---------|--------|
| [Feature] | [Why excluded] |

## Traceability

| Requirement | Category | Priority |
|-------------|----------|----------|
| [CAT]-01 | v1 | Must have |
| [CAT]-02 | v1 | Must have |

**Coverage:**
- v1 requirements: [N] total
- v2 requirements: [N] total
- Out of scope: [N] items
```

### 5. Confirm

Show the user a summary:
- Count of v1, v2, and out-of-scope items
- Ask: "Does this categorization look right? Anything that should move between v1/v2/out-of-scope?"

Report: "Requirements extracted. Saved to .kimchi/REQUIREMENTS.md"

**Next:** Run `/kimchi:research` to investigate codebase patterns.

**STOP.** Do not continue to research.

## Common Rationalizations

| Excuse | Reality |
|--------|---------|
| "Just a quick check if this exists" | That's research. Stop. |
| "This would inform better requirements" | Research informs planning, not requirements |
| "I'll look at one file to understand" | One file = codebase investigation = research stage |
| "User would benefit from knowing if..." | User runs research next. They'll find out then |
| "I can do both stages efficiently" | Stages are separate for reason. Trust the pipeline |
| "Need to see patterns to write criteria" | Acceptance criteria come from requirements, not implementation |
| "I'll just Glob to check structure" | Any Glob/Grep = research. Not requirements. |

## Red Flags — STOP and Delete RESEARCH.md

Detecting any of these = boundary violation:

- Used Glob to search for files
- Used Grep to search code
- Read any file outside `.kimchi/` directory
- Mentioned "existing implementation"
- Mentioned "current patterns"
- RESEARCH.md exists when you're done
- Investigated "how it's currently done"

**Action if detected:** Delete RESEARCH.md. Requirements ONLY creates REQUIREMENTS.md.

## Verification Checklist

Before completing requirements stage:

- [ ] Read only CONTEXT.md (no other files)
- [ ] Created REQUIREMENTS.md with v1/v2/out-of-scope
- [ ] All requirements trace to CONTEXT.md decisions
- [ ] Used NO Glob/Grep searches
- [ ] Read NO implementation files
- [ ] Did NOT create RESEARCH.md
- [ ] Output ends with hard STOP message

## Key Principles

- **v1 is minimal**: If you can ship without it, it's v2
- **Out of scope is not a trash bin**: It's a parking lot. Capture it, just don't build it now
- **Acceptance criteria are testable**: "Works correctly" is not testable. "Returns URL matching pattern" is.
- **Every v1 requirement traces to a CONTEXT.md decision**

Related Skills

kimchi:verification-before-completion

7
from Tromml/kimchi

Use when about to claim work is complete, fixed, or passing — before committing or creating PRs. Evidence before assertions, always.

kimchi:validate

7
from Tromml/kimchi

This command should be used to validate bead YAML files for standalone executability. Runs 4 validators (context completeness, deliverables clarity, test specification, isolation) and enriches failing beads. Eighth stage of the Kimchi planning pipeline.

kimchi:tdd

7
from Tromml/kimchi

Use when implementing any feature, bugfix, or behavior change — before writing implementation code. Enforces RED-GREEN-REFACTOR cycle.

kimchi:systematic-debugging

7
from Tromml/kimchi

Use when encountering any bug, test failure, or unexpected behavior — before proposing fixes. Enforces 4-phase root cause analysis.

kimchi:status

7
from Tromml/kimchi

This command should be used to check the current state of the Kimchi planning pipeline, including which stages have completed, what artifacts exist, and bead validation status.

kimchi:simplicity-enforcement

7
from Tromml/kimchi

Use when designing solutions, implementing features, or considering abstractions. Enforces YAGNI, minimal code, and preferring duplication over wrong abstraction.

kimchi:review

7
from Tromml/kimchi

This command should be used to run multi-persona review of the implementation plan. Five specialized personas critique the plan for scope creep, complexity, premature optimization, and test coverage. Fifth stage of the Kimchi planning pipeline. Produces .kimchi/PLAN-REVIEWED.md.

kimchi:reset

7
from Tromml/kimchi

This command should be used to clear the Kimchi working directory (.kimchi/) and start fresh. Preserves .beads/ directory. Use when starting a new planning session or recovering from a bad state.

kimchi:research

7
from Tromml/kimchi

This command should be used to investigate codebase patterns, frameworks, and existing implementations before planning. Third stage of the Kimchi planning pipeline. Produces .kimchi/RESEARCH.md.

kimchi:refine

7
from Tromml/kimchi

This command should be used to iteratively improve the plan until quality threshold is reached or diminishing returns detected. Sixth stage of the Kimchi planning pipeline. Produces .kimchi/PLAN-DRAFT.md.

kimchi:plan

7
from Tromml/kimchi

This command should be used to run the Kimchi planning pipeline through refinement, transforming a vague idea into a draft plan ready for cross-model analysis. Orchestrates 6 stages: clarify, requirements, research, generate, review, refine. Use --full-auto to also run beads + validate after manual revise/synthesize.

kimchi:plan-synthesize

7
from Tromml/kimchi

This command should be used to synthesize multiple cross-model plan revisions into a superior hybrid plan. Eighth stage of the Kimchi planning pipeline. Reads PLAN-REVISED-*.md files and outputs PLAN-SYNTHESIZED.md — the TRUE final plan.