Technical Documentation: Jeffallan/claude-skills
ℹ️ Provenance: Multi-Tier Ingestion · CodeWiki Reference
Overview (`README.md`)
Quick Start
/plugin marketplace add jeffallan/claude-skillsThen, install the skills:
/plugin install fullstack-dev-skills@fullstack-dev-skillsFor 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:
# 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.mdMulti-Skill Workflows
Complex tasks combine multiple skills:
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 MasterContext 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
- Quick Start Guide - Installation and first steps
- Skills Guide - Skill reference and decision trees
- Common Ground - Context engineering with
/common-ground - Workflow Commands - Project workflow commands guide
- Atlassian MCP Setup - Atlassian MCP server setup
- Local Development - Local skill development
- Contributing - Contribution guidelines
- skills/*/SKILL.md - Individual skill documentation
- skills/*/references/ - Deep-dive reference materials
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
- Issues: GitHub Issues
- Discussions: GitHub Discussions
- Repository: github.com/jeffallan/claude-skills
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';
Quick Install
/plugin marketplace add jeffallan/claude-skills/plugin install fullstack-dev-skills@fullstack-dev-skillsSee 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
- Getting API Tokens
- Environment Setup
- MCP Configuration
- Verification
- Troubleshooting
- Security Considerations
Prerequisites
Before setting up the Atlassian MCP server, ensure you have:
Docker installed and running
- Verify with:
docker --version - Docker must be able to pull images from
ghcr.io
- Verify with:
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
Claude Code CLI installed
- The MCP server integrates with Claude Code for AI-assisted workflows
Getting API Tokens
Atlassian Cloud (Recommended)
API tokens are the standard authentication method for Atlassian Cloud products.
Step 1: Navigate to API Token Management
- Go to https://id.atlassian.com/manage-profile/security/api-tokens
- Sign in with your Atlassian account
Step 2: Create a New API Token
- Click Create API token
- Enter a descriptive label (e.g., "Claude MCP Integration")
- Click Create
- 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:
- Navigate to your Jira instance
- Click your profile icon > Profile
- Go to Personal Access Tokens
- Click Create token
- Set token name and expiry
- Copy the generated token
Confluence Server/Data Center:
- Navigate to your Confluence instance
- Click your profile icon > Settings
- Go to Personal Access Tokens
- Click Create token
- Set token name and expiry
- 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):
touch .env.localStep 2: Configure Environment Variables
Add the following variables to .env.local based on your setup:
For Atlassian Cloud:
# 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=trueFor Atlassian Server/Data Center:
# 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=trueStep 3: Verify .gitignore
Ensure .env.local is in your .gitignore to prevent accidental credential exposure:
# Check if .env.local is ignored
grep -q "\.env\.local" .gitignore || echo ".env.local" >> .gitignoreMCP Configuration
Step 1: Create MCP Configuration File
Create or update .mcp.json in your project root:
{
"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:
docker pull ghcr.io/sooperset/mcp-atlassian:latestConfiguration Options
Multiple Environment Files:
If you have separate environment files for different purposes:
{
"mcpServers": {
"atlassian": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"--env-file",
".env.atlassian",
"ghcr.io/sooperset/mcp-atlassian:latest"
]
}
}
}Combining with Other MCP Servers:
{
"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:
docker run --rm --env-file .env.local ghcr.io/sooperset/mcp-atlassian:latest --helpStep 2: Test with Claude Code
Start Claude Code and verify the MCP server is recognized:
claudeThen ask Claude to list available MCP tools or perform a simple operation:
List the Jira projects I have access to.Or:
Show me the recent pages in Confluence.Step 3: Verify Specific Operations
Test Jira connectivity:
What issues are in project [YOUR_PROJECT_KEY]?Test Confluence connectivity:
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:
- Invalid API token: Regenerate your API token from Atlassian
- Wrong username: For Cloud, use your email address, not username
- Token expired: Server/DC tokens may expire; create a new one
- Wrong URL format:
- Jira Cloud:
https://yourcompany.atlassian.net - Confluence Cloud:
https://yourcompany.atlassian.net/wiki
- Jira Cloud:
Issue: "Connection refused" or "Cannot reach host"
Causes and solutions:
- Docker networking: Ensure Docker can reach external URLs
- VPN required: Connect to VPN if accessing internal Atlassian Server
- Firewall blocking: Check corporate firewall rules
- Wrong URL: Verify the URL is accessible in your browser
Issue: "SSL certificate verify failed"
For self-signed certificates on Server/Data Center:
CONFLUENCE_SSL_VERIFY=false
JIRA_SSL_VERIFY=falseIssue: "Permission denied" when reading/writing
Causes and solutions:
- Insufficient permissions: Your Atlassian account needs appropriate project/space permissions
- Read-only mode enabled: Check if
READ_ONLY_MODE=trueis set - Space/project restrictions: Verify you have access to the specific space or project
Issue: Docker image not found
# Pull the latest image
docker pull ghcr.io/sooperset/mcp-atlassian:latest
# Verify it exists
docker images | grep mcp-atlassianIssue: 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:
docker run -it --rm --env-file .env.local ghcr.io/sooperset/mcp-atlassian:latestVerifying Environment Variables
Check that your environment file is properly formatted:
# List all variables (redacted)
grep -E "^[A-Z_]+" .env.local | sed 's/=.*/=***/'Expected output:
CONFLUENCE_URL=***
CONFLUENCE_USERNAME=***
CONFLUENCE_API_TOKEN=***
JIRA_URL=***
JIRA_USERNAME=***
JIRA_API_TOKEN=***Security Considerations
Credential Protection
- Never commit credentials: Ensure
.env.localis in.gitignore - Use environment-specific files: Keep production and development credentials separate
- Rotate tokens regularly: Set calendar reminders to rotate API tokens
- Use minimal permissions: Only grant the Atlassian account permissions it needs
Read-Only Mode
For safer exploration or demo environments:
READ_ONLY_MODE=trueThis prevents any write operations to Jira or Confluence.
Space and Project Filtering
Limit Claude's access to specific areas:
# Only access these Confluence spaces
CONFLUENCE_SPACES_FILTER=DOCS,PUBLIC
# Only access these Jira projects
JIRA_PROJECTS_FILTER=SUPPORT,DOCSAudit 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:
- Go to Atlassian API Token Management
- Click Revoke next to the compromised token
- Create a new token
- Update your
.env.localfile
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.localcreated with credentials -
.env.localadded to.gitignore -
.mcp.jsoncreated with Atlassian configuration - Docker image pulled:
docker pull ghcr.io/sooperset/mcp-atlassian:latest - Connection tested with Claude Code
Additional Resources
- Atlassian API Token Documentation
- MCP Atlassian GitHub Repository
- Workflow Commands Reference - Commands that use Atlassian integration
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
# 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 --graphHow It Works
The Two-Phase Flow
When you run /common-ground without flags, Claude executes a two-phase interactive process:
┌─────────────────────────────────────────────────────────────┐
│ 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:
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:
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:
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
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:
~/.claude/common-ground/{project-id}/COMMON-GROUND.mdProject Identification
Projects are identified by:
- Git remote URL (e.g.,
github.com/user/repo) — preferred - Absolute path — fallback for non-git projects
File Format
# 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:
{
"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
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:#333Node 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:
/common-groundClaude 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:
/common-ground --graphSee Claude's mental model of the project structure and make corrections early.
Before Major Refactoring
Validate assumptions haven't drifted:
/common-ground --checkQuick validation that existing assumptions still hold before making sweeping changes.
Debugging Misaligned Output
When Claude produces something unexpected:
/common-ground --listCheck 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.
Related Documentation
- Workflow Commands — Project workflow commands
- Atlassian MCP Setup — Jira/Confluence integration
- commands/common-ground.md — Technical implementation
- Common Ground Workflow — Workflow integration details
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 | 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:
- Verify compatibility — The agent must implement the Agent Skills specification
- Add to Compatible Agents table — Include agent name (with link), developer, type, and skills documentation link
- Add to Skills Directory Locations table — Document where the agent looks for project and user skills
- Provide evidence — Link to the agent's skills documentation or announcement
PR Template
## 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
- Agent Skills Specification — Format definition
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
- Full Lifecycle Overview
- Discovery Phase
- Planning Phase
- Execution Phase
- Retrospectives Phase
- Command Reference
- Integration Points
- Checkpoint System
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.
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"| CEDocument 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.
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 --> NTdiscovery: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:
- Fetches epic and all linked tickets from Jira
- Extracts explicit and implicit questions from requirements
- Categorizes questions by theme (Customer, Technical, Business, Scope)
- Generates hypothesis map with validation methods
- Creates research plan with activities and owners
- 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:
- Fetches all source documents
- Consolidates and cross-analyzes findings
- Validates/invalidates hypotheses
- Generates feature recommendations
- Identifies blocking decisions that must be resolved
- Creates proposed tickets (not yet in Jira)
- 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 fromdiscovery:synthesize
Process:
- Fetches synthesis document and extracts proposed tickets JSON
- Checks for unresolved blocking decisions
- Presents decisions for resolution (blocks until all resolved)
- Allows add/remove/modify of proposed tickets
- Creates approved tickets in Jira
- 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.
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 --> UT2planning: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:
- Fetches epic and all linked tickets
- Launches parallel agents to explore codebase:
- Affected modules discovery
- API patterns analysis
- Component patterns analysis
- Test patterns discovery
- Reference implementations search
- Documents unknowns and technical decisions
- Creates risk assessment for each change
- 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:
- Reads Overview Document for context
- Fetches all Jira tickets
- Analyzes and refines tickets:
- Creates new tickets for gaps
- Splits large tickets (>8 points)
- Adds story points
- Links dependencies
- Generates topologically sorted execution order
- Creates parallel execution waves
- Updates each ticket with full implementation details
- 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.
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"| Executeexecution:execute-ticket
Command: /project:execution:execute-ticket <ticket-key>
Purpose: Implements a Jira ticket following its self-contained implementation details.
Process:
- Fetches ticket from Jira
- Verifies ticket has implementation details (stops if missing)
- Reads implementation plan for wave/dependency context
- Checks for parallel execution opportunities
- Updates Jira status to "In Progress"
- Writes failing tests for the acceptance criteria and records the RED result
- Executes implementation steps until the tests pass, then refactors with tests green
- Verifies acceptance criteria
- 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 workbackend-developer- API/backend servicesdatabase-optimizer- Database changesfullstack-developer- Full-stack featurestest-automator- Test coverage
Deviation Handling:
If implementation plan must be deviated from:
- Stop and report the deviation
- Present options (proceed, modify, pause)
- Wait for user approval
- 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 recentexecute-ticket
Process:
- Identifies ticket and gathers context
- Extracts completion details from conversation
- Confirms before finalizing
- Transitions Jira to "In Review"
- Updates Implementation Plan:
- Completion Status table
- Execution Order table
- Parallel Execution wave table
- Adds Completion Details section
Plan Updates:
## {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.
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 --> CRretrospectives: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:
- Verifies all tickets are complete (stops if not)
- Reviews implementation quality (PRs merged, test coverage)
- Generates 12-section completion report
- Updates Overview Document with completion report
- Moves documentation from
/In Progress/to/Complete/Sprint [N]/ - Closes epic in Jira
- Identifies reusable patterns for knowledge transfer
Completion Report Sections:
- Epic Summary (duration, points, contributors)
- Objectives and Outcomes
- Ticket Breakdown
- Technical Deliverables (files, LOC, coverage)
- Architecture and Design Decisions
- Quality Metrics (PRs, bugs, hooks)
- Technical Debt and Follow-up
- Testing and Quality Assurance
- Documentation Delivered
- Lessons Learned (What Went Well, Improvements, Process)
- Risk Assessment Review
- 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 withretrospectives: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:
- Created in
/In Progress/during planning - Updated throughout execution
- Moved to
/Complete/Sprint [N]/on epic completion - 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.
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.
Ready to publish this planning document to Confluence? (Yes / No / Modify)Decision Checkpoints:
Present options when issues are encountered.
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:
planning:epic-plan -> planning:impl-plan -> [execution:execute-ticket + execution:complete-ticket] x N -> retrospectives:complete-epicDiscovery-First Flow
For epics requiring research:
discovery:create -> [research] -> discovery:synthesize -> discovery:approve -> planning:epic-plan -> planning:impl-plan -> [execution:execute-ticket + execution:complete-ticket] x N -> retrospectives:complete-epicBest Practices
Document Linking
Always capture and provide document URLs when outputting command results. Downstream commands depend on these URLs:
discovery:createoutputs{Discovery_Document}fordiscovery:synthesizediscovery:synthesizeoutputs{Synthesis_Document}fordiscovery:approveplanning:epic-planoutputs{Overview_Document}forplanning:impl-planplanning:impl-planoutputs{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:
make dev-link # Link your working copy to the plugin cache
make dev-unlink # Restore the released versionRestart 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 Development Setup
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:
cat ~/.claude/plugins/installed_plugins.json | grep installPathThis returns something like:
"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
mv ~/.claude/plugins/cache/<plugin>/<name>/<version> \
~/.claude/plugins/cache/<plugin>/<name>/<version>.bakStep 3: Create Symlink to Working Copy
Point the cache path to your local development clone:
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
ls -la ~/.claude/plugins/cache/<plugin>/<name>/
# Should show: <version> -> /path/to/your/working/copyDevelopment Workflow
Once the symlink is in place:
- Edit skills, commands, or references in your working copy
- Restart Claude Code — exit the current session and start a new one. Plugins load at session start; changes are not hot-reloaded.
- Test your changes — invoke the skill or command as a user would
- Iterate — repeat steps 1-3
No commits, pushes, or version bumps needed during development.
Reverting to the Released Version
# 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
Plugin auto-updates may break the symlink
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
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 outTo compare against the released version, temporarily revert the symlink (see above) and restart.
Quick Reference
# 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:
- Consolidated plan:
docs/v0.5.0-plan.md - YAML schema:
docs/workflow/workflow-definition-schema.md - Workflow manifest:
commands/workflow-manifest.yaml
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 atdocs/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.mdwith assumptions by confidence tier), ground-index (ground.index.jsonfor 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-planfor 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 atdocs/discovery/{topic}/)
YAML:commands/project/discovery/create.yaml
Next: Human research phase, thendiscovery: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) orretrospectives:complete-epicwhen 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
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 stateThe 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:actionbecomesphase: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 tocommands/ - 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:
- Narrative walkthrough:
docs/v0.5.0-narrative.md - YAML schema:
docs/workflow/workflow-definition-schema.md - Workflow manifest:
commands/workflow-manifest.yaml
Architecture Decisions
Backend Adapter Pattern
Every command gains a Phase 0 config resolution step that loads backend-specific reference files:
.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 operationsAll 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.
/* 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:
docs/workflow/workflow-definition-schema.md— YAML schema documentationcommands/workflow-manifest.yaml— Phase DAG and per-phase ordering- 12 per-command YAML definitions (see YAML Definitions below)
- 18 phase/command overview docs under
docs/workflow/
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:
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
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:
- Phase 0 — Config resolution step (load backend refs)
- Abstract operations — All Jira/Confluence verbs replaced with generic verbs
- 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
# 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 stepsChunk 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
# 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.mdChunk 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
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
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
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
# All files have valid frontmatter
head -5 commands/intake/*.md
# Reference files within 100-600 line range
wc -l commands/intake/references/*.mdChunk 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:
- 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 Integrationsection 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:
- Adds
## Discovery Recommendationsection to spec listing unknowns with original question context - Presents
AskUserQuestionsprompt:- 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:createlater
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.mdrelated 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-expertfor component implementation,test-masterfor 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
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.mdChunk 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
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
# 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.mdChunk 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
# 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.jsFile 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):
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 tometadata.*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
metadatafield — Any NEW metadata must go under the spec'smetadatakey, 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 matchesversion.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.mdbut 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
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:
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.
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.
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.
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.
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.
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."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.
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.mdor 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:
No introduction or context. The document opens with
## When to Use Each Skillwith 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.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.
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.
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.
"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.
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:
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.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."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.
"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.
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.
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.
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:
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.Missing validation step. The contribution workflow (steps 1-6) does not mention running
python scripts/validate-skills.pybefore submitting a PR. Given that CI runs this check, contributors will hit failures they could have caught locally. This should be step 4.5.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.
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.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.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.
"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-skillas 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)
Fix duplicate "Option 2" numbering in README.md Installation Options. This is a visible bug.
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 tomy-skill-name(hyphenated).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)
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.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.
Add
validate-skills.pystep to CONTRIBUTING.md. Insert between "Test Your Changes" and "Commit Your Changes."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)
Add introduction and navigation links to SKILLS_GUIDE.md. A 3-line preamble with links to README and QUICKSTART.
Trim SKILLS_GUIDE.md examples section. Keep top 16 general examples; move framework-specific and platform-specific examples to a separate section or file.
Expand QUICKSTART.md troubleshooting. Add "how to update," "skills conflict with local files," and "which installation method should I choose."
Add workflow command contribution guidance to CONTRIBUTING.md.
Restructure QUICKSTART.md "First Steps" into a linear tutorial flow.
Nice-to-Have (Future)
Add "Last updated" or version reference to SKILLS_GUIDE.md and QUICKSTART.md.
Create or link CONTRIBUTORS.md referenced in CONTRIBUTING.md Recognition section.
Replace minimal Code of Conduct with Contributor Covenant link.
Move Tech Stack Coverage from README to SKILLS_GUIDE.md where it provides navigational context next to the decision trees.
Remove "Tips for Effective Use" from SKILLS_GUIDE.md (merge into QUICKSTART.md best practices).
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
2.1 Phantom Related Skills References (CRITICAL)
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-designoutput-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 bycode-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:
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 patterntest-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:
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 SkillsAll 10 sampled skills follow this exact order, with one exception:
- feature-forge adds a non-standard
## Pre-Discovery with Subagentssection 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 Subagentsis a non-standard section not found in other skills. It describes a multi-agent workflow pattern. - Tool-specific constraints: References
AskUserQuestionstool 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.mdin 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-toolsfield 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: analysisandoutput-format: analysisare outside documented enums.- Output Templates uses bold labels (e.g.,
**Root Cause**:,**Evidence**:) -- richer format than others.
4.4 code-reviewer
- Has
allowed-toolsfield (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
- Consistent section structure -- The 11-section order is machine-parseable and could directly map to page sections.
- YAML frontmatter -- Provides structured metadata for page generation (title, category via scope, output type).
- Reference Guide table -- Could generate "See Also" or "Deep Dive" link sections.
- Constraints -- MUST DO / MUST NOT DO sections are visually distinctive and could be rendered as callout boxes.
- 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:
/* Detailed source-code truncated for AI context efficiency. */7. Priority-Ranked Recommendations
Critical (Must fix before docs site generation)
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.
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-namefield to frontmatter so the mapping is self-contained
- (a) Use the frontmatter
Expand the documented frontmatter enums in CLAUDE.md to match actual usage. Add
analysis,testing,infrastructure,optimization,architecturetoscope. Addanalysis,manifests,specification,schematooutput-format.
High (Should fix for quality)
Standardize the "When to Use" section to always use bullet lists, not prose. Fix security-reviewer.
Standardize the "Output Templates" section to always use numbered lists, not inline prose. Fix security-reviewer.
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.
Document the
allowed-toolsfrontmatter field in CLAUDE.md, or decide it belongs in a separate mechanism.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)
Add a
categoryfrontmatter field for docs site navigation. Values likefrontend,backend,language,quality,architecture,design,workflow,infrastructure,security,data,devops,testingwould enable auto-generated category index pages.Add a
summaryfrontmatter field (or standardize the subtitle line) for docs site cards and search results. The currentdescriptionis trigger-focused and reads awkwardly as a page summary.Standardize the subtitle line format after the H1. Propose template:
"Senior [role] specializing in [1-2 domains] with expertise in [signature capability]."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)
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.
Add
versionorlast-updatedmetadata to frontmatter for docs site freshness indicators.Standardize Related Skills count to 3-4 per skill. pandas-pro has only 2; some non-sampled skills have 4-5.
Handle attribution HTML comments in routing tables. Decide whether to preserve as-is, move to a footer, or add an
attributionfrontmatter field.Consider adding a
difficultyorexperience-levelfield 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:
- Related Skills existence check -- Verify each bold name in Related Skills maps to an actual skill's H1 title or frontmatter name.
- Core Workflow step count -- Warn if not exactly 5 (or 5-6 if the standard is amended).
- "When to Use" format check -- Ensure section uses bullet list format, not prose.
- Frontmatter enum validation -- Check
scopeandoutput-formatagainst the expanded (documented) enum list. - Section order check -- Verify sections appear in the canonical order.
- 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-sprintis documented but absent from the manifest.WORKFLOW_COMMANDS.mddescribescomplete-sprintas a command (lines 632-673). The manifest's retrospective phase lists onlyretrospectives:complete-epic. There is acommands/project/retrospectives/complete-sprint.mdimplementation file but no.yamldefinition 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-groundas a utility command.WORKFLOW_COMMANDS.mddoes 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:
- Add the Intake phase to
WORKFLOW_COMMANDS.mdor explicitly state it is a pre-workflow phase documented elsewhere. - Resolve the command naming inconsistency: pick one canonical form (the YAML
commandidentifier) and use it consistently, with aliases noted parenthetically. - Either add
complete-sprintto the manifest YAML (with a.yamldefinition file) or remove it fromWORKFLOW_COMMANDS.md. - Add a brief mention of
common-groundas a utility command available during any phase. - 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.mdcommand description, but no phase overview that contextualizes it. The manifest lists it underutilities:, not under a phase. The doc structure treats it as though it belongs to a phase. - No
complete-sprintdescription. There is nodocs/workflow/retrospective-complete-sprint.md. The retrospective phase overview mentions onlycomplete-epic. Ifcomplete-sprintis a valid command, it needs a description doc. - Phase names are inconsistent. The manifest uses
retrospective(singular).WORKFLOW_COMMANDS.mdusesRetrospectives(plural). The phase overview file isretrospective-phase.md(singular). The command prefix in the manifest isretrospectives: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 thedocs/workflow/directory but will need transformation for a docs site with different URL structures.
Recommendations:
- Decide whether
complete-sprintexists in the system. If yes, createdocs/workflow/retrospective-complete-sprint.mdand add it to the manifest. If no, remove all references. - Standardize singular vs. plural: the manifest phase name, the YAML command prefix, the docs directory name, and the file naming convention should all agree.
- Treat
common-groundas 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
--graphmermaid 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.mdandATLASSIAN_MCP_SETUP.md, but does not link to thedocs/workflow/common-ground.mdcommand 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.mddoes not mention or link toCOMMON_GROUND.mdat all. The two documentation trees are disconnected.
Recommendations:
- Fix the "groundin file" typo.
- Add a link to
docs/workflow/common-ground.mdin the Related Documentation section. - Add a link to
docs/COMMON_GROUND.mdfrom withinWORKFLOW_COMMANDS.md(perhaps in a "Utility Commands" section). - For the Astro site, deduplicate the README and
COMMON_GROUND.mdversions 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.mddoes 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.,
npxorpipinstallation of the MCP server). - No version pinning guidance. The guide uses
:latestfor the Docker image. For production workflows, this is risky. A note about pinning to a specific version would be prudent.
Recommendations:
- Add a link to
ATLASSIAN_MCP_SETUP.mdfrom the Integration Points section ofWORKFLOW_COMMANDS.md. - Add a note about version pinning for the Docker image.
- 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
.mdfiles), 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:
- Link this file from CONTRIBUTING.md and README.md (Documentation section).
- Add a section or separate document for workflow command development.
- 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 (
requiredvs.recommended). optional: trueon discovery phase correctly models the skippable nature of that phase.external_skillsreference tofeature-forgedocuments the cross-cutting dependency.run_once: trueon intake correctly distinguishes project-level from epic-level phases.
Weaknesses:
- Missing
complete-sprint. The retrospective phase lists onlyretrospectives:complete-epic. Thecomplete-sprintcommand exists as an implementation.mdfile 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
.mdimplementation files. The YAMLpathfields point tocommands/intake/document-codebase.md,commands/intake/capture-behavior.md, andcommands/intake/create-system-description.md. None of these files exist on disk. The YAMLstatus: plannedfield signals this is expected, but the schema documentation says "Must resolve to an existing file when status: existing" -- so theplannedstatus makes this valid. However, the schema doc does not explicitly state thatplannedstatus exempts the path resolution rule. - Phase name mismatch. The manifest uses
retrospective(singular) but the command identifiers useretrospectives:(plural).
Recommendations:
- Resolve the
complete-sprintquestion: add it to the manifest or remove the orphaned.mdfile. - Make the planned-status path exemption explicit in the schema documentation.
- 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, andrepeat. - Input/output types are consistent and match the schema's allowed values.
- The
descriptionfield correctly points to the correspondingdocs/workflow/*.mdfile in every case. requiresfields 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.yamlhaspath: commands/intake/document-codebase.mdbut this file does not exist. Same for the other two intake commands. Thestatus: plannedfield explains this, but a CI validation step should catch it. common-ground.yamlhas nophasefield. This is correct per the schema (utilities omitphase), but is inconsistent with the schema documentation which listsphaseas required. The schema doc should explicitly state thatphaseis omitted for utility commands.
Recommendations:
- Add a CI validation that verifies
pathfiles exist whenstatus: existing. - Clarify in the schema documentation that
phaseis 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
- Intake phase entirely absent from
WORKFLOW_COMMANDS.md. Three commands undocumented in the primary reference. complete-sprintexists as implementation and inWORKFLOW_COMMANDS.mdbut has no YAML definition or manifest entry. This is a ghost command -- documented but not formally defined.common-groundabsent fromWORKFLOW_COMMANDS.md. Documented in its own guide (COMMON_GROUND.md) but invisible in the workflow reference.- 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.
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 usersPage 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.mdas 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 currentATLASSIAN_MCP_SETUP.md).- Duplicated content in README. The Project Workflow Commands section in README becomes a brief paragraph pointing to
/workflows/. Thecommon-groundsection in README becomes a brief paragraph pointing to/utilities/common-ground/.
What to Create
- 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.
- Checkpoint System guide. Currently buried in
WORKFLOW_COMMANDS.md. Deserves its own page since it is a cross-cutting concern. - 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
- 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>). OnlyWORKFLOW_COMMANDS.mdhas this. - Phase context breadcrumb. Add a one-line note: "Part of the Discovery phase. Comes after
intake:create-system-description. Feeds intodiscovery:synthesize." - Requirements callout. Add a visible callout for external dependencies: "Requires: Jira, Confluence. See Atlassian Setup Guide."
- 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
- DAG context. Add which phases depend on this phase and which this phase depends on (pulling from the manifest's
depends_onfield). - Skip conditions. For optional phases (discovery), state when and how to skip.
- External skill dependencies. The manifest's
external_skillsfield (e.g., feature-forge as prerequisite for discovery) should be surfaced in the phase overview.
5. Priority Ranking
Critical (Must fix before next release)
- Resolve
complete-sprintstatus. Either add YAML definition + manifest entry, or remove fromWORKFLOW_COMMANDS.mdand delete the orphaned implementation file. The current state is contradictory. - 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. - 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)
- 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). - Cross-link
COMMON_GROUND.mdandWORKFLOW_COMMANDS.md. These are companion documents with zero cross-references. - Cross-link
ATLASSIAN_MCP_SETUP.mdfromWORKFLOW_COMMANDS.mdIntegration Points section. A reader encountering Jira/Confluence requirements needs the setup guide. - Link
local_skill_development.mdfrom CONTRIBUTING.md and README. Currently orphaned. - Fix "groundin file" typo in
COMMON_GROUND.mdline 176. - Add invocation syntax to each
docs/workflow/command description. Currently, onlyWORKFLOW_COMMANDS.mdshows how to actually invoke commands.
Medium (Should fix for quality)
- Clarify schema documentation for planned-status path exemption. The schema says
pathmust resolve to an existing file but does not mention theplannedexemption. - Clarify schema documentation for utility command phase omission. The schema says
phaseis required but utilities omit it. - Create a Getting Started guide. New users face a fragmented onboarding path across 4+ documents.
- Deduplicate README and
COMMON_GROUND.mdconfidence tier explanations. Same content appears in both. - Add CI validation for YAML path resolution. Catch broken
pathreferences automatically. - 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)
- Add a workflow FAQ/troubleshooting page. Collect implicit answers to common questions.
- Add version pinning guidance to
ATLASSIAN_MCP_SETUP.md. The:latestDocker tag is convenient but risky. - Add a workflow command development guide.
local_skill_development.mdcovers skills but not commands. - Create a checkpoint system standalone guide. Currently buried in
WORKFLOW_COMMANDS.mdand worth surfacing independently. - 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 |
|---|---|---|
| 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
The Insight: Skill Linking = Internal Link Graph
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:
- Agent runtime — Claude follows structured links to load related skills contextually
- 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.txtbecomes a routing file pointing agents to markdown endpoints for every skill and command- An agent can fetch
/skills/react-expert.mdand 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.htmlandindex.mdfor 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
Acceptheader and returns appropriate format - Cleaner URLs but requires a server or edge function (not pure static)
Option C: Query parameter
/skills/react-expert/?format=mdreturns 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:
# 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
/ ← 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 summaryEach 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
inputswith types) - Outputs table (from YAML
outputswith 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:
- Inventory all existing docs — README, SKILLS_GUIDE, CONTRIBUTING, docs/*.md, workflow docs, skill SKILL.md files
- Identify redundancy — content duplicated across README, SKILLS_GUIDE, and individual docs
- Identify gaps — missing docs, outdated sections, broken cross-references
- Assess voice consistency — do all docs follow the same tone, structure, terminology?
- Map content to site structure — which existing doc maps to which site page?
Phase 2: Content Restructuring
- Separate concerns — README becomes a short landing page pointing to the docs site; detailed content moves to docs
- Deduplicate — single source of truth for each topic; other locations link to it
- Standardize structure — every skill page follows the same template; every command page follows the same template
- Write missing content — landing page copy, category descriptions, getting started guide
- 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
// 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 commandsPhase 5: Build and Deploy
- Define Astro content collection schemas from finalized #69 metadata spec
- Build page templates for skills, commands, workflows
- Implement dual-format endpoints (HTML + markdown per page)
- Generate
llms.txtfrom content collections at build time - Deploy to GitHub Pages with custom domain
- Submit sitemap to Google Search Console
- Add sponsor badges to site and repo README
- 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.txton release - Auto-regenerate sitemap on content changes
- Content collection schema validation catches broken frontmatter at build time
Dependency Chain
#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 5Open Questions
- Custom domain? —
docs.claudeskills.dev,skills.jeffallan.dev, or subdirectory of existing site? - Versioned docs? — Do we need docs for multiple versions, or just latest?
- Search — Starlight built-in search vs. Algolia DocSearch (free for open source)?
- Docs site repo — Same repo (monorepo with
/sitedirectory) 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
/* Detailed source-code truncated for AI context efficiency. */Usage
Basic Invocation
Replace [FEATURE DESCRIPTION] with your feature summary:
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
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 DocumentDesign 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
AskUserQuestionswith 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
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
---
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)
- Identify (Thesis) — Extract the user's position from conversation context. Restate it as a steelmanned thesis for confirmation.
- Select (Method) — Use
AskUserQuestionsto let the user choose a reasoning mode, or auto-recommend based on context signals. - Challenge (Antithesis) — Apply the selected mode's method. Load the corresponding reference file for deep guidance.
- Engage (Dialogue) — Present findings. Ask the user to respond to the strongest 2-3 points before proceeding.
- 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:
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 contextIf "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
AskUserQuestionsfor 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
AskUserQuestionscan provide structured options
Related Skills
- 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:
- Common Ground (surface assumptions)
- The Fool (stress-test the decision)
- Architecture Designer (document refined decision)
Implementation Order
- Create
skills/the-fool/SKILL.md - Create
skills/the-fool/references/mode-selection-guide.md - Create
skills/the-fool/references/socratic-questioning.md - Create
skills/the-fool/references/dialectic-synthesis.md - Create
skills/the-fool/references/pre-mortem-analysis.md - Create
skills/the-fool/references/red-team-adversarial.md - Create
skills/the-fool/references/evidence-audit.md - Update
SKILLS_GUIDE.mdwith new skill entry
Verification
python scripts/validate-skills.py --skill the-fool— verify YAML, description format, referencespython scripts/update-docs.py --check— verify counts are in sync- Manually verify trigger phrases match natural invocation patterns
- Review each reference file stays within 100-600 line bounds
Key Files to Reference During Implementation
skills/feature-forge/SKILL.md— AskUserQuestions integration patternskills/feature-forge/references/interview-questions.md— Structured question flow examplesskills/code-reviewer/SKILL.md— Review-scope skill with routing tablecommands/common-ground.md— Interactive multi-phase dialogue patternSKILLS_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
# 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: falseField 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
/* 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
- No cycles: The
depends_ongraph must be a DAG. A phase cannot transitively depend on itself. - Command uniqueness: Every
commandvalue across all phases and utilities must be unique. - Path resolution: All
definitionanddescriptionpaths must resolve to existing files. - Phase reference validity: Every
depends_on[].phasemust reference a phase defined in the manifest. - Definition consistency: Each
commands[].commandmust match thecommandfield inside the referenced YAML definition file. - Status gating: Commands with
status: plannedshould 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 ---
- Files Extracted: 35
- Estimated Token Budget: ~68404 tokens
- Canonical Reference: https://codewiki.google/github.com/Jeffallan/claude-skills