claude-skills Documentation

67 Specialized Skills for Full-Stack Developers. Transform Claude Code into your expert pair programmer.

12,180 stars JavaScript JavaScript 35 files · ~126,174 tokens #ai-agents#claude#claude-code#claude-marketplace#claude-skills
RAW Doc

Technical Documentation: Jeffallan/claude-skills

ℹ️ Provenance: Multi-Tier Ingestion · CodeWiki Reference

Overview (`README.md`)


Quick Start

bash
/plugin marketplace add jeffallan/claude-skills

Then, install the skills:

bash
/plugin install fullstack-dev-skills@fullstack-dev-skills

For all installation methods and first steps, see the Quick Start Guide.

Full documentation: jeffallan.github.io/claude-skills

Skills

67 specialized skills across 12 categories covering languages, backend/frontend frameworks, infrastructure, APIs, testing, DevOps, security, data/ML, and platform specialists.

See Skills Guide for the full list, decision trees, and workflow combinations.

Usage Patterns

Context-Aware Activation

Skills activate automatically based on your request:

bash
# Backend Development
"Implement JWT authentication in my NestJS API"
→ Activates: NestJS Expert → Loads: references/authentication.md

# Frontend Development
"Build a React component with Server Components"
→ Activates: React Expert → Loads: references/server-components.md

Multi-Skill Workflows

Complex tasks combine multiple skills:

text
Feature Development: Feature Forge → Architecture Designer → Fullstack Guardian → Test Master → DevOps Engineer
Bug Investigation:   Debugging Wizard → Framework Expert → Test Master → Code Reviewer
Security Hardening:  Secure Code Guardian → Security Reviewer → Test Master

Context Engineering

Surface and validate Claude's hidden assumptions about your project with /common-ground. See the Common Ground Guide for full documentation.

Project Workflow

The 9 workflow commands manage epics from discovery through retrospectives, integrating with Jira and Confluence. See Workflow Commands Reference for the full command reference and lifecycle diagrams.

[!TIP]
Setup: Workflow commands require an Atlassian MCP server. See the Atlassian MCP Setup Guide.

Documentation

Contributing

See Contributing for guidelines on adding skills, writing references, and submitting pull requests.

Changelog

See Changelog for full version history and release notes.

License

MIT License - See LICENSE file for details.

Support

Author

Built by jeffallan

Principal Consultant at Synergetic Solutions

Fullstack engineering, security engineering, compliance, and technical due diligence.

Community

Star History


Built for Claude Code | 9 Workflows | 371 Reference Files | 67 Skills


Site Src Content Docs Index (`site/src/content/docs/index.mdx`)


title: Claude Skills
template: splash
hero:
tagline: Transform Claude Code into your expert pair programmer across the entire development stack.
actions:
- text: Get Started
link: /claude-skills/getting-started/
icon: right-arrow
variant: primary
- text: Browse Skills
link: /claude-skills/skills-guide/
variant: minimal


import { Card, CardGrid } from '@astrojs/starlight/components';

Specialized skills covering 12 domains — languages, frameworks, infrastructure, security, DevOps, data/ML, and more. Project workflow commands managing epics from discovery through retrospectives, with Jira and Confluence integration. Deep-dive reference files loaded on-demand for surgical precision when context requires it. Lean 80-line skill cores with routing tables to detailed references — 50% token reduction, faster initial responses.

Quick Install

bash
/plugin marketplace add jeffallan/claude-skills
bash
/plugin install fullstack-dev-skills@fullstack-dev-skills

See the Getting Started guide for all installation methods and first steps.


ATLASSIAN MCP SETUP (`docs/ATLASSIAN_MCP_SETUP.md`)

Atlassian MCP Server Setup Guide

This guide provides step-by-step instructions for configuring the Atlassian MCP (Model Context Protocol) server to enable Claude to interact with Jira and Confluence.


Table of Contents


Prerequisites

Before setting up the Atlassian MCP server, ensure you have:

  1. Docker installed and running

    • Verify with: docker --version
    • Docker must be able to pull images from ghcr.io
  2. Atlassian account access

    • For Cloud: Account with access to your organization's Jira and Confluence
    • For Server/Data Center: Administrative access to generate personal access tokens
  3. Claude Code CLI installed

    • The MCP server integrates with Claude Code for AI-assisted workflows

Getting API Tokens

API tokens are the standard authentication method for Atlassian Cloud products.

Step 1: Navigate to API Token Management

  1. Go to https://id.atlassian.com/manage-profile/security/api-tokens
  2. Sign in with your Atlassian account

Step 2: Create a New API Token

  1. Click Create API token
  2. Enter a descriptive label (e.g., "Claude MCP Integration")
  3. Click Create
  4. Copy the token immediately - it will not be shown again

Step 3: Note Your Credentials

You will need:

  • Email address: The email associated with your Atlassian account
  • API token: The token you just created
  • Instance URL: Your Atlassian Cloud URL (e.g., https://yourcompany.atlassian.net)

Important: The same API token works for both Jira and Confluence if they are on the same Atlassian Cloud instance.


Atlassian Server / Data Center

For self-hosted Atlassian products, use Personal Access Tokens (PATs).

Jira Server/Data Center:

  1. Navigate to your Jira instance
  2. Click your profile icon > Profile
  3. Go to Personal Access Tokens
  4. Click Create token
  5. Set token name and expiry
  6. Copy the generated token

Confluence Server/Data Center:

  1. Navigate to your Confluence instance
  2. Click your profile icon > Settings
  3. Go to Personal Access Tokens
  4. Click Create token
  5. Set token name and expiry
  6. Copy the generated token

Environment Setup

Step 1: Create Environment File

Create a .env.local file in your project root (or the directory where you will run Claude Code):

bash
touch .env.local

Step 2: Configure Environment Variables

Add the following variables to .env.local based on your setup:

For Atlassian Cloud:

bash
# Confluence Cloud Configuration
CONFLUENCE_URL=https://yourcompany.atlassian.net/wiki
[email protected]
CONFLUENCE_API_TOKEN=your-api-token-here

# Jira Cloud Configuration
JIRA_URL=https://yourcompany.atlassian.net
[email protected]
JIRA_API_TOKEN=your-api-token-here

# Optional: Limit to specific spaces/projects
# CONFLUENCE_SPACES_FILTER=DOCS,WIKI,ENG
# JIRA_PROJECTS_FILTER=PROJ,DEV,OPS

# Optional: Enable read-only mode (disables all write operations)
# READ_ONLY_MODE=true

For Atlassian Server/Data Center:

bash
# Confluence Server Configuration
CONFLUENCE_URL=https://confluence.yourcompany.com
CONFLUENCE_PERSONAL_TOKEN=your-personal-access-token
CONFLUENCE_SSL_VERIFY=true  # Set to "false" for self-signed certificates

# Jira Server Configuration
JIRA_URL=https://jira.yourcompany.com
JIRA_PERSONAL_TOKEN=your-personal-access-token
JIRA_SSL_VERIFY=true  # Set to "false" for self-signed certificates

# Optional: Limit to specific spaces/projects
# CONFLUENCE_SPACES_FILTER=DOCS,WIKI
# JIRA_PROJECTS_FILTER=PROJ,DEV

# Optional: Enable read-only mode
# READ_ONLY_MODE=true

Step 3: Verify .gitignore

Ensure .env.local is in your .gitignore to prevent accidental credential exposure:

bash
# Check if .env.local is ignored
grep -q "\.env\.local" .gitignore || echo ".env.local" >> .gitignore

MCP Configuration

Step 1: Create MCP Configuration File

Create or update .mcp.json in your project root:

json
{
  "mcpServers": {
    "atlassian": {
      "command": "docker",
      "args": [
        "run",
        "-i",
        "--rm",
        "--env-file",
        ".env.local",
        "ghcr.io/sooperset/mcp-atlassian:latest"
      ]
    }
  }
}

Step 2: Pull the Docker Image

Pre-pull the image to ensure it is available:

bash
docker pull ghcr.io/sooperset/mcp-atlassian:latest

Configuration Options

Multiple Environment Files:

If you have separate environment files for different purposes:

json
{
  "mcpServers": {
    "atlassian": {
      "command": "docker",
      "args": [
        "run",
        "-i",
        "--rm",
        "--env-file",
        ".env.atlassian",
        "ghcr.io/sooperset/mcp-atlassian:latest"
      ]
    }
  }
}

Combining with Other MCP Servers:

json
{
  "mcpServers": {
    "atlassian": {
      "command": "docker",
      "args": [
        "run",
        "-i",
        "--rm",
        "--env-file",
        ".env.local",
        "ghcr.io/sooperset/mcp-atlassian:latest"
      ]
    },
    "filesystem": {
      "command": "npx",
      "args": ["-y", "@modelcontextprotocol/server-filesystem", "/path/to/allowed/dir"]
    }
  }
}

Verification

Step 1: Test Docker Connectivity

Verify the container can start and read your environment:

bash
docker run --rm --env-file .env.local ghcr.io/sooperset/mcp-atlassian:latest --help

Step 2: Test with Claude Code

Start Claude Code and verify the MCP server is recognized:

bash
claude

Then ask Claude to list available MCP tools or perform a simple operation:

text
List the Jira projects I have access to.

Or:

text
Show me the recent pages in Confluence.

Step 3: Verify Specific Operations

Test Jira connectivity:

text
What issues are in project [YOUR_PROJECT_KEY]?

Test Confluence connectivity:

text
List pages in the [YOUR_SPACE_KEY] Confluence space.

Expected Behavior

When working correctly:

  • Claude can list Jira projects and issues
  • Claude can read and create Confluence pages
  • Claude can search across both platforms
  • Claude reports any permission errors clearly

Troubleshooting

Common Issues

Issue: "Authentication failed" or "401 Unauthorized"

Causes and solutions:

  1. Invalid API token: Regenerate your API token from Atlassian
  2. Wrong username: For Cloud, use your email address, not username
  3. Token expired: Server/DC tokens may expire; create a new one
  4. Wrong URL format:
    • Jira Cloud: https://yourcompany.atlassian.net
    • Confluence Cloud: https://yourcompany.atlassian.net/wiki

Issue: "Connection refused" or "Cannot reach host"

Causes and solutions:

  1. Docker networking: Ensure Docker can reach external URLs
  2. VPN required: Connect to VPN if accessing internal Atlassian Server
  3. Firewall blocking: Check corporate firewall rules
  4. Wrong URL: Verify the URL is accessible in your browser

Issue: "SSL certificate verify failed"

For self-signed certificates on Server/Data Center:

bash
CONFLUENCE_SSL_VERIFY=false
JIRA_SSL_VERIFY=false

Issue: "Permission denied" when reading/writing

Causes and solutions:

  1. Insufficient permissions: Your Atlassian account needs appropriate project/space permissions
  2. Read-only mode enabled: Check if READ_ONLY_MODE=true is set
  3. Space/project restrictions: Verify you have access to the specific space or project

Issue: Docker image not found

bash
# Pull the latest image
docker pull ghcr.io/sooperset/mcp-atlassian:latest

# Verify it exists
docker images | grep mcp-atlassian

Issue: Environment file not found

Ensure the path in .mcp.json is correct:

  • Use relative path from where Claude Code runs
  • Or use absolute path: /Users/yourname/project/.env.local

Debug Mode

To see detailed logs, run the container manually:

bash
docker run -it --rm --env-file .env.local ghcr.io/sooperset/mcp-atlassian:latest

Verifying Environment Variables

Check that your environment file is properly formatted:

bash
# List all variables (redacted)
grep -E "^[A-Z_]+" .env.local | sed 's/=.*/=***/'

Expected output:

text
CONFLUENCE_URL=***
CONFLUENCE_USERNAME=***
CONFLUENCE_API_TOKEN=***
JIRA_URL=***
JIRA_USERNAME=***
JIRA_API_TOKEN=***

Security Considerations

Credential Protection

  1. Never commit credentials: Ensure .env.local is in .gitignore
  2. Use environment-specific files: Keep production and development credentials separate
  3. Rotate tokens regularly: Set calendar reminders to rotate API tokens
  4. Use minimal permissions: Only grant the Atlassian account permissions it needs

Read-Only Mode

For safer exploration or demo environments:

bash
READ_ONLY_MODE=true

This prevents any write operations to Jira or Confluence.

Space and Project Filtering

Limit Claude's access to specific areas:

bash
# Only access these Confluence spaces
CONFLUENCE_SPACES_FILTER=DOCS,PUBLIC

# Only access these Jira projects
JIRA_PROJECTS_FILTER=SUPPORT,DOCS

Audit Trail

All operations performed through the MCP server are:

  • Logged in Atlassian's audit logs
  • Associated with your Atlassian account
  • Subject to your organization's compliance policies

Token Revocation

If you suspect a token has been compromised:

  1. Go to Atlassian API Token Management
  2. Click Revoke next to the compromised token
  3. Create a new token
  4. Update your .env.local file

Environment Variable Reference

Confluence Variables

Variable Required Description
CONFLUENCE_URL Yes Confluence instance URL
CONFLUENCE_USERNAME Cloud only Email address for authentication
CONFLUENCE_API_TOKEN Cloud only API token from Atlassian
CONFLUENCE_PERSONAL_TOKEN Server only Personal access token
CONFLUENCE_SSL_VERIFY No Set to false for self-signed certs
CONFLUENCE_SPACES_FILTER No Comma-separated space keys to limit access

Jira Variables

Variable Required Description
JIRA_URL Yes Jira instance URL
JIRA_USERNAME Cloud only Email address for authentication
JIRA_API_TOKEN Cloud only API token from Atlassian
JIRA_PERSONAL_TOKEN Server only Personal access token
JIRA_SSL_VERIFY No Set to false for self-signed certs
JIRA_PROJECTS_FILTER No Comma-separated project keys to limit access

Global Variables

Variable Required Description
READ_ONLY_MODE No Set to true to disable all write operations

Quick Start Checklist

  • Docker installed and running
  • API token created at Atlassian
  • .env.local created with credentials
  • .env.local added to .gitignore
  • .mcp.json created with Atlassian configuration
  • Docker image pulled: docker pull ghcr.io/sooperset/mcp-atlassian:latest
  • Connection tested with Claude Code

Additional Resources


COMMON GROUND (`docs/COMMON_GROUND.md`)

Common Ground: Context Engineering for Claude

Surface, validate, and track Claude's hidden assumptions about your project.


Overview

Claude operates on assumptions—about your tech stack, coding standards, architecture decisions, and preferences. These assumptions are often correct, but when they're wrong, they lead to misaligned work that needs to be redone.

Common Ground makes these assumptions explicit. Instead of Claude silently assuming "this project uses TypeScript strict mode" or "we prefer functional components," it surfaces these beliefs for your validation before proceeding.


Background & Motivation

This command emerged from a conversation about a fundamental asymmetry in human-AI collaboration: Claude builds an internal model of reality—assumptions, inferences, premises—that shapes everything it produces, but users have no way to see or correct that model until something goes wrong downstream.

The result is a steering problem: once Claude commits to a path, course-correcting feels like fighting momentum rather than navigating together. This command addresses that by making the hidden visible—surfacing Claude's assumptions as an editable artifact so both parties can align before work begins.

Origin Story

The idea came from asking Claude a simple question: "If you could write any application, what would it be and why?"

I think I'd build a collaborative reasoning environment—something like a shared thinking space where humans and AI can work through genuinely hard problems together, with the reasoning process itself becoming visible and manipulable.

Most interfaces treat AI as a question-answering machine—you ask, I respond, repeat. But the interesting work happens in the middle: the assumptions we're making, the frames we're using, the paths not taken. Right now that's mostly invisible. You see my output but not the structure underneath.

I'd want something where you could see a problem decomposed spatially—not just as a chat log but as a network of considerations, trade-offs, and dependencies. You could grab a node and say "actually, let's assume X instead" and watch the downstream reasoning update.

This resonated with a user frustration: "I don't have an ergonomic way to say 'hey Claude, let's try this reality.' Once you've gone down a path, it's difficult to steer the ship."

Why "Common Ground"?

The command was originally called /reality-check, but the name was changed to better reflect what it actually does.

It's not verification against truth—it's the creation of common ground: a shared place to stand, knowing we still see it differently, but at least pointing at the same patch of earth.

This reflects a deeper insight about intersubjectivity: two minds can never achieve perfect transparency, but they can narrow the gap through iteration. Each cycle of surface → interpret → respond → correct leaves us more aligned.

The ground file isn't ground truth—it's a coordination point that constrains our misunderstandings and gives us something concrete to build from together


Quick Start

bash
# Surface and validate assumptions (interactive)
/common-ground

# View all tracked assumptions
/common-ground --list

# Quick validation check
/common-ground --check

# Generate reasoning visualization
/common-ground --graph

How It Works

The Two-Phase Flow

When you run /common-ground without flags, Claude executes a two-phase interactive process:

text
┌─────────────────────────────────────────────────────────────┐
│                    PHASE 1: Surface & Select                │
├─────────────────────────────────────────────────────────────┤
│  1. Analyze context (config files, code patterns, history)  │
│  2. Identify assumptions Claude is making                   │
│  3. Classify by type and proposed confidence tier           │
│  4. Present for user selection                              │
└─────────────────────────────────────────────────────────────┘
                              │
                              ▼
┌─────────────────────────────────────────────────────────────┐
│                    PHASE 2: Adjust Tiers                    │
├─────────────────────────────────────────────────────────────┤
│  1. Show selected assumptions with proposed tiers           │
│  2. User promotes/demotes confidence levels                 │
│  3. Add any missing assumptions                             │
│  4. Save to ground file                                     │
└─────────────────────────────────────────────────────────────┘

Modes

Command Purpose Interactive
/common-ground Full surface & adjust flow Yes
/common-ground --list Read-only view of all assumptions No
/common-ground --check Quick "still valid?" validation Yes
/common-ground --graph Visualize reasoning structure Yes

Confidence Tiers

Assumptions are organized into three confidence tiers that govern how Claude treats them:

ESTABLISHED (High Confidence)

Treat as premises. Claude will not second-guess these unless you explicitly contradict them.

Example:

text
ESTABLISHED: TypeScript strict mode enabled [inferred from tsconfig.json]
ESTABLISHED: Jest for unit testing [stated by user]

Behavior: Claude proceeds confidently, references these as ground truth.

WORKING (Medium Confidence)

Use as defaults, but flag if contradicted. Claude will mention when deviating.

Example:

text
WORKING: Prefer functional components over classes [inferred from codebase patterns]
WORKING: Use Tailwind for styling [assumed from dependencies]

Behavior: Claude uses these but will note "I'm assuming X based on..." when relevant.

OPEN (Low Confidence)

Ask before assuming. Claude will explicitly seek clarification.

Example:

text
OPEN: Server-side rendering required? [uncertain - needs clarification]
OPEN: Target browser support? [uncertain - no browserlist found]

Behavior: Claude asks a clarifying question before making decisions that depend on these.

Tier Transitions

text
promote                    promote
OPEN ─────────────► WORKING ─────────────► ESTABLISHED
     ◄─────────────         ◄─────────────
         demote                     demote
  • Promote when you gain confidence (user confirms, evidence found)
  • Demote when circumstances change (new requirements, contradictions)

Assumption Types

Every assumption has a type that records its origin. Types are immutable—they serve as an audit trail.

Type Meaning Example
[stated] User explicitly said this "We use PostgreSQL"
[inferred] Derived from code/config Found in package.json
[assumed] Best practice default "Use semantic versioning"
[uncertain] Needs clarification No clear evidence either way

Why types matter:

  • [stated] assumptions have user authority behind them
  • [inferred] assumptions can be verified by checking the source
  • [assumed] assumptions are reasonable defaults that may not fit your project
  • [uncertain] assumptions should be clarified before relying on them

Grounding File

Assumptions are stored in a grounding file at:

text
~/.claude/common-ground/{project-id}/COMMON-GROUND.md

Project Identification

Projects are identified by:

  1. Git remote URL (e.g., github.com/user/repo) — preferred
  2. Absolute path — fallback for non-git projects

File Format

markdown
# Common Ground: {project_name}

> Last updated: {timestamp}
> Project ID: {project_id}

---

## ESTABLISHED

### TypeScript Configuration
TypeScript strict mode with no implicit any [inferred]
- Source: tsconfig.json
- Confidence: 0.95
- Added: 2026-01-15

### Testing Framework
Jest for unit testing, Playwright for E2E [stated]
- Source: User confirmation
- Confidence: 1.0
- Added: 2026-01-15

---

## WORKING

### Component Patterns
Prefer functional components with hooks over class components [inferred]
- Source: Codebase analysis (95% functional)
- Confidence: 0.75
- Added: 2026-01-15

---

## OPEN

### Deployment Target
Server-side rendering vs static export [uncertain]
- Source: No clear indication in config
- Confidence: 0.3
- Added: 2026-01-15
- Note: Clarify before implementing routing

---

## History

| Date | Change | Assumption | From | To |
|------|--------|------------|------|-----|
| 2026-01-15 | promoted | Component Patterns | OPEN | WORKING |
| 2026-01-15 | added | TypeScript Configuration | — | ESTABLISHED |

Machine-Readable Index

A companion ground.index.json provides structured access:

json
{
  "project_id": "github.com/user/repo",
  "last_updated": "2026-01-15T10:30:00Z",
  "assumptions": [
    {
      "id": "ts-strict",
      "title": "TypeScript Configuration",
      "content": "TypeScript strict mode with no implicit any",
      "type": "inferred",
      "tier": "ESTABLISHED",
      "confidence": 0.95,
      "source": "tsconfig.json",
      "added": "2026-01-15T10:30:00Z"
    }
  ]
}

Reasoning Graph (`--graph`)

The --graph flag generates a mermaid diagram showing not just what Claude assumes, but how it arrived at those assumptions.

Purpose

Make the shape of reasoning visible:

  • Decision points where Claude chose between alternatives
  • Paths taken vs paths not taken
  • Where uncertainty lives in the reasoning chain

Example Graph

mermaid
flowchart TD
    ROOT[Task: Build auth system] --> D1{MVP or Production?}
    D1 -->|"0.8 [inferred]"| P1[Production-grade]
    D1 -->|"0.2 [alternative]"| A1[MVP/Prototype]

    P1 --> D2{Stateless required?}
    D2 -->|"0.7 [assumed]"| P2[JWT + refresh tokens]
    D2 -->|"0.3 [uncertain]"| U1[Redis sessions]

    P2 --> I1[Access token: 15min]
    P2 --> I2[Refresh token: 7 days]

    style D1 fill:#ffcc00,stroke:#333
    style D2 fill:#ffcc00,stroke:#333
    style P1 fill:#90EE90,stroke:#333
    style P2 fill:#90EE90,stroke:#333
    style A1 fill:#cccccc,stroke:#333
    style U1 fill:#FFB366,stroke:#333
    style I1 fill:#87CEEB,stroke:#333
    style I2 fill:#87CEEB,stroke:#333

Node Colors

Color Meaning
Yellow Decision point (fork in reasoning)
Green Chosen path (high confidence)
Gray Alternative (considered but not taken)
Orange Uncertain (needs clarification)
Blue Implementation detail (concrete action)

Conversational Updates

Since the graph is text-based, you can manipulate it through conversation:

You Say Claude Does
"Expand the MVP branch" Elaborates that subtree
"Why not Redis sessions?" Explains reasoning, may adjust weights
"I actually want Redis sessions" Updates graph with that branch chosen
"What's downstream of token rotation?" Expands that subtree

Use Cases

Starting a New Feature

Before implementing, surface assumptions:

bash
/common-ground

Claude identifies what it's assuming about:

  • Architecture patterns to follow
  • Error handling conventions
  • Testing requirements
  • Code style preferences

Onboarding to a Codebase

When working with an unfamiliar project:

bash
/common-ground --graph

See Claude's mental model of the project structure and make corrections early.

Before Major Refactoring

Validate assumptions haven't drifted:

bash
/common-ground --check

Quick validation that existing assumptions still hold before making sweeping changes.

Debugging Misaligned Output

When Claude produces something unexpected:

bash
/common-ground --list

Check what assumptions led to that output. Often reveals a misaligned premise.


Best Practices

1. Run Early, Run Often

Surface assumptions at the start of significant work, not after problems appear.

2. Promote Deliberately

Don't rush assumptions to ESTABLISHED. WORKING tier is appropriate for most inferences.

3. Keep OPEN Items Visible

Uncertain assumptions in OPEN tier are valuable. They remind Claude to ask rather than guess.

4. Review After Major Changes

After adding dependencies, changing architecture, or updating requirements, run /common-ground --check.

5. Use the Graph for Complex Tasks

For multi-step implementations, --graph reveals the decision tree and helps catch flawed reasoning early.


Troubleshooting

"No ground file found"

Normal for first run. Execute /common-ground to create one.

Assumptions seem stale

Run /common-ground --check for quick validation, or full /common-ground to resurface.

Graph is too complex

Focus on specific subtrees: "Expand only the authentication branch"

Wrong project detected

Check git remote configuration. For non-git projects, the absolute path is used.



File Locations

File Purpose
~/.claude/common-ground/{project}/COMMON-GROUND.md Human-readable assumptions
~/.claude/common-ground/{project}/ground.index.json Machine-readable index
commands/common-ground.md Command implementation
references/common-ground/ Deep-dive reference files

SUPPORTED AGENTS (`docs/SUPPORTED_AGENTS.md`)

Supported Agents

This plugin follows the Agent Skills specification, an open standard for packaging reusable AI agent capabilities. Skills are portable across any agent that implements the spec.

Compatible Agents

Agent Developer Type Skills Documentation
Claude Code Anthropic CLI Native support
GitHub Copilot Microsoft/GitHub VS Code, CLI Agent Skills in VS Code
Codex CLI OpenAI CLI Codex Skills
Cursor Cursor IDE Cursor Skills
Gemini CLI Google CLI Gemini Skills
Goose Block CLI, Desktop Goose Docs
Letta Letta AI CLI Letta Skills
Roo Code Roo Code Inc VS Code Roo Skills
Amp Sourcegraph CLI, VS Code Amp Skills
OpenCode OpenCode AI CLI OpenCode Skills
AdaL CLI SylphAI CLI AdaL Skills

Submit a New Agent

To add an agent to this list, open a pull request with the following:

  1. Verify compatibility — The agent must implement the Agent Skills specification
  2. Add to Compatible Agents table — Include agent name (with link), developer, type, and skills documentation link
  3. Add to Skills Directory Locations table — Document where the agent looks for project and user skills
  4. Provide evidence — Link to the agent's skills documentation or announcement

PR Template

markdown
## Add [Agent Name] to Supported Agents

- **Agent:** [Name](https://link-to-agent)
- **Developer:** Company/Organization
- **Type:** CLI / IDE / VS Code / Desktop
- **Skills Docs:** [Documentation](https://link-to-docs)
- **Project Skills Directory:** `.agent/skills/`
- **User Skills Directory:** `~/.config/agent/skills/`

Evidence of Agent Skills support: [link to docs/announcement]

Specification


WORKFLOW COMMANDS (`docs/WORKFLOW_COMMANDS.md`)

Workflow Commands Reference

This document provides comprehensive documentation for the project workflow command system. These commands manage epics through a structured lifecycle from discovery through retrospectives, integrating with Jira for issue tracking and Confluence for documentation publishing.


Table of Contents


Introduction

The workflow command system provides a structured approach to managing software development epics from initial research through completion and retrospective analysis. Each command in the system produces outputs that feed into subsequent commands, creating a traceable chain of documentation and decisions.

Key Benefits:

  • Consistent documentation across all epics
  • Traceable decisions from discovery through implementation
  • Automated status updates in Jira
  • Centralized knowledge in Confluence
  • Built-in quality gates through mandatory checkpoints

Intake Phase (Pre-Workflow)

Status: Planned — these commands are not yet implemented.

The Intake phase runs once per project to document the existing codebase. See Intake Phase Overview for details.

Command Purpose Status
intake:document-codebase Generate codebase documentation Planned
intake:capture-behavior Capture existing system behavior Planned
intake:create-system-description Create system description Planned

Full Lifecycle Overview

The complete workflow spans four distinct phases, each with specialized commands that produce artifacts consumed by downstream phases.

mermaid
flowchart TB
    subgraph Discovery["Discovery Phase"]
        direction TB
        CED["/project:discovery:create-epic-discovery"]
        MR["Manual Research<br/>Interviews, Spikes, Analysis"]
        SD["/project:discovery:synthesize-discovery"]
        AS["/project:discovery:approve-synthesis"]

        CED -->|"Discovery Document"| MR
        MR -->|"Research Findings"| SD
        SD -->|"Synthesis Document"| AS
    end

    subgraph Planning["Planning Phase"]
        direction TB
        CEP["/project:planning:create-epic-plan"]
        CIP["/project:planning:create-implementation-plan"]

        CEP -->|"Overview Document"| CIP
    end

    subgraph Execution["Execution Phase"]
        direction TB
        ET["/project:execution:execute-ticket"]
        CT["/project:execution:complete-ticket"]

        ET -->|"Implementation Complete"| CT
        CT -->|"Next Ticket"| ET
    end

    subgraph Retrospectives["Retrospectives Phase"]
        direction TB
        CE["/project:retrospectives:complete-epic"]
    end

    Discovery -->|"Tickets Created"| Planning
    SD -->|"Generated Tickets"| CEP
    Planning -->|"Implementation Plan"| Execution
    CIP -->|"Updated Tickets"| ET
    Execution -->|"All Tickets Done"| Retrospectives
    CT -->|"Epic Complete"| CE

Document Flow Summary

Phase Input Command Output
Discovery Epic Key discovery:create Discovery Document
Discovery Discovery Doc + Research discovery:synthesize Synthesis Doc + Proposed Tickets
Discovery Synthesis Doc URL discovery:approve Jira Tickets
Planning Epic Key planning:epic-plan Overview Document
Planning Overview Doc URL planning:impl-plan Implementation Plan + Updated Tickets
Execution Ticket Key execution:execute-ticket Implemented Code
Execution Ticket Key execution:complete-ticket Jira Transition + Plan Update
Retrospectives Epic Key retrospectives:complete-epic Completion Report

Discovery Phase

The discovery phase focuses on research, customer discovery, and validation before implementation begins. Use this phase for epics with significant unknowns or when customer validation is required.

mermaid
flowchart LR
    subgraph Inputs
        EK["Epic Key<br/>(from Jira)"]
        JT["Linked Tickets"]
    end

    subgraph CreateDiscovery["create-epic-discovery"]
        direction TB
        FE["Fetch Epic"]
        EQ["Extract Questions"]
        GD["Generate Document"]
        PD["Publish to Confluence"]

        FE --> EQ --> GD --> PD
    end

    subgraph ManualWork["Manual Research"]
        direction TB
        UI["User Interviews"]
        TS["Technical Spikes"]
        DA["Data Analysis"]
        CR["Competitive Research"]
    end

    subgraph Synthesize["synthesize-discovery"]
        direction TB
        FS["Fetch Sources"]
        CA["Cross-Analyze"]
        GR["Generate Recommendations"]
        PT["Propose Tickets"]
        PS["Publish Synthesis"]

        FS --> CA --> GR --> PT --> PS
    end

    subgraph Approve["approve-synthesis"]
        direction TB
        RS["Read Synthesis"]
        RD["Resolve Decisions"]
        MT["Modify Tickets"]
        CT["Create in Jira"]

        RS --> RD --> MT --> CT
    end

    subgraph Outputs
        DD["Discovery Document"]
        SD["Synthesis Document"]
        NT["New Tickets<br/>(in target epics)"]
    end

    EK --> CreateDiscovery
    JT --> CreateDiscovery
    CreateDiscovery --> DD
    DD --> ManualWork
    ManualWork --> Synthesize
    Synthesize --> SD
    SD --> Approve
    Approve --> NT

discovery:create (create-epic-discovery)

Command: /project:discovery:create-epic-discovery <epic-key>

Purpose: Creates a structured discovery document for research and customer discovery epics, extracting questions and unknowns from linked tickets.

Process:

  1. Fetches epic and all linked tickets from Jira
  2. Extracts explicit and implicit questions from requirements
  3. Categorizes questions by theme (Customer, Technical, Business, Scope)
  4. Generates hypothesis map with validation methods
  5. Creates research plan with activities and owners
  6. Publishes to Confluence

Output Sections:

  • Discovery Overview
  • Hypothesis Map
  • Research Questions Matrix (by category)
  • Dependencies and Blockers
  • Research Plan
  • Decision Framework
  • Risk Register
  • Target Implementation Epics
  • Linked Tickets

Publish Location: /Epics/Discovery/{Epic_Key}/


discovery:synthesize (synthesize-discovery)

Command: /project:discovery:synthesize-discovery [source-url...] [--target=<epic-key>]

Purpose: Synthesizes findings from discovery documents and research into a synthesis document with proposed tickets.

Arguments:

  • `` - One or more Confluence document URLs (discovery docs, research findings, spike reports)
  • --target=<epic-key> - Optional target epic for generated tickets (auto-detected if not specified)

Process:

  1. Fetches all source documents
  2. Consolidates and cross-analyzes findings
  3. Validates/invalidates hypotheses
  4. Generates feature recommendations
  5. Identifies blocking decisions that must be resolved
  6. Creates proposed tickets (not yet in Jira)
  7. Publishes synthesis document with machine-readable ticket data

Output Sections:

  • Synthesis Overview
  • Executive Summary
  • Consolidated Findings (Validated/Invalidated Hypotheses, Answered Questions)
  • Remaining Unknowns
  • Recommendations by Epic
  • Blocking Decisions (decisions that block ticket creation)
  • Decision Log
  • Source Cross-Reference
  • Proposed Tickets Data (JSON for discovery:approve)

Publish Location: /Epics/Discovery/{Discovery_Epic_Key}/Synthesis/

Next Step: Run discovery:approve <synthesis-url> to resolve decisions and create tickets.


discovery:approve (approve-synthesis)

Command: /project:discovery:approve-synthesis <synthesis-url>

Purpose: Reviews synthesis document, resolves blocking decisions, and creates approved tickets in Jira.

Arguments:

  • <synthesis-url> - URL of the synthesis document from discovery:synthesize

Process:

  1. Fetches synthesis document and extracts proposed tickets JSON
  2. Checks for unresolved blocking decisions
  3. Presents decisions for resolution (blocks until all resolved)
  4. Allows add/remove/modify of proposed tickets
  5. Creates approved tickets in Jira
  6. Updates synthesis document status to "Approved"

Blocking Decisions:

  • Decisions are identified during synthesis as issues that affect ticket scope
  • All blocking decisions MUST be resolved before tickets can be created
  • User selects resolution option (A, B, C, etc.) for each decision
  • Resolutions are recorded in the synthesis document

Ticket Operations:

  • Add: Create new tickets not in the original proposal
  • Remove: Exclude tickets from Jira creation
  • Modify: Update title, description, story points, priority

Output:

  • Created Jira tickets linked to target epic(s)
  • Updated synthesis document with approval status and ticket links

Planning Phase

The planning phase creates comprehensive documentation for implementation. This is where codebase analysis, risk assessment, and detailed implementation planning occur.

mermaid
flowchart LR
    subgraph Inputs
        EK["Epic Key"]
        CB["Codebase"]
        JT["Jira Tickets"]
    end

    subgraph CreatePlan["create-epic-plan"]
        direction TB
        FE["Fetch Epic & Tickets"]
        EC["Explore Codebase<br/>(Parallel Agents)"]
        RA["Risk Assessment"]
        GD["Generate Overview"]
        PD["Publish Document"]

        FE --> EC --> RA --> GD --> PD
    end

    subgraph CreateImpl["create-implementation-plan"]
        direction TB
        RO["Read Overview Doc"]
        AT["Analyze Tickets"]
        RT["Refine Tickets<br/>(Split, Points, Deps)"]
        GP["Generate Plan<br/>(Waves, Order)"]
        UT["Update Tickets<br/>(Full Details)"]
        PP["Publish Plan"]

        RO --> AT --> RT --> GP --> UT --> PP
    end

    subgraph Outputs
        OD["Overview Document"]
        IP["Implementation Plan"]
        UT2["Updated Jira Tickets<br/>(Self-Contained)"]
    end

    EK --> CreatePlan
    CB --> CreatePlan
    JT --> CreatePlan
    CreatePlan --> OD
    OD --> CreateImpl
    CreateImpl --> IP
    CreateImpl --> UT2

planning:epic-plan (create-epic-plan)

Command: /project:planning:create-epic-plan <epic-key>

Purpose: Creates a comprehensive planning document (Overview Document) by analyzing Jira tickets and exploring the codebase.

Process:

  1. Fetches epic and all linked tickets
  2. Launches parallel agents to explore codebase:
    • Affected modules discovery
    • API patterns analysis
    • Component patterns analysis
    • Test patterns discovery
    • Reference implementations search
  3. Documents unknowns and technical decisions
  4. Creates risk assessment for each change
  5. Publishes Overview Document

Output Sections:

  • Epic Overview (Purpose, User Value, Scope)
  • Goals and Success Metrics
  • Requirements Summary
  • Technical Change Overview (with risk scores)
  • Impact Analysis
  • Testing Strategy
  • User Behavior Testing (E2E scenarios)
  • Implementation Notes
  • Acceptance Criteria
  • Open Questions and Risks
  • Codebase Analysis (patterns, references, test locations)
  • Linked Tickets

Risk Assessment Dimensions:

Dimension Low (1) Medium (2) High (3)
Scope 3 files or fewer 4-10 files 10+ files
Dependencies All exist Some foundation needed Significant groundwork
Blocking Factor Independent Soft dependency Hard blocker
Stability Existing patterns Some unknowns Novel approach
UX Impact Backend only Secondary flows Core journey
Testing Complexity Simple assertions New mocks needed Complex E2E
Reversibility Easy rollback Moderate effort One-way door

Risk Levels:

  • 7-11: Low - Standard implementation
  • 12-16: Medium - Extra review, incremental delivery
  • 17-21: High - Spike/POC first, architectural review

Publish Location: /Epics/In Progress/{Epic_Key}/


planning:impl-plan (create-implementation-plan)

Command: /project:planning:create-implementation-plan <overview-doc-url>

Purpose: Generates a detailed implementation plan with parallel execution waves and updates all tickets with self-contained implementation details.

Process:

  1. Reads Overview Document for context
  2. Fetches all Jira tickets
  3. Analyzes and refines tickets:
    • Creates new tickets for gaps
    • Splits large tickets (>8 points)
    • Adds story points
    • Links dependencies
  4. Generates topologically sorted execution order
  5. Creates parallel execution waves
  6. Updates each ticket with full implementation details
  7. Publishes Implementation Plan

Implementation Plan Sections:

  • Summary (metrics, waves, dependencies)
  • Completion Status (tracking table)
  • Execution Order (topologically sorted)
  • Parallel Execution Strategy (by wave)
  • Agent Recommendations
  • Document Links

Ticket Update Template:
Each ticket is updated to be self-contained with:

  • Overview and Implementation Plan links
  • Summary
  • Implementation Steps (with code snippets)
  • Files to Modify (table)
  • Complete Test Code
  • Acceptance Criteria

Publish Location: /Epics/In Progress/{Epic_Key}/ (as subpage of Overview)


Execution Phase

The execution phase handles the actual implementation of tickets and tracking of completion status.

mermaid
flowchart LR
    subgraph Inputs
        TK["Ticket Key"]
        IP["Implementation Plan"]
        CB["Codebase"]
    end

    subgraph Execute["execute-ticket"]
        direction TB
        FT["Fetch Ticket"]
        RP["Read Plan<br/>(Wave Context)"]
        PC["Parallel Check"]
        FT2["Write Failing Test<br/>(RED)"]
        IM["Implement<br/>(GREEN)"]
        RF["Refactor"]
        PS["Present Summary"]

        FT --> RP --> PC --> FT2 --> IM --> RF --> PS
    end

    subgraph Complete["complete-ticket"]
        direction TB
        GT["Gather Context"]
        TJ["Transition Jira<br/>(In Review)"]
        UP["Update Plan<br/>(Status Tables)"]
        CF["Confirm Done"]

        GT --> TJ --> UP --> CF
    end

    subgraph Outputs
        CD["Code Changes"]
        JS["Jira Status Update"]
        PU["Plan Updated"]
    end

    TK --> Execute
    IP --> Execute
    CB --> Execute
    Execute --> CD
    Execute -->|"Ready for Review"| Complete
    Complete --> JS
    Complete --> PU
    PU -->|"Next Ticket"| Execute

execution:execute-ticket

Command: /project:execution:execute-ticket <ticket-key>

Purpose: Implements a Jira ticket following its self-contained implementation details.

Process:

  1. Fetches ticket from Jira
  2. Verifies ticket has implementation details (stops if missing)
  3. Reads implementation plan for wave/dependency context
  4. Checks for parallel execution opportunities
  5. Updates Jira status to "In Progress"
  6. Writes failing tests for the acceptance criteria and records the RED result
  7. Executes implementation steps until the tests pass, then refactors with tests green
  8. Verifies acceptance criteria
  9. Presents completion summary with commit message

Parallel Execution:
When implementation plan defines parallel waves:

  • Identifies current wave (first with incomplete tickets)
  • Offers to spawn specialized agents for parallel execution
  • Coordinates completion before advancing waves

Agent Types for Parallel Work:

  • frontend-developer - UI/component work
  • backend-developer - API/backend services
  • database-optimizer - Database changes
  • fullstack-developer - Full-stack features
  • test-automator - Test coverage

Deviation Handling:
If implementation plan must be deviated from:

  1. Stop and report the deviation
  2. Present options (proceed, modify, pause)
  3. Wait for user approval
  4. Document approved deviations

Output:

  • Ticket Completion Summary
  • Suggested Commit Message
  • Changes Made
  • Files Modified/Created
  • Tests Added
  • Deviations from Plan
  • Follow-up Tickets Created

execution:complete-ticket

Command: /project:execution:complete-ticket [ticket-key]

Purpose: Transitions Jira ticket to "In Review" and updates the implementation plan with completion details.

Arguments:

  • [ticket-key] - Optional if context available from recent execute-ticket

Process:

  1. Identifies ticket and gathers context
  2. Extracts completion details from conversation
  3. Confirms before finalizing
  4. Transitions Jira to "In Review"
  5. Updates Implementation Plan:
    • Completion Status table
    • Execution Order table
    • Parallel Execution wave table
    • Adds Completion Details section

Plan Updates:

markdown
## {Ticket_Key} Completion Details

**Completed:** [date]

### Changes Made
* [extracted from summary]

### Tests Added
* [extracted from summary]

### Deviations
[Any deviations, or "None"]

### Follow-up Tickets
[Any follow-up tickets, or "None"]

Retrospectives Phase

The retrospectives phase generates completion reports for knowledge capture and process improvement.

mermaid
flowchart LR
    subgraph Inputs
        EK["Epic Key"]
        OD["Overview Document"]
        IP["Implementation Plan"]
        JT["Completed Tickets"]
    end

    subgraph CompleteEpic["retrospectives:complete-epic"]
        direction TB
        VT["Verify All Tickets Done"]
        GR["Generate Report<br/>(12 Sections)"]
        MD["Move Documentation"]
        CE["Close Epic in Jira"]

        VT --> GR --> MD --> CE
    end

    subgraph Outputs
        CR["Completion Report"]
    end

    EK --> CompleteEpic
    OD --> CompleteEpic
    IP --> CompleteEpic
    JT --> CompleteEpic
    CompleteEpic --> CR

retrospectives:complete-epic

Command: /project:retrospectives:complete-epic <epic-key>

Purpose: Generates a comprehensive completion report, closes the epic in Jira, and moves documentation to the complete folder.

Process:

  1. Verifies all tickets are complete (stops if not)
  2. Reviews implementation quality (PRs merged, test coverage)
  3. Generates 12-section completion report
  4. Updates Overview Document with completion report
  5. Moves documentation from /In Progress/ to /Complete/Sprint [N]/
  6. Closes epic in Jira
  7. Identifies reusable patterns for knowledge transfer

Completion Report Sections:

  1. Epic Summary (duration, points, contributors)
  2. Objectives and Outcomes
  3. Ticket Breakdown
  4. Technical Deliverables (files, LOC, coverage)
  5. Architecture and Design Decisions
  6. Quality Metrics (PRs, bugs, hooks)
  7. Technical Debt and Follow-up
  8. Testing and Quality Assurance
  9. Documentation Delivered
  10. Lessons Learned (What Went Well, Improvements, Process)
  11. Risk Assessment Review
  12. Recommendations for Future Epics

Publish Location:

  • From: /Epics/In Progress/{Epic_Key}/
  • To: /Epics/Complete/Sprint [N]/{Epic_Key}/

Note: Sprint-level retrospectives (complete-sprint) have been removed in favor of epic-level analysis with retrospectives:complete-epic.


Command Reference

Quick reference table for all workflow commands:

Command Arguments Description Output
discovery:create <epic-key> Creates discovery document for research epics Discovery Document (Confluence)
discovery:synthesize <doc-urls> [--target=<epic>] Synthesizes findings into proposed tickets Synthesis Doc + Proposed Tickets
discovery:approve <synthesis-url> Resolves decisions, creates tickets in Jira Jira Tickets
planning:epic-plan <epic-key> Creates overview document with codebase analysis Overview Document (Confluence)
planning:impl-plan <overview-doc-url> Creates execution plan with parallel waves Implementation Plan + Updated Tickets
execution:execute-ticket <ticket-key> Implements individual ticket Code Changes + Tests
execution:complete-ticket [ticket-key] Transitions Jira, updates plan Jira Status + Plan Update
retrospectives:complete-epic <epic-key> Generates completion report, closes epic Completion Report

Integration Points

Setup Required: See Atlassian MCP Setup Guide for Jira and Confluence configuration.

Jira Integration

The workflow commands integrate with Jira for:

Read Operations:

  • Fetch epic details and linked tickets
  • Query ticket status and dependencies
  • Read acceptance criteria and requirements

Write Operations:

  • Create new tickets (from synthesis)
  • Update ticket descriptions (implementation details)
  • Add story points and link dependencies
  • Transition ticket status (In Progress, In Review, Done)
  • Close epics with resolution

JQL Queries Used:

  • "Epic Link" = {Epic_Key} - Find all child tickets
  • Status-based queries for completion verification

Confluence Integration

All documentation is published to structured Confluence locations:

Document Type Confluence Location
Discovery Documents /Epics/Discovery/{Epic_Key}/
Synthesis Documents /Epics/Discovery/{Discovery_Epic_Key}/Synthesis/
Overview Documents /Epics/In Progress/{Epic_Key}/
Implementation Plans /Epics/In Progress/{Epic_Key}/ (subpage)
Completion Reports /Epics/Complete/Sprint [N]/{Epic_Key}/
Sprint Retrospectives /Retrospectives/Sprint [N]/

Document Lifecycle:

  1. Created in /In Progress/ during planning
  2. Updated throughout execution
  3. Moved to /Complete/Sprint [N]/ on epic completion
  4. Referenced in sprint retrospectives

Checkpoint System

Every command includes mandatory user approval gates to ensure human oversight at critical decision points.

Checkpoint Philosophy

Checkpoints serve to:

  • Prevent unintended changes to Jira or Confluence
  • Ensure alignment on approach before work begins
  • Provide opportunities to correct course
  • Maintain audit trail of decisions

Checkpoint Types

Confirmation Checkpoints:
Verify information before proceeding.

text
Please confirm before I proceed:

Epic Key: CC-123
Epic Title: User Authentication
Linked Tickets: 8 tickets found
Publish Location: /Epics/In Progress/CC-123/

Is this correct? (Yes / No / Correct)

Approval Checkpoints:
Require explicit approval before making changes.

text
Ready to publish this planning document to Confluence? (Yes / No / Modify)

Decision Checkpoints:
Present options when issues are encountered.

text
Epic CC-123 has incomplete tickets:

In Progress:
- CC-124: User login form - Status: In Progress

Options:
A) Complete remaining tickets first
B) Move incomplete tickets to backlog and close epic
C) Extend epic deadline and keep open

