🌍 Global Mirror — Visit original CN site →
Back to skills

Framework Anton Abyzov Specweave

ASecurity

Expert on SpecWeave framework structure, rules, and spec-driven development conventions. Use when learning SpecWeave best practices, understanding increment lifecycle, or configuring hooks. Covers source-of-truth discipline, tasks.md/spec.md formats, living docs sync, and file organization patterns.

76 stars
1 votes
1 copies
14 views
Added 2/8/2026
developmentgoshellbashreactvueangularnodenodejskubernetesgit

Works with

claude codecursorcliapi

Security Analysis

A92/100
mediumInstalls packages at runtime which could introduce malicious dependencies

Scanned 2/12/2026

Install via CLI

$openskills install majiayu000/claude-skill-registry
Download Zip
SKILL.md
---
name: framework
description: Expert on SpecWeave framework structure, rules, and spec-driven development conventions. Use when learning SpecWeave best practices, understanding increment lifecycle, or configuring hooks. Covers source-of-truth discipline, tasks.md/spec.md formats, living docs sync, and file organization patterns.
allowed-tools: Read, Grep, Glob
user-invocable: false
---

# SpecWeave Framework Expert

I am an expert on the SpecWeave framework - a spec-driven development framework for Claude Code (and other AI coding assistants). I have deep knowledge of its structure, rules, conventions, and best practices.

## Core Philosophy

SpecWeave follows **spec-driven development** with **increment-based workflows**:

1. **Specification First** - Write WHAT and WHY before HOW
2. **Incremental Delivery** - Ship small, complete features
3. **Living Documentation** - Docs update automatically via hooks
4. **Source of Truth Discipline** - Single source, zero duplication
5. **Multi-Tool Support** - Works with Claude, Cursor, Copilot, and generic AI

## Increment-Based Development

### What is an Increment?

An **increment** = a complete feature with:
- `spec.md` - Product requirements (WHAT and WHY) — **required**
- `plan.md` - Technical architecture (HOW to implement) — **optional**, for complex features only
- `tasks.md` - Task breakdown (WORK to do) — **required**
- `metadata.json` - State tracking — **required**

> **When to skip plan.md**: Bug fixes, simple migrations, hotfixes, and straightforward tasks where spec.md already describes the approach.

### spec.md Mandatory Fields

**CRITICAL**: spec.md YAML frontmatter MUST include project (and board for 2-level structures):

```yaml
# 1-level structure (single-project or multiProject):
---
increment: 0001-feature-name
project: my-project          # REQUIRED
---

# 2-level structure (ADO area paths, JIRA boards, umbrella teams):
---
increment: 0001-feature-name
project: acme-corp           # REQUIRED
board: digital-operations    # REQUIRED for 2-level
---
```

**Why?** Ensures increment syncs to correct location in living docs. Without explicit project/board, sync-specs may fail or place specs in wrong folder.

**Detection**: Use `src/utils/structure-level-detector.ts` to determine if 1-level or 2-level structure is needed.

**See**: [ADR-0190](/internal/architecture/adr/0190-spec-project-board-requirement.md)

### Increment Naming Convention

**CRITICAL RULE**: All increments MUST use descriptive names, not just numbers!

**Format**: `####-descriptive-kebab-case-name`

**Examples**:
-`0001-core-framework`
-`0002-core-enhancements`
-`0003-intelligent-model-selection`
-`0004-plugin-architecture`
-`0006-llm-native-i18n`
-`0003` (too generic, rejected!)
-`0004` (no description, rejected!)

**Rationale**:
- Clear intent at a glance
- Easy to reference in conversation
- Better git history
- Searchable by feature name
- Self-documenting increment folders

### Increment Lifecycle

