sdd-render
Render JSON specs to human-readable markdown with AI-enhanced insights, visualizations, and progressive disclosure
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
メニュー
Render JSON specs to human-readable markdown with AI-enhanced insights, visualizations, and progressive disclosure
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
SOC 職業分類に基づく
Task preparation skill for spec-driven workflows. Reads specifications, identifies next actionable tasks, and creates detailed execution plans. Use when ready to implement a task from an existing spec - bridges the gap between planning and coding.
Validate SDD JSON specs, auto-fix common issues, generate detailed reports, and analyze dependencies.
Targeted query capabilities for machine-readable codebase documentation with cross-reference tracking, call graph analysis, and workflow automation. Enables fast lookups of classes, functions, dependencies, and function relationships without parsing source code.
LLM-powered documentation generation for narrative architecture docs, tutorials, and developer guides. Uses AI consultation to create contextual, human-readable documentation from code analysis and spec data.
Plan-first development methodology that creates detailed specifications before coding. Use when building features, refactoring code, or implementing complex changes. Creates structured plans with phases, file-level details, and verification steps to prevent drift and ensure production-ready code.
AI-powered PR creation after spec completion. Analyzes spec metadata, git diffs, commit history, and journal entries to generate comprehensive PR descriptions with user approval before creation.
| name | sdd-render |
| description | Render JSON specs to human-readable markdown with AI-enhanced insights, visualizations, and progressive disclosure |
Transform JSON specification files into beautifully formatted, human-readable markdown documentation. The sdd-render skill bridges the gap between machine-readable specs and human comprehension, making it easy to review progress, share status, and understand project structure at a glance.
Features:
⚠️ CRITICAL REQUIREMENT: MANDATORY PRE-EXECUTION CHECKLIST ⚠️
Before executing ANY sdd render command, you MUST complete this validation:
┌─────────────────────────────────────────────────────────────┐
│ PRE-EXECUTION DECISION TREE (MANDATORY) │
├─────────────────────────────────────────────────────────────┤
│ │
│ ❓ Has user EXPLICITLY specified a rendering mode? │
│ (e.g., "use basic mode", "render with full AI") │
│ │
│ YES ─────────┐ NO │
│ │ │ │
│ │ ▼ │
│ │ ✋ STOP - DO NOT RENDER YET │
│ │ │ │
│ │ ▼ │
│ │ 🔴 REQUIRED ACTION: │
│ │ Use AskUserQuestion tool │
│ │ to ask for mode preference │
│ │ │ │
│ │ ▼ │
│ └──────────► ✅ Proceed with render │
│ │
└─────────────────────────────────────────────────────────────┘
CRITICAL: Always Ask User for Rendering Mode
Unless the user has explicitly specified a rendering mode in their request, you MUST use the AskUserQuestion tool to ask which mode they want:
Example Usage:
AskUserQuestion(
questions: [{
question: "Which rendering mode would you like to use?",
header: "Render Mode",
multiSelect: false,
options: [
{
label: "Basic (fast, no AI)",
description: "Quick rendering without AI features (< 2 seconds)"
},
{
label: "Enhanced - Summary",
description: "Executive summary with AI (~1-2 minutes)"
},
{
label: "Enhanced - Standard (recommended)",
description: "Balanced AI features (~3-5 minutes) [DEFAULT]"
},
{
label: "Enhanced - Full",
description: "Complete AI analysis (~5-8 minutes)"
},
{
label: "Generate all versions for comparison",
description: "Creates basic, standard, and full versions"
}
]
}]
)
When to skip asking:
After getting the answer:
WRONG APPROACH #1: Immediate execution without asking
User: "Let's call the sdd-render skill for /path/to/spec.json"
❌ Assistant: I'll render the specification file for you.
[Immediately executes: sdd render /path/to/spec.json]
PROBLEM: Skipped asking about rendering mode preference
CORRECT APPROACH #1: Ask first, then execute
User: "Let's call the sdd-render skill for /path/to/spec.json"
✅ Assistant: I'll help you render that specification. First, let me ask
which rendering mode you'd like to use.
[Uses AskUserQuestion tool to present mode options]
[After user answers, executes with chosen mode]
WRONG APPROACH #2: Assuming default is okay
User: "Can you render this spec?"
❌ Assistant: I'll use the default enhanced standard mode.
[Executes without asking]
PROBLEM: Assumed user wants default without confirming
CORRECT APPROACH #2: Explicit confirmation
User: "Can you render this spec?"
✅ Assistant: Which rendering mode would you prefer?
[Presents options with AskUserQuestion]
[User selects mode]
[Executes with selected mode]
ONLY ACCEPTABLE: User explicitly specifies mode
User: "Render this spec with basic mode for speed"
✅ Assistant: I'll render using basic mode as you requested.
[Executes: sdd render <spec-id> --mode basic]
REASON: User explicitly specified "basic mode" - no need to ask
3-Phase Process:
Key principles:
Quick decision guide:
Skill(sdd-toolkit:sdd-plan) insteadThis skill is part of the Spec-Driven Development family:
Reporting and Communication:
Analysis and Planning:
Documentation:
| Scenario | Action | Why |
|---|---|---|
| Single active spec review | sdd render {spec-id} | Quick status check |
| All active specs status | Batch render all active specs | Comprehensive project overview |
| Client presentation | sdd render {spec-id} --output client/report.md | Professional delivery |
| Debugging spec structure | sdd render {spec-id} --verbose | Detailed diagnostics |
| Daily standup prep | Render + grep for progress | Extract quick metrics |
| Post-update verification | Render after sdd-update | Visualize changes |
| Audience | Destination | Format Considerations |
|---|---|---|
| Development team | specs/.human-readable/ (default) | Version controlled, easy access |
| Stakeholders | docs/reports/ or docs/status/ | Permanent documentation location |
| Clients | Custom path + PDF conversion | Professional presentation format |
| CI/CD pipelines | stdout (--output -) | Pipeline integration, no file I/O |
| Archive | docs/archive/ with timestamp | Historical record keeping |
When rendering fails, check in order:
Spec file exists?
sdd find-specs --verbose to locateJSON is valid?
python3 -m json.tool <spec-file>.jsonOutput directory writable?
ls -la $(dirname <output-path>)Still failing?
--debug flag for detailed error messagessdd render --helpSpec Modification:
Skill(sdd-toolkit:sdd-plan))Skill(sdd-toolkit:sdd-plan))Skill(sdd-toolkit:sdd-plan))Task Execution:
Skill(sdd-toolkit:sdd-next))Skill(sdd-toolkit:sdd-next))Skill(sdd-toolkit:run-tests))Other:
Before using this skill, verify the required tools are available:
# Verify sdd render command is installed
sdd render --help
Expected output: Help text showing available options for the render command
IMPORTANT - CLI Usage Only:
sdd render CLI command (e.g., sdd render {spec-id})python cli.py, python renderer.py)The CLI provides proper error handling, validation, argument parsing, and interface consistency. Direct script execution bypasses these safeguards and may fail.
If the verification command fails, ensure the SDD toolkit is properly installed and accessible in your environment.
CRITICAL: This skill is READ-ONLY
This skill transforms JSON specs into markdown. It NEVER modifies the source specification files or any code.
MANDATORY: Pre-Execution Mode Selection
Before executing ANY render command, you MUST ask the user for their preferred rendering mode using the AskUserQuestion tool (unless the user explicitly specified a mode in their request). This is a non-negotiable requirement of the skill contract. See the Pre-Execution Decision Tree in the Core Workflow section above.
What this skill does:
What this skill NEVER does:
Handoff Points - When to Use Other Skills:
After successful rendering:
Spec structure looks wrong?
Skill(sdd-toolkit:sdd-plan) to modify spec structureTask status needs updating?
Ready to implement tasks?
Skill(sdd-toolkit:sdd-next) to identify next taskNeed to verify implementation?
Skill(sdd-toolkit:run-tests) to run testsOutput is satisfactory?
Never chain this skill with spec modification:
Always render AFTER making changes:
Consultation is never required for rendering:
Execution Workflow:
Ask user for mode preference (unless they explicitly specified):
Execute the appropriate command based on user's answer:
If user chose "Basic (fast, no AI)":
sdd render {spec-id} --mode basic
# ~2 seconds
If user chose "Enhanced - Summary":
sdd render {spec-id} --enhancement-level summary
# ~1-2 minutes
# Note: --mode enhanced is implied when --enhancement-level is specified
If user chose "Enhanced - Standard" (or didn't specify):
sdd render {spec-id}
# Default: enhanced mode with standard level (~3-5 minutes)
# Equivalent to: sdd render {spec-id} --enhancement-level standard
If user chose "Enhanced - Full":
sdd render {spec-id} --enhancement-level full
# ~5-8 minutes
# Note: --mode enhanced is implied when --enhancement-level is specified
If user chose "Generate all versions for comparison":
# Generate all three versions with different output names
sdd render {spec-id} --mode basic -o specs/.human-readable/{spec-id}-basic.md
sdd render {spec-id} --enhancement-level standard -o specs/.human-readable/{spec-id}-standard.md
sdd render {spec-id} --enhancement-level full -o specs/.human-readable/{spec-id}-full.md
Report results to the user (output location and any relevant information)
Output Location:
By default, rendered markdown is saved to specs/.human-readable/{spec-id}.md
Mode Options for AskUserQuestion:
Present these 5 options to the user:
| Option Label | CLI Command | Use Case |
|---|---|---|
| "Basic (fast, no AI)" | --mode basic | Quick status checks (~2s) |
| "Enhanced - Summary" | --enhancement-level summary | Executive summaries (~1-2 min) |
| "Enhanced - Standard (recommended)" | (default, no flags needed) | Most use cases (~3-5 min) [DEFAULT] |
| "Enhanced - Full" | --enhancement-level full | Comprehensive analysis (~5-8 min) |
| "Generate all versions for comparison" | Multiple commands with different -o paths | Side-by-side comparison |
See the AI Enhancement Modes section below for detailed feature comparison.
The renderer converts JSON specification files into clean, readable markdown with:
Header Section:
Phase Sections:
Task Details:
Verification Steps:
Visual indicators make progress instantly recognizable:
Progress is calculated and displayed at multiple levels:
Spec Level:
User Authentication System
Status: in_progress (15/23 tasks, 65%)
Phase Level:
## Phase 2: Authentication Service (5/8 tasks, 62%)
Group Level:
### File Modifications (4/5 tasks)
Dependencies are clearly shown to understand task relationships:
**Depends on:** task-1-2, task-1-3
**Blocked by:** task-2-1
**Blocks:** task-3-1, task-3-2, task-3-3
This makes it easy to:
Default Output:
sdd render my-spec-001
# Creates: specs/.human-readable/my-spec-001.md
Custom Output Path:
sdd render my-spec-001 --output docs/current-project.md
# Creates: docs/current-project.md
Specify Specs Directory:
sdd render my-spec-001 --path /path/to/specs
# Useful when working with multiple projects
The sdd-render skill supports multiple rendering modes to balance speed and feature richness. Choose the mode based on your needs for performance versus detailed AI-generated insights.
Default Rendering:
When you run sdd render {spec-id} without any flags, it uses Enhanced Mode with Standard level for balanced performance and features (~3-5 minutes).
Two primary modes:
Basic Mode (--mode basic)
Enhanced Mode (default, --mode enhanced optional)
standard--mode enhanced flag is optional - specifying --enhancement-level automatically enables enhanced modeWhen using enhanced mode (the default), you can optionally specify one of three enhancement levels:
| Level | Features | Performance | Best For |
|---|---|---|---|
| summary | Executive summary only | ~1-2 minutes | Quick AI overview for stakeholders |
| standard | Base features + narrative enhancement | ~3-5 minutes | Team reviews and status reports |
| full | All AI features (insights, visualizations, analysis) | ~5-8 minutes | Comprehensive documentation and planning |
| Feature | Basic | Enhanced (summary) | Enhanced (standard) | Enhanced (full) |
|---|---|---|---|---|
| Markdown generation | ✅ | ✅ | ✅ | ✅ |
| Progress indicators | ✅ | ✅ | ✅ | ✅ |
| Dependency visualization | ✅ | ✅ | ✅ | ✅ |
| Task hierarchies | ✅ | ✅ | ✅ | ✅ |
| Executive summary | ❌ | ✅ | ✅ | ✅ |
| Narrative enhancement | ❌ | ❌ | ✅ | ✅ |
| Priority ranking | ❌ | ❌ | ❌ | ✅ |
| Complexity scoring | ❌ | ❌ | ❌ | ✅ |
| AI insights & recommendations | ❌ | ❌ | ❌ | ✅ |
| Dependency graphs (Mermaid) | ❌ | ❌ | ❌ | ✅ |
| Task grouping suggestions | ❌ | ❌ | ❌ | ✅ |
Default Rendering (Enhanced Standard):
# Uses enhanced mode with standard level by default
sdd render my-spec-001
# Equivalent explicit forms
sdd render my-spec-001 --enhancement-level standard
sdd render my-spec-001 --mode enhanced --enhancement-level standard
# With custom output
sdd render my-spec-001 --output docs/team-status.md
Basic Mode (fastest, no AI):
# Must explicitly specify --mode basic to override enhanced default
sdd render my-spec-001 --mode basic
# For quick status checks
sdd render my-spec-001 --mode basic --output /tmp/quick-status.md
# When AI features aren't needed
sdd render my-spec-001 --mode basic
Enhanced Mode with Summary:
# Specifying --enhancement-level automatically enables enhanced mode
sdd render my-spec-001 --enhancement-level summary
# For stakeholder updates (--mode enhanced is optional, implied by --enhancement-level)
sdd render my-spec-001 --enhancement-level summary --output reports/exec-summary.md
Enhanced Mode with Full Features:
# Specifying --enhancement-level automatically enables enhanced mode
sdd render my-spec-001 --enhancement-level full
# Maximum AI analysis with all features (--mode enhanced is implied)
sdd render my-spec-001 --enhancement-level full --output docs/comprehensive-plan.md
You can generate all three versions to compare outputs:
#!/bin/bash
SPEC_ID="my-spec-001"
# Generate basic version (fast reference)
sdd render $SPEC_ID --mode basic --output specs/.human-readable/${SPEC_ID}-basic.md
# Generate standard enhanced version (balanced)
sdd render $SPEC_ID --mode enhanced --enhancement-level standard --output specs/.human-readable/${SPEC_ID}-standard.md
# Generate full enhanced version (comprehensive)
sdd render $SPEC_ID --mode enhanced --enhancement-level full --output specs/.human-readable/${SPEC_ID}-full.md
echo "Generated three versions in specs/.human-readable/"
ls -lh specs/.human-readable/${SPEC_ID}-*.md
Use Default (Enhanced Standard) when:
Override to Basic Mode when:
Override to Enhanced Summary when:
Override to Enhanced Full when:
When invoked via the sdd-render skill (not direct CLI):
The skill will proactively ask you which rendering mode you prefer using an interactive question:
Which rendering mode would you like to use?
○ Basic (fast, < 2 seconds, no AI)
○ Enhanced - Summary (executive summary, ~1-2 minutes)
○ Enhanced - Standard (recommended, balanced, ~3-5 minutes) ← default
○ Enhanced - Full (comprehensive analysis, ~5-8 minutes)
Benefits of interactive selection:
When to skip the question: If you already know which mode you want, you can specify it in your initial request:
The skill will respect your explicit request and skip the interactive question.
Enhanced mode uses external CLI tools for AI processing:
Tool Priority Order:
Automatic Fallback:
.claude/ai_config.yaml (sdd-render.tools and sdd-render.models)Rendering Times:
Network Requirements:
Cost Considerations:
# User Authentication System
**Spec ID:** user-auth-2025-10-24-001
**Status:** in_progress (15/23 tasks, 65%)
**Estimated Effort:** 45 hours
**Complexity:** High
## Description
Implement a secure user authentication system with JWT tokens, role-based access control, and session management.
## Objectives
- Secure password hashing with bcrypt
- JWT token generation and validation
- Role-based access control middleware
- Session management and refresh tokens
- Account lockout after failed attempts
## Phase 2: Authentication Service (5/8 tasks, 62%)
**Purpose:** Implement core authentication logic
**Risk Level:** Medium
**Estimated Hours:** 18
### Tasks
#### ✅ task-2-1: Create AuthService class
**File:** src/services/authService.ts
**Estimated:** 3 hours
**Status:** completed
**Completed:** 2025-10-24 14:30:15
**Changes:**
Implement user registration with password hashing, add login method with JWT generation, include password validation logic
**Reasoning:** Centralizes authentication logic
**Blocks:** task-2-2, task-2-3
---
#### 🔄 task-2-2: Implement JWT middleware
**File:** src/middleware/auth.ts
**Estimated:** 2 hours
**Status:** in_progress
**Changes:**
Create Express middleware for JWT verification, add token expiration checking, handle invalid token responses
**Reasoning:** Protects API routes
**Depends on:** task-2-1 ✅
**Blocks:** task-2-3, task-2-4, task-2-5
---
#### ⏳ task-2-3: Add role-based authorization
**File:** src/middleware/rbac.ts
**Estimated:** 2.5 hours
**Status:** pending
**Changes:**
Create role checking middleware, define permission mappings, add route-level access control
**Reasoning:** Enables fine-grained access control
**Blocked by:** task-2-2 🔄
#### verify-2-1: Verify authentication flow
**Type:** integration
**Estimated:** 1 hour
**Commands:**
```bash
npm test -- auth.integration.spec.ts
Expected Outcome: All authentication tests pass, JWT token format is valid, protected routes reject invalid tokens
### Before/After Comparison
**JSON Input:**
```json
{
"id": "task-2-1",
"type": "task",
"title": "Create AuthService class",
"status": "completed",
"metadata": {
"file_path": "src/services/authService.ts",
"estimated_hours": 3,
"changes": "Implement user registration with password hashing",
"reasoning": "Centralizes authentication logic"
},
"dependencies": {
"blocks": ["task-2-2", "task-2-3"]
}
}
Rendered Output:
#### ✅ task-2-1: Create AuthService class
**File:** src/services/authService.ts
**Estimated:** 3 hours
**Status:** completed
**Changes:**
Implement user registration with password hashing
**Reasoning:** Centralizes authentication logic
**Blocks:** task-2-2, task-2-3
Default Rendering (Enhanced Standard):
sdd render {spec-id}
Renders a JSON spec with AI-enhanced narrative to markdown in the default location (specs/.human-readable/). Uses enhanced mode with standard level by default.
Basic Mode (Fast, No AI):
sdd render {spec-id} --mode basic
Quick rendering without AI features for speed-critical scenarios. Must explicitly specify --mode basic to override the enhanced default.
Full AI Enhancement:
sdd render {spec-id} --enhancement-level full
Maximum AI analysis with insights, visualizations, and recommendations. The --mode enhanced flag is optional - it's automatically enabled when you specify --enhancement-level.
Custom Output Path:
sdd render {spec-id} --output {path}
sdd render {spec-id} -o {path}
Specify where to save the rendered markdown file
Specify Specs Directory:
sdd render {spec-id} --path {specs-dir}
Use when specs are not in the default location
Render from File Path:
sdd render /path/to/spec-file.json
Directly render a JSON file by providing its full path
Available Options:
| Option | Short | Description | Default |
|---|---|---|---|
--mode | Rendering mode: basic (fast, no AI) or enhanced (AI features). Optional - automatically set to enhanced when --enhancement-level is specified. | enhanced (with standard level) | |
--enhancement-level | AI enhancement level: summary, standard, or full. Automatically enables enhanced mode. | standard | |
--output | -o | Output file path | specs/.human-readable/{spec-id}.md |
--path | Specs directory path | Auto-discovery | |
--verbose | -v | Show detailed output | Off |
--debug | Show debug information | Off |
Key Options Explained:
--mode basic - Explicitly disables AI features for fast rendering (< 2 seconds). Must be specified to override enhanced default.--mode enhanced - Enables AI features (default, can be omitted). Automatically enabled when --enhancement-level is specified.--enhancement-level summary - Executive summary only (~1-2 minutes). Automatically enables enhanced mode.--enhancement-level standard - Balanced AI features (default, ~3-5 minutes). Automatically enables enhanced mode.--enhancement-level full - All AI features including visualizations (~5-8 minutes). Automatically enables enhanced mode.Render with default settings (enhanced standard):
sdd render user-auth-2025-10-24-001
# Uses: mode=enhanced (default), level=standard (default) (~3-5 minutes)
Fast render without AI (basic mode):
sdd render user-auth-2025-10-24-001 --mode basic
# Must explicitly specify --mode basic to override enhanced default
# Quick status check (< 2 seconds)
Executive summary only:
sdd render user-auth-2025-10-24-001 --enhancement-level summary
# Automatically enables enhanced mode (~1-2 minutes)
Full AI analysis:
sdd render user-auth-2025-10-24-001 --enhancement-level full
# Automatically enables enhanced mode (~5-8 minutes)
Render to custom location:
sdd render user-auth-2025-10-24-001 --output docs/auth-plan.md
# Default enhanced standard mode with custom path
Basic mode to custom location (fast):
sdd render user-auth-2025-10-24-001 --mode basic --output /tmp/quick-status.md
# Speed-optimized with custom output
Render with verbose output:
sdd render user-auth-2025-10-24-001 --verbose
# Shows: Total tasks, output size, processing time, AI tool used
Render from specific specs directory:
sdd render my-spec-001 --path /projects/myapp/specifications
Render and view immediately:
sdd render my-spec-001 && less specs/.human-readable/my-spec-001.md
Generate multiple versions for comparison:
# Basic (fast reference)
sdd render my-spec-001 --mode basic -o specs/.human-readable/my-spec-001-basic.md
# Standard (default, balanced)
sdd render my-spec-001 -o specs/.human-readable/my-spec-001-standard.md
# Full (comprehensive)
sdd render my-spec-001 --enhancement-level full -o specs/.human-readable/my-spec-001-full.md
Situation: Need to generate a progress report for the weekly team meeting
When to use this approach:
Decision checklist:
Steps:
sdd render user-auth-2025-10-24-001 -o reports/week-$(date +%Y-%m-%d).md
less reports/week-2025-10-24.md
# Copy to shared docs folder
cp reports/week-2025-10-24.md /shared/team-docs/
# Or email directly
mail -s "Weekly Progress" team@company.com < reports/week-2025-10-24.md
Output includes:
Why this approach works:
Situation: Client wants to see project progress in readable format
Steps:
sdd render mobile-app-2025-09-15-001 --output client/project-status-$(date +%B).md
pandoc client/project-status-October.md -o client/project-status-October.pdf
Situation: New developer joins and needs to understand project scope
Steps:
for spec in specs/active/*.json; do
spec_id=$(basename $spec .json)
sdd render $spec_id
done
ls specs/.human-readable/ > docs/project-index.txt
Situation: Before starting implementation, review the spec structure
When to use this approach:
Skill(sdd-toolkit:sdd-plan)Decision checklist:
Skill(sdd-toolkit:sdd-plan) to modifySteps:
sdd render api-redesign-2025-10-01-001 --verbose
Skill(sdd-toolkit:sdd-plan) to update specsdd render api-redesign-2025-10-01-001
Why this approach works:
Situation: Project is complete, need permanent documentation
Steps:
sdd render user-dashboard-2025-08-01-001 --output archive/user-dashboard-final-$(date +%Y-%m-%d).md
echo "# User Dashboard Project - Completed $(date +%Y-%m-%d)" > archive/README.md
echo "" >> archive/README.md
echo "See user-dashboard-final-*.md for complete specification" >> archive/README.md
Situation: Evaluating AI enhancement value or choosing the right level for your workflow
When to use this approach:
Decision checklist:
time commandSteps:
#!/bin/bash
SPEC_ID="user-auth-2025-10-24-001"
echo "Generating basic version (no AI)..."
time sdd render $SPEC_ID --mode basic \
--output specs/.human-readable/${SPEC_ID}-basic.md
echo "Generating standard version (default AI)..."
time sdd render $SPEC_ID --enhancement-level standard \
--output specs/.human-readable/${SPEC_ID}-standard.md
echo "Generating full version (maximum AI)..."
time sdd render $SPEC_ID --enhancement-level full \
--output specs/.human-readable/${SPEC_ID}-full.md
echo "All versions generated!"
ls -lh specs/.human-readable/${SPEC_ID}-*.md
# Example output:
# -rw-r--r-- 1 user user 45K Oct 24 10:15 user-auth-2025-10-24-001-basic.md (1.2s)
# -rw-r--r-- 1 user user 78K Oct 24 10:16 user-auth-2025-10-24-001-standard.md (58s)
# -rw-r--r-- 1 user user 120K Oct 24 10:17 user-auth-2025-10-24-001-full.md (92s)
# Quick scan of basic version
less specs/.human-readable/${SPEC_ID}-basic.md
# Review standard enhancements
less specs/.human-readable/${SPEC_ID}-standard.md
# Examine full AI features
less specs/.human-readable/${SPEC_ID}-full.md
# Compare basic vs standard
diff specs/.human-readable/${SPEC_ID}-basic.md \
specs/.human-readable/${SPEC_ID}-standard.md | head -50
# Compare standard vs full
diff specs/.human-readable/${SPEC_ID}-standard.md \
specs/.human-readable/${SPEC_ID}-full.md | head -50
What to look for in each version:
Basic Mode:
Enhanced Standard:
Enhanced Full:
Why this approach works:
Making your choice:
Creating Specs → Rendering Specs:
1. Create spec with sdd-plan
↓
2. Spec saved as JSON in specs/active/
↓
3. Render with sdd-render for human review
↓
4. Share rendered markdown with team
Use case: After creating a new specification, immediately render it to markdown for team review before beginning implementation.
Understanding Context → Finding Tasks:
1. Render spec to understand overall structure
↓
2. Use sdd-next to identify next actionable task
↓
3. Render again after completing tasks to see progress
Use case: Before starting work, render the spec to understand the big picture, then use sdd-next for focused task execution.
Tracking Progress → Visualizing Progress:
1. Complete a task
↓
2. Update status with sdd-update
↓
3. Render spec to see updated progress
↓
4. Share progress report with stakeholders
Use case: After completing milestones, render the spec to generate a progress report showing what's been accomplished.
Verification → Documentation:
1. Run tests with run-tests skill
↓
2. Update verification steps with results
↓
3. Render spec to document test outcomes
Use case: After running verification steps, the rendered spec shows which verifications passed and which are pending.
Generated markdown can be:
# Render and view current status
sdd render current-project-001 && less specs/.human-readable/current-project-001.md
# Look for:
# - Progress percentage
# - Tasks completed today
# - Upcoming blockers
# Generate weekly report
sdd render current-project-001 -o team-sync/week-$(date +%U).md
# Review in meeting:
# - Progress since last week
# - Upcoming milestones
# - Team allocation
# Render all active projects
for spec in specs/active/*.json; do
spec_id=$(basename $spec .json)
sdd render $spec_id -o stakeholder-updates/$(date +%Y-%m)/$spec_id.md
done
# Create summary:
# - Cross-project status
# - Key achievements
# - Upcoming priorities
# Render with verbose output
sdd render problem-spec-001 --verbose --debug
# Check for:
# - Malformed JSON
# - Circular dependencies
# - Missing metadata
# - Progress calculation issues
Symptoms:
Error: Spec not found: my-spec-001
Solutions:
# List available specs
sdd find-specs --verbose
sdd render my-spec-001 --path /path/to/specs
sdd render /path/to/specs/active/my-spec-001.json
Symptoms:
Error: Permission denied: /output/path/file.md
Solutions:
ls -la /output/path/
mkdir -p /output/path
# Omit --output flag to use default
sdd render my-spec-001
Symptoms:
Error: Failed to load spec file: Invalid JSON
Solutions:
python3 -m json.tool specs/active/my-spec-001.json
# Use sdd-plan to recreate the spec
# This ensures valid JSON structure
Symptoms: Rendered markdown shows "Untitled" or missing information
Solutions:
Skill(sdd-toolkit:sdd-plan) to add metadatasdd render my-spec-001
Render all active specs:
#!/bin/bash
for spec in specs/active/*.json; do
spec_id=$(basename "$spec" .json)
echo "Rendering $spec_id..."
sdd render "$spec_id"
done
Render all specs in a status folder:
# Render all completed specs
for spec in specs/completed/*.json; do
spec_id=$(basename "$spec" .json)
sdd render "$spec_id" -o docs/completed/$spec_id.md
done
Pre-commit hook to render specs:
#!/bin/bash
# .git/hooks/pre-commit
# Render all active specs before committing
for spec in specs/active/*.json; do
if [ -f "$spec" ]; then
spec_id=$(basename "$spec" .json)
sdd render "$spec_id"
git add "specs/.human-readable/$spec_id.md"
fi
done
Benefits:
Extract progress percentage:
sdd render my-spec-001 -o /tmp/spec.md
grep "Status:" /tmp/spec.md | grep -oP '\d+%'
Generate progress badge:
progress=$(sdd render my-spec-001 -o - | grep -oP '\d+%' | head -1)
echo ""
Create searchable index:
# Render all specs and create full-text search index
for spec in specs/active/*.json; do
spec_id=$(basename "$spec" .json)
sdd render "$spec_id" >> docs/searchable-index.md
done
Basic Mode Performance:
Enhanced Mode Performance: Performance depends on the enhancement level chosen:
| Mode | Small Spec | Medium Spec | Large Spec | Very Large Spec |
|---|---|---|---|---|
| Basic (no AI) | < 100ms | < 500ms | < 2s | < 5s |
| Enhanced (summary) | ~1 min | ~1.5 min | ~2 min | ~2.5 min |
| Enhanced (standard) | ~3 min | ~4 min | ~5 min | ~6 min |
| Enhanced (full) | ~5 min | ~6 min | ~7 min | ~8 min |
Note: Enhanced mode times are dominated by AI processing rather than spec size, so scaling is relatively flat.
Factors affecting basic mode performance:
Factors affecting enhanced mode performance:
For speed-critical workflows:
# Use basic mode when speed matters
sdd render my-spec-001 --mode basic
# Output to stdout (skips file I/O)
sdd render my-spec-001 --mode basic --output -
# Batch render with basic mode
for spec in specs/active/*.json; do
sdd render $(basename $spec .json) --mode basic
done
For balanced workflows (default):
# Default enhanced standard provides good balance
sdd render my-spec-001
# Cache results for repeated access
sdd render my-spec-001 --output /tmp/cached-spec.md
For comprehensive analysis (one-time renders):
# Full enhancement for documentation
sdd render my-spec-001 --enhancement-level full --output docs/comprehensive.md
Default Behavior:
--mode basic)--enhancement-level)AI Tooling: AI enhancements use external CLI tools via subprocess. The default priority order is:
Automatic Fallback:
Configuration:
AI tool settings can be customized in .claude/ai_config.yaml (sdd-render section)
Performance characteristics:
Input:
specs/active/, specs/completed/, specs/archived/--path optionOutput:
specs/.human-readable/{spec-id}.md--output optionproject/
├── specs/
│ ├── active/ # Active specifications (JSON)
│ │ └── my-spec-001.json
│ ├── completed/ # Completed specifications
│ ├── archived/ # Archived specifications
│ └── .human-readable/ # Rendered markdown (generated)
│ └── my-spec-001.md # Human-readable version
└── docs/
└── planning/ # Optional: copy rendered docs here
Note: The .human-readable/ directory is automatically created if it doesn't exist.
A rendering operation is successful when:
File Creation:
Content Completeness:
No Errors:
Run these commands to verify successful rendering:
# 1. Check file exists
test -f specs/.human-readable/{spec-id}.md && echo "✓ File created"
# 2. Check file size (should be > 0)
test -s specs/.human-readable/{spec-id}.md && echo "✓ File not empty"
# 3. Check key sections present
grep -q "^## Phase" specs/.human-readable/{spec-id}.md && echo "✓ Phases found"
# 4. Check progress indicators
grep -q "tasks, [0-9]*%)" specs/.human-readable/{spec-id}.md && echo "✓ Progress calculated"
# 5. Check status icons present
grep -E "^#### (✅|⏳|🔄|🚫|❌)" specs/.human-readable/{spec-id}.md && echo "✓ Status icons present"
# 6. Verify source JSON unchanged
git diff specs/active/{spec-id}.json && echo "✓ Source spec unchanged"
Symptoms and solutions:
| Symptom | Likely Cause | Solution |
|---|---|---|
| File created but empty | Invalid JSON spec | Validate with python3 -m json.tool |
| Missing sections | Incomplete spec structure | Check spec has phases and tasks |
| Progress shows 0% with completed tasks | Task status fields incorrect | Verify task.status values |
| No dependency info | Dependencies not in spec | Check spec.dependencies structure |
| Permission denied | Output directory not writable | Use default location or create directory |
| "Spec not found" error | Wrong spec-id or path | Use sdd find-specs --verbose |
When to troubleshoot vs escalate:
sdd render --helpSkill(sdd-toolkit:sdd-plan) to fix specCore Responsibility: Transform JSON specification files into human-readable, well-formatted markdown documentation for easy review, sharing, and understanding.
Current Capabilities:
Integration Points:
Skill(sdd-toolkit:sdd-plan)Skill(sdd-toolkit:sdd-next) for context understandingSkill(sdd-toolkit:run-tests) for verification documentationKey Benefits:
When to Use: Use this skill whenever you need to convert a machine-readable spec into a human-friendly format for review, sharing, or documentation purposes.