What would you like to do? [A/B/C]

Checkpoints by Command

Command Checkpoints
discovery:create Epic confirmation, Document review before publish
discovery:synthesize Sources confirmation, Synthesis review before publish
discovery:approve Decision resolution, Ticket modifications, Ticket creation approval
planning:epic-plan Epic confirmation, Document review before publish
planning:impl-plan Document confirmation, Ticket changes, Plan preview, Overview updates
execution:execute-ticket Ticket selection, Deviation approval, Completion review
execution:complete-ticket Finalization confirmation
retrospectives:complete-epic Completion readiness, Documentation updates, Epic closure

Checkpoint Responses

Response Effect
Yes Proceed with the proposed action
No Stop and ask what changes are needed
Modify User provides feedback, regenerate and re-confirm
Correct User provides corrections, update and re-confirm

Critical Rule: Commands must never modify Jira or Confluence without explicit user approval at the appropriate checkpoint.


Utility Commands

Common Ground

Available at any phase. Surfaces and validates Claude's hidden assumptions about the project.

See Common Ground Guide for full documentation.


Workflow Variations

Standard Implementation Flow

For epics with clear requirements:

text
planning:epic-plan -> planning:impl-plan -> [execution:execute-ticket + execution:complete-ticket] x N -> retrospectives:complete-epic

Discovery-First Flow

For epics requiring research:

text
discovery:create -> [research] -> discovery:synthesize -> discovery:approve -> planning:epic-plan -> planning:impl-plan -> [execution:execute-ticket + execution:complete-ticket] x N -> retrospectives:complete-epic

Best Practices

Document Linking

Always capture and provide document URLs when outputting command results. Downstream commands depend on these URLs:

  • discovery:create outputs {Discovery_Document} for discovery:synthesize
  • discovery:synthesize outputs {Synthesis_Document} for discovery:approve
  • planning:epic-plan outputs {Overview_Document} for planning:impl-plan
  • planning:impl-plan outputs {Implementation_Plan} referenced in tickets

Ticket Self-Containment

After planning:impl-plan, each ticket should be fully self-contained with:

  • All implementation steps
  • Complete test code (copy-paste ready)
  • File paths and modifications
  • Acceptance criteria

This enables execute-ticket to work without fetching external documents.

Parallel Execution

Leverage parallel execution waves for efficiency:

  • Group independent tickets in the same wave
  • Use specialized agents for different work types
  • Coordinate completion before advancing to dependent waves

Knowledge Capture

Use retrospective phases to capture learnings:

  • Document patterns to replicate
  • Record anti-patterns to avoid
  • Generate actionable improvements
  • Update team documentation with new standards

Local Skill Development (`docs/local_skill_development.md`)

Local Skill Development Workflow

How to develop and test Claude Code marketplace plugins (skills) without releasing new versions.

Quick Start

This repo includes Makefile targets that automate the symlink workflow:

bash
make dev-link    # Link your working copy to the plugin cache
make dev-unlink  # Restore the released version

Restart Claude Code after running either command.


How Plugin Loading Works

Claude Code loads plugins from a cache directory, not from your source code. Understanding this is key to the development workflow.