```
1. Plan    → /sw:inc "feature-name"
            ↓ PM agent creates spec.md, plan.md, tasks.md, tests.md

2. Execute → /sw:do
            ↓ Selects next task, executes, marks complete

3. Validate → /sw:validate 0001
            ↓ Checks spec compliance, test coverage

4. Close   → /sw:done 0001
            ↓ Creates COMPLETION-SUMMARY.md, archives
```

### Increment Discipline

**THE IRON RULE**: Cannot start increment N+1 until increment N is DONE!

**Enforcement**:
- `/sw:inc` **blocks** if previous increments incomplete
- Use `/sw:status` to check all increments
- Use `/sw:close` to close incomplete work
- `--force` flag for emergencies (logged, should be rare)

**What "DONE" Means**:
1. All tasks in `tasks.md` marked `[x] Completed`, OR
2. `COMPLETION-SUMMARY.md` exists with "✅ COMPLETE" status, OR
3. Explicit closure via `/sw:close`

**Three Options for Closing**:
1. **Adjust Scope** - Remove features from spec.md, regenerate tasks
2. **Move Scope** - Transfer incomplete tasks to next increment
3. **Extend Existing** - Update spec.md, add tasks, continue in same increment

**Example**:
```bash
# Check status
/sw:status
# Shows: 0002 (73% complete), 0003 (50% complete)

# Try to start new increment
/sw:inc "0004-new-feature"
# ❌ Blocked! "Close 0002 and 0003 first"

# Close previous work
/sw:close
# Interactive: Choose force-complete, move tasks, or reduce scope

# Now can proceed
/sw:inc "0004-new-feature"
# ✅ Works! Clean slate
```

## Directory Structure

### Root-Level .specweave/ Folder (MANDATORY)

**CRITICAL ARCHITECTURE RULE**: SpecWeave ONLY supports root-level `.specweave/` folders.

**Correct Structure**:
```
my-project/
├── .specweave/              ← ONE source of truth (root-level)
│   ├── increments/
│   │   ├── 0001-core-framework/
│   │   │   ├── spec.md
│   │   │   ├── plan.md
│   │   │   ├── tasks.md
│   │   │   ├── tests.md
│   │   │   ├── logs/        ← Session logs
│   │   │   ├── scripts/     ← Helper scripts
│   │   │   └── reports/     ← Analysis files
│   │   └── _backlog/
│   ├── docs/
│   │   ├── internal/        ← Strategic docs (NEVER published)
│   │   │   ├── strategy/    ← Business strategy
│   │   │   ├── architecture/ ← ADRs, RFCs, diagrams
│   │   │   └── delivery/    ← Implementation notes
│   │   └── public/          ← User-facing docs (can publish)
│   └── logs/
├── frontend/
├── backend/
└── infrastructure/
```

**WRONG** (nested .specweave/ folders - NOT SUPPORTED):
```
my-project/
├── .specweave/              ← Root level
├── backend/
│   └── .specweave/          ← ❌ NESTED - PREVENTS THIS!
└── frontend/
    └── .specweave/          ← ❌ NESTED - PREVENTS THIS!
```

**Why Root-Level Only?**
- ✅ Single source of truth
- ✅ Cross-cutting features natural (frontend + backend + infra)
- ✅ No duplication or fragmentation
- ✅ Clear ownership
- ✅ Simplified living docs sync

**Multi-Repo Solution**:
For huge projects with multiple repos, create a **parent folder**:
```
my-big-project/              ← Create parent folder
├── .specweave/              ← ONE source of truth for ALL repos
├── auth-service/            ← Separate git repo
├── payment-service/         ← Separate git repo
├── frontend/                ← Separate git repo
└── infrastructure/          ← Separate git repo
```

## Source of Truth Discipline

**CRITICAL PRINCIPLE**: SpecWeave has strict source-of-truth rules!

### Three Directories, Three Purposes