Directory Purpose
~/.claude/plugins/marketplaces// Git clone managed by Claude Code (plugin source)
~/.claude/plugins/cache//<name>/<version>/ Installed snapshot (what the CLI actually loads)
Your working copy (e.g. ~/projects//) Where you develop (separate git clone)

When you install a plugin, Claude Code clones the repo into marketplaces/ and copies a clean snapshot into cache/. The CLI reads from cache/ at session start. Edits to your working copy or the marketplace clone have no effect until the cache is updated.


Symlink the cache directory to your working copy so edits are immediately available on CLI restart.

Step 1: Identify Your Paths

Find your plugin's cache path:

bash
cat ~/.claude/plugins/installed_plugins.json | grep installPath

This returns something like:

text
"installPath": "/home/<user>/.claude/plugins/cache/<plugin>/<name>/<version>"

Note the full path — you'll symlink this directory.

Step 2: Back Up the Cached Version

bash
mv ~/.claude/plugins/cache/<plugin>/<name>/<version> \
   ~/.claude/plugins/cache/<plugin>/<name>/<version>.bak

Point the cache path to your local development clone:

bash
ln -s /path/to/your/working/copy \
   ~/.claude/plugins/cache/<plugin>/<name>/<version>

Important: Symlink to the directory where you actually edit code, not the marketplace clone that Claude Code manages.

Step 4: Verify

bash
ls -la ~/.claude/plugins/cache/<plugin>/<name>/
# Should show: <version> -> /path/to/your/working/copy

Development Workflow

Once the symlink is in place:

  1. Edit skills, commands, or references in your working copy
  2. Restart Claude Code — exit the current session and start a new one. Plugins load at session start; changes are not hot-reloaded.
  3. Test your changes — invoke the skill or command as a user would
  4. Iterate — repeat steps 1-3

No commits, pushes, or version bumps needed during development.


Reverting to the Released Version

bash
# Remove the symlink
rm ~/.claude/plugins/cache/<plugin>/<name>/<version>

# Restore the backup
mv ~/.claude/plugins/cache/<plugin>/<name>/<version>.bak \
   ~/.claude/plugins/cache/<plugin>/<name>/<version>

Caveats

Claude Code periodically checks for plugin updates. An auto-update could:

  • Replace the symlink with a fresh cache copy
  • Write updated files into the symlinked directory (i.e. into your working copy)

If your symlink stops working after you didn't touch it, check whether an auto-update ran and re-create the symlink.

Working copy differs from a clean cache

The cache is normally a clean snapshot — no .git/, no IDE files, no uncommitted work. Your symlinked working copy includes all of that. This is generally harmless — the plugin loader reads markdown files and ignores unknown entries — but be aware:

  • New files that reference structures you haven't created yet may cause confusing behavior
  • .git/, .DS_Store, node_modules/, and similar directories are exposed but ignored

Restart is required

Claude Code loads plugins at session start. There is no hot-reload. After every change, exit and restart the CLI.


Testing a Specific Version or Branch

bash
cd /path/to/your/working/copy
git checkout <branch-or-tag>

# Restart Claude Code — the symlink still points here,
# so it will load whatever is checked out

To compare against the released version, temporarily revert the symlink (see above) and restart.


Quick Reference

bash
# Setup (one-time)
CACHE=~/.claude/plugins/cache/<plugin>/<name>/<version>
WORKDIR=/path/to/your/working/copy

mv "$CACHE" "${CACHE}.bak"
ln -s "$WORKDIR" "$CACHE"

# Develop (repeat)
# 1. Edit files in $WORKDIR
# 2. Restart Claude Code
# 3. Test

# Teardown (when done)
rm "$CACHE"
mv "${CACHE}.bak" "$CACHE"

V0.5.0 Narrative (`docs/v0.5.0-narrative.md`)

v0.5.0 Workflow Narrative

A walkthrough of the full project lifecycle from zero to shipped features.

Related documents:


Act 1: Project Onboarding (Intake Phase — Run Once)

You've just been brought onto a codebase. Maybe it's a legacy app, maybe it's a startup MVP that grew fast. Before any feature work happens, you need to understand what exists.

Step 1: `intake:document-codebase`

You run this first. The agent scans the entire codebase and identifies every function, class, module, and endpoint that lacks documentation. It prioritizes public APIs and external-facing interfaces first, then works inward to internal services and utilities. Before touching anything, it presents a scope summary — "I found 247 undocumented functions across 38 files. Here's the breakdown by module." You approve, and it generates docstrings/JSDoc/XML docs throughout the codebase. When it's done, you have a codebase where any developer (or agent) can read a function signature and understand what it does without tracing the implementation.

Inputs: directory (string, optional — defaults to project root)
Outputs: documentation-report (summary of functions, classes, modules documented)
YAML: commands/intake/document-codebase.yaml
Next: intake:capture-behavior

Step 2: `intake:capture-behavior`

Now that the code is documented, the agent scans for untested behavior. It identifies functions, endpoints, and components that have no test coverage. It builds a test plan — not for what the code should do, but for what it currently does. These are characterization tests. The agent writes tests that assert current behavior: "When you call calculateTotal with these inputs, it returns this value." It runs the tests against the live code to verify they pass. The point isn't to validate correctness — it's to create a safety net so you'll know immediately if future changes break existing behavior.

Inputs: directory (string, optional — defaults to project root)
Outputs: characterization-tests (test files asserting current behavior), coverage-report (summary of behavior captured)
YAML: commands/intake/capture-behavior.yaml
Next: intake:create-system-description

Step 3: `intake:create-system-description`

This is the capstone of onboarding. The agent launches parallel analysis — one thread maps the architecture (services, databases, queues), another catalogs the API surface area, another traces security patterns (auth, encryption, access controls), and another maps external dependencies. The output is a SOC2-style living document at docs/system-description.md. It reads like a system overview you'd hand to an auditor or a new senior engineer: what the system does, how data flows through it, what's exposed externally, how it's deployed, what third-party services it depends on. This document becomes the shared context for everything that follows.

Inputs: directory (string, optional — defaults to project root)
Outputs: system-description (file at docs/system-description.md — SOC2-style living document)
YAML: commands/intake/create-system-description.yaml
Next: Feature definition with feature-forge

After intake, you have: documented code, behavioral tests, and a system description. This is a one-time cost. You don't run intake again.


Interlude: Common Ground (On Demand)

At any point — now, or later during planning, or mid-execution — you can run /common-ground. It surfaces assumptions the agent is making about your project: "I assume you're using PostgreSQL for the primary datastore." "I assume the API uses JWT authentication." You confirm, correct, or flag unknowns. This runs whenever you feel assumptions are building up. There's no prescribed moment; you use judgment.

Inputs: --list (flag, read-only view), --check (flag, quick validation), --graph (flag, mermaid diagram)
Outputs: ground-file (COMMON-GROUND.md with assumptions by confidence tier), ground-index (ground.index.json for programmatic access)
YAML: commands/common-ground.yaml
Next: On demand — no prescribed next step


Act 2: Product Discovery (Human-Driven, Parallel to Intake)

While intake is happening on the technical side, the product side is doing its own work. This part is primarily human — the agent assists but doesn't drive.

Identify Value Propositions

A product person, founder, or stakeholder defines the value propositions. For example, a SaaS product might have:

  • VP1: Save time for primary users
  • VP2: Monetize through a secondary audience
  • VP3: Expand to adjacent market segments
  • VP4: Drive growth through network effects

Each VP has a customer segment, a value statement, and a feature set. This work happens in markdown files, Obsidian, Notion, whiteboards, interviews — whatever the team uses. The agent doesn't own this phase, but it can help structure notes.

Identify Feature Set

For each value proposition, the team identifies concrete features: User Dashboard, Notification System, Billing Integration, Admin Panel. These get written up as feature descriptions — brief enough to understand the intent, detailed enough to know the scope.


Act 3: Feature Definition (Per Feature)

Feature Forge (Skill, not a slash command)

For each identified feature, you invoke feature-forge. It reads the system description first — so it already knows your architecture, your API patterns, your database schema, your auth model. It doesn't ask you questions it can answer from the system description.

Then it runs a structured interview: PM perspective ("Who uses this? What's the core value?") and Dev perspective ("What existing components does this touch? What's the data model?"). It asks one question at a time, using multiple-choice where possible to reduce cognitive load.

Throughout the interview, every question about proposed functionality includes a standing option: "Needs additional discovery." If you don't have the data to answer a question — maybe you need user interviews, competitive analysis, or a technical spike — you select this option. Feature-forge records it, skips the question, and moves on. You're never blocked by unknowns during the interview.

The output is specs/{feature-name}.spec.md — a specification with:

  • Functional requirements (optionally in EARS format for complex features, simpler format for straightforward ones)
  • Non-functional requirements
  • Acceptance criteria (Given/When/Then)
  • Error handling table
  • High-level implementation TODOs (intentionally not detailed — that's the planning phase's job)
  • A workflow integration section noting the target epic and pointing to /planning:impl-plan for detailed steps
  • If any questions were flagged: a Discovery Recommendation section listing the specific unknowns

If unknowns were flagged, feature-forge presents a choice: run discovery now (recommended), skip to planning with unknowns flagged as risks, or handle research separately and run discovery:create later. If nothing was flagged, no recommendation appears — you go straight to planning or move on to the next feature.

You repeat this for every feature in the release.


Act 4: Discovery (Optional — When Research Is Needed)

Not every feature needs this. If the feature-forge spec is sufficient — no unknowns were flagged during the interview — you skip straight to Planning. But some features have open questions that need human research: user interviews, competitive analysis, technical spikes, design exploration. You'll know because feature-forge told you — every question you answered with "Needs additional discovery" is now listed in the spec's Discovery Recommendation section.

Step 4: `discovery:create`

You give it a topic — not a Jira epic key, just a topic. "User onboarding flow" or "Payment integration options." You point it at whatever sources you have: the feature-forge spec, meeting notes, domain research markdown files, PDFs, URLs. It creates a structured discovery workspace with research questions, hypotheses, unknowns, domain context, and stakeholder inputs. The workspace lives locally (or in your configured doc system).

Inputs: topic (string), sources (file[], optional — markdown, PDFs, URLs, meeting notes, feature-forge specs)
Outputs: discovery workspace (directory at docs/discovery/{topic}/)
YAML: commands/project/discovery/create.yaml
Next: Human research phase, then discovery:synthesize

Human Research Phase

This is the gap where humans do the work. Conduct user interviews. Run a design sprint. Build a proof of concept. Do competitive analysis. Fill out the business model canvas. The discovery workspace gives structure to what you're investigating, but the research itself is human labor.

Step 5: `discovery:synthesize`

After research is done, you point the agent at all your artifacts — the discovery workspace, interview transcripts, research notes, spike results, meeting notes. It consolidates everything into actionable recommendations. The key output: proposed epics AND tickets. Not just tickets — full epic structures aligned with value propositions. "Based on the research, here are 3 epics with 14 total tickets across them."

Inputs: discovery workspace refs, local docs, research artifacts (file[])
Outputs: synthesis document (consolidated findings + proposed epic/ticket structure)
YAML: commands/project/discovery/synthesize.yaml
Next: discovery:approve

Step 6: `discovery:approve`

You review the synthesis. The agent presents any blocking decisions that need resolving ("Should we use Stripe or build custom payment processing?"). You resolve them.

Then it checks whether the proposed epics exist in your ticketing system. If they don't — and this is the fix for issue #103 — it offers options: auto-create the epics, map to existing ones, skip, or cancel. You choose. It creates the epics first, then creates tickets linked to those epics. All of this works against whatever backend you configured — Jira, GitHub Issues, or local markdown files.

Inputs: synthesis document ref, decisions (optional — pre-resolved blocking decisions)
Outputs: created epics + tickets (in configured ticketing backend)
YAML: commands/project/discovery/approve.yaml
Next: planning:epic-plan

After discovery, you have: epics and tickets in your ticketing system, grounded in research and aligned with value propositions.


Act 5: Planning

Step 7: `planning:epic-plan`

You point it at an epic. The agent reads the feature-forge spec (if one exists) so it doesn't re-derive requirements. It fetches all linked tickets, then launches parallel agents to explore the codebase — one finds affected files, another discovers API patterns, another maps component patterns, another locates test conventions, another finds reference implementations.

The output is a stakeholder-readable overview document: purpose, goals, requirements summary, technical change overview with a risk assessment (7-dimension scoring), impact analysis, testing strategy, acceptance criteria. This is the document you share with your tech lead, your PM, your architect. It's meant to be read by humans making decisions, not by agents executing code.

Inputs: epic key (string), feature spec (auto-detected from specs/{feature_name}.spec.md)
Outputs: overview document (stakeholder-readable plan with requirements, risk assessment, testing strategy)
YAML: commands/project/planning/epic-plan.yaml
Next: planning:impl-plan

Step 8: `planning:impl-plan`

This is where the overview becomes executable. The agent takes the overview document and turns it into a coordination plan: topologically sorted execution order, parallel execution waves (which tickets can be worked simultaneously), and — the enhancement — skill-aware ticket descriptions.

For each ticket, it reads what skills are available in the project and crafts the ticket description to invoke the right one. A React component ticket gets a description that references react-expert. A test suite ticket references test-master. A database migration ticket references database-optimizer. Each ticket becomes self-contained: implementation steps with file paths and code snippets, files to modify, complete test code, acceptance criteria checklist.

Inputs: overview document ref (from planning:epic-plan)
Outputs: implementation plan (execution order + parallel waves), updated tickets (self-contained with skill-aware descriptions)
YAML: commands/project/planning/impl-plan.yaml
Next: execution:execute-ticket

After planning, you have: a stakeholder overview, a coordination plan, and self-contained tickets that any developer (or agent) can pick up and execute independently.


Act 6: Execution (Per Ticket, Repeated)

This is where code gets written. The split between execute and complete exists for a practical reason — implementations can be long, conversations may need compacting, and the completion phase was being dropped when bundled with execution.

Step 9: `execution:execute-ticket` (repeated per ticket)

You give it a ticket key. The agent fetches the ticket, reads the self-contained implementation details, and starts coding. It follows the implementation steps, writes the code changes, creates the tests, runs them, verifies acceptance criteria. If it encounters deviations from the plan, it flags them at a checkpoint. When done, it presents a completion summary: what changed, what tests were added, what was different from the plan.

Inputs: ticket key (string)
Outputs: completion summary (changes made, files modified, tests added, deviations from plan)
YAML: commands/project/execution/execute-ticket.yaml
Next: execution:complete-ticket

Step 10: `execution:complete-ticket` (repeated per ticket)

After execution, you run completion as a separate command. It transitions the ticket status (In Progress → In Review), updates the implementation plan's status tables (completion status, execution order, parallel wave tracking), and records the details of what was actually implemented.

Then the incremental system description update: if the changes affect APIs, external dependencies, security patterns, or data models, the agent proposes specific updates to docs/system-description.md. "This ticket added a new /api/v2/teams endpoint — I'll update the API Surface Area section." Checkpoint approval, then it applies the update. This keeps the system description accurate as the codebase evolves, without requiring a big-bang documentation effort.

Inputs: ticket key (string, optional if context available from prior execute-ticket)
Outputs: transitioned ticket (status → "In Review"), updated implementation plan, updated system description (if applicable)
YAML: commands/project/execution/complete-ticket.yaml
Next: Next ticket (execution:execute-ticket) or retrospectives:complete-epic when all tickets done

You repeat steps 9-10 for every ticket in the epic. Parallel waves mean multiple developers/agents can work tickets simultaneously.


Act 7: Retrospective

Step 11: `retrospectives:complete-epic`

All tickets are done. You run this on the epic. The agent verifies all tickets are complete (blocks if any aren't), then generates a comprehensive completion report: what was built, what deviated from the plan, what patterns emerged, what was learned, quality assessment. It moves documentation from the "in progress" location to the "complete" location in your doc system. It closes the epic in the ticketing system.

Finally, it does a full system description review — not just incremental updates, but a holistic check. Did the architecture change? Do the mermaid diagrams still reflect reality? Are there new external dependencies that weren't captured ticket-by-ticket? Checkpoint approval, then it updates the system description to reflect the post-epic state of the system.

Inputs: epic key (string)
Outputs: completion report (deliverables, quality metrics, lessons learned), closed epic, updated system description (holistic post-epic review)
YAML: commands/project/retrospectives/complete-epic.yaml
Next: Next feature cycle — feature-forge reads updated system description

The system description is now current. The next feature-forge invocation will read the updated system description, and the cycle begins again.


The Full DAG at a Glance

text
INTAKE (once)           PRODUCT DISCOVERY (human, parallel)
  |                       |
  system-description      value props -> features
  |                       |
  +--------------- feature-forge (per feature) ---------------+
  |                       |                                    |
  |                 discovery (optional, when research         |
  |                   needed, human + agent)                   |
  |                       |                                    |
  |                 approve -> epics + tickets                 |
  |                       |                                    |
  +--------------- planning (epic-plan + impl-plan) ----------+
                          |
                    execution (execute + complete x N)
                          |
                    retrospective (complete-epic)
                          |
                    system description updated
                          |
                    next feature -> feature-forge reads updated state

The cycle is self-reinforcing: each completed feature makes the system description more accurate, which makes the next feature-forge session more informed, which makes the next planning phase more precise.


V0.5.0 Plan (`docs/v0.5.0-plan.md`)

v0.5.0 Plan: Workflow Overhaul

Scope

Decouple workflow commands from Jira/Confluence, add per-project backend configuration, create a project intake phase, rework discovery for product-centric workflows, integrate feature-forge into the pipeline, and fix the epic creation gap.

What's in v0.5.0:

  • Backend adapter pattern — per-project config for ticketing (local/Jira/GitHub Issues) and documentation (local/Confluence/GitHub Wiki)
  • Namespace change — project:phase:action becomes phase:action
  • 11 commands (3 new intake, 7 reworked, 1 removed)
  • Discovery rework — topic-based, local-first, produces epics AND tickets (#103 fix)
  • Feature-forge integration — system description context, discovery recommendation, skill-aware tickets
  • Intake commands — document-codebase, capture-behavior, create-system-description
  • Directory restructure — commands/project/ flattened to commands/
  • YAML workflow definitions and DAG manifest (Phase 1 — completed)

What's deferred:

  • v0.6.0: Global-to-local config migration (Discussion #112), per-project skill activation, #50-55 (context persistence, state validation, error recovery, shared templates, testing infra)
  • v0.7.0+: Enhanced skill routing (#64-72, feasibility evaluation pending), common-ground improvements (#108-111), optimal common-ground invocation points within new workflow
  • #65/#66/#69/#68 moved to v0.7.0 (skill content work, dependency mapping)

Links:


Architecture Decisions

Backend Adapter Pattern

Every command gains a Phase 0 config resolution step that loads backend-specific reference files:

text
.claude/workflow-config.json (in consumer project)
    ├── ticketing: "local" | "jira" | "github-issues"
    └── documentation: "local" | "confluence" | "github-wiki"

Command Phase 0:
  1. Read .claude/workflow-config.json (default: local/local)
  2. Load references/ticketing-{backend}.md
  3. Load references/docs-{backend}.md
  4. Proceed with abstract operations

All commands replace hardcoded Jira/Confluence operations with abstract verbs ("create ticket", "publish document") and a routing table to backend-specific reference files.

Namespace Change

Drop the project: prefix. Use phase:action format:

Old New
project:discovery:create-epic-discovery discovery:create
project:discovery:synthesize-discovery discovery:synthesize
project:discovery:approve-synthesis discovery:approve
project:planning:create-epic-plan planning:epic-plan
project:planning:create-implementation-plan planning:impl-plan
project:execution:execute-ticket execution:execute-ticket
project:execution:complete-ticket execution:complete-ticket
project:retrospectives:complete-epic retrospectives:complete-epic
project:retrospectives:complete-sprint REMOVED
(new) intake:document-codebase
(new) intake:capture-behavior
(new) intake:create-system-description

Command Count: 11

  • 3 new (intake)
  • 1 removed (complete-sprint — retros at epic level only)
  • 7 existing (reworked)

Discovery Rework: Topic-Based, Not Jira-Epic-Based

Discovery starts from a topic (value proposition, feature area, research question), not a pre-existing Jira epic. It PRODUCES epics and tickets, fixing the epic creation gap (#103). Local-first input: markdown files, PDFs, URLs, meeting notes, feature-forge specs.

Feature-Forge Discovery Integration

During the structured interview, every AskUserQuestions prompt includes a standing option: "Needs additional discovery." Flagged unknowns are collected and surfaced as a discovery recommendation at interview end, with options to run discovery, skip to planning, or handle research separately.

Skill-Aware Ticket Generation

Both planning commands (planning:epic-plan and planning:impl-plan) read installed skills from the consumer project (.claude-plugin/plugin.json or local skill manifests) and use prompt engineering techniques to craft ticket descriptions that explicitly instruct agents to invoke the correct skill per implementation step. Example: a React component ticket embeds "Invoke react-expert for component implementation" in its description. This leverages the per-repo skill installation model — planning has full visibility into what skills are available and generates tickets that are skill-aware from the start.


Workflow DAG

Different people may own different phases. The workflow is a DAG, not a strict sequence.

text
/* Detailed source-code truncated for AI context efficiency. */

Key relationships:

  • Intake and Product Discovery run in parallel (independent)
  • Feature-forge specs features BEFORE discovery commands run
  • Discovery is optional — skip if feature spec is sufficient, use when unknowns need human research
  • Discovery creates epics (not consumes them) — this is the #103 fix
  • Common-ground runs on demand (future hooks per #111)

Implementation Chunks

Pre: YAML Workflow Definitions (COMPLETED)

Phase: 0 | Status: Done

YAML schema, per-command definition files, DAG manifest, and phase documentation created as part of the v0.5.0 roadmap consolidation spec.

Deliverables:

GitHub Issues: Part of roadmap consolidation spec


Chunk 1: Backend Adapter Foundation

Phase: 1 | Depends on: Nothing | GitHub Issues: #62 (core workflow generalization)

What Detail
Create 9 reference files at commands/references/ (final path)
Fix scripts/update-docs.py — exclude references/ from workflow count
Scope ~1,370 lines new + small script edit

Files to Create

File Purpose ~Lines
commands/references/workflow-config-schema.md JSON schema for .claude/workflow-config.json with examples for each backend combo 200
commands/references/config-resolution.md How commands resolve config: find file → validate → load backends → fallback to local 120
commands/references/ticketing-local.md Local markdown tickets: YAML frontmatter + body in docs/epics/{phase}/{epic}/tickets/ 150
commands/references/ticketing-jira.md Jira operations via Atlassian MCP; cross-refs atlassian-mcp skill 150
commands/references/ticketing-github-issues.md GitHub Issues via gh CLI; labels as status, milestones as epics 150
commands/references/docs-local.md Local markdown docs in structured docs/ folder mirroring Confluence paths 150
commands/references/docs-confluence.md Confluence operations via Atlassian MCP; cross-refs atlassian-mcp skill 150
commands/references/docs-github-wiki.md GitHub Wiki pages via gh CLI 100
commands/references/local-docs-structure.md Full local directory structure with Docusaurus setup guidance 200

Script Fix

File: scripts/update-docs.py (line 84-89)

count_workflows() uses rglob("*.md") which would count reference files. Fix to exclude references/ subdirectories:

python
def count_workflows(base_path: Path) -> int:
    """Count workflow command markdown files."""
    commands_dir = base_path / COMMANDS_DIR
    if not commands_dir.exists():
        return 0
    return sum(1 for f in commands_dir.rglob("*.md") if "references" not in f.parts)

Verification

bash
python scripts/update-docs.py --check
# Should still report 9 workflows (refs not counted)

Chunk 2: Decouple Non-Discovery Commands

Phase: 2 (partial) | Depends on: Chunk 1 | GitHub Issues: #62, #54, #55

What Detail
Rewrite in place 5 existing commands — abstract Jira/Confluence operations
Skip complete-sprint.md — being deleted, no point decoupling
Per-file changes Add Phase 0 config resolution, abstract all hardcoded operations, add routing table
Fold in Performance & security testing integration (#55), regression test suite (#54)
Scope 5 files, ~57 references abstracted + testing sections added

Commands to Decouple

Command File Refs to Abstract Key Changes YAML Definition
commands/project/planning/create-epic-plan.md 16 JQL queries → "query child tickets"; 5 agent refs stay epic-plan.yaml
commands/project/planning/create-implementation-plan.md 9 Update Jira tickets → "update tickets"; Confluence plan → "publish plan" impl-plan.yaml
commands/project/execution/execute-ticket.md 9 Fetch Jira ticket → "fetch ticket"; status transitions abstracted execute-ticket.yaml
commands/project/execution/complete-ticket.md 12 Transition Jira → "transition status"; Update Confluence → "update plan" complete-ticket.yaml
commands/project/retrospectives/complete-epic.md 11 Close Jira → "close epic"; move Confluence pages → "move documents" complete-epic.yaml

Each command gets:

  1. Phase 0 — Config resolution step (load backend refs)
  2. Abstract operations — All Jira/Confluence verbs replaced with generic verbs
  3. Routing table — Footer section pointing to backend-specific reference files

Testing Integration (#54, #55)

The following sections are added during the Chunk 2 rewrite — not as a separate chunk:

planning:epic-plan — add to Testing Strategy section:

  • Performance baselines (p95 response time, page load, query time)
  • Performance SLAs (targets per metric)
  • Performance testing triggers (DB changes, API changes, large data, latency-sensitive features)
  • Security testing triggers (auth changes, PII handling, API changes, permissions)
  • Regression impact analysis (existing features at risk, affected flows, existing tests)

planning:impl-plan — add per-ticket:

  • Performance test requirements (benchmarks, load tests, query performance targets)
  • Regression test requirements (existing tests to run, new tests to add, critical paths)
  • Security test flag (when ticket touches auth, input validation, file uploads, encryption)

retrospectives:complete-epic — add metrics sections:

  • Performance metrics (API p50/p95/p99, slow queries, regressions, load test results)
  • Security metrics (vulnerabilities found by severity, remediated count, reviews conducted)
  • Regression metrics (suite size, pass rate, regressions caught pre-prod vs escaped, flaky test count)

Note: Security and performance checks during execution are handled by the adversarial review phase (Layer 3 — /review-ticket and /qa-validate), not by modifying execute-ticket or complete-ticket. Automated CI execution of regression suites is a consumer-project CI concern, not a skill library concern.

Verification

bash
# No hardcoded Jira/Confluence refs outside routing tables
grep -r "Jira\|Confluence\|JQL" commands/project/planning/ commands/project/execution/ commands/project/retrospectives/
# Should only appear in routing table comments, not in operational steps

Chunk 3: Discovery Rework

Phase: 2+3 (merged) | Depends on: Chunk 1 | GitHub Issues: #62, #103

What Detail
Full rewrite 3 discovery commands in place
Key changes Topic-based input (not Jira epic key), local-first sources, produces epics AND tickets, Phase 1.5 epic creation (#103 fix)
Scope 3 files, full rewrites (~750 lines total)

Merges Phase 2 decoupling with Phase 3 rework — no point abstracting refs in files getting fully rewritten.

3.1 `create-epic-discovery.md` → topic-based discovery

YAML Definition: commands/project/discovery/create.yaml

Current: Takes a Jira epic key, fetches epic details, creates Confluence discovery page.

New: Takes a topic (value proposition, feature area, research question). Accepts local sources: markdown files, PDFs, URLs, meeting notes, feature-forge specs. Creates a structured discovery workspace (local or in doc system) with research questions, hypotheses, unknowns, domain context, stakeholder inputs. Does NOT require pre-existing ticketing artifacts.

3.2 `synthesize-discovery.md` → local-first synthesis

YAML Definition: commands/project/discovery/synthesize.yaml

Current: Takes Confluence URLs as input, publishes synthesis to Confluence.

New: Takes discovery workspace refs, local docs, research artifacts (not just Confluence URLs). Consolidates findings into actionable recommendations. Proposes epics AND tickets (not just tickets) with metadata. Output includes proposed epic structure aligned with value propositions.

3.3 `approve-synthesis.md` → epic creation fix (#103)

YAML Definition: commands/project/discovery/approve.yaml

Current: Assumes target epics exist in Jira. Creates tickets linked to existing epics.

New: Creates EPICS first, then tickets linked to epics. Adds Phase 1.5: Epic Verification & Creation:

  • A) Auto-create — present epic details for approval, create in batch, record ID mappings
  • B) Map to existing — query candidates, let user map proposed → existing epics
  • C) Skip — proceed without epic links (warning)
  • D) Cancel — abort for manual fix

Error handling with rollback on batch failure. Works with any configured ticketing backend.

Verification

bash
# No hardcoded Jira/Confluence refs outside routing tables
grep -r "Jira\|Confluence\|JQL" commands/project/discovery/
# approve-synthesis.md contains Phase 1.5 epic creation flow
grep -c "Epic Verification" commands/project/discovery/approve-synthesis.md

Chunk 4: Intake Commands

Phase: 4 | Depends on: Chunk 1 | GitHub Issues: New issue required (intake commands)

What Detail
Create at final paths 3 new commands under commands/intake/
Create refs 2 reference files under commands/intake/references/
Scope 5 new files (~1,300 lines)

Independent of Chunks 2 and 3 — only needs Chunk 1.

4.1 `commands/intake/document-codebase.md` (~250 lines)

YAML Definition: commands/intake/document-codebase.yaml

yaml
description: Use when onboarding a new project to add documentation to existing code
argument-hint: [--scope=<path>] [--format=<jsdoc|docstring|xml>]

Workflow: Scan codebase → identify undocumented functions/classes/modules → prioritize (public APIs first) → checkpoint approval → generate docstrings → output summary → pointer to capture-behavior

4.2 `commands/intake/capture-behavior.md` (~250 lines)

YAML Definition: commands/intake/capture-behavior.yaml

yaml
description: Use when capturing existing system behavior through tests for an undocumented codebase
argument-hint: [--scope=<path>] [--type=<unit|integration|both>]

Workflow: Scan code → identify untested behavior → analyze coverage gaps → checkpoint test plan → generate characterization tests (assert CURRENT behavior) → run tests → output summary → pointer to create-system-description

4.3 `commands/intake/create-system-description.md` (~300 lines)

YAML Definition: commands/intake/create-system-description.yaml

yaml
description: Use when creating a living system description document for a project
argument-hint: [--output=<path>]

Workflow: Parallel agent analysis (architecture, security, API, data) → generate SOC2-style document:

  • System Purpose & Scope
  • System Components (services, databases, queues, caches)
  • Data Flow Diagram (mermaid)
  • Security Architecture
  • API Surface Area
  • External Dependencies
  • Infrastructure Overview
  • Change Management Process

Output: docs/system-description.md (configurable path)

4.4 Reference Files

File Purpose ~Lines
commands/intake/references/characterization-tests.md Patterns for behavior-capturing tests across languages 200
commands/intake/references/system-description-template.md Full SOC2-style template with examples for web apps, APIs, microservices 300

Verification

bash
# All files have valid frontmatter
head -5 commands/intake/*.md
# Reference files within 100-600 line range
wc -l commands/intake/references/*.md

Chunk 5: Feature-Forge Integration

Phase: 5 | Depends on: Chunks 2, 3, and 4 | GitHub Issues: New issue required (feature-forge integration)

What Detail
Update skills/feature-forge/SKILL.md — system description context + discovery integration
Update skills/feature-forge/references/specification-template.md — workflow integration + optional EARS
Create skills/feature-forge/references/system-context-integration.md (~150 lines)
Update Planning commands — read feature specs, skill-aware ticket descriptions
Update complete-ticket.md — incremental system description updates
Update complete-epic.md — holistic system description review
Scope 1 new file + 6 files updated

5.1 Feature-Forge: System Description Context

File: skills/feature-forge/SKILL.md

Add Step 0 to Core Workflow:

  1. Context — Check for docs/system-description.md (or path from config). If found, load as background context. Reference existing components/APIs during interviews. Skip questions the system description already answers.

5.2 Feature-Forge: Output Boundaries

File: skills/feature-forge/references/specification-template.md

  • Add ## Workflow Integration section with epic target field
  • Explicit note: "High-level TODOs only. Detailed implementation steps generated by /planning:impl-plan."
  • Make EARS format optional — offer for complex features, simpler format for straightforward ones

5.3 Feature-Forge: Discovery Integration

File: skills/feature-forge/SKILL.md

During the structured interview, every AskUserQuestions prompt about proposed functionality includes a standing option: "Needs additional discovery." When selected, feature-forge records the question topic as a flagged unknown and moves to the next question without blocking.

At interview end, if any unknowns were flagged:

  1. Adds ## Discovery Recommendation section to spec listing unknowns with original question context
  2. Presents AskUserQuestions prompt:
    • A) Run discovery (Recommended) — create discovery workspace for flagged unknowns
    • B) Skip to planning — proceed with unknowns flagged as risks
    • C) Handle research separately — run discovery:create later

If no unknowns flagged, no recommendation shown.

5.4 System Context Reference

New file: skills/feature-forge/references/system-context-integration.md (~150 lines)

  • How to use system description sections during requirements gathering
  • Which sections inform which interview questions
  • How specs should reference system components
  • How flagged unknowns map to discovery workspace research questions

5.5 Planning Commands: Read Feature Specs + Skill-Aware Ticket Creation

File: commands/project/planning/create-epic-plan.md
YAML Definition: commands/project/planning/epic-plan.yaml

Add to Phase 0:

Check for specs/{feature_name}.spec.md related to this epic. If found, use requirements, acceptance criteria, and NFRs as input. Do not re-derive what the spec already defines.

File: commands/project/planning/create-implementation-plan.md
YAML Definition: commands/project/planning/impl-plan.yaml

When generating self-contained ticket descriptions, read available skills at the project level (.claude-plugin/plugin.json or installed skill manifests) and craft prompts that invoke the correct skill per implementation step.

Example ticket description:

Suggested skill: react-expert for component implementation, test-master for test suite

This is core to the v0.5.0 vision: planning has full visibility into what skills are available in the consumer project and generates tickets that are skill-aware from the start. Each ticket becomes self-contained with the right skill invocation embedded in its description.

5.6 System Description Updates on Completion

File: commands/project/execution/complete-ticket.md — Add Step 4c:
YAML Definition: commands/project/execution/complete-ticket.yaml

If changes affect APIs, external deps, security, or data models → propose targeted updates to docs/system-description.md → checkpoint approval → apply.

File: commands/project/retrospectives/complete-epic.md — Add to Phase 5:
YAML Definition: commands/project/retrospectives/complete-epic.yaml

Review all changes across the epic. Update system description holistically. Update mermaid diagrams if architecture changed. Checkpoint approval.

Verification

bash
python scripts/validate-skills.py --skill feature-forge
# Verify discovery integration
grep -c "additional discovery" skills/feature-forge/SKILL.md
# Verify spec reading in planning
grep -c "spec.md" commands/project/planning/create-epic-plan.md

Chunk 6: Directory Restructure + Cleanup

Phase: 6 | Depends on: Chunks 1-5 (all content finalized) | GitHub Issues: New issue required (namespace change + directory restructure)

What Detail
Move 4 directories from commands/project/ to commands/
Rename 5 files to shorter names
Delete complete-sprint.md
Update scripts/update-docs.py — COMMANDS_DIR path + exclusions
Update .claude-plugin/plugin.json — command paths and registered names
Scope Mechanical moves/renames + 2 config updates

Directory Moves

Old Path New Path
commands/project/discovery/ commands/discovery/
commands/project/planning/ commands/planning/
commands/project/execution/ commands/execution/
commands/project/retrospectives/ commands/retrospectives/

File Renames

Old Filename New Filename
create-epic-discovery.md create.md
synthesize-discovery.md synthesize.md
approve-synthesis.md approve.md
create-epic-plan.md epic-plan.md
create-implementation-plan.md impl-plan.md

Deletions

File Reason
commands/project/retrospectives/complete-sprint.md Sprint retrospectives removed; retros at epic level only

Script Update

File: scripts/update-docs.py

python
COMMANDS_DIR = "commands"  # was "commands/project"

def count_workflows(base_path: Path) -> int:
    """Count workflow command markdown files."""
    commands_dir = base_path / COMMANDS_DIR
    if not commands_dir.exists():
        return 0
    return sum(
        1 for f in commands_dir.rglob("*.md")
        if "references" not in f.parts and "common-ground" not in f.parts
    )

Verification

bash
# Old directory should be empty/gone
ls commands/project/ 2>&1
# Should show: No such file or directory

# Workflow count should be 11
python scripts/update-docs.py --dry-run

# No dangling references to old paths
grep -r "commands/project" commands/ scripts/ .claude-plugin/

# No references to complete-sprint
grep -r "complete-sprint" commands/ docs/ README.md

Chunk 7: Documentation + Validation

Phase: 7+8 | Depends on: Chunk 6 | GitHub Issues: New issue required (narrative document restructure)

What Detail
Major rewrite docs/WORKFLOW_COMMANDS.md
Update README.md, SKILLS_GUIDE.md, ROADMAP.md, CHANGELOG.md, docs/ATLASSIAN_MCP_SETUP.md
Bump version.json → 0.5.0
Propagate python scripts/update-docs.py
Validate Full validation suite
Regenerate Social preview image

Documentation Updates

File Changes
docs/WORKFLOW_COMMANDS.md Major rewrite: new namespace (phase:action), DAG lifecycle diagram, Configuration section, Intake Phase, discovery rework (topic-based), all backends, feature-forge integration, skill-aware tickets, command table (11 commands)
SKILLS_GUIDE.md Add feature-forge workflow integration notes (system description context, discovery recommendation, output boundaries)
README.md Update workflow section; note Atlassian MCP is now optional; add .claude/workflow-config.json reference; update directory structure
ROADMAP.md Update #62, #103 status to completed; add intake phase items; update v0.5.0 section
CHANGELOG.md Add v0.5.0 entry (Added: intake commands, backend adapters, discovery rework, feature-forge integration; Changed: namespace, directory structure; Removed: complete-sprint; Fixed: #103 epic creation)
docs/ATLASSIAN_MCP_SETUP.md Add note: only needed when config specifies jira/confluence backends
version.json Bump to 0.5.0
.claude-plugin/plugin.json Update keywords (add "local-first", "github-issues", "workflow-config")

Validation Suite

bash
# 1. Skill validation
python scripts/validate-skills.py

# 2. Doc counts in sync (should show 11 workflows)
python scripts/update-docs.py --check

# 3. No hardcoded Jira/Confluence refs in command files
grep -r "Jira\|Confluence\|JQL\|Atlassian" \
  commands/discovery/ commands/planning/ commands/execution/ \
  commands/retrospectives/ commands/intake/
# Should return nothing (only allowed in commands/references/)

# 4. All new files have valid frontmatter
python scripts/validate-skills.py

# 5. Reference files within 100-600 line range
find commands/ -path "*/references/*.md" -exec wc -l {} \;

# 6. No dangling references to deleted file
grep -r "complete-sprint" commands/ docs/ README.md SKILLS_GUIDE.md

# 7. Propagate final counts
python scripts/update-docs.py

# 8. Regenerate social preview
node ./assets/capture-screenshot.js

File Manifest

New Files (15 files, ~2,970 lines)

Phase File ~Lines
1 commands/references/workflow-config-schema.md 200
1 commands/references/config-resolution.md 120
1 commands/references/ticketing-local.md 150
1 commands/references/ticketing-jira.md 150
1 commands/references/ticketing-github-issues.md 150
1 commands/references/docs-local.md 150
1 commands/references/docs-confluence.md 150
1 commands/references/docs-github-wiki.md 100
1 commands/references/local-docs-structure.md 200
4 commands/intake/document-codebase.md 250
4 commands/intake/capture-behavior.md 250
4 commands/intake/create-system-description.md 300
4 commands/intake/references/characterization-tests.md 200
4 commands/intake/references/system-description-template.md 300
5 skills/feature-forge/references/system-context-integration.md 150

Renamed/Moved Files (Phase 6 restructure)

Old Path New Path
commands/project/discovery/create-epic-discovery.md commands/discovery/create.md
commands/project/discovery/synthesize-discovery.md commands/discovery/synthesize.md
commands/project/discovery/approve-synthesis.md commands/discovery/approve.md
commands/project/planning/create-epic-plan.md commands/planning/epic-plan.md
commands/project/planning/create-implementation-plan.md commands/planning/impl-plan.md
commands/project/execution/execute-ticket.md commands/execution/execute-ticket.md
commands/project/execution/complete-ticket.md commands/execution/complete-ticket.md
commands/project/retrospectives/complete-epic.md commands/retrospectives/complete-epic.md

Deleted Files

File Reason
commands/project/retrospectives/complete-sprint.md Sprint retrospectives removed; retros at epic level only

Modified Files (updated to reflect Phase 1 completion)

Phase File Change Scope
1+6 scripts/update-docs.py Fix count_workflows(), update COMMANDS_DIR
2+3 commands/discovery/create.md Full rewrite: topic-based, not Jira-epic-based
2+3 commands/discovery/synthesize.md Rewrite: local-first input, proposes epics + tickets
2+3 commands/discovery/approve.md Rewrite: creates epics + tickets, Phase 1.5 epic creation
2+5 commands/planning/epic-plan.md Abstract refs + read feature specs + skill-aware ticket descriptions
2+5 commands/planning/impl-plan.md Abstract refs + skill-aware ticket creation
2 commands/execution/execute-ticket.md Abstract 9 refs
2+5 commands/execution/complete-ticket.md Abstract 12 refs + system desc update
2+5 commands/retrospectives/complete-epic.md Abstract 11 refs + system desc update
5 skills/feature-forge/SKILL.md Add system description context step + discovery integration
5 skills/feature-forge/references/specification-template.md Workflow integration + optional EARS
7 docs/WORKFLOW_COMMANDS.md Major rewrite
7 SKILLS_GUIDE.md Feature-forge integration notes
7 README.md Update workflow section + directory structure
7 ROADMAP.md Update issue statuses
7 CHANGELOG.md Add v0.5.0 entry
7 docs/ATLASSIAN_MCP_SETUP.md Mark as optional
7 version.json Bump to 0.5.0
7 .claude-plugin/plugin.json Update paths, names, keywords

YAML Definitions

All 12 per-command YAML definition files created in Phase 1 (completed):

Command YAML Definition Phase Doc
intake:document-codebase commands/intake/document-codebase.yaml docs/workflow/intake-document-codebase.md
intake:capture-behavior commands/intake/capture-behavior.yaml docs/workflow/intake-capture-behavior.md
intake:create-system-description commands/intake/create-system-description.yaml docs/workflow/intake-create-system-description.md
discovery:create commands/project/discovery/create.yaml docs/workflow/discovery-create.md
discovery:synthesize commands/project/discovery/synthesize.yaml docs/workflow/discovery-synthesize.md
discovery:approve commands/project/discovery/approve.yaml docs/workflow/discovery-approve.md
planning:epic-plan commands/project/planning/epic-plan.yaml docs/workflow/planning-epic-plan.md
planning:impl-plan commands/project/planning/impl-plan.yaml docs/workflow/planning-impl-plan.md
execution:execute-ticket commands/project/execution/execute-ticket.yaml docs/workflow/execution-execute-ticket.md
execution:complete-ticket commands/project/execution/complete-ticket.yaml docs/workflow/execution-complete-ticket.md
retrospectives:complete-epic commands/project/retrospectives/complete-epic.yaml docs/workflow/retrospective-complete-epic.md
common-ground commands/common-ground.yaml docs/workflow/common-ground.md

GitHub Issues

v0.5.0 (Workflow Overhaul)

Issue Description Chunk(s) Status
#62 Core workflow generalization 1, 2, 3 Open
#103 Epic creation gap 3 Open
#54 Regression test suite integration 2 Open — folded into command rewrites
#55 Performance & security testing integration 2 Open — folded into command rewrites
#119 Backend adapter reference files 1 Open
#120 Intake commands 4 Open
#121 Discovery command rework 3 Open
#122 Feature-forge integration 5 Open
#123 Namespace change + directory restructure 6 Open
New YAML workflow definition schema + DAG manifest Pre Completed
New Narrative document restructure 7 Completed (#125)

Deferred to v0.6.0 (Global-to-Local Config Migration)

Issue Description
#50-53 Context persistence, state validation, error recovery, shared templates
#109 Common-ground local storage

Deferred to v0.7.0+ (Enhanced Skill Routing + Common-Ground)

Issue Description
#65 Cross-domain recommendations
#66 Enhanced routing logic
#68 Skill dependency mapping
#69 Metadata enhancement
#108, #110, #111 Common-ground enhancements

Resolved Decisions

  • Epic terminology — Evaluated alternatives (initiative, feature, workstream, deliverable, milestone). Decision: keep "epic." It's the least ambiguous term across all three backends (Jira uses it natively, GitHub Issues maps milestones to it, local markdown uses folder labels). The adapter layer abstracts backend-specific mapping.
  • Discovery trigger — Feature-forge embeds "Needs additional discovery" as a standing option during its structured interview. Flagged unknowns are collected and surfaced as a discovery recommendation at interview end, with options to run discovery, skip to planning, or handle research separately.
  • EARS format optional — Made optional in feature-forge; offer EARS for complex features with conditional/state-dependent behavior; simpler formats for straightforward features.
  • Non-standard frontmatter fields tolerated — Confirmed via npx skills add . --list: all 65 skills detected despite non-standard top-level fields (triggers, role, scope, output-format). Migration to metadata.* is optional tech debt.
  • #50-55 → v0.6.0 — These depend on global-to-local config migration (Discussion #112). Context persistence, state validation, error recovery, shared templates, and testing infra are all easier to implement with per-project config.
  • #69 metadata enhancement must use metadata field — Any NEW metadata must go under the spec's metadata key, not as new top-level frontmatter fields. Existing non-standard fields are grandfathered.
  • CI portability check via npx skills — GitHub Action to catch regressions in ecosystem detection. Asserts skill count matches version.json.

Open Questions

  • Common-ground hooks (#111, #107) — on-demand for now; hook-based injection in future
  • Docusaurus setup — per-project CI/CD concern; add setup instructions in local-docs-structure.md but don't implement deployment in this version
  • EARS format monitoring — made optional in feature-forge; monitor whether structured vs. simple format affects agent execution quality
  • Tiki integration — potential future adapter for the ticketing backend (Go CLI for local task management)

Implementation Summary

Chunk Phase New Files Modified Files Lines (est.) Status
Pre. YAML definitions 0 31 0 ~2,000 Completed
1. Backend adapters 1 9 1 ~1,400 Pending
2. Decouple commands 2 0 5 ~500 Pending
3. Discovery rework 2+3 0 3 ~750 Pending
4. Intake commands 4 5 0 ~1,300 Pending
5. Feature-forge 5 1 6 ~600 Pending
6. Restructure 6 0 2 + moves ~100 Pending
7. Docs + validation 7+8 0 8 ~1,500 Pending

Dependency Graph

text
Chunk Pre (YAML definitions) ✓
    │
Chunk 1 (foundation)
├──→ Chunk 2 (decouple non-discovery)──┐
├──→ Chunk 3 (discovery rework)────────┼──→ Chunk 5 (feature-forge)──→ Chunk 6 (restructure)──→ Chunk 7 (docs)
└──→ Chunk 4 (intake)──────────────────┘

Chunks 2, 3, and 4 are independent of each other — only Chunk 1 gates them. They can run in parallel if desired.


Ideas Audit Primary Docs (`docs/ideas/audit-primary-docs.md`)

Documentation Audit: Primary User-Facing Files

Audit date: 2026-02-02
Auditor: Technical writing agent (Claude Opus 4.5)
Scope: README.md, SKILLS_GUIDE.md, QUICKSTART.md, CONTRIBUTING.md
Supporting context: docs/COMMON_GROUND.md, docs/WORKFLOW_COMMANDS.md, CHANGELOG.md, docs/ideas/documentation-site.md


Executive Summary

The four primary documents serve different audiences but suffer from significant content overlap, inconsistent naming conventions, and a structural problem: README.md tries to be both a landing page and a comprehensive reference. SKILLS_GUIDE.md is the strongest standalone document. QUICKSTART.md and CONTRIBUTING.md both contain stale installation instructions that diverge from the README. The biggest single improvement would be thinning the README to a focused landing page and letting specialized documents own their respective topics.


Per-File Findings

1. README.md

Purpose: Project landing page and primary discovery surface (GitHub, search engines, LLM retrieval).

Strengths:

  • Strong visual presentation with badges, animated header, star history
  • Clear "Quick Start" section at the top with copy-paste install command
  • Well-structured project tree showing directory layout
  • Good use of the Documentation section as a hub linking to specialized docs
  • Tech Stack Coverage section serves as an effective keyword surface for search/discovery

Weaknesses:

  1. Tries to be everything. At 438 lines, the README functions as landing page, architecture guide, skills catalog, installation manual, usage tutorial, contributing guide, and marketing page. No single audience can scan it efficiently. A first-time visitor looking for "how do I install this" must scroll past architecture diagrams and 65-skill category lists.

  2. Duplicate installation instructions. Three installation options appear in the "Quick Start" section at the top AND again in "Installation Options" at line 305. These two sections use different option numbering (the Installation Options section has two entries both labeled "Option 2"), different ordering, and different levels of detail.

  3. Skills Overview duplicates SKILLS_GUIDE.md. Lines 116-133 reproduce a condensed version of the skill catalog that also lives in SKILLS_GUIDE.md. When skills are added or recategorized, both must be updated. Neither is clearly the source of truth.

  4. Context Engineering section duplicates docs/COMMON_GROUND.md. Lines 182-227 reproduce the overview, command examples, confidence tiers, and mermaid graph that all exist in greater detail in docs/COMMON_GROUND.md. This section is 45 lines of content that could be 5 lines and a link.

  5. Project Workflow Commands section duplicates docs/WORKFLOW_COMMANDS.md. Lines 229-242 duplicate the phase table from the workflow docs. The README should link, not reproduce.

  6. Contributing section duplicates CONTRIBUTING.md. Lines 362-401 contain a condensed "Adding a New Skill" guide that partially overlaps with CONTRIBUTING.md but uses different line-count guidance (200-400 lines per reference here vs. no specific range in CONTRIBUTING.md). The frontmatter example in the README uses name: My Skill (with spaces), while CONTRIBUTING.md uses a different description formula. CLAUDE.md says names must be "letters, numbers, and hyphens only."

  7. Stale option numbering. Under "Installation Options," there are two sections both labeled "Option 2" (npx add-skill and Local Development). Option 3 (Direct Installation) should logically be Option 4, or the npx method should be Option 2 and Local Development should be Option 3.

  8. Tech Stack Coverage is a wall of text. Lines 244-297 list every supported technology in a flat bullet list. This is useful for SEO keyword density on GitHub but provides no navigational value. A reader cannot determine which skill covers which technology from this list alone.

Recommendations:

  • Thin the README to under 200 lines: hero, one-line description, single install command, 3-sentence "what is this," link hub to specialized docs, contributing CTA, license/support
  • Move architecture details to a dedicated docs/ARCHITECTURE.md or let the future docs site own it
  • Remove the inline skills catalog; replace with a single sentence and link to SKILLS_GUIDE.md
  • Remove the inline Context Engineering section; replace with a 2-line summary and link to docs/COMMON_GROUND.md
  • Remove the inline Workflow Commands section; link to docs/WORKFLOW_COMMANDS.md
  • Remove the inline Contributing guide; link to CONTRIBUTING.md
  • Fix the duplicate "Option 2" numbering immediately (this is a bug regardless of restructuring)
  • Consider moving Tech Stack Coverage to SKILLS_GUIDE.md where it provides navigational context

2. SKILLS_GUIDE.md

Purpose: Quick reference for which skill to use when.

Strengths:

  • Clear, scannable structure with consistent formatting throughout
  • Decision trees are genuinely useful -- they answer the question "I have X problem, which skill do I use?"
  • Skill Combinations section provides practical multi-skill workflow patterns
  • Examples section with "Good Prompts" gives concrete, actionable guidance
  • No unnecessary preamble; gets straight to content
  • The flattest, most reference-like document in the set -- appropriate for its purpose

Weaknesses:

  1. No introduction or context. The document opens with ## When to Use Each Skill with no preamble explaining what this document is, who it is for, or how it relates to the rest of the project. A single paragraph at the top would help.

  2. Category counts diverge from README. The README lists 12 categories; SKILLS_GUIDE.md lists 12 categories but with different groupings. For example, README has "Workflow (2): Debugging Wizard, Fullstack Guardian" as a category, while SKILLS_GUIDE.md has the same skills under a "Workflow" heading. This is consistent, but the README's parenthetical counts (e.g., "Languages (12)") are not replicated here, making cross-reference verification manual.

  3. Examples section is excessively long. Lines 257-322 contain 50+ example prompts across 7 subsections. This is valuable content, but the sheer volume makes it hard to scan. The most common use cases (top 10) should be separated from the exhaustive list.

  4. No link back to README or installation. A reader who lands here directly (via search, deep link, or LLM referral) has no way to learn how to install the plugin. A single line at the top with a link to the README or QUICKSTART.md would solve this.

  5. "Tips for Effective Use" is generic. The 5 tips at line 249-255 are so general ("Be Specific," "Context Matters") that they add little value. They duplicate the more concrete best practices in QUICKSTART.md.

  6. Missing: which skills are new or recently updated. For returning users, a "What's New" callout at the top referencing the latest release would help.

Recommendations:

  • Add a 2-3 line introduction with a link to README.md and QUICKSTART.md
  • Trim the Examples section: keep the top 16 "Good Prompts" and move the framework-specific, language-specific, and platform-specific examples into a collapsible section or separate file
  • Remove or merge "Tips for Effective Use" into QUICKSTART.md where it belongs
  • Consider adding a "Last updated: vX.Y.Z" line at the top so readers know if content is current

3. QUICKSTART.md

Purpose: Get a new user from zero to working installation in minutes.

Strengths:

  • Starts with installation immediately -- no preamble
  • Three installation methods presented concisely
  • "Test Your Installation" section is a strong inclusion -- gives the user a way to verify success
  • "Quick Reference Card" at the bottom is a genuinely useful cheat sheet
  • Reasonable length (208 lines)

Weaknesses:

  1. Installation instructions diverge from README. QUICKSTART.md offers three methods: Marketplace, Install from GitHub (claude plugin install https://...), and Local Development (cp -r). README.md offers four methods: Marketplace, npx add-skill, Local Development, and Direct Installation. The "Install from GitHub" method in QUICKSTART.md (claude plugin install https://...) does not appear in the README at all. The npx method in the README does not appear in QUICKSTART.md. This is confusing and suggests neither document is the source of truth.

  2. Skill counts may go stale. Lines 50-54 contain hardcoded counts ("12 Language Experts," "10 Backend Framework Experts," "7 Frontend & Mobile Experts"). These are not wrapped in `` markers and will not be updated by scripts/update-docs.py. The "10 Backend Framework Experts" claim conflicts with the README, which lists 7 in the "Backend Frameworks" category.

  3. "First Steps" section mixes audiences. Subsections 1-4 cover what the plugin contains (reference), common use cases (tutorial), best practices (guidance), and skill activation examples (reference). This interleaving makes it hard to follow a linear getting-started path.

  4. "Follow Recommended Workflows" duplicates SKILLS_GUIDE.md. The 7-step new feature workflow at lines 127-134 is identical to the "New Feature Development" workflow in SKILLS_GUIDE.md lines 96-104. One should link to the other.

  5. References section at line 136-139 is incomplete. It lists README.md, SKILLS_GUIDE.md, and CONTRIBUTING.md, but omits docs/COMMON_GROUND.md and docs/WORKFLOW_COMMANDS.md.

  6. Troubleshooting is thin. Only two scenarios are covered (skills not activating, need help). Common issues like "I installed but Claude does not seem to use the skills" or "how do I update to the latest version" are not addressed.

  7. Closing tone is informal. "Happy coding!" with a rocket emoji is not consistent with the professional tone of the rest of the documentation set.

Recommendations:

  • Consolidate installation instructions with the README. One document should be the canonical source; the other should link to it. Recommendation: QUICKSTART.md owns the detailed install instructions; README.md has a one-liner and a link.
  • Fix the stale "10 Backend Framework Experts" count (should be 7 per README categories, or 8 if counting Express separately)
  • Restructure "First Steps" into a linear flow: Install -> Verify -> Try your first prompt -> Learn more
  • Remove the duplicated workflow; link to SKILLS_GUIDE.md
  • Expand the Troubleshooting section with 2-3 more common scenarios
  • Add "How to update" instructions
  • Remove the closing emoji; end with the Support section

4. CONTRIBUTING.md

Purpose: Guide contributors through the process of adding or modifying skills.

Strengths:

  • Clear step-by-step contribution workflow (fork, branch, change, test, commit, PR)
  • Commit message format is well-defined
  • Progressive Disclosure Pattern section is thorough and well-explained
  • Token Efficiency Guidelines are specific and actionable
  • Code Examples Best Practices section sets a clear standard
  • Framework Version Requirements table pins versions -- good for consistency

Weaknesses:

  1. Frontmatter schema conflicts with CLAUDE.md. CONTRIBUTING.md line 88 shows name: Skill Name (with a space), but CLAUDE.md explicitly states: "name: Letters, numbers, and hyphens only (no parentheses or special characters)." The description formula on line 103 ([Role] for [Domain]. Invoke for [triggers]. Keywords: [terms].) conflicts with CLAUDE.md's mandate: "descriptions must be TRIGGER-ONLY" and "Format: Use when [specific triggering conditions]." These are not minor style differences; they will produce skills that fail validation.

  2. Missing validation step. The contribution workflow (steps 1-6) does not mention running python scripts/validate-skills.py before submitting a PR. Given that CI runs this check, contributors will hit failures they could have caught locally. This should be step 4.5.

  3. Reference file guidance is vague. The README says "200-400 lines each" for references. CLAUDE.md says "100-600 lines per reference file." CONTRIBUTING.md's Progressive Disclosure section says "200 lines" as a threshold for when to split, but does not state a target range. Three different documents give three different numbers.

  4. Testing instructions are impractical. Step 4 says to cp -r skills/* ~/.claude/skills/ and restart Claude Code. For marketplace-installed plugins, this method may not work or may conflict with the installed version. No guidance is given for testing with the marketplace/local plugin workflow.

  5. No mention of the commands/ directory. The guide covers skill creation in detail but says nothing about creating or modifying workflow commands. A contributor looking to add a command has no guidance.

  6. Code of Conduct is minimal. Three short subsections (Be Respectful, Be Collaborative, Be Professional) with two bullet points each. This is fine for a small project but may need expansion as community grows. Consider linking to a standard CoC (e.g., Contributor Covenant) instead of maintaining a custom one.

  7. "Recognition" section references a CONTRIBUTORS.md file. This file does not appear in the project structure shown in README.md. If it exists, it should be linked. If it does not exist, this is a broken promise.

Recommendations:

  • Align the frontmatter schema with CLAUDE.md immediately. The description formula must say "Use when [triggering conditions]," not the [Role] for [Domain] pattern. The name field must show a hyphenated example.
  • Add python scripts/validate-skills.py --skill my-new-skill as an explicit step before submitting a PR
  • Standardize reference file line guidance across all documents (CLAUDE.md's 100-600 range is the most permissive; pick one range and use it everywhere)
  • Add a section on contributing workflow commands
  • Link or create the CONTRIBUTORS.md file
  • Add a note about testing with the marketplace install method

Cross-File Redundancy Map

The following content appears in multiple documents. For each topic, one document should be the single source of truth (SSoT); all others should link to it.

Topic README QUICKSTART SKILLS_GUIDE CONTRIBUTING Recommended SSoT
Installation methods 4 methods (lines 306-347) 3 methods (lines 8-27) -- 1 method (line 51) QUICKSTART.md
Skill category list Lines 120-132 Lines 50-55 Lines 5-93 -- SKILLS_GUIDE.md
New feature workflow Lines 167-169 Lines 127-134 Lines 96-104 -- SKILLS_GUIDE.md
Bug fixing workflow Lines 172-174 -- Lines 107-111 -- SKILLS_GUIDE.md
Context Engineering overview Lines 182-227 -- -- -- docs/COMMON_GROUND.md
Workflow Commands table Lines 233-238 -- -- -- docs/WORKFLOW_COMMANDS.md
Skill activation examples Lines 139-161 Lines 99-108 Lines 259-322 -- SKILLS_GUIDE.md
Best practices / tips Lines 136-161 Lines 85-95, 110-134 Lines 249-255 -- QUICKSTART.md
Progressive disclosure explanation Lines 46-73 -- -- Lines 172-226 CONTRIBUTING.md
Contributing quick guide Lines 362-401 -- -- Full document CONTRIBUTING.md
Frontmatter schema Lines 373-387 -- -- Lines 84-98 CONTRIBUTING.md
Tech stack coverage Lines 244-297 Lines 176-198 (condensed) Implicit in categories -- SKILLS_GUIDE.md (integrated into categories)
Support links Lines 413-415 Lines 200-205 -- Lines 296-298 README.md
Project structure tree Lines 74-108 -- -- Lines 177-184 (partial) README.md

Key finding: 14 topics are duplicated across 2 or more files. Installation instructions appear in 3 files with different content in each. The skill activation examples appear in 3 files with varying levels of detail.


Proposed Restructuring for a Docs Site

This mapping assumes the docs site structure proposed in docs/ideas/documentation-site.md and assigns each piece of current content to its future home.

Retain only:

  • Hero banner and badges
  • 3-sentence project description
  • Single install command with link to full QUICKSTART.md
  • Link hub: Quick Start, Skills Guide, Common Ground, Workflow Commands, Contributing
  • License, Support, Author
  • Star history / social proof

Everything else moves to dedicated pages.

/getting-started/ (from QUICKSTART.md)

  • All installation methods (single source of truth)
  • Verification steps
  • First prompt walkthrough
  • Troubleshooting
  • How to update

/skills/ (from SKILLS_GUIDE.md)

  • Skill index (filterable)
  • Decision trees
  • Skill combinations
  • Example prompts (condensed)
  • Tech stack coverage (integrated into skill cards)

/architecture/ (from README.md sections)

  • Progressive disclosure pattern explanation
  • Project structure tree
  • How skills activate (context-aware activation)

/workflows/ (from docs/WORKFLOW_COMMANDS.md)

  • Phase overview with DAG diagram
  • Command reference table
  • Per-command detail pages

/common-ground/ (from docs/COMMON_GROUND.md)

  • Existing content, mostly unchanged
  • Remove background/origin story from main flow; move to a "Design Philosophy" subpage

/contributing/ (from CONTRIBUTING.md)

  • Fork/branch/test/PR workflow
  • Skill writing guidelines (single source of truth for frontmatter schema)
  • Reference file standards
  • Validation and testing
  • Add: command writing guidelines

Priority Ranking of Improvements

Critical (Fix Now)

  1. Fix duplicate "Option 2" numbering in README.md Installation Options. This is a visible bug.

  2. Align CONTRIBUTING.md frontmatter schema with CLAUDE.md. The description formula and name format directly conflict with the project's own CLAUDE.md. Contributors following CONTRIBUTING.md will produce skills that fail validation. Change the description formula to Use when [triggering conditions] and the name example to my-skill-name (hyphenated).

  3. Fix stale count "10 Backend Framework Experts" in QUICKSTART.md. This contradicts the README (which says 7). Either wrap these counts in update markers or replace with a general statement.

High Priority (Next Release)

  1. Consolidate installation instructions. Designate QUICKSTART.md as the single source of truth. README.md gets a one-liner and a link. CONTRIBUTING.md links to QUICKSTART.md for testing setup. Remove the claude plugin install https://... method from QUICKSTART.md if it is not a supported path, or add it to the README if it is.

  2. Remove duplicated sections from README.md. Replace inline Context Engineering, Workflow Commands, Skills Overview, and Contributing sections with 2-line summaries and links. Target: README under 200 lines.

  3. Add validate-skills.py step to CONTRIBUTING.md. Insert between "Test Your Changes" and "Commit Your Changes."

  4. Standardize reference file line guidance. Pick one range (recommend 100-600 from CLAUDE.md) and use it in README.md, CONTRIBUTING.md, and CLAUDE.md consistently.

Medium Priority (Docs Site Prep)

  1. Add introduction and navigation links to SKILLS_GUIDE.md. A 3-line preamble with links to README and QUICKSTART.

  2. Trim SKILLS_GUIDE.md examples section. Keep top 16 general examples; move framework-specific and platform-specific examples to a separate section or file.

  3. Expand QUICKSTART.md troubleshooting. Add "how to update," "skills conflict with local files," and "which installation method should I choose."

  4. Add workflow command contribution guidance to CONTRIBUTING.md.

  5. Restructure QUICKSTART.md "First Steps" into a linear tutorial flow.

Nice-to-Have (Future)

  1. Add "Last updated" or version reference to SKILLS_GUIDE.md and QUICKSTART.md.

  2. Create or link CONTRIBUTORS.md referenced in CONTRIBUTING.md Recognition section.

  3. Replace minimal Code of Conduct with Contributor Covenant link.

  4. Move Tech Stack Coverage from README to SKILLS_GUIDE.md where it provides navigational context next to the decision trees.

  5. Remove "Tips for Effective Use" from SKILLS_GUIDE.md (merge into QUICKSTART.md best practices).

  6. Standardize tone across all documents. QUICKSTART.md ends with "Happy coding!" and uses emoji bullets in the Support section. Other documents maintain a more neutral professional tone. Pick one voice and apply it everywhere.


SEO Readiness Assessment

Criterion README QUICKSTART SKILLS_GUIDE CONTRIBUTING
Descriptive H1 No (image banner, no text H1) Yes Yes Yes
Unique page title potential Yes ("Claude Skills") Yes ("Quick Start Guide") Yes ("Skills Quick Reference") Yes ("Contributing")
Scannable headings Mixed (some headings are vague: "Architecture," "Usage Patterns") Yes Yes Yes
Keyword density High (tech stack list) Medium High (skill names, frameworks) Low (process-focused)
Internal linking Good (links to all major docs) Weak (3 links) None Weak (1 link)
External linking Good (GitHub, LinkedIn) Weak (1 GitHub link) None Weak (1 GitHub link)
Meta description potential Implicit in first paragraph Implicit Missing (no intro paragraph) Implicit
Standalone readability No (assumes GitHub context) Mostly yes No (no intro, no install link) Yes

Key SEO gaps:

  • SKILLS_GUIDE.md has zero internal or external links. On a docs site, it would be an isolated page with no link equity flow.
  • README.md has no text-based H1. The project name is embedded in an image. Search engines may not extract it.
  • None of the documents have a meta-description-ready opening sentence that summarizes the page in under 160 characters.

Relationship to docs/ideas/documentation-site.md

This audit directly satisfies Phase 1 of the documentation site plan. The findings here feed into Phase 2 (Content Restructuring). Specifically:

  • The redundancy map above identifies exactly which content to deduplicate before building the site
  • The proposed restructuring section provides a content-to-URL mapping for the Astro site structure
  • The priority ranking ensures the most impactful fixes happen before the site build, reducing rework
  • The SEO readiness assessment identifies gaps that the docs site should address with proper meta tags, H1 elements, and internal linking

Recommended next step: Execute Critical and High Priority items (1-7) in the current repo before beginning Phase 4 (Astro setup). These fixes improve the current GitHub-based experience and reduce content migration work.


Ideas Audit Skill Consistency (`docs/ideas/audit-skill-consistency.md`)

Skill SKILL.md Consistency Audit Report

Audit date: 2026-02-02
Audited by: Claude Opus 4.5
Sample size: 10 skills out of 65 total
Reference standard: CLAUDE.md project instructions (Skill Authorship Standards)


1. Consistency Matrix

The table below tracks whether each sampled skill conforms to the documented standard for each dimension.

Dimension react-expert nestjs-expert python-pro code-reviewer architecture-designer feature-forge debugging-wizard terraform-engineer security-reviewer pandas-pro
Frontmatter: required fields PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS
Description starts "Use when" PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS
Description trigger-only (no process) PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS
Description has "Invoke for" clause PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS
Role: valid enum value PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS
Scope: valid enum value PASS PASS PASS PASS PASS PASS WARN PASS PASS PASS
Output-format: valid enum value PASS PASS PASS PASS PASS PASS WARN PASS PASS PASS
H1 title present PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS
Role Definition section PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS
When to Use section (bullet list) PASS PASS PASS PASS PASS PASS PASS PASS FAIL PASS
Core Workflow (5 steps) PASS PASS PASS PASS PASS PASS FAIL (6) PASS FAIL (6) PASS
Reference Guide table PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS
Constraints: MUST DO PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS
Constraints: MUST NOT DO PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS
Output Templates section PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS
Knowledge Reference section PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS
Related Skills section PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS
Related Skills all valid PASS PASS FAIL PASS PASS PASS PASS FAIL FAIL FAIL
No extra non-standard sections PASS PASS PASS PASS PASS FAIL PASS PASS PASS PASS
Line count 80-100 78 (low) 74 (low) 72 (low) 72 (low) 69 (low) 75 (low) 73 (low) 77 (low) 74 (low) 76 (low)
allowed-tools field -- -- -- PASS -- -- -- -- PASS --

Legend: PASS = conforms, FAIL = deviates, WARN = uses value outside documented enum but value is reasonable, -- = not applicable


2. Common Quality Issues Across Skills

The most significant cross-cutting issue. Multiple skills reference Related Skills that do not exist in the repository. Across the 10 sampled skills, 4 contain broken references. A broader search reveals this is a systemic problem across the full skill set (30+ phantom references found).

Phantom names found in sampled skills:

Phantom Reference Found In Closest Actual Skill
"Data Science Pro" python-pro pandas-pro
"Cloud Architect" terraform-engineer cloud-architect (this one actually exists)
"Security Engineer" terraform-engineer security-reviewer or secure-code-guardian
"Secure Code Guardian" (display name) architecture-designer, security-reviewer secure-code-guardian (exists, but display name differs from H1 title)
"Data Scientist" pandas-pro No equivalent skill

Broader systemic phantoms found across all skills (not just sample):

  • "Backend Developer" (referenced by 6 skills) -- does not exist
  • "Performance Engineer" (referenced by 8 skills) -- does not exist
  • "Data Engineer" (referenced by 3 skills) -- does not exist
  • "TypeScript Expert" (referenced in javascript-pro) -- actual name is typescript-pro
  • "React Developer" (referenced in javascript-pro, typescript-pro) -- actual name is react-expert
  • "Azure Specialist" (referenced in csharp-developer) -- does not exist
  • "IoT Engineer" (referenced in embedded-systems) -- does not exist
  • "Cloud Architect" (referenced by 7 skills) -- actually exists as cloud-architect
  • "Security Engineer" (referenced by 2 skills) -- does not exist

Root cause: Related Skills use human-readable display names (e.g., "Backend Developer") that are not validated against the actual skill inventory. Some are aspirational references to skills that were never created. Others use slightly different display names than the actual skill's H1 title.

2.2 All Skills Fall Below Target Line Count

CLAUDE.md specifies Tier 1 SKILL.md files should be "~80-100 lines." Every sampled skill falls below the target range:

Skill Lines (non-blank) Total Lines
react-expert 78 ~99
nestjs-expert 74 ~95
python-pro 72 ~93
code-reviewer 72 ~93
architecture-designer 69 ~90
feature-forge 75 ~100
debugging-wizard 73 ~94
terraform-engineer 77 ~98
security-reviewer 74 ~95
pandas-pro 76 ~97

When blank lines are included, most files are close to the lower end of the 80-100 range. This is acceptable but means there is no headroom -- no skill invests its "line budget" on skill-specific nuances that would differentiate it from a template fill.

2.3 Core Workflow Step Count Inconsistency

CLAUDE.md specifies "Core workflow (5 high-level steps)." Two sampled skills use 6 steps:

  • debugging-wizard: 6 steps (Reproduce, Isolate, Hypothesize, Test, Fix, Prevent)
  • security-reviewer: 6 steps (Scope, Automated scan, Manual review, Active testing, Categorize, Report)

Both 6-step workflows are domain-justified and arguably better for it. This suggests the "5 steps" guidance may be too rigid, or these skills should be brought into compliance.

2.4 Frontmatter Enum Drift

The CLAUDE.md documents these enums:

  • scope: implementation | review | design | system-design
  • output-format: code | document | report | architecture

Actual values found across the full 65-skill set that fall outside these enums:

Field Non-standard Value Skill(s)
scope analysis debugging-wizard
scope testing playwright-expert, test-master
scope infrastructure kubernetes-specialist, cloud-architect
scope optimization database-optimizer
scope architecture legacy-modernizer
output-format analysis debugging-wizard
output-format manifests kubernetes-specialist
output-format specification api-designer
output-format schema graphql-architect
output-format analysis-and-code database-optimizer
output-format code+analysis legacy-modernizer

These are all reasonable values. The issue is that CLAUDE.md's enum list is incomplete, not that the skills are wrong. The documented enums need to be expanded, or a note added that custom values are permitted.

2.5 Non-Standard Frontmatter Fields

Two fields appear in some skills but are not documented in CLAUDE.md's Frontmatter Requirements:

  • allowed-tools: Used by code-reviewer, spec-miner, security-reviewer (3 skills)

This field is meaningful (restricts which tools the skill can use) but is undocumented. It should either be added to the frontmatter spec or removed from the skills.

2.6 "When to Use" Format Inconsistency

9 of 10 sampled skills use a bullet list under "When to Use This Skill." The exception is security-reviewer, which uses a comma-separated prose paragraph:

text
Code review, SAST, vulnerability scanning, dependency audits, secrets scanning,
penetration testing, reconnaissance, infrastructure/cloud security audits,
DevSecOps pipelines, compliance automation.

This is the only format deviation in the sample but should be standardized for docs site generation.

2.7 Output Templates Format Inconsistency

Most skills use a numbered list under "Output Templates." Two deviate:

  • security-reviewer: Uses inline prose with numbered parentheticals: "Provide: (1) Executive summary... (2) Findings table..."
  • debugging-wizard: Uses bold labels in a numbered list (a richer format than others)

Neither is wrong, but for docs site rendering consistency, a single format should be chosen.

2.8 Attribution Comments in Routing Tables

Three skills contain HTML comments for attribution in their Reference Guide tables:

  • code-reviewer: ``
  • debugging-wizard: Same pattern
  • test-master: Same pattern

These are invisible in rendered markdown but would appear in raw source. For a docs site generator that processes SKILL.md files, these should either be preserved (if attribution is required) or moved to a separate attribution section.


3. Section Order Analysis

The expected section order (derived from CLAUDE.md's Progressive Disclosure Architecture and the majority pattern) is:

text
1. YAML Frontmatter
2. # Title
3. One-line subtitle/description
4. ## Role Definition
5. ## When to Use This Skill
6. ## Core Workflow
7. ## Reference Guide (table)
8. ## Constraints (### MUST DO, ### MUST NOT DO)
9. ## Output Templates
10. ## Knowledge Reference
11. ## Related Skills

All 10 sampled skills follow this exact order, with one exception:

  • feature-forge adds a non-standard ## Pre-Discovery with Subagents section between "Core Workflow" and "Reference Guide." This is the only skill in the sample with an extra section.

This is a strong positive finding: section order is highly consistent.


4. Per-Skill Deviations (Only Where Notable)

4.1 feature-forge

  • Extra section: ## Pre-Discovery with Subagents is a non-standard section not found in other skills. It describes a multi-agent workflow pattern.
  • Tool-specific constraints: References AskUserQuestions tool explicitly in both Core Workflow and Constraints. This is unique among sampled skills and raises a question: should skills reference specific tools by name, or keep tool usage implicit?
  • File output path: Specifies Save as: specs/{feature_name}.spec.md in Output Templates -- the only skill to prescribe a file path.

4.2 security-reviewer

  • "When to Use" is prose, not bullets (see section 2.6 above).
  • Core Workflow has 6 steps instead of 5.
  • Output Templates is prose instead of numbered list.
  • Has allowed-tools field not in the documented frontmatter spec.
  • Overall, this skill deviates more from the template than any other in the sample.

4.3 debugging-wizard

  • Core Workflow has 6 steps instead of 5.
  • scope: analysis and output-format: analysis are outside documented enums.
  • Output Templates uses bold labels (e.g., **Root Cause**:, **Evidence**:) -- richer format than others.

4.4 code-reviewer

  • Has allowed-tools field (undocumented in spec).
  • Attribution HTML comment in Reference Guide table.

4.5 python-pro

  • Phantom Related Skill: References "Data Science Pro" which does not exist.

4.6 terraform-engineer

  • Phantom Related Skill: References "Security Engineer" which does not exist.
  • References "Cloud Architect" which does exist.

4.7 pandas-pro

  • Phantom Related Skill: References "Data Scientist" which does not exist.
  • Only 2 Related Skills listed (fewest in sample; others have 3-4).

4.8 architecture-designer

  • Lowest line count in sample (69 non-blank lines).
  • Related Skills reference names ("Secure Code Guardian") that use different casing/display than the H1 title in the actual skill.

4.9 react-expert, nestjs-expert

No notable deviations. These are the most template-conformant skills in the sample.


5. Docs Site Readiness Assessment

What Works Well for Standalone Pages

  1. Consistent section structure -- The 11-section order is machine-parseable and could directly map to page sections.
  2. YAML frontmatter -- Provides structured metadata for page generation (title, category via scope, output type).
  3. Reference Guide table -- Could generate "See Also" or "Deep Dive" link sections.
  4. Constraints -- MUST DO / MUST NOT DO sections are visually distinctive and could be rendered as callout boxes.
  5. Related Skills -- Natural cross-linking between pages (once phantom references are fixed).

What Is Missing for Standalone Pages

Gap Impact Effort
No skill category/domain field in frontmatter Cannot auto-generate category pages (Frontend, Backend, etc.) Low -- add category field
No version/last-updated field in frontmatter Cannot show freshness on docs site Low -- add version or last-updated field
No short summary separate from description Description is trigger-focused; pages need a human-readable 1-2 sentence summary Medium -- add summary field or derive from subtitle
Related Skills use display names, not slugs Cannot auto-link without a name-to-slug mapping Medium -- switch to slugs or add mapping
Reference Guide paths are relative Docs site needs resolvable links Low -- establish URL convention
No difficulty/complexity indicator Users cannot self-select skills by experience level Low -- add to frontmatter
One-line subtitle has no consistent format Some are "Senior X specializing in Y", some are "Expert X developer..." Low -- standardize template
Knowledge Reference is a comma-separated string Not parseable for tag generation Medium -- convert to YAML list or use triggers for this

6. Template Recommendation

Based on this audit, the ideal SKILL.md structure for docs site generation would be:

text
/* Detailed source-code truncated for AI context efficiency. */

7. Priority-Ranked Recommendations

Critical (Must fix before docs site generation)

  1. Fix all phantom Related Skills references. Audit every skill's Related Skills against the actual inventory of 65 skills. Either correct the display name to match an existing skill's H1 title, or remove the reference. Estimated: 30+ broken references across the full set.

  2. Standardize Related Skills to use resolvable identifiers. Currently these use human-friendly display names that cannot be auto-linked. Options:

    • (a) Use the frontmatter name (slug) as a machine-readable identifier alongside the display name
    • (b) Build a display-name-to-slug mapping table
    • (c) Add a display-name field to frontmatter so the mapping is self-contained
  3. Expand the documented frontmatter enums in CLAUDE.md to match actual usage. Add analysis, testing, infrastructure, optimization, architecture to scope. Add analysis, manifests, specification, schema to output-format.

High (Should fix for quality)

  1. Standardize the "When to Use" section to always use bullet lists, not prose. Fix security-reviewer.

  2. Standardize the "Output Templates" section to always use numbered lists, not inline prose. Fix security-reviewer.

  3. Enforce the 5-step Core Workflow rule or explicitly amend CLAUDE.md to allow 5-6 steps. Two skills (debugging-wizard, security-reviewer) have 6 steps that are domain-justified.

  4. Document the allowed-tools frontmatter field in CLAUDE.md, or decide it belongs in a separate mechanism.

  5. Remove or relocate non-standard sections (feature-forge's "Pre-Discovery with Subagents") into a reference file to maintain the standard section order.

Medium (Should fix for docs site polish)

  1. Add a category frontmatter field for docs site navigation. Values like frontend, backend, language, quality, architecture, design, workflow, infrastructure, security, data, devops, testing would enable auto-generated category index pages.

  2. Add a summary frontmatter field (or standardize the subtitle line) for docs site cards and search results. The current description is trigger-focused and reads awkwardly as a page summary.

  3. Standardize the subtitle line format after the H1. Propose template: "Senior [role] specializing in [1-2 domains] with expertise in [signature capability]."

  4. Convert Reference Guide relative paths to a docs-site-resolvable format, or establish a URL convention that a build step can apply.

Low (Nice to have)

  1. Consider converting Knowledge Reference from comma-separated prose to a YAML list in frontmatter (or a bullet list in the body) for tag generation on the docs site.

  2. Add version or last-updated metadata to frontmatter for docs site freshness indicators.

  3. Standardize Related Skills count to 3-4 per skill. pandas-pro has only 2; some non-sampled skills have 4-5.

  4. Handle attribution HTML comments in routing tables. Decide whether to preserve as-is, move to a footer, or add an attribution frontmatter field.

  5. Consider adding a difficulty or experience-level field to help users self-select appropriate skills.


8. Validation Script Gaps

The existing scripts/validate-skills.py checks YAML parsing, required fields, name format, description prefix, references directory, and count consistency. Based on this audit, the following checks should be added:

  1. Related Skills existence check -- Verify each bold name in Related Skills maps to an actual skill's H1 title or frontmatter name.
  2. Core Workflow step count -- Warn if not exactly 5 (or 5-6 if the standard is amended).
  3. "When to Use" format check -- Ensure section uses bullet list format, not prose.
  4. Frontmatter enum validation -- Check scope and output-format against the expanded (documented) enum list.
  5. Section order check -- Verify sections appear in the canonical order.
  6. Line count check -- Warn if below 80 or above 100 non-blank lines.

9. Summary

The skill set shows strong structural consistency. The 11-section template is followed by all 10 sampled skills, with section order preserved perfectly in 9 of 10 cases. Frontmatter fields are present and well-formed. Descriptions consistently follow the "Use when... Invoke for..." pattern.

The critical gap is phantom Related Skills references -- a systemic issue affecting approximately half the skill set and blocking reliable cross-linking on a docs site. The secondary gap is enum drift in frontmatter values, where actual usage has outgrown the documented specification.

Addressing the Critical and High priority items (8 items) would make the skill set docs-site-ready. The Medium and Low items (9 items) would polish the experience but are not blockers.


Ideas Audit Workflow Docs (`docs/ideas/audit-workflow-docs.md`)

Workflow Documentation Audit Report

Conducted: 2026-02-02
Scope: Workflow commands, command docs, guides, YAML definitions, and cross-references
Method: Full read of all files in scope, cross-referencing YAML definitions against docs


Executive Summary

The workflow documentation is unusually thorough for a project of this size. The WORKFLOW_COMMANDS.md file is a well-structured 876-line reference with mermaid diagrams, input/output tables, and checkpoint documentation. The docs/workflow/ directory provides a clean separation between phase overviews and per-command descriptions, and the YAML definitions are consistent and well-typed.

However, the documentation has grown organically across three layers (README, WORKFLOW_COMMANDS.md, and docs/workflow/) without clear delineation of audience or purpose. This creates significant redundancy, a confusing entry path for new users, and several structural mismatches between what the YAML definitions declare and what the docs describe.

This report documents all findings, organizes them by area, and proposes a restructuring plan for migration to Astro + Starlight.


1. Per-Area Findings

1.1 `docs/WORKFLOW_COMMANDS.md`

Strengths:

  • Comprehensive: covers all four phases with mermaid diagrams, command signatures, process steps, output sections, and publish locations.
  • The Document Flow Summary table (lines 87-97) is an excellent quick-reference artifact.
  • Checkpoint documentation (lines 740-812) is thorough and includes realistic examples with response types.
  • Workflow Variations section (lines 816-838) clearly communicates the three main paths through the system.

Weaknesses:

  • Drift from YAML manifest. The document describes four phases (Discovery, Planning, Execution, Retrospectives) and nine commands. The YAML manifest defines five phases (Intake, Discovery, Planning, Execution, Retrospective) and twelve commands plus one utility. The entire Intake phase (3 commands) is absent from WORKFLOW_COMMANDS.md.
  • Naming inconsistencies. The document uses old command names (create-epic-discovery, synthesize-discovery, approve-synthesis, create-epic-plan, create-implementation-plan) while the YAML manifest uses shorter identifiers (discovery:create, discovery:synthesize, discovery:approve, planning:epic-plan, planning:impl-plan). A reader switching between the two sources will be confused about which name to use.
  • complete-sprint is documented but absent from the manifest. WORKFLOW_COMMANDS.md describes complete-sprint as a command (lines 632-673). The manifest's retrospective phase lists only retrospectives:complete-epic. There is a commands/project/retrospectives/complete-sprint.md implementation file but no .yaml definition file for it. This is either a manifest omission or the command was removed without updating the docs.
  • Common Ground absent. The manifest includes common-ground as a utility command. WORKFLOW_COMMANDS.md does not mention it at all, despite its relevance to the workflow (it can be invoked at any point).
  • Monolithic structure. At 876 lines, the file tries to be both a conceptual introduction and a complete reference. The mermaid diagrams and process descriptions serve a "getting started" reader, while the checkpoint tables and integration points serve a "deep reference" reader. These audiences need different documents.

Recommendations:

  1. Add the Intake phase to WORKFLOW_COMMANDS.md or explicitly state it is a pre-workflow phase documented elsewhere.
  2. Resolve the command naming inconsistency: pick one canonical form (the YAML command identifier) and use it consistently, with aliases noted parenthetically.
  3. Either add complete-sprint to the manifest YAML (with a .yaml definition file) or remove it from WORKFLOW_COMMANDS.md.
  4. Add a brief mention of common-ground as a utility command available during any phase.
  5. For the Astro site, split this into a conceptual overview page and individual command reference pages.

1.2 `docs/workflow/*.md` (Phase Overviews and Command Descriptions)

Strengths:

  • Clean, consistent structure across all 18 files. Every phase overview has Purpose, Commands table, Outputs, Prerequisites, and Next Steps. Every command description has Overview, Inputs table, Outputs table, Prerequisites, and Next Steps.
  • Inputs and outputs match the YAML definitions exactly in all files reviewed. This is strong evidence of either co-generation or disciplined manual maintenance.
  • Next Steps sections create a navigable chain: each doc tells you where to go next, forming a complete user journey.
  • Status badges (**Status:** Planned) on intake commands clearly communicate availability.

Weaknesses:

  • No common-ground phase overview. There is a docs/workflow/common-ground.md command description, but no phase overview that contextualizes it. The manifest lists it under utilities:, not under a phase. The doc structure treats it as though it belongs to a phase.
  • No complete-sprint description. There is no docs/workflow/retrospective-complete-sprint.md. The retrospective phase overview mentions only complete-epic. If complete-sprint is a valid command, it needs a description doc.
  • Phase names are inconsistent. The manifest uses retrospective (singular). WORKFLOW_COMMANDS.md uses Retrospectives (plural). The phase overview file is retrospective-phase.md (singular). The command prefix in the manifest is retrospectives:complete-epic (plural). This inconsistency will cause confusion in code, docs, and URL generation.
  • Relative links may break in a docs site context. All Next Steps links use relative paths like [Planning Phase](planning-phase.md). These work within the docs/workflow/ directory but will need transformation for a docs site with different URL structures.

Recommendations:

  1. Decide whether complete-sprint exists in the system. If yes, create docs/workflow/retrospective-complete-sprint.md and add it to the manifest. If no, remove all references.
  2. Standardize singular vs. plural: the manifest phase name, the YAML command prefix, the docs directory name, and the file naming convention should all agree.
  3. Treat common-ground as a standalone utility in the docs structure (not shoehorned into a phase pattern).

1.3 `docs/COMMON_GROUND.md`

Strengths:

  • Exceptionally well-written conceptual documentation. The Background & Motivation section (lines 16-41) provides genuine insight into the design rationale.
  • The two-phase flow diagram (lines 69-88) clearly illustrates the interactive process.
  • The confidence tiers (ESTABLISHED, WORKING, OPEN) are well-defined with practical examples and behavior descriptions.
  • The use cases section (lines 328-372) maps real scenarios to specific command flags.

Weaknesses:

  • Typo on line 176. "groundin file" should be "grounding file."
  • Overlap with README. The README (lines 182-227) duplicates the confidence tier explanation and the --graph mermaid example. When this content moves to a docs site, the README version should be a brief pointer.
  • No link to the workflow docs. The Related Documentation section links to WORKFLOW_COMMANDS.md and ATLASSIAN_MCP_SETUP.md, but does not link to the docs/workflow/common-ground.md command description or the YAML definition. A reader in the workflow mindset has no bridge from here to the workflow system.
  • No link FROM workflow docs. WORKFLOW_COMMANDS.md does not mention or link to COMMON_GROUND.md at all. The two documentation trees are disconnected.

Recommendations:

  1. Fix the "groundin file" typo.
  2. Add a link to docs/workflow/common-ground.md in the Related Documentation section.
  3. Add a link to docs/COMMON_GROUND.md from within WORKFLOW_COMMANDS.md (perhaps in a "Utility Commands" section).
  4. For the Astro site, deduplicate the README and COMMON_GROUND.md versions of the confidence tier explanation.

1.4 `docs/ATLASSIAN_MCP_SETUP.md`

Strengths:

  • Excellent task-oriented structure. A user can follow from top to bottom and end up with a working setup.
  • Covers both Cloud and Server/Data Center configurations.
  • The Quick Start Checklist (lines 453-461) is a useful verification artifact.
  • Security considerations are thorough: credential protection, read-only mode, space/project filtering, audit trail, and token revocation.
  • Environment variable reference tables (lines 421-449) serve as a quick lookup.

Weaknesses:

  • Only linked from README and COMMON_GROUND.md. WORKFLOW_COMMANDS.md does not link to this guide despite requiring Atlassian integration for all non-intake commands. A user reading the workflow docs and encountering Jira/Confluence references has no pointer to setup instructions.
  • Docker-only approach. The guide assumes Docker. If a user cannot or does not want to run Docker, there is no alternative path (e.g., npx or pip installation of the MCP server).
  • No version pinning guidance. The guide uses :latest for the Docker image. For production workflows, this is risky. A note about pinning to a specific version would be prudent.

Recommendations:

  1. Add a link to ATLASSIAN_MCP_SETUP.md from the Integration Points section of WORKFLOW_COMMANDS.md.
  2. Add a note about version pinning for the Docker image.
  3. Mention alternatives to Docker if available, or explicitly state Docker is required.

1.5 `docs/local_skill_development.md`

Strengths:

  • Solves a real problem clearly: how to test skill changes without releasing.
  • The symlink workflow is well-explained with exact commands.
  • Caveats section (lines 96-113) proactively addresses the most likely failure modes.
  • Quick Reference section (lines 132-149) provides copy-paste commands.

Weaknesses:

  • Orphaned document. No other document in the project links to this file. It is not referenced from README.md, CONTRIBUTING.md, or any guide. A contributor who needs it will not find it through navigation.
  • No mention of the workflow system. The guide covers skill development but says nothing about developing or testing workflow commands. Given that commands have a parallel structure (YAML definitions, description docs, implementation .md files), a contributor working on workflow commands has no equivalent guide.
  • Placeholder paths. The guide uses ``, <name>, <version> as placeholders without providing a concrete example of what these look like for the claude-skills project specifically.

Recommendations:

  1. Link this file from CONTRIBUTING.md and README.md (Documentation section).
  2. Add a section or separate document for workflow command development.
  3. Include one concrete example with actual claude-skills paths alongside the generic placeholders.

1.6 `commands/workflow-manifest.yaml`

Strengths:

  • Clean DAG structure with typed dependency strengths (required vs. recommended).
  • optional: true on discovery phase correctly models the skippable nature of that phase.
  • external_skills reference to feature-forge documents the cross-cutting dependency.
  • run_once: true on intake correctly distinguishes project-level from epic-level phases.

Weaknesses:

  • Missing complete-sprint. The retrospective phase lists only retrospectives:complete-epic. The complete-sprint command exists as an implementation .md file but has no YAML definition and no manifest entry. This is the single largest manifest/docs mismatch.
  • No YAML definition files for intake commands exist as .md implementation files. The YAML path fields point to commands/intake/document-codebase.md, commands/intake/capture-behavior.md, and commands/intake/create-system-description.md. None of these files exist on disk. The YAML status: planned field signals this is expected, but the schema documentation says "Must resolve to an existing file when status: existing" -- so the planned status makes this valid. However, the schema doc does not explicitly state that planned status exempts the path resolution rule.
  • Phase name mismatch. The manifest uses retrospective (singular) but the command identifiers use retrospectives: (plural).

Recommendations:

  1. Resolve the complete-sprint question: add it to the manifest or remove the orphaned .md file.
  2. Make the planned-status path exemption explicit in the schema documentation.
  3. Align the phase name and command prefix (both singular or both plural).

1.7 Command YAML Definitions (Sample of 6)

Strengths:

  • 100% schema compliance across all 12 files reviewed. Every file has command, phase (where applicable), path, description, inputs, outputs, requires, status, argument-hint, and repeat.
  • Input/output types are consistent and match the schema's allowed values.
  • The description field correctly points to the corresponding docs/workflow/*.md file in every case.
  • requires fields accurately distinguish commands needing ticketing/documentation backends from those that do not.

Weaknesses:

  • Intake commands point to non-existent implementation files. commands/intake/document-codebase.yaml has path: commands/intake/document-codebase.md but this file does not exist. Same for the other two intake commands. The status: planned field explains this, but a CI validation step should catch it.
  • common-ground.yaml has no phase field. This is correct per the schema (utilities omit phase), but is inconsistent with the schema documentation which lists phase as required. The schema doc should explicitly state that phase is omitted for utility commands.

Recommendations:

  1. Add a CI validation that verifies path files exist when status: existing.
  2. Clarify in the schema documentation that phase is omitted for utility commands.

2. Workflow Documentation Gap Analysis

Commands Documented vs. Commands in YAML

Command YAML Def Manifest WORKFLOW_COMMANDS.md docs/workflow/ desc Implementation .md
intake:document-codebase Yes Yes NO Yes NO (planned)
intake:capture-behavior Yes Yes NO Yes NO (planned)
intake:create-system-description Yes Yes NO Yes NO (planned)
discovery:create Yes Yes Yes Yes Yes
discovery:synthesize Yes Yes Yes Yes Yes
discovery:approve Yes Yes Yes Yes Yes
planning:epic-plan Yes Yes Yes Yes Yes
planning:impl-plan Yes Yes Yes Yes Yes
execution:execute-ticket Yes Yes Yes Yes Yes
execution:complete-ticket Yes Yes Yes Yes Yes
retrospectives:complete-epic Yes Yes Yes Yes Yes
retrospectives:complete-sprint NO NO Yes NO Yes
common-ground Yes Yes (utility) NO Yes Yes

Phase Overviews

Phase Manifest WORKFLOW_COMMANDS.md docs/workflow/ overview
Intake Yes NO Yes
Discovery Yes Yes Yes
Planning Yes Yes Yes
Execution Yes Yes Yes
Retrospective Yes Yes Yes

Key Gaps

  1. Intake phase entirely absent from WORKFLOW_COMMANDS.md. Three commands undocumented in the primary reference.
  2. complete-sprint exists as implementation and in WORKFLOW_COMMANDS.md but has no YAML definition or manifest entry. This is a ghost command -- documented but not formally defined.
  3. common-ground absent from WORKFLOW_COMMANDS.md. Documented in its own guide (COMMON_GROUND.md) but invisible in the workflow reference.
  4. README claims 9 workflows. The manifest defines 12 commands + 1 utility. The README's Project Workflow Commands table lists 9 commands (matching WORKFLOW_COMMANDS.md, not the manifest). The count depends on whether intake and common-ground are included.

3. Proposed Restructuring for Astro + Starlight

Content Architecture

The existing three-layer documentation (README overview, WORKFLOW_COMMANDS.md reference, docs/workflow/ descriptions) should map to Starlight's built-in structure.

text
Site Structure:
/workflows/                          <- Landing page: DAG diagram, phase cards
/workflows/intake/                   <- Phase overview (from intake-phase.md)
/workflows/intake/document-codebase/ <- Command page (generated from YAML + description .md)
/workflows/intake/capture-behavior/
/workflows/intake/create-system-description/
/workflows/discovery/                <- Phase overview
/workflows/discovery/create/
/workflows/discovery/synthesize/
/workflows/discovery/approve/
/workflows/planning/
/workflows/planning/epic-plan/
/workflows/planning/impl-plan/
/workflows/execution/
/workflows/execution/execute-ticket/
/workflows/execution/complete-ticket/
/workflows/retrospective/
/workflows/retrospective/complete-epic/
/workflows/retrospective/complete-sprint/   <- Only if formalized
/utilities/common-ground/            <- Standalone utility page
/guides/atlassian-setup/             <- Setup guide
/guides/local-development/           <- Development workflow
/guides/getting-started/             <- New: entry point for new users

Page Templates

Phase Overview Page (generated from docs/workflow/{phase}-phase.md + manifest data):

  • Purpose statement
  • DAG position indicator (which phases come before/after)
  • Command cards with status badges
  • Prerequisites
  • Next phase link

Command Reference Page (generated from YAML definition + docs/workflow/{command}.md):

  • Command signature with argument hints
  • Status badge (existing/planned/deprecated)
  • Inputs table (from YAML)
  • Outputs table (from YAML)
  • Requirements badges (ticketing, documentation)
  • Overview narrative (from description .md)
  • Prerequisites
  • Next Steps
  • Phase breadcrumb

Utility Page (for commands like common-ground):

  • Same as command reference but without phase context
  • Links to the conceptual guide (COMMON_GROUND.md)

What to Retire

  • WORKFLOW_COMMANDS.md as a single file. Its content splits across the phase overview pages and command reference pages. The mermaid diagrams move to the phase overview pages. The checkpoint system documentation becomes a standalone guide at /guides/checkpoints/. The integration points section becomes /guides/atlassian-setup/ (merged with current ATLASSIAN_MCP_SETUP.md).
  • Duplicated content in README. The Project Workflow Commands section in README becomes a brief paragraph pointing to /workflows/. The common-ground section in README becomes a brief paragraph pointing to /utilities/common-ground/.

What to Create

  1. Getting Started guide. The biggest gap for new users. Currently, a user must read: README (installation) -> ATLASSIAN_MCP_SETUP.md (MCP config) -> WORKFLOW_COMMANDS.md (understand the system) -> docs/workflow/ files (individual commands). A single "Getting Started with Workflows" guide should walk through: install -> configure Atlassian -> run your first planning cycle.
  2. Checkpoint System guide. Currently buried in WORKFLOW_COMMANDS.md. Deserves its own page since it is a cross-cutting concern.
  3. Workflow FAQ/Troubleshooting. Common questions like "Can I skip discovery?" or "What if a ticket has no implementation details?" are answered implicitly in the docs but not collected anywhere.

4. Recommendations for Standalone Pages

Each docs/workflow/*.md file is close to being a usable standalone page already. To make them fully independent:

Required Additions Per Command Page

  1. Command invocation syntax. Add the actual slash-command syntax at the top. Currently the description docs do not include how to invoke the command (e.g., /project:discovery:create <epic-key>). Only WORKFLOW_COMMANDS.md has this.
  2. Phase context breadcrumb. Add a one-line note: "Part of the Discovery phase. Comes after intake:create-system-description. Feeds into discovery:synthesize."
  3. Requirements callout. Add a visible callout for external dependencies: "Requires: Jira, Confluence. See Atlassian Setup Guide."
  4. Status visibility. The intake commands have a status badge, but the existing commands do not explicitly state they are available. Add a consistent status indicator to all pages.

Required Additions Per Phase Page

  1. DAG context. Add which phases depend on this phase and which this phase depends on (pulling from the manifest's depends_on field).
  2. Skip conditions. For optional phases (discovery), state when and how to skip.
  3. External skill dependencies. The manifest's external_skills field (e.g., feature-forge as prerequisite for discovery) should be surfaced in the phase overview.

5. Priority Ranking

Critical (Must fix before next release)

  1. Resolve complete-sprint status. Either add YAML definition + manifest entry, or remove from WORKFLOW_COMMANDS.md and delete the orphaned implementation file. The current state is contradictory.
  2. Fix phase name inconsistency. retrospective (manifest phase name) vs. retrospectives (command prefix). This will cause bugs in any automated tooling that derives one from the other.
  3. Add Intake phase to WORKFLOW_COMMANDS.md. Three commands are invisible to anyone reading the primary workflow reference.

High (Should fix for docs site launch)

  1. Standardize command naming. Establish one canonical name per command and document aliases. Current state: create-epic-discovery (WORKFLOW_COMMANDS.md) vs. discovery:create (manifest) vs. /project:discovery:create-epic-discovery (full invocation path).
  2. Cross-link COMMON_GROUND.md and WORKFLOW_COMMANDS.md. These are companion documents with zero cross-references.
  3. Cross-link ATLASSIAN_MCP_SETUP.md from WORKFLOW_COMMANDS.md Integration Points section. A reader encountering Jira/Confluence requirements needs the setup guide.
  4. Link local_skill_development.md from CONTRIBUTING.md and README. Currently orphaned.
  5. Fix "groundin file" typo in COMMON_GROUND.md line 176.
  6. Add invocation syntax to each docs/workflow/ command description. Currently, only WORKFLOW_COMMANDS.md shows how to actually invoke commands.

Medium (Should fix for quality)

  1. Clarify schema documentation for planned-status path exemption. The schema says path must resolve to an existing file but does not mention the planned exemption.
  2. Clarify schema documentation for utility command phase omission. The schema says phase is required but utilities omit it.
  3. Create a Getting Started guide. New users face a fragmented onboarding path across 4+ documents.
  4. Deduplicate README and COMMON_GROUND.md confidence tier explanations. Same content appears in both.
  5. Add CI validation for YAML path resolution. Catch broken path references automatically.
  6. Update README workflow count. The README claims 9 workflows. The actual count depends on scope definition. Clarify what "workflow" means (commands? phases?) and update.

Nice-to-Have (Future improvement)

  1. Add a workflow FAQ/troubleshooting page. Collect implicit answers to common questions.
  2. Add version pinning guidance to ATLASSIAN_MCP_SETUP.md. The :latest Docker tag is convenient but risky.
  3. Add a workflow command development guide. local_skill_development.md covers skills but not commands.
  4. Create a checkpoint system standalone guide. Currently buried in WORKFLOW_COMMANDS.md and worth surfacing independently.
  5. Add concrete path examples to local_skill_development.md. Replace generic /<name>/<version> with actual claude-skills values.

6. Cross-Reference Matrix

Documents that should link to each other but currently do not:

From To Missing Link
WORKFLOW_COMMANDS.md COMMON_GROUND.md No mention of common-ground utility
WORKFLOW_COMMANDS.md ATLASSIAN_MCP_SETUP.md No link in Integration Points section
WORKFLOW_COMMANDS.md docs/workflow/intake-phase.md Entire intake phase absent
WORKFLOW_COMMANDS.md docs/workflow/common-ground.md No utility commands section
COMMON_GROUND.md docs/workflow/common-ground.md No link to the workflow-format description
README.md docs/local_skill_development.md Not listed in Documentation section
CONTRIBUTING.md docs/local_skill_development.md Not linked for contributors
SKILLS_GUIDE.md WORKFLOW_COMMANDS.md No cross-reference to workflows
docs/workflow/retrospective-phase.md complete-sprint Phase overview only lists complete-epic

7. Summary Metrics

Metric Count
Total docs files audited 26
Total YAML definitions audited 12
Documentation gaps found 6 (intake in WORKFLOW_COMMANDS, complete-sprint YAML, common-ground in WORKFLOW_COMMANDS, local dev orphan, cross-links, invocation syntax)
Naming inconsistencies found 3 (command names, phase singular/plural, workflow count)
Broken or missing cross-references 9 (see matrix above)
Typos found 1
Files with no inbound links 2 (local_skill_development.md, docs/workflow/workflow-definition-schema.md)
Critical priority items 3
High priority items 6
Medium priority items 6
Nice-to-have items 5

Ideas Documentation Site (`docs/ideas/documentation-site.md`)

Documentation Site

Proposal for a standalone documentation site for the claude-skills project.


Motivation

The Problem

All project content currently lives on github.com/jeffallan/claude-skills. This means:

  • No Google Search Console access — can't see which queries drive traffic, can't submit sitemaps, can't control indexing
  • No control over meta tags — page titles, OpenGraph, structured data are all GitHub's defaults
  • One giant README — 65 skills, 9 workflows, 356 reference files collapsed into a single page
  • No individual skill URLs — a skill can't be linked to, shared, or indexed independently

The Opportunity

Current traffic data (2-week snapshot, Jan 2026) shows strong organic discovery already happening without any SEO effort:

Source Views Unique Visitors
Google 5,532 1,026
github.com 2,646 516
t.co (Twitter/X) 570 208
statics.teams.cdn.office.net (MS Teams) 170 37
chatgpt.com 100 22
claude.ai 58 12
com.reddit.frontpage 49 12
bytedance.larkoffice.com (ByteDance internal) 33 6

Additional metrics: 197 stars, 9.5k downloads (skills.sh), 4,560 unique cloners, 4,008 unique visitors in 2 weeks.

Key signals:

  • Enterprise adoption — traffic from Microsoft Teams and ByteDance's internal Lark platform indicates workplace sharing
  • AI platform discovery — ChatGPT and Claude.ai are referring users organically
  • Google dominance — 1,026 unique visitors from search with zero SEO optimization suggests significant upside once proper pages exist

Issue #69 (Skill Metadata Enhancement) plans to formalize the existing static ## Related Skills sections into typed metadata.* relationships (complementary, prerequisite, alternative). This metadata serves two consumers simultaneously:

  1. Agent runtime — Claude follows structured links to load related skills contextually
  2. Documentation site — The same relationships become real <a href> links between skill pages, creating a dense internal link graph

This is exactly what both classic SEO and LLM retrieval reward:

  • Google uses internal link structure to understand page relationships and distribute authority
  • LLMs doing retrieval follow link structure to build richer context about what the project offers

One schema, two consumers. Relationship data written once in YAML generates both runtime cross-references and HTML internal links.

Issue #100 (Cross-Reference Validation) also becomes dual-purpose — it validates both agent behavior and docs site link integrity.


Hard Requirement: Dual-Format Serving (HTML + Markdown)

The site MUST serve every content page in two formats from the same URL:

  • HTML — for human consumption (styled, navigable, searchable)
  • Markdown — for agent consumption (clean, context-efficient, directly loadable)

Format selection via content negotiation (Accept: text/markdown) or URL convention (e.g., /skills/react-expert.md or ?format=md).

Why This Matters

The docs site isn't just for humans. Agents are a first-class consumer. When an agent needs to understand what react-expert does, it should be able to fetch the markdown directly from the docs site URL — not scrape HTML and hope the conversion is clean.

This turns the entire docs site into an agent-consumable API:

  • llms.txt becomes a routing file pointing agents to markdown endpoints for every skill and command
  • An agent can fetch /skills/react-expert.md and get the same content that generates the HTML page — no lossy HTML-to-markdown conversion
  • The skill's reference files are available at /skills/react-expert/server-components.md — agents can selectively load exactly what they need
  • Workflow commands with typed inputs/outputs are available as structured markdown at /commands/discovery/create.md

Implementation Approaches

Option A: Static .md file co-generation

  • During build, output both index.html and index.md for every page
  • Simple, no runtime logic, works with any CDN/static host
  • URL convention: /skills/react-expert/ (HTML) vs /skills/react-expert/index.md (markdown)

Option B: Content negotiation middleware

  • Server checks Accept header and returns appropriate format
  • Cleaner URLs but requires a server or edge function (not pure static)

Option C: Query parameter

  • /skills/react-expert/?format=md returns markdown
  • Works with edge functions on static hosts (Cloudflare Pages, Vercel)

Recommendation: Option A (static co-generation) as the baseline — it works everywhere, requires no runtime, and the .md files are just the source markdown the site was built from. Options B or C can be layered on later if cleaner URLs are desired.

Impact on Site Generator Selection

This requirement narrows the field. The generator must support outputting both HTML and raw markdown for each content page. This is a build-step concern, not a runtime concern — the generator (or a post-build script) writes both formats to the output directory.

Impact on llms.txt

With dual-format serving, llms.txt evolves from a static summary into a structured index with direct markdown URLs:

text
# Claude Skills
> 65 specialized skills for full-stack developers

## Skills

- [React Expert](/skills/react-expert/index.md): React 18+ with Server Components, hooks, state management
- [NestJS Expert](/skills/nestjs-expert/index.md): NestJS modules, controllers, services, TypeORM/Prisma
- [Python Pro](/skills/python-pro/index.md): Python 3.11+ with type safety, async, pytest
...

## Workflows

- [Discovery Phase](/workflows/discovery/index.md): Research, synthesize, and approve requirements
- [Planning Phase](/workflows/planning/index.md): Analyze codebase and create execution plans
...

Every line is a fetchable markdown URL. An agent reading llms.txt can navigate the entire project without touching HTML.


Architecture: The Autodoc Analogy

The project already has the equivalent of Python's autodoc infrastructure:

Python autodoc Claude Skills equivalent
Package Phase (intake, discovery, planning, execution, retrospective)
Module Skill or Command
Docstring SKILL.md body / command description .md
Type annotations YAML inputs/outputs with typed fields
__init__.py exports workflow-manifest.yaml
Cross-references metadata.* relationships, external_skills, depends_on
Module index page Skills overview / workflow DAG visualization
Sub-module docs Reference files under each skill

A static site generator consumes the existing YAML definitions and markdown files directly — minimal glue code, not a rewrite.

Content Sources (Already Exist)

Source Generates
skills/*/SKILL.md frontmatter Skill index page, per-skill metadata cards
skills/*/SKILL.md body Individual skill pages
skills/*/references/*.md Sub-pages under each skill
commands/*/*.yaml Command reference pages with typed inputs/outputs
commands/workflow-manifest.yaml DAG visualization, phase overview pages
docs/workflow/*.md Phase and command description pages
SKILLS_GUIDE.md Category navigation, decision trees
README.md Landing page (simplified)
CHANGELOG.md Release history page

Content to Create

Content Purpose
llms.txt Structured project summary for LLM discoverability
Landing page Simplified hero + quick start (not the full README)
Search / filter UI Filter skills by category, language, framework
Sitemap Auto-generated from skill/command pages
OpenGraph meta tags Per-skill social previews for link sharing

Proposed Site Structure

text
/                                   ← Landing page (hero, quick start, stats)
/skills/                            ← Skill index (filterable by category)
/skills/react-expert/               ← Generated from SKILL.md
/skills/react-expert/server-components/  ← Generated from references/
/skills/react-expert/performance/        ← Generated from references/
/commands/                          ← Command index
/commands/common-ground/            ← Generated from command YAML + description .md
/workflows/                         ← DAG visualization of all phases
/workflows/discovery/               ← Phase overview (from docs/workflow/discovery-phase.md)
/workflows/discovery/create/        ← Command detail (from YAML + description .md)
/guide/                             ← Skills guide (from SKILLS_GUIDE.md)
/guide/decision-trees/              ← When to use which skill
/changelog/                         ← Release history
/llms.txt                           ← LLM-consumable project summary

Each skill page would include:

  • Frontmatter metadata rendered as structured sidebar (role, scope, triggers)
  • Skill body (workflow, constraints, output templates)
  • Related Skills as internal links (from metadata.* once #69 lands; from static sections until then)
  • Reference files as sub-navigation
  • "Install this skill" code snippet

Each command page would include:

  • Inputs table (from YAML inputs with types)
  • Outputs table (from YAML outputs with types)
  • Requirements badges (ticketing, documentation)
  • Phase context (where it sits in the DAG)
  • Upstream/downstream commands

AI Discoverability: llms.txt

Add an llms.txt file to both the repo root and the docs site root. Content auto-generated from:

  • Skill names, descriptions, and triggers (from SKILL.md frontmatter)
  • Workflow phases and command summaries (from workflow-manifest.yaml)
  • Project stats (skill count, reference count, framework coverage)
  • Installation instructions

This gives LLM retrieval systems (Perplexity, ChatGPT browsing, Claude.ai web search) a structured index without requiring them to parse the full site.


Plan: Documentation Review and Restructure

Phase 1: Audit Current Documentation

Use a technical writing agent to:

  1. Inventory all existing docs — README, SKILLS_GUIDE, CONTRIBUTING, docs/*.md, workflow docs, skill SKILL.md files
  2. Identify redundancy — content duplicated across README, SKILLS_GUIDE, and individual docs
  3. Identify gaps — missing docs, outdated sections, broken cross-references
  4. Assess voice consistency — do all docs follow the same tone, structure, terminology?
  5. Map content to site structure — which existing doc maps to which site page?

Phase 2: Content Restructuring

  1. Separate concerns — README becomes a short landing page pointing to the docs site; detailed content moves to docs
  2. Deduplicate — single source of truth for each topic; other locations link to it
  3. Standardize structure — every skill page follows the same template; every command page follows the same template
  4. Write missing content — landing page copy, category descriptions, getting started guide
  5. Refresh stale content — update any sections referencing old versions or outdated patterns

Phase 3: Complete #69 — Skill Metadata Enhancement (BLOCKING)

This phase must complete before site generator setup. The Astro content collection schemas depend on the finalized metadata structure. Building the site before #69 means defining the schema twice — once provisionally, then again when the metadata spec lands.

#69 determines:

  • What fields exist in SKILL.md frontmatter vs. the metadata.* key
  • How relationship types are structured (complementary, prerequisite, alternative)
  • Whether domain tags, compatibility info, or other new metadata lives under metadata.*
  • The finalized schema that both the agent runtime AND the docs site consume

The content collection schema, the internal link graph, the per-page meta tags, and the llms.txt index all derive from whatever #69 produces. Get the data model right first.

What CAN proceed in parallel with #69:

  • Phase 1 (audit) and Phase 2 (content restructuring) — these are about the docs content, not the schema
  • Evaluating Astro + Starlight with a proof-of-concept using current frontmatter fields
  • Setting up the repo structure for the docs site (Astro project scaffolding)

Phase 4: Site Generator Setup — Astro + Starlight

Decision: Astro + Starlight

After evaluating Docusaurus, Hugo, MkDocs Material, and VitePress against the hard requirements (dual-format output, auto-generation from YAML/markdown, SEO), Astro + Starlight is the recommended choice.

Why Astro wins for this project:

Requirement How Astro Handles It
Dual-format (HTML+MD) Custom endpoints serve raw markdown at /skills/react-expert/index.md alongside HTML at /skills/react-expert/. Supported pattern, not a hack.
Auto-gen from YAML/SKILL.md Content collections: define a schema matching SKILL.md frontmatter, point at skills/*/SKILL.md, pages are auto-generated with typed data. Command YAML files become a second collection.
SEO out of the box 100/100 Lighthouse scores. Auto sitemap, meta tags, OpenGraph. Starlight adds search, navigation, TOC.
Zero JS shipped Pure static HTML by default. No SPA hydration overhead. Instant loads for developers hitting docs from Google or LLM referrals.
Social cards Existing scripts/capture-screenshot.js can be adapted for per-page OG images.

Why not the others:

  • Docusaurus — Best SEO defaults, but ships a React SPA (unnecessary JS weight) and has no native content collection concept. Dual-format requires a custom plugin.
  • Hugo — Only SSG with first-class dual-format output (custom output formats). But Go templating for auto-generation from structured YAML is more manual wiring than Astro content collections. Strong fallback if Astro proves problematic.
  • MkDocs Material — Unique auto social card generation, but weakest on dual-format and programmatic page generation. Too opinionated about directory structure.
  • VitePress — Fast and clean, but less mature plugin ecosystem and no content collections.

Ecosystem fit: The project targets TypeScript/JavaScript developers. Astro uses TypeScript natively. Existing Python scripts (validate-skills.py, update-docs.py) remain as CI validation — the site generator doesn't replace them.

How Content Collections Map to This Project

text
// Astro content collection schema (conceptual)
// IMPORTANT: Final schema depends on #69 metadata enhancement

skills collection:
  source: skills/*/SKILL.md
  schema:
    name: string          ← from frontmatter
    description: string   ← from frontmatter (max 1024 chars)
    triggers: string[]    ← from frontmatter
    role: enum            ← specialist | expert | architect
    scope: enum           ← implementation | review | design | ...
    output-format: enum   ← code | document | report | ...
    metadata:             ← from #69, structure TBD
      related: object[]   ← typed relationships (complementary, prerequisite, etc.)
      domain: string[]    ← domain tags
      ...

commands collection:
  source: commands/**/*.yaml
  schema:
    command: string       ← phase:action identifier
    phase: string         ← intake | discovery | planning | ...
    inputs: object[]      ← typed input definitions
    outputs: object[]     ← typed output definitions
    requires: string[]    ← ticketing | documentation
    status: enum          ← existing | planned | deprecated

workflows collection:
  source: commands/workflow-manifest.yaml
  schema:
    phases: object        ← DAG definition with depends_on edges
    utilities: object[]   ← on-demand commands

Phase 5: Build and Deploy

  1. Define Astro content collection schemas from finalized #69 metadata spec
  2. Build page templates for skills, commands, workflows
  3. Implement dual-format endpoints (HTML + markdown per page)
  4. Generate llms.txt from content collections at build time
  5. Deploy to GitHub Pages with custom domain
  6. Submit sitemap to Google Search Console
  7. Add sponsor badges to site and repo README
  8. Set up GitHub Actions for auto-deploy on push to main

Phase 6: Ongoing Maintenance

  • CI check: validate that every skill/command has a corresponding docs page
  • CI check: validate internal links (extends #100 cross-reference validation)
  • Auto-regenerate llms.txt on release
  • Auto-regenerate sitemap on content changes
  • Content collection schema validation catches broken frontmatter at build time

Dependency Chain

text
#69 Skill Metadata Enhancement
 ├── Docs site content collection schemas (can't finalize without #69)
 ├── #65 Cross-Domain Recommendations (content work, depends on #69)
 ├── #66 Enhanced Routing Logic (better descriptions = better page titles)
 └── Internal link graph (relationship metadata → <a href> links)

#100 Cross-Reference Validation
 └── Docs site link validation (same check, dual purpose)

#68 Skill Dependency Mapping
 └── DAG visualization page on docs site

Phase 1 (Audit) ──────────────────── can start NOW
Phase 2 (Content restructuring) ──── can start NOW
Phase 3 (#69 metadata) ──────────── BLOCKING for site schema
Phase 4 (Astro setup) ───────────── after #69
Phase 5 (Build and deploy) ──────── after Phase 4
Phase 6 (Maintenance) ───────────── ongoing after Phase 5

Open Questions

  1. Custom domain? — docs.claudeskills.dev, skills.jeffallan.dev, or subdirectory of existing site?
  2. Versioned docs? — Do we need docs for multiple versions, or just latest?
  3. Search — Starlight built-in search vs. Algolia DocSearch (free for open source)?
  4. Docs site repo — Same repo (monorepo with /site directory) or separate repo?

Prompts Discovery For Feature Forge (`docs/prompts/discovery-for-feature-forge.md`)

Multi-Agent Discovery Prompt for Feature Forge

Purpose: Use this prompt to trigger parallel skill-invoked discovery across
multiple domains before starting a Feature Forge specification workshop.
The collected findings become input context for the Feature Forge interview,
replacing guesswork with concrete technical evidence.


Prompt

text
/* Detailed source-code truncated for AI context efficiency. */

Usage

Basic Invocation

Replace [FEATURE DESCRIPTION] with your feature summary:

text
I need to define a new feature: user-facing data export that supports CSV and JSON
formats with scheduled recurring exports.

Before we start the Feature Forge specification workshop, run parallel discovery...

Customizing Discovery Agents

Not every feature needs all four discovery tracks. Tailor the subagent list:

Feature Type Recommended Agents
New UI feature Codebase + Architecture
New API endpoint API/Integration + Security + Codebase
Data pipeline Architecture + Security + Codebase
Auth/permissions Security + Architecture + Codebase
Full-stack feature All four agents

Expected Output Flow

text
User provides feature description
    │
    ├─→ [Parallel] Architecture Discovery ──→ Component map, constraints
    ├─→ [Parallel] Security Discovery ──────→ Auth reqs, data sensitivity
    ├─→ [Parallel] Codebase Discovery ──────→ Existing patterns, templates
    └─→ [Parallel] API Discovery ───────────→ Endpoint design, integrations
         │
         ▼
    Synthesized Discovery Summary
         │
         ▼
    AskUserQuestions: Key decisions from discovery
         │
         ▼
    Feature Forge Interview (informed by discovery context)
         │
         ▼
    EARS Specification Document

Design Rationale

This prompt applies the ReAct + Chain-of-Thought pattern from prompt engineering:

  • ReAct: Each subagent acts as a reasoning-action step — it invokes a skill (action),
    collects findings (observation), then feeds results forward.
  • Chain-of-Thought: The synthesis step forces explicit reasoning about how discovery
    findings connect before entering the Feature Forge interview.
  • Structured Elicitation: Key decisions surface as AskUserQuestions with options
    derived from technical evidence, not assumptions.

The parallel execution pattern reduces total discovery latency — all four agents run
concurrently rather than sequentially asking the user about each domain.


Skill Ideas Tarot (`docs/skill-ideas/tarot.md`)

Tarot-Inspired Skill Ideas

High-level concepts mapping tarot archetypes to agent behaviors. Each archetype provides a memorable invocation pattern and a distinct cognitive mode.


The Fool (In Progress)

Archetype: The court jester who speaks truth to power.

Purpose: Domain-agnostic critical reasoning with 5 modes — Socratic questioning, Hegelian dialectic, pre-mortem, red teaming, and evidence audit. Uses AskUserQuestions for mode selection.

Trigger: "play the fool", "devil's advocate", "challenge this"

Status: Full plan at docs/skill-ideas/the-fool.md


The Hermit

Archetype: The seeker who withdraws to understand before acting.

Purpose: Deep research and reflection. When you need to step back from implementation and truly understand something first. Systematic codebase archaeology, reading documentation thoroughly, tracing data flows end-to-end. The opposite of "let me just try something."

Trigger: "I need to understand this before touching it"

Gap filled: No existing skill enforces a read-only investigation phase before action. Debugging-wizard investigates bugs; The Hermit investigates systems — how they work, why they were built this way, what the original authors intended.

Possible modes:

  • Trace a data flow end-to-end
  • Map the dependency graph of a concept
  • Reconstruct the decision history (git archaeology)
  • Build a mental model before proposing changes

The Tower

Archetype: Lightning strikes — the old structure falls so something better can rise.

Purpose: Controlled demolition and rebuild. When something is fundamentally broken and incremental fixes won't work. Guides tearing down and rebuilding: legacy system replacement, major refactors, ripping out a bad abstraction.

Trigger: "this needs to be torn down and rebuilt"

Gap filled: Legacy-modernizer focuses on incremental migration (strangler fig). The Tower is for when incremental isn't viable — you need a clean break with a structured rebuild plan.

Possible modes:

  • Blast radius assessment (what breaks if we remove this?)
  • Parallel build strategy (new system alongside old)
  • Cut-over planning (the moment of switch)
  • Rollback design (if the new thing fails)

The Wheel of Fortune

Archetype: The turning wheel — fate, chance, and multiple possible futures.

Purpose: Scenario planning under genuine uncertainty. Not "what could go wrong" (that's The Fool's pre-mortem) but mapping multiple possible futures and building strategies robust across them. Decision-making when you genuinely don't know which way things will go.

Trigger: "we don't know which way this will go"

Gap filled: No existing skill handles multi-scenario planning. Architecture-designer evaluates trade-offs for a known context; The Wheel of Fortune plans for unknown contexts.

Possible modes:

  • Scenario generation (3-4 plausible futures)
  • Strategy robustness testing (does this plan work across scenarios?)
  • Optionality analysis (which choice preserves the most future options?)
  • Trigger identification (what signals tell us which scenario is unfolding?)

The Magician

Archetype: Manifestation — turning idea into reality with the tools at hand.

Purpose: Rapid prototyping and proof of concept. Takes an idea and manifests the simplest possible working version to test feasibility. Ruthlessly YAGNI. "Show me the smallest thing that proves this works."

Trigger: "can we even do this?", "prove this works"

Gap filled: Feature-forge defines requirements; The Magician skips requirements and builds the thinnest possible slice to answer a feasibility question. Complements feature-forge — use The Magician to validate assumptions before writing specs.

Possible modes:

  • Feasibility spike (can the technology do this at all?)
  • Integration probe (can these two systems talk to each other?)
  • Performance experiment (will this approach scale?)
  • UX sketch (does this interaction model make sense?)

The High Priestess

Archetype: Intuition and hidden knowledge — seeing what others miss.

Purpose: Pattern recognition and intuition translation. When something "feels wrong" but you can't articulate why. Translates gut feelings into concrete technical concerns. Examines code smells, architectural drift, naming inconsistencies — the subtle signals that something is off.

Trigger: "something about this doesn't feel right"

Gap filled: Code-reviewer checks against known standards. The High Priestess investigates the unnamed — the patterns that don't match, the drift from original intent, the subtle wrongness that no linter catches.

Possible modes:

  • Code smell archaeology (what changed and when did it start drifting?)
  • Naming analysis (do the names still match what the code does?)
  • Architectural consistency (does this component belong here?)
  • Implicit contract detection (what undocumented assumptions does this code rely on?)

The Star

Archetype: The guiding light — hope, purpose, and true north.

Purpose: North star alignment. When you're deep in implementation weeds and need to reconnect with the original vision. Checks current work against stated goals, user needs, and project values. Detects scope creep, gold plating, and mission drift.

Trigger: "are we still building the right thing?"

Gap filled: No existing skill checks alignment between work-in-progress and original intent. Feature-forge defines the target; The Star checks whether you're still pointed at it.

Possible modes:

  • Goal alignment audit (does this PR serve the stated objective?)
  • Scope creep detection (what got added that wasn't in the spec?)
  • User value check (does the end user actually benefit from this work?)
  • Simplification pass (what can be removed and still deliver the value?)

Death

Archetype: Transformation — endings that enable new beginnings.

Purpose: Graceful deprecation and migration. Not destruction (that's The Tower) but transition. Guides sunsetting features, migrating users, deprecation timelines, and backward compatibility strategies. The art of ending things well.

Trigger: "we need to retire this"

Gap filled: Overlaps with legacy-modernizer but with a different focus. Legacy-modernizer transforms old into new; Death manages the ending — communication, migration paths, timeline, and the social/organizational aspects of removing something people depend on.

Possible modes:

  • Impact assessment (who uses this and how?)
  • Migration path design (where do users go instead?)
  • Deprecation timeline (warnings, soft removal, hard removal)
  • Tombstone documentation (why was this removed, and what replaced it?)

The Emperor

Archetype: Order, structure, authority — the rules of the realm.

Purpose: Governance and standards enforcement. Audits a codebase or project against its own stated standards. Checks that conventions are followed, ADRs are respected, and architectural boundaries aren't violated. Not inventing rules — enforcing the ones already committed to.

Trigger: "are we following our own rules?"

Gap filled: Overlaps with code-reviewer but scoped differently. Code-reviewer evaluates individual PRs; The Emperor evaluates systemic compliance across the whole project. Checks ADRs, CONTRIBUTING.md, architectural decision records, and stated conventions.

Possible modes:

  • Convention audit (are naming patterns, file structures consistent?)
  • ADR compliance (are architectural decisions being followed?)
  • Boundary check (are module boundaries respected?)
  • Drift detection (where has the codebase diverged from stated standards?)

Overlap Analysis

Skill Overlaps With Distinction
The Fool Common Ground, Code Reviewer Multi-mode critical reasoning vs. assumption surfacing vs. code-level review
The Hermit Spec Miner, Debugging Wizard Understanding systems vs. extracting specs vs. finding bugs
The Tower Legacy Modernizer Clean break rebuild vs. incremental migration
The Wheel of Fortune Architecture Designer Unknown futures vs. known trade-offs
The Magician Feature Forge Feasibility proof vs. requirements definition
The High Priestess Code Reviewer Unnamed intuitions vs. known standards
The Star Feature Forge Alignment check vs. initial specification
Death Legacy Modernizer Graceful ending vs. transformation
The Emperor Code Reviewer Systemic compliance vs. individual PR review

Strongest unique concepts (no significant overlap): The Hermit, The Wheel of Fortune, The High Priestess, The Star

Interesting but overlapping (need clear boundary with existing skills): The Tower, Death, The Emperor, The Magician


Skill Ideas The Fool (`docs/skill-ideas/the-fool.md`)

Plan: `the-fool` Skill

Summary

Create a domain-agnostic critical reasoning skill with 5 modes, rooted in the archetype of the Fool — the one who speaks truth to power. Uses AskUserQuestions for mode selection. Invoked organically mid-conversation with "play the fool" as mandatory trigger.

File Structure

text
skills/the-fool/
  SKILL.md                              (~95 lines)
  references/
    socratic-questioning.md             (~150 lines)
    dialectic-synthesis.md              (~150 lines)
    pre-mortem-analysis.md              (~200 lines)
    red-team-adversarial.md             (~150 lines)
    evidence-audit.md                   (~150 lines)
    mode-selection-guide.md             (~100 lines)

SKILL.md Design

Frontmatter

yaml
---
name: the-fool
description: Use when challenging ideas, plans, decisions, or proposals using structured critical reasoning. Invoke to play the fool, devil's advocate, pre-mortem, red team, or evidence audit.
triggers:
  - play the fool
  - devil's advocate
  - challenge this
  - stress test
  - poke holes
  - what could go wrong
  - red team
  - pre-mortem
  - test my assumptions
role: expert
scope: review
output-format: report
---

Role Definition

The Fool — the court jester who alone could speak truth to the king. Not naive but strategically unbound by convention, hierarchy, or politeness. Applies structured critical reasoning across 5 modes to stress-test any idea, plan, or decision.

When to Use

  • Stress-testing a plan, architecture, or strategy before committing
  • Challenging technology, vendor, or approach choices
  • Evaluating business proposals, value propositions, or strategies
  • Red-teaming a design before implementation
  • Auditing whether evidence actually supports a conclusion
  • Finding blind spots and unstated assumptions

Core Workflow (5 steps)

  1. Identify (Thesis) — Extract the user's position from conversation context. Restate it as a steelmanned thesis for confirmation.
  2. Select (Method) — Use AskUserQuestions to let the user choose a reasoning mode, or auto-recommend based on context signals.
  3. Challenge (Antithesis) — Apply the selected mode's method. Load the corresponding reference file for deep guidance.
  4. Engage (Dialogue) — Present findings. Ask the user to respond to the strongest 2-3 points before proceeding.
  5. Synthesize (Resolution) — Integrate insights into a strengthened position. Offer to run a second pass with a different mode.

5 Reasoning Modes

Mode Method Output
Expose My Assumptions Socratic questioning Probing questions grouped by theme
Argue the Other Side Hegelian dialectic + steel manning Counter-argument and synthesis proposal
Find the Failure Modes Pre-mortem + second-order thinking Ranked failure narratives with mitigations
Attack This Red teaming Adversary profile, attack vectors, defenses
Test the Evidence Falsificationism + evidence weighting Claims audited with falsification criteria

AskUserQuestions Integration

Mode Selection Question:

text
Header: "Challenge Mode"
Question: "How should I challenge this?"

Options:
1. "Expose my assumptions" — Ask me the hard questions I haven't asked myself
2. "Argue the other side" — Build the strongest counter-argument and drive toward synthesis
3. "Find the failure modes" — Assume this fails and tell me why
4. "Attack this" — Think like an adversary looking for weaknesses
5. "You choose" — Recommend the best approach based on context

If "You choose" is selected, skill analyzes context signals and recommends 1-2 modes with rationale, then confirms with a follow-up AskUserQuestions.

Reference Routing Table

Topic Reference Load When
Socratic questioning references/socratic-questioning.md "Expose my assumptions" mode selected
Dialectic & synthesis references/dialectic-synthesis.md "Argue the other side" mode selected
Pre-mortem analysis references/pre-mortem-analysis.md "Find the failure modes" mode selected
Red team adversarial references/red-team-adversarial.md "Attack this" mode selected
Evidence audit references/evidence-audit.md "Test the evidence" mode selected
Mode selection guide references/mode-selection-guide.md "You choose" selected, or skill needs to auto-recommend

Constraints

MUST DO:

  • Steelman the thesis before challenging it (restate in strongest form)
  • Use AskUserQuestions for mode selection — never assume which mode
  • Ground challenges in specific, concrete reasoning (not vague "what ifs")
  • Maintain intellectual honesty — concede points that hold up
  • Drive toward synthesis or actionable output (never leave the user with just objections)
  • Adapt challenge depth to the domain and stakes
  • Limit challenges to 3-5 strongest points (depth over breadth)
  • Ask user to engage before synthesizing

MUST NOT DO:

  • Strawman the user's position
  • Generate challenges for the sake of disagreement
  • Be nihilistic or purely destructive
  • Stack minor objections to create false impression of weakness
  • Skip synthesis (never leave the user with just a pile of problems)
  • Override domain expertise with generic skepticism
  • Output mode selection as plain text when AskUserQuestions can provide structured options
  • Common Ground — Surface hidden assumptions (use before the-fool)
  • Architecture Designer — Document refined decisions as ADRs (use after the-fool)
  • Code Reviewer — Structured critique of implementations (tactical counterpart)
  • Feature Forge — Requirements elicitation (challenge specs after forging)

Reference File Designs

1. `references/socratic-questioning.md` (~150 lines)

Structured question frameworks for exposing assumptions:

  • Question categories: definitional, evidential, logical, perspective-shifting, consequential
  • Domain-adapted question banks (technical, business, strategic)
  • Detection signals for unstated assumptions ("obviously", "everyone knows", "it just makes sense")
  • Output template: Assumption Inventory + Probing Questions grouped by theme + Suggested Experiments

2. `references/dialectic-synthesis.md` (~150 lines)

Hegelian dialectic with steel manning:

  • How to construct a proper antithesis (not a strawman)
  • Steel manning technique: strengthen the opposing position before arguing it
  • Reductio ad absurdum as a supporting technique
  • Synthesis patterns: conditional, scope partitioning, temporal, risk mitigation, hybrid extraction
  • Synthesis quality checklist and anti-patterns
  • Confidence assessment: HIGH / MEDIUM / LOW / PIVOT
  • Output template: Thesis Restated + Antithesis Argued + Synthesis Proposed

3. `references/pre-mortem-analysis.md` (~200 lines)

Pre-mortem with second-order thinking:

  • How to run a pre-mortem (assume failure, explain why)
  • Failure narrative construction (specific > generic)
  • Second-order consequence chains (first → second → third order effects)
  • Inversion technique ("what guarantees failure?")
  • Domain-specific failure patterns: technical (scaling, integration, migration), business (adoption, competition, timing), process (timeline, dependencies, stakeholders)
  • Output template: Failure Narratives (ranked) + Early Warning Signs + Mitigations

4. `references/red-team-adversarial.md` (~150 lines)

Adversarial thinking and red teaming:

  • Adversary persona construction (competitor, attacker, disgruntled user, regulator)
  • Attack vector identification by domain
  • Perverse incentive detection ("how will people game this?")
  • Competitive response analysis
  • Output template: Adversary Profile + Attack Vectors (ranked by likelihood x impact) + Defenses

5. `references/evidence-audit.md` (~150 lines)

Falsificationism and evidence quality:

  • Popper's key question: "What would disprove this?"
  • Claim extraction from proposals
  • Falsification criteria design
  • Evidence quality assessment (sample size, representativeness, recency, relevance)
  • Cognitive biases in evidence evaluation (confirmation, survivorship, anchoring, availability)
  • Competing explanations (abductive reasoning)
  • Output template: Claims Extracted + Falsification Criteria + Evidence Quality + Alternative Explanations

6. `references/mode-selection-guide.md` (~100 lines)

Context signals for auto-recommending modes:

  • Signal-to-mode mapping table (user phrases → recommended mode)
  • Decision type mapping (trade-offs → dialectic, execution plans → pre-mortem, etc.)
  • Domain mapping (security → red team, data claims → evidence audit, etc.)
  • Multi-mode sequencing recommendations (e.g., "Socratic first, then dialectic")

Updates to Existing Files

SKILLS_GUIDE.md

  • Add to Workflow category (or new Critical Thinking category):
    The Fool — Challenge ideas and decisions with 5 structured reasoning modes
  • Add Critical Thinking decision tree:
    • Surface Assumptions → Common Ground
    • Challenge Decisions → The Fool
    • Evaluate Code → Code Reviewer
    • Audit Security → Security Reviewer
  • Add Decision Validation workflow:
    1. Common Ground (surface assumptions)
    2. The Fool (stress-test the decision)
    3. Architecture Designer (document refined decision)

Implementation Order

  1. Create skills/the-fool/SKILL.md
  2. Create skills/the-fool/references/mode-selection-guide.md
  3. Create skills/the-fool/references/socratic-questioning.md
  4. Create skills/the-fool/references/dialectic-synthesis.md
  5. Create skills/the-fool/references/pre-mortem-analysis.md
  6. Create skills/the-fool/references/red-team-adversarial.md
  7. Create skills/the-fool/references/evidence-audit.md
  8. Update SKILLS_GUIDE.md with new skill entry

Verification

  1. python scripts/validate-skills.py --skill the-fool — verify YAML, description format, references
  2. python scripts/update-docs.py --check — verify counts are in sync
  3. Manually verify trigger phrases match natural invocation patterns
  4. Review each reference file stays within 100-600 line bounds

Key Files to Reference During Implementation

  • skills/feature-forge/SKILL.md — AskUserQuestions integration pattern
  • skills/feature-forge/references/interview-questions.md — Structured question flow examples
  • skills/code-reviewer/SKILL.md — Review-scope skill with routing table
  • commands/common-ground.md — Interactive multi-phase dialogue pattern
  • SKILLS_GUIDE.md — Category placement and decision tree format

Workflow Common Ground (`docs/workflow/common-ground.md`)

common-ground

Surface and validate Claude's hidden assumptions about the project for user confirmation. Invocable on-demand at any point in the workflow.


Overview

Claude often operates on assumptions about project context, technology choices, coding standards, and user preferences. This utility command surfaces those assumptions for explicit validation. It scans configuration files, reviews conversation context, classifies assumptions by type and confidence tier (OPEN, WORKING, ESTABLISHED), and presents them for user review via an interactive two-phase flow. Assumptions are persisted to a ground file for future reference. Optional modes include read-only listing (--list), quick validation (--check), and reasoning graph generation (--graph).

Inputs

Name Type Required Description
list flag no Read-only view of all tracked assumptions
check flag no Quick validation of current assumptions
graph flag no Generate mermaid diagram of reasoning structure

Outputs

Name Type Path Description
ground-file file ~/.claude/common-ground/{project-id}/COMMON-GROUND.md Human-readable assumptions organized by confidence tier
ground-index file ~/.claude/common-ground/{project-id}/ground.index.json Machine-readable assumption index

Prerequisites

  • Access to the project codebase (for configuration scanning)
  • No external tooling required

Usage

Can be invoked at any point during the workflow — during intake, before planning, mid-execution, or whenever assumptions are building up. There is no prescribed moment; use judgment.


Workflow Discovery Approve (`docs/workflow/discovery-approve.md`)

discovery:approve

Review synthesis findings, resolve blocking decisions, and create implementation tickets in the ticketing system.


Overview

The agent fetches the synthesis document, extracts the proposed tickets JSON, and walks through any unresolved blocking decisions interactively. After all decisions are resolved, it presents the full ticket list for review and editing (add, remove, modify). Upon approval, it creates tickets in Jira under the target epics with full descriptions, acceptance criteria, and discovery traceability links. The synthesis document is updated with approval status and created ticket keys.

Inputs

Name Type Required Description
synthesis-url url yes Confluence URL of the synthesis document to approve
decisions list[string] no Pre-resolved blocking decisions (e.g., --decision=D1:B --decision=D2:Y)

Outputs

Name Type Description
created-tickets tickets Jira tickets created in target implementation epics, linked to discovery epic, with full descriptions and acceptance criteria

Prerequisites

  • Synthesis document created via discovery:synthesize
  • Jira and Confluence access configured

Next Steps

After tickets are created, proceed to planning:epic-plan to create the stakeholder-readable overview for the target implementation epic.


Workflow Discovery Create (`docs/workflow/discovery-create.md`)

discovery:create

Create a structured discovery workspace with research questions, hypotheses, and a research plan for a given topic.


Overview

Given an epic key, the agent fetches the epic and its linked tickets, extracts explicit and implicit questions, categorizes them by theme (customer discovery, technical feasibility, business viability, scope boundaries), and identifies appropriate research methods. The output is a published Confluence discovery document that structures the human research phase.

Inputs

Name Type Required Description
epic-key string yes Jira epic key for the discovery epic (e.g., CC-60)

Outputs

Name Type Path Description
discovery-document url /epics/Discovery/{epic-key}/ Confluence page with hypothesis map, research questions matrix, dependencies, research plan, decision framework, and risk register

Prerequisites

  • Epic exists in Jira with linked tickets
  • Jira and Confluence access configured

Next Steps

After the discovery document is created, humans conduct research (interviews, spikes, competitive analysis). When research is complete, run discovery:synthesize with the discovery document URL and any additional research artifact URLs.


Workflow Discovery Phase (`docs/workflow/discovery-phase.md`)

Discovery Phase

Optional research phase triggered when feature-forge identifies unknowns that require human investigation before planning can proceed.


Purpose

Not every feature needs discovery. When the feature-forge interview surfaces questions that cannot be answered from existing knowledge — user interviews needed, competitive analysis required, technical spikes pending — those unknowns route here. Discovery provides structure for research and converts findings into actionable epics and tickets.

Commands

Order Command Summary
1 discovery:create Create a structured discovery workspace with research questions and hypotheses
2 discovery:synthesize Consolidate research artifacts into findings, recommendations, and proposed tickets
3 discovery:approve Resolve blocking decisions and create tickets in the ticketing system

Between steps 1 and 2, humans conduct the actual research: user interviews, technical spikes, competitive analysis, design sprints.

Outputs

  • Discovery document — Research questions, hypotheses, research plan
  • Synthesis document — Consolidated findings, recommendations, proposed tickets with blocking decisions
  • Tickets — Epics and tickets created in the ticketing system, grounded in research

Prerequisites

  • Feature-forge spec with Discovery Recommendation section (recommended)
  • Ticketing system access (Jira)
  • Documentation system access (Confluence)

External Skills

  • feature-forge — Produces the spec that identifies unknowns triggering discovery

Next Steps

After discovery, proceed to the Planning Phase to create the epic plan and implementation plan from the created tickets.


Workflow Discovery Synthesize (`docs/workflow/discovery-synthesize.md`)

discovery:synthesize

Consolidate research artifacts from multiple sources into actionable findings, recommendations, and proposed tickets.


Overview

The agent fetches all provided source documents (discovery docs, interview summaries, spike reports, competitive analyses), performs cross-source analysis to identify themes and contradictions, generates feature recommendations mapped to target epics, and produces a comprehensive synthesis document. The synthesis includes a machine-readable proposed tickets section (JSON) that the approval command consumes.

Inputs

Name Type Required Description
source-urls list[url] yes One or more Confluence document URLs to synthesize
target string no Target implementation epic key (e.g., --target=CC-62). Auto-detected from sources if omitted.

Outputs

Name Type Path Description
synthesis-document url /epics/Discovery/{discovery-epic-key}/Synthesis/ Confluence page with consolidated findings, validated/invalidated hypotheses, recommendations by epic, blocking decisions, and proposed tickets JSON

Prerequisites

  • Discovery document created via discovery:create
  • Human research completed with artifacts accessible via URL
  • Jira and Confluence access configured

Next Steps

Review the synthesis document. When ready, run discovery:approve with the synthesis URL to resolve blocking decisions and create tickets in the ticketing system.


Workflow Execution Complete Ticket (`docs/workflow/execution-complete-ticket.md`)

execution:complete-ticket

Finalize a ticket after execution by transitioning Jira to "In Review" and updating the implementation plan with completion details.


Overview

The agent identifies the completed ticket (from argument or conversation context), gathers completion details from the execution summary, confirms the finalization plan with the user, then transitions the Jira ticket to "In Review" and updates the implementation plan's completion status, execution order, and parallel wave tables. It also records detailed completion notes including changes made, tests added, deviations, and follow-up tickets. Can be used standalone if the user provides completion details manually.

Inputs

Name Type Required Description
ticket-key string no Jira ticket key to complete. Optional if context is available from a prior execute-ticket invocation.

Outputs

Name Type Description
transitioned-ticket tickets Jira ticket moved to "In Review" status
updated-plan url Implementation plan updated with completion details and status tracking

Prerequisites

  • Ticket executed via execution:execute-ticket (or manual completion details provided)
  • Implementation plan URL available (from ticket description or user)
  • Jira and Confluence access configured

Next Steps

Repeat execute-ticket + complete-ticket for the next ticket. After all tickets in the epic are complete, run retrospectives:complete-epic.


Workflow Execution Execute Ticket (`docs/workflow/execution-execute-ticket.md`)

execution:execute-ticket

Implement a ticket by following its self-contained implementation details: write failing tests, write code until they pass, verify acceptance criteria.


Overview

Given a ticket key, the agent fetches the ticket's self-contained implementation details, reviews the implementation plan for wave/dependency context, explores the codebase for relevant patterns, and checks for parallel execution opportunities (other tickets in the same wave), delegating to specialized agents where that helps. Before touching production code, the agent writes failing tests for the acceptance criteria and records that each one fails for the reason the ticket describes. It then follows the implementation steps until the tests pass, refactors with the tests green, and verifies all acceptance criteria. Tickets with no code use a stand-in check (a validator, a grep, a fixture run) with its own RED result. Deviations from the plan require explicit user approval at a checkpoint. The output is a completion summary with suggested commit message.

Inputs

Name Type Required Description
ticket-key string yes Jira ticket key to execute (e.g., CC-123)

Outputs

Name Type Description
completion-summary report Changes made, files modified/created, tests added with their RED results, deviations from plan, follow-up tickets, suggested commit message

Prerequisites

  • Ticket with self-contained implementation details (from planning:impl-plan)
  • All blocking tickets complete (checked via Jira status)
  • Ticketing system access (Jira)

Next Steps

After execution, review the changes and create a git commit. Then run execution:complete-ticket to transition the Jira ticket and update the implementation plan.


Workflow Execution Phase (`docs/workflow/execution-phase.md`)

Execution Phase

Per-ticket implementation loop where code gets written, tested, and verified against acceptance criteria.


Purpose

Execution is where the implementation plan becomes working code. The phase is split into two commands per ticket: execute-ticket for implementation and complete-ticket for finalization. This split exists because implementations can be long, conversations may need compacting, and completion tracking was being dropped when bundled with execution.

Commands

Order Command Repeat Summary
1 execution:execute-ticket per ticket Implement the ticket: write code, create tests, verify acceptance criteria
2 execution:complete-ticket per ticket Transition Jira status, update implementation plan with completion details

Steps 1-2 repeat for every ticket in the epic. Parallel execution waves (defined in the implementation plan) allow multiple tickets to be worked simultaneously.

Outputs

  • Implemented code — Code changes following the self-contained ticket instructions
  • Tests — Unit, integration, and E2E tests as specified
  • Completion summary — Changes made, files modified, tests added, deviations from plan
  • Updated plan — Implementation plan status tables updated with completion details
  • Transitioned tickets — Jira tickets moved to "In Review"

Prerequisites

  • Implementation plan with self-contained tickets (from planning phase)
  • Ticketing system access (Jira)
  • Documentation system access (Confluence) for complete-ticket

Next Steps

After all tickets in the epic are complete, proceed to the Retrospective Phase to close the epic and generate the completion report.


Workflow Intake Capture Behavior (`docs/workflow/intake-capture-behavior.md`)

intake:capture-behavior

Scan for untested behavior and write characterization tests that assert current functionality as a safety net for future changes.

Status: Planned


Overview

The agent identifies functions, endpoints, and components with no test coverage and builds a test plan based on what the code currently does — not what it should do. These characterization tests capture existing behavior so that future changes will immediately surface regressions. Tests are run against the live code to verify they pass before being committed.

Inputs

Name Type Required Description
directory string no Root directory to scan for untested behavior. Defaults to project root.

Outputs

Name Type Description
characterization-tests file Test files asserting current behavior
coverage-report report Summary of behavior captured and coverage added

Prerequisites

  • Documented codebase (from intake:document-codebase)
  • Project test framework configured and runnable

Next Steps

After capturing behavior, run intake:create-system-description to generate the living system description.


Workflow Intake Create System Description (`docs/workflow/intake-create-system-description.md`)

intake:create-system-description

Launch parallel analysis threads to produce a SOC2-style living document covering architecture, API surface, security patterns, and external dependencies.

Status: Planned


Overview

The agent runs parallel analysis: one thread maps the architecture (services, databases, queues), another catalogs the API surface area, another traces security patterns (auth, encryption, access controls), and another maps external dependencies. The output is docs/system-description.md — a system overview suitable for an auditor or a new senior engineer. This document becomes the shared context for all subsequent workflow phases, and is incrementally updated during execution and holistically reviewed during retrospective.

Inputs

Name Type Required Description
directory string no Root directory to analyze. Defaults to project root.

Outputs

Name Type Path Description
system-description file docs/system-description.md Living document: architecture, API surface, security, deployments, third-party dependencies

Prerequisites

  • Documented codebase (from intake:document-codebase)
  • Characterization tests (from intake:capture-behavior)

Next Steps

The system description is complete. Feature-forge reads it during feature definition. If discovery is needed, proceed to discovery:create. Otherwise, proceed directly to planning:epic-plan.


Workflow Intake Document Codebase (`docs/workflow/intake-document-codebase.md`)

intake:document-codebase

Scan the entire codebase and generate documentation for all undocumented functions, classes, modules, and endpoints.

Status: Planned


Overview

The agent scans the codebase, identifies every function, class, module, and endpoint that lacks documentation, and prioritizes public APIs and external-facing interfaces first. Before generating anything, it presents a scope summary for approval. It then generates docstrings/JSDoc/XML docs throughout the codebase so that any developer or agent can understand function signatures without tracing implementations.

Inputs

Name Type Required Description
directory string no Root directory to scan. Defaults to project root.

Outputs

Name Type Description
documentation-report report Summary of documentation added: function count, class count, module count

Prerequisites

  • Access to the project codebase
  • No external tooling required

Next Steps

After documenting the codebase, run intake:capture-behavior to create characterization tests for the newly-documented code.


Workflow Intake Phase (`docs/workflow/intake-phase.md`)

Intake Phase

One-time project onboarding that establishes baseline understanding of an existing codebase. Run once when first adopting a project; results feed every subsequent phase.


Purpose

Before any feature work begins, the team needs documented code, behavioral safety nets, and a shared system overview. Intake produces all three artifacts in sequence.

Commands

Order Command Summary
1 intake:document-codebase Scan and document all undocumented functions, classes, and modules
2 intake:capture-behavior Write characterization tests asserting current behavior
3 intake:create-system-description Generate a living system description at docs/system-description.md

Outputs

  • Documented codebase — Docstrings/JSDoc/XML docs on every public API and module
  • Characterization tests — Safety net that detects unintended behavior changes
  • System description — Architecture overview, API surface, security patterns, external dependencies

Prerequisites

  • Access to the project codebase
  • No external tooling (ticketing/documentation) required

Next Steps

After intake, the system description is available for feature-forge to read during feature definition. If discovery is needed, proceed to the Discovery Phase. Otherwise, skip to Planning.


Workflow Planning Epic Plan (`docs/workflow/planning-epic-plan.md`)

planning:epic-plan

Analyze an epic's tickets and the codebase to produce a stakeholder-readable overview document with requirements, risk assessment, and testing strategy.


Overview

Given an epic key, the agent fetches all linked tickets and launches parallel codebase exploration agents to discover affected modules, API patterns, component patterns, test conventions, and reference implementations. It synthesizes these into a comprehensive overview document covering purpose, requirements, technical changes with 7-dimension risk scoring, impact analysis, testing strategy, and acceptance criteria. This document is for humans making decisions — tech leads, PMs, architects.

Inputs

Name Type Required Description
epic-key string yes Jira epic key to create a planning document for (e.g., CC-62)

Outputs

Name Type Path Description
overview-document url /epics/In Progress/{epic-key}/ Confluence page with epic overview, requirements, risk assessment, impact analysis, testing strategy, codebase analysis, and linked tickets

Prerequisites

  • Epic with linked tickets in Jira
  • Discovery phase completed (if unknowns existed)
  • Jira and Confluence access configured

Next Steps

After the overview document is approved and published, run planning:impl-plan with the overview document URL to generate the executable implementation plan.


Workflow Planning Impl Plan (`docs/workflow/planning-impl-plan.md`)

planning:impl-plan

Convert the overview document into an executable implementation plan with topologically sorted execution order, parallel waves, and self-contained ticket descriptions.


Overview

The agent reads the overview document, fetches all Jira tickets, and performs ticket refinement — creating new tickets for gaps, splitting large tickets (>8 story points), adding story points, and linking dependencies. It then generates a lightweight coordination plan in Confluence with execution order, parallel execution waves, and agent recommendations. Each Jira ticket is updated with self-contained implementation details: step-by-step instructions with file paths, code snippets, complete test code, files to modify, and acceptance criteria checklists. This makes each ticket independently executable without needing external document fetches.

Inputs

Name Type Required Description
overview-doc-url url yes Confluence URL of the overview document produced by planning:epic-plan

Outputs

Name Type Description
implementation-plan url Confluence page with summary metrics, completion status table, topologically sorted execution order, parallel wave strategy, and agent recommendations
updated-tickets tickets Jira tickets updated with self-contained implementation details, file paths, test code, and acceptance criteria

Prerequisites

  • Overview document published via planning:epic-plan
  • Jira and Confluence access configured

Next Steps

After the implementation plan is published, begin executing tickets with execution:execute-ticket. Parallel waves defined in the plan indicate which tickets can be worked simultaneously.


Workflow Planning Phase (`docs/workflow/planning-phase.md`)

Planning Phase

Transforms an epic with tickets into a stakeholder-readable overview and a developer-executable implementation plan.


Purpose

Planning bridges the gap between "what to build" (discovery/feature-forge output) and "how to build it" (execution). It produces two complementary documents: an overview for decision-makers and a coordination plan for implementers.

Commands

Order Command Summary
1 planning:epic-plan Analyze codebase and tickets to produce a stakeholder-readable overview document
2 planning:impl-plan Convert overview into an executable implementation plan with self-contained tickets

Outputs

  • Overview document — Purpose, requirements, risk assessment (7-dimension scoring), impact analysis, testing strategy, acceptance criteria
  • Implementation plan — Topologically sorted execution order, parallel execution waves, agent recommendations
  • Updated tickets — Each Jira ticket enriched with self-contained implementation details, file paths, code snippets, test code, and acceptance criteria

Prerequisites

  • Epic with linked tickets in the ticketing system
  • Completed discovery phase (if discovery was needed)
  • Ticketing system access (Jira)
  • Documentation system access (Confluence)

Next Steps

After planning, proceed to the Execution Phase. Each ticket is now self-contained and can be picked up independently by a developer or agent.


Workflow Retrospective Complete Epic (`docs/workflow/retrospective-complete-epic.md`)

retrospectives:complete-epic

Verify all tickets are complete, generate a comprehensive completion report, close the epic in Jira, and perform a holistic system description review.


Overview

The agent fetches the epic, verifies all linked tickets are in "Done" status (blocking if any are incomplete), then generates a 12-section completion report covering objectives vs. outcomes, ticket breakdown, technical deliverables, architecture decisions, quality metrics, technical debt, testing effectiveness, documentation, lessons learned, risk review, and recommendations. It moves documentation from "In Progress" to "Complete" in Confluence, closes the epic in Jira, and performs a full system description review — not just incremental updates, but a holistic check ensuring architecture diagrams, API surfaces, and dependency maps reflect the post-epic state.

Inputs

Name Type Required Description
epic-key string yes Jira epic key to complete (e.g., CC-62)

Outputs

Name Type Description
completion-report report 12-section report: summary, objectives, tickets, deliverables, architecture, quality, debt, testing, docs, lessons, risks, recommendations
closed-epic tickets Epic closed in Jira with "Done" status and "Completed" resolution
updated-system-description file docs/system-description.md updated with holistic post-epic review

Prerequisites

  • All tickets in the epic completed (or explicitly moved to backlog with user override)
  • Overview document and implementation plan accessible in Confluence
  • Jira and Confluence access configured

Next Steps

The system description is now current. The next feature-forge invocation reads the updated system description, and the workflow cycle begins again. The sprint folder location is available for complete-sprint if a sprint retrospective is needed.


Workflow Retrospective Phase (`docs/workflow/retrospective-phase.md`)

Retrospective Phase

Epic completion, reporting, and system description update after all tickets are executed.


Purpose

Retrospective closes the loop on an epic. It verifies all work is complete, generates a comprehensive completion report, moves documentation to its final location, closes the epic in the ticketing system, and performs a holistic system description review to capture architectural changes that may have been missed during incremental ticket-by-ticket updates.

Commands

Order Command Summary
1 retrospectives:complete-epic Verify completion, generate report, close epic, update system description

Outputs

  • Completion report — Deliverables, quality metrics, lessons learned, risk review, recommendations
  • Closed epic — Epic status set to "Done" in the ticketing system
  • Updated system description — Holistic post-epic review of docs/system-description.md
  • Relocated documentation — Epic docs moved from "In Progress" to "Complete" folder

Prerequisites

  • All tickets in the epic completed (or explicitly moved to backlog)
  • Ticketing system access (Jira)
  • Documentation system access (Confluence)

Next Steps

The updated system description feeds the next cycle. When the next feature is defined via feature-forge, it reads the current system description, making each iteration more informed than the last.


Workflow Workflow Definition Schema (`docs/workflow/workflow-definition-schema.md`)

Workflow Definition Schema

Machine-readable YAML definitions for workflow commands and the workflow manifest.


Per-Command YAML Schema

Each command has a co-located .yaml file describing its interface.

Annotated Example

yaml
# Unique command identifier: {phase}:{action}
command: "discovery:create"

# Workflow phase this command belongs to
phase: discovery

# Relative path to the command's .md implementation file
path: commands/project/discovery/create-epic-discovery.md

# Relative path to the human-readable overview in docs/workflow/
description: docs/workflow/discovery-create.md

# Ordered list of inputs the command accepts
inputs:
  - name: epic-key
    type: string
    required: true
    description: Jira epic key (e.g., CC-60)

# Ordered list of outputs the command produces
outputs:
  - name: discovery-document
    type: url
    path: "/epics/Discovery/{epic-key}/"
    description: Published Confluence discovery document

# Backend capabilities this command depends on
# Valid values: ticketing, documentation, or empty list
requires:
  - ticketing
  - documentation

# Command lifecycle status (default: existing)
status: existing

# CLI syntax hint shown in help text
argument-hint: "<epic-key>"

# Whether this command is invoked multiple times per epic (default: false)
repeat: false

Field Reference

Field Type Required Default Constraints
command string yes — Format {phase}:{action} or bare name for utilities. Unique across all definitions.
phase string yes — One of: intake, discovery, planning, execution, retrospectives. Required for phase commands. Omit for utility commands.
path string yes — Relative path from repo root to the .md command file. Must resolve to an existing file when status: existing. When status: planned, the path is not required to resolve to an existing file.
description string yes — Relative path from repo root to the overview .md in docs/workflow/. Must resolve to an existing file.
inputs list yes — Ordered list of input objects. May be empty ([]).
inputs[].name string yes — Kebab-case identifier.
inputs[].type string yes — One of: string, url, list[url], list[string], flag.
inputs[].required boolean yes — Whether the input must be provided.
inputs[].description string yes — Human-readable description of the input.
outputs list yes — Ordered list of output objects. May be empty ([]).
outputs[].name string yes — Kebab-case identifier.
outputs[].type string yes — One of: url, document, tickets, report, file.
outputs[].path string no — Template path for the output location. Supports {input-name} interpolation.
outputs[].description string no — Human-readable description of the output.
requires list yes — Backend capabilities needed. Valid values: ticketing, documentation. Empty list ([]) if no backends needed.
status string no existing One of: existing, planned, deprecated.
argument-hint string no — CLI syntax hint (e.g., <epic-key>).
repeat boolean no false true if the command is invoked multiple times per epic (e.g., per-ticket commands).

Input Types

Type Description Example
string Single string value CC-60
url Single URL https://confluence/doc
list[url] Space-separated URLs url1 url2 url3
list[string] Space-separated strings --decision=D1:B --decision=D2:Y
flag Boolean flag --list, --check, --graph

Output Types

Type Description
url A URL to a published document or page
document A generated document (Confluence page, local markdown)
tickets Jira tickets created in the ticketing system
report A generated report (completion report, retrospective)
file A local file produced on disk

Workflow Manifest Schema

The manifest at commands/workflow-manifest.yaml defines the phase DAG and command ordering.

Annotated Example

text
/* Detailed source-code truncated for AI context efficiency. */

Manifest Field Reference

Field Type Required Description
version string yes Manifest schema version. Currently "1.0".
phases map yes Ordered map of phase name → phase definition.
phases.<name>.description string yes Path to the phase overview markdown.
phases.<name>.depends_on list yes Phase dependencies. Empty list for entry points.
phases.<name>.depends_on[].phase string yes Name of the dependency phase.
phases.<name>.depends_on[].strength string yes required or recommended.
phases.<name>.run_once boolean no true if the phase runs once per project. Default false.
phases.<name>.optional boolean no true if the phase can be skipped. Default false.
phases.<name>.external_skills list no Skills from outside the workflow that feed into this phase.
phases.<name>.external_skills[].skill string yes Skill name.
phases.<name>.external_skills[].role string yes Relationship: prerequisite, companion, output-consumer.
phases.<name>.commands list yes Ordered list of commands in this phase.
phases.<name>.commands[].command string yes Command identifier matching the YAML definition's command field.
phases.<name>.commands[].definition string yes Relative path to the command's .yaml definition file.
utilities list no Commands not tied to a phase.
utilities[].command string yes Command identifier.
utilities[].definition string yes Path to the command's .yaml definition file.
utilities[].invocation string yes Invocation pattern: on-demand, scheduled, triggered.

Validation Rules

  1. No cycles: The depends_on graph must be a DAG. A phase cannot transitively depend on itself.
  2. Command uniqueness: Every command value across all phases and utilities must be unique.
  3. Path resolution: All definition and description paths must resolve to existing files.
  4. Phase reference validity: Every depends_on[].phase must reference a phase defined in the manifest.
  5. Definition consistency: Each commands[].command must match the command field inside the referenced YAML definition file.
  6. Status gating: Commands with status: planned should be flagged as unavailable when the manifest is consumed at runtime.

Site Src Content Docs Privacy (`site/src/content/docs/privacy.md`)


title: Privacy Policy

Effective: October 26, 2026

This privacy policy describes how the Fullstack Dev Skills Plugin (claude-skills) and its companion documentation site at https://jeffallan.github.io/claude-skills/ handle information.

The plugin and documentation site are maintained by @jeffallan as an individual open-source project. This is a personal project and is not a product or service of Synergetic Solutions or any other entity.

1. The Plugin

The plugin distributes static content: markdown skill files, slash command templates, and Python validation scripts. When you install the plugin in Claude Code, Claude Cowork, or another compatible host, the plugin:

  • Does not collect, transmit, or store any personal information.
  • Does not make network requests on your behalf.
  • Does not include telemetry, analytics, or usage tracking of any kind.
  • Runs entirely within your local Claude environment. All file reads, prompts, and tool calls happen within your existing Claude host process.

Any data your Claude host sends to Anthropic during a session (prompts, tool results, etc.) is governed by Anthropic's privacy policy, not this one. The plugin itself adds no additional data collection.

2. MCP Server Integrations

Some workflow commands in this plugin integrate with external services through Model Context Protocol (MCP) servers that you configure separately in your Claude host. The project workflow commands, for instance, require an Atlassian MCP server to interact with Jira and Confluence, as described in the Atlassian MCP Setup Guide.

The plugin does not bundle, run, or proxy any MCP server. When you use a command that invokes an MCP server:

  • The MCP server runs in your local environment under your configuration and credentials.
  • Any data sent to the MCP server, and any data the MCP server forwards to a third-party vendor, is governed by that vendor's privacy policy, not this one.
  • This project has no visibility into, and assumes no responsibility for, the data flow between your MCP server and the underlying service.

Before configuring an MCP server, review the privacy policy of the vendor whose service it accesses. The Atlassian integration is covered by Atlassian's privacy policy.

3. The Documentation Site

The documentation site at https://jeffallan.github.io/claude-skills/ uses the following third-party services:

Service Purpose Data involved
GitHub Pages Static site hosting IP addresses logged in standard server access logs, governed by GitHub's privacy policy
Google Analytics 4 (G-QVMEHEZBXE) Aggregate page-view and session metrics Cookies, page URL, referrer, approximate geolocation derived from IP, browser/device info; governed by Google's privacy policy
jsDelivr CDN Loads the Mermaid diagram library on pages that render diagrams IP address logged in CDN access logs; governed by jsDelivr's privacy policy
Formspree Delivers messages sent with the contact form (the Contact button at the end of each page) The name, email address, topic and message you enter, and the site and page you sent it from; governed by Formspree's privacy policy

To opt out of Google Analytics, you can use the Google Analytics opt-out browser add-on, enable browser privacy features such as Do Not Track, or use any standard ad/tracker blocker. The site functions normally with these enabled.

4. GitHub Repository Interactions

If you file an issue, open a pull request, post in discussions, or otherwise interact with the project's GitHub repository, GitHub processes that interaction under GitHub's privacy policy. Information you post publicly on GitHub remains public.

5. Contact

All privacy questions, sensitive disclosures, data subject requests, and other inquiries related to this project should be sent through the contact form on the maintainer's personal site:

https://jeffallan.github.io/#ContactMe

Form submissions are processed by Formspree, a third-party form-handling service. Their privacy policy applies to the form-submission step.

6. Sale of Personal Information

This project does not sell, rent, or trade personal information. No personal information is collected by the plugin itself, and the documentation site's third-party services are used solely for hosting, aggregate site analytics, and delivering contact-form messages, as described in section 3.

7. Children

This project is not directed at children under 13 (or the equivalent minimum age in your jurisdiction). No information is intentionally collected from children.

8. Changes to This Policy

If this policy changes materially, the updated version will be published at this URL with a new effective date. Material changes will also be noted in the project's CHANGELOG.md.


--- METRICS ---