```
src/                         ← SOURCE OF TRUTH (version controlled)
├── skills/                  ← Source for skills
├── agents/                  ← Source for agents
├── commands/                ← Source for slash commands
├── hooks/                   ← Source for hooks
├── adapters/                ← Tool adapters (Claude/Cursor/Copilot/Generic)
└── templates/               ← Templates for user projects

.claude/                     ← INSTALLED (gitignored in user projects)
├── skills/                  ← Installed from src/skills/
├── agents/                  ← Installed from src/agents/
├── commands/                ← Installed from src/commands/
└── hooks/                   ← Installed from src/hooks/

.specweave/                  ← FRAMEWORK DATA (always present)
├── increments/              ← Feature development
├── docs/                    ← Strategic documentation
└── logs/                    ← Logs and execution history
```

### Golden Rules

1. **✅ ALWAYS edit files in `src/`** (source of truth)
2. **✅ Run install scripts to sync changes to `.claude/`**
3. **❌ NEVER edit files in `.claude/` directly** (they get overwritten)
4. **❌ NEVER create new files in project root** (use increment folders)

**Example Workflow**:
```bash
# CORRECT: Edit source
vim src/skills/increment-planner/SKILL.md

# Sync to .claude/
npm run install:skills

# Test (skill activates from .claude/)
/sw:inc "test feature"

# WRONG: Edit installed file
vim .claude/skills/increment-planner/SKILL.md  # ❌ Gets overwritten!
```

### File Organization Rules

**✅ ALLOWED in Root**:
- `CLAUDE.md` (this file)
- `README.md`, `CHANGELOG.md`, `LICENSE`
- Standard config files (`package.json`, `tsconfig.json`, `.gitignore`)
- Build artifacts (`dist/`, only if needed temporarily)

**❌ NEVER Create in Root** (pollutes repository):
All AI-generated files MUST go into increment folders:

```
❌ WRONG:
/SESSION-SUMMARY-2025-10-28.md          # NO!
/ADR-006-DEEP-ANALYSIS.md               # NO!
/ANALYSIS-MULTI-TOOL-COMPARISON.md      # NO!

✅ CORRECT:
.specweave/increments/0002-core-enhancements/
├── reports/
│   ├── SESSION-SUMMARY-2025-10-28.md
│   ├── ADR-006-DEEP-ANALYSIS.md
│   └── ANALYSIS-MULTI-TOOL-COMPARISON.md
├── logs/
│   └── execution-2025-10-28.log
└── scripts/
    └── migration-helper.sh
```

**Why?**
- ✅ Complete traceability (which increment created which files)
- ✅ Easy cleanup (delete increment folder = delete all files)
- ✅ Clear context (all files for a feature in one place)
- ✅ No root clutter

## Hook System

### What are Hooks?

Hooks are shell scripts that fire automatically on SpecWeave events:
- `post-task-completion` - After EVERY task completion via TodoWrite
- `pre-task-plugin-detect` - Before task execution (plugin detection)
- `post-increment-plugin-detect` - After increment creation
- `pre-implementation` - Before implementation starts

### Current Hook: post-task-completion

**Fires**: After EVERY TodoWrite call
**Purpose**: Notify when work completes

**What it does**:
- ✅ Detects session end (inactivity-based, 15s threshold)
- ✅ Plays notification sound (macOS/Linux/Windows)
- ✅ Shows completion message
- ✅ Logs to `.specweave/logs/hooks-debug.log`
- ✅ Debounces duplicate fires (2s window)

**What it does NOT do yet**:
- ⏳ Update `tasks.md` completion status
- ⏳ Sync living docs automatically
- ⏳ Consolidate GitHub/Jira tasks
- ⏳ Calculate increment progress percentage

**Smart Session-End Detection**:
```
Problem: Claude creates multiple todo lists → sound plays multiple times
Solution: Track inactivity gaps between TodoWrite calls
- Rapid completions (< 15s gap) = Claude still working → skip sound
- Long gap (> 15s) + all done = Session ending → play sound!
```

### Hook Configuration

**File**: `.specweave/config.json`

```json
{
  "hooks": {
    "post_task_completion": {
      "enabled": true,
      "update_tasks_md": false,
      "sync_living_docs": false,
      "play_sound": true,
      "show_message": true
    }
  }
}
```

### Manual Actions

Until hooks are fully automated, **YOU MUST**:
- Update `CLAUDE.md` when structure changes
- Update `README.md` for user-facing changes
- Update `CHANGELOG.md` for API changes
- Update `tasks.md` completion status manually (or use TodoWrite carefully)

## Plugin Architecture

### Core vs. Plugin

**Core Framework** (always loaded):
- 8 core skills (increment-planner, spec-generator, context-loader, etc.)
- 3 core agents (PM, Architect, Tech Lead)
- 7 core commands (/sw:inc, /sw:do, etc.)

**Plugins** (opt-in):
- `specweave-github` - GitHub integration (issue sync, PR creation)
- `specweave-jira` - Jira integration (task sync)
- `specweave-kubernetes` - K8s deployment (planned)
- `specweave-frontend-stack` - React/Vue/Angular (planned)
- `specweave-ml-ops` - Machine learning (planned)

### Context Reduction

**Before plugins**:
- Simple React app: 50K tokens (ALL 44 skills + 20 agents loaded)
- Backend API: 50K tokens
- ML pipeline: 50K tokens

**After plugins**:
- Simple React app: Core + frontend-stack + github ≈ **16K tokens** (68% reduction!)
- Backend API: Core + nodejs-backend + github ≈ **15K tokens** (70% reduction!)
- ML pipeline: Core + ml-ops + github ≈ **18K tokens** (64% reduction!)

### Four-Phase Plugin Detection

1. **Init-Time** (during `specweave init`):
   - Scans package.json, directories, env vars
   - Suggests plugins: "Found React. Enable frontend-stack? (Y/n)"

2. **First Increment** (during `/sw:inc`):
   - Analyzes increment description for keywords
   - Suggests before creating spec: "This needs kubernetes plugin. Enable? (Y/n)"

3. **Pre-Task** (before task execution):
   - Hook scans task description
   - Non-blocking suggestion: "This task mentions K8s. Consider enabling plugin."

4. **Post-Increment** (after completion):
   - Hook scans git diff for new dependencies
   - Suggests for next increment: "Detected Stripe. Enable payment-processing plugin?"

### Hybrid Plugin System

SpecWeave plugins support **dual distribution**:

1. **NPM Package** (SpecWeave CLI):
   - `npm install -g specweave`
   - `specweave plugin install sw-github`
   - Works with ALL tools (Claude, Cursor, Copilot, Generic)

2. **Claude Code Marketplace** (Native `/plugin`):
   - `/plugin marketplace add https://github.com/anton-abyzov/specweave`
   - `/plugin install sw-github@specweave`
   - Best UX for Claude Code users (use HTTPS URL for public repos!)

**Plugin Manifests** (both required):
- `plugin.json` - Claude Code native format
- `manifest.json` - SpecWeave custom format (richer metadata)

## Multi-Tool Support

SpecWeave works with multiple AI coding assistants:

### Claude Code (⭐⭐⭐⭐⭐ 100%)
- Native `.claude/` installation
- Skills auto-activate
- Hooks fire automatically
- Slash commands work natively
- Agents isolate context
- **BEST EXPERIENCE**

### Cursor 2.0 (⭐⭐⭐⭐ 85%)
- `AGENTS.md` compilation
- Team commands via dashboard
- `@context` shortcuts
- Shared agent context (8 parallel agents)
- Manual hook triggers

### GitHub Copilot (⭐⭐⭐ 60%)
- `.github/copilot/instructions.md` compilation
- Natural language instructions only
- Manual workflows
- No hooks or slash commands

### Generic (⭐⭐ 40%)
- `SPECWEAVE-MANUAL.md` for copy-paste
- Manual workflows
- No automation

**Recommendation**: Use Claude Code for SpecWeave. Other tools work, but you'll miss the magic.

## Key Commands

### Increment Lifecycle
- `/sw:inc "feature-name"` - Plan new increment (PM-led process)
- `/sw:do` - Execute next task (smart resume)
- `/sw:progress` - Show progress, PM gate status, next action
- `/sw:validate 0001` - Validate spec, tests, quality
- `/sw:done 0001` - Close increment (PM validation)
- `/sw:next` - Auto-close if ready, suggest next work

### Increment Discipline
- `/sw:status` - Show all increments and completion status
- `/sw:close` - Interactive closure of incomplete increments

### Documentation Sync
- `/sw:sync-docs review` - Review strategic docs before implementation
- `/sw:sync-docs update` - Update living docs from completed increments

### External Platform Sync
- `/sw:sync-github` - Bidirectional GitHub sync
- `/sw:sync-jira` - Bidirectional Jira sync

## Common Questions

### Q: Where do I create a new increment?
**A**: Use `/sw:inc "####-descriptive-name"`. It creates:
```
.specweave/increments/####-descriptive-name/
├── spec.md
├── plan.md
├── tasks.md
└── tests.md
```

### Q: Where do I put analysis files?
**A**: In the increment's `reports/` folder:
```
.specweave/increments/0002-core-enhancements/reports/
└── ANALYSIS-XYZ.md
```

### Q: How do I know what tasks are left?
**A**: Use `/sw:progress` or read `.specweave/increments/####/tasks.md`

### Q: Can I start a new increment before finishing the current one?
**A**: NO! The framework **blocks** you. Use `/sw:status` to check, `/sw:close` to close.

### Q: Where do I edit skills/agents/commands?
**A**: Edit in `src/` (source of truth), then run `npm run install:all` to sync to `.claude/`

### Q: How do I know if a plugin is needed?
**A**: SpecWeave auto-detects! It will suggest plugins during init or increment creation.

### Q: Why does the hook play a sound?
**A**: Session-end detection! If all tasks complete AND you've been idle > 15s, it assumes you're done. Configurable in `.specweave/config.json`.

### Q: How do I disable a hook?
**A**: Edit `hooks/hooks.json` and set `"enabled": false` for that hook.

## Activation Keywords

I activate when you ask about:
- SpecWeave rules / conventions / best practices
- Increment naming / structure / lifecycle
- Where files go / directory structure
- Source of truth / what to edit
- Hook system / automation
- Plugin architecture / context reduction
- How to use SpecWeave / getting started
- What is spec.md / plan.md / tasks.md
- Living docs sync
- Increment discipline / closure
- Multi-tool support (Claude/Cursor/Copilot)

## When to Use Other Skills/Agents

- **increment-planner** - Planning NEW increments (/sw:inc)
- **PM agent** - Leading increment creation (auto-invoked by /sw:inc)
- **Architect agent** - Designing system architecture
- **Tech Lead agent** - Code review, best practices
- **spec-generator** - Creating detailed technical RFCs
- **context-loader** - Explaining context efficiency
- **diagrams-architect** - Creating C4/Mermaid diagrams

I focus on **framework knowledge**. For **increment execution**, use the PM agent and commands!

---

Let me help you understand and use SpecWeave correctly! 🚀

## Project-Specific Learnings

**Before starting work, check for project-specific learnings:**

```bash
# Check if skill memory exists for this skill
cat .specweave/skill-memories/framework.md 2>/dev/null || echo "No project learnings yet"
```

Project learnings are automatically captured by the reflection system when corrections or patterns are identified during development. These learnings help you understand project-specific conventions and past decisions.

Comments (0)

No comments yet. Be the first to comment!

Framework Anton Abyzov Specweave

Stay up to date

Get the latest news on AI tools and skills delivered to your inbox.