Manage Solution Outline Documents
Provides structure guidelines, examples, and operations for solution_outline.md documents. Load this skill when creating or modifying solution outlines.
name: manage-solution-outline description: Manage solution outline documents - standards, examples, validation, and deliverable extraction user-invocable: false allowed-tools: Read, Glob, Bash
Manage Solution Outline Skill
This skill provides structure guidelines, examples, and operations for solution_outline.md documents. Load this skill when creating or modifying solution outlines.
When to Load This Skill
Load this skill in Step 0 when:
- Creating a solution outline (via
solution-outline-agentthin agent) - Reviewing or updating an existing solution outline
- Validating solution document structure
First action: Load plan-marshall:analyze-project-architecture skill for module information and architectural context.
Not needed for: Creating tasks from deliverables (use manage-tasks skill)
Document Structure
Solution outlines have a fixed structure with required and optional sections:
# Solution: {title}
plan_id: {plan_id}
created: {timestamp}
compatibility: {value} — {long description}
## Summary ← REQUIRED: 2-3 sentences describing the approach
## Overview ← REQUIRED: ASCII diagram showing architecture/flow
## Deliverables ← REQUIRED: Numbered ### sections
## Approach ← OPTIONAL: Execution strategy
## Dependencies ← OPTIONAL: External requirements
## Risks and Mitigations ← OPTIONAL: Risk analysis
See standards/structure.md for detailed requirements.
Deliverables Format
Deliverables use numbered ### headings:
## Deliverables
### 1. Create JwtValidationService class
Description of what this deliverable produces.
**Location**: `src/main/java/de/cuioss/auth/jwt/JwtValidationService.java`
**Responsibilities**:
- Validate JWT signature
- Check token expiration
### 2. Add configuration support
Description...
Key Rules:
- Numbers must be sequential starting from 1
- Titles should be concrete work items (not abstract goals)
- Each deliverable should be independently achievable
- Include location, responsibilities, or success criteria
See standards/deliverables.md for reference format.
Overview Diagrams
The Overview section contains ASCII diagrams showing component relationships. Different task types use different diagram patterns:
| Task Type | Diagram Style | |-----------|---------------| | Feature | Component/class relationships with dependencies | | Refactoring | BEFORE → AFTER transformation comparison | | Bugfix | Problem sequence + Solution architecture | | Documentation | File structure with cross-references | | Plugin | Integration flow with build phases |
See standards/diagrams.md for patterns and examples.
Examples by Task Type
Examples provide starting points for different task categories:
| Example | Use When | |---------|----------| | examples/java-feature.md | Java feature implementation | | examples/javascript-feature.md | JavaScript/frontend feature | | examples/plugin-feature.md | Claude Code plugin development | | examples/refactoring.md | Code refactoring tasks | | examples/bugfix.md | Bug fix with root cause analysis | | examples/documentation-task.md | Documentation creation/updates |
Writing the Solution Document
Step 0: Load Project Architecture
Load project architecture knowledge via the plan-marshall:analyze-project-architecture skill:
Skill: plan-marshall:analyze-project-architecture
Then query module information:
python3 .plan/execute-script.py plan-marshall:analyze-project-architecture:architecture info
python3 .plan/execute-script.py plan-marshall:analyze-project-architecture:architecture module --name {module-name}
Use the returned structure for:
| Section | Use For |
|---------|---------|
| modules.{name}.responsibility | Understand what each module does |
| modules.{name}.purpose | Understand module classification (library, extension, etc.) |
| modules.{name}.key_packages | Identify architecturally significant packages |
| modules.{name}.skills_by_profile | Know which skills apply per profile |
| modules.{name}.tips | Apply implementation guidance |
| modules.{name}.insights | Leverage learned knowledge |
| internal_dependencies | Know what depends on what |
Step 1: Analyze Request
Read the request document to understand:
- What is being requested
- Scope and constraints
- Success criteria
Step 2: Design Architecture
Before writing, determine:
- Components involved
- Dependencies between components
- Execution order
Step 3: Create Diagram
Draw ASCII diagram showing:
- New components (boxed)
- Existing components (labeled)
- Dependencies (arrows)
- Package/file structure
Step 4: Write and Validate Document
Write using stdin with validation to handle ASCII box-drawing characters:
python3 .plan/execute-script.py \
pm-workflow:manage-solution-outline:manage-solution-outline write \
--plan-id {plan_id} \
[--force] <<'EOF'
# Solution: {title}
## Summary
...
## Overview
┌─────────────┐ │ Component │ └─────────────┘
## Deliverables
...
EOF
Parameters:
--plan-id(required): Plan identifier--force: Overwrite existing solution outline
Note: Validation runs automatically on write - checks for required sections (Summary, Overview, Deliverables) and numbered deliverable format (### N. Title). If validation fails, the file is NOT written.
Why heredoc? Solution outlines contain ASCII diagrams with box-drawing characters (│, ─, ┌, └). Using <<'EOF' (quoted) preserves content exactly without variable expansion or escaping issues.
Deliverable References
When tasks reference deliverables, use the full reference format:
deliverable: "1. Create JwtValidationService class"
Reference Format Rules:
- Include number and full title
- Format:
N. Title(number, dot, space, title) - Title must match exactly what's in solution document
Validation:
python3 .plan/execute-script.py pm-workflow:manage-solution-outline:manage-solution-outline \
list-deliverables \
--plan-id {plan_id}
Integration
Loaded by:
pm-workflow:solution-outline-agent(thin agent that loads domain skills from references.toon)- Domain skills:
pm-plugin-development:ext-outline-plugin, etc.
Data Sources (via skills):
plan-marshall:analyze-project-architecture- Project architecture knowledge (modules, responsibilities, packages)marshal.json- Module domains for skill routing- Request document - What is being requested
Scripts Used:
Script: pm-workflow:manage-solution-outline:manage-solution-outline
| Command | Parameters | Description |
|---------|------------|-------------|
| write | --plan-id [--force] | Write solution from stdin (validates automatically) |
| validate | --plan-id | Validate structure |
| read | --plan-id [--raw] [--deliverable-number N] | Read solution or specific deliverable |
| list-deliverables | --plan-id | Extract deliverables list |
| exists | --plan-id | Check if solution exists |
Related Skills:
plan-marshall:analyze-project-architecture- Project architecture knowledge (load in Step 0)pm-workflow:manage-tasks- Task creation with deliverable referencespm-workflow:manage-plan-documents- Request document operations
Script Output Examples
write
Output (TOON):
status: success
plan_id: my-feature
file: solution_outline.md
action: created
validation:
deliverable_count: 3
sections_found: summary,overview,deliverables
compatibility: breaking — Clean-slate approach, no deprecation nor transitionary comments
validate
Output (TOON):
status: success
plan_id: my-feature
file: solution_outline.md
validation:
sections_found: summary,overview,deliverables
deliverable_count: 3
deliverables:
- 1. Create JwtValidationService class
- 2. Add configuration support
- 3. Create unit tests
compatibility: breaking — Clean-slate approach, no deprecation nor transitionary comments
list-deliverables
Output (TOON):
status: success
plan_id: my-feature
deliverable_count: 3
deliverables:
- number: 1
title: Create JwtValidationService class
reference: 1. Create JwtValidationService class
- number: 2
title: Add configuration support
reference: 2. Add configuration support
read
Output (TOON):
status: success
plan_id: my-feature
file: solution_outline.md
content:
_header: # Solution: JWT Validation...
summary: Implement JWT validation service...
overview: Component architecture diagram...
deliverables: ### 1. Create JwtValidationService...
With --raw: Returns raw markdown content.
With --deliverable-number N: Returns a specific deliverable by number.
Example: Read deliverable 3:
python3 .plan/execute-script.py pm-workflow:manage-solution-outline:manage-solution-outline read \
--plan-id {plan_id} \
--deliverable-number 3
Output (TOON):
status: success
plan_id: my-feature
deliverable:
number: 3
title: Implement unit tests
reference: 3. Implement unit tests
metadata:
change_type: create
execution_mode: automated
domain: java
module: jwt-service
depends: 1
profiles:
- testing
affected_files:
- src/test/java/de/cuioss/jwt/JwtValidationServiceTest.java
If deliverable not found, returns error with available numbers:
status: error
error: deliverable_not_found
plan_id: my-feature
number: 999
available:
- 1
- 2
- 3
exists
Output (TOON):
status: success
plan_id: my-feature
file: solution_outline.md
exists: true
Returns exit code 0 if exists, 1 if not.
Related skills
API Documentation Generator
Automatically generates OpenAPI/Swagger API documentation.
Technical Writer
Writes clear technical documentation following top style guides.
Markdown to PDF Converter
Convert markdown files to clean, formatted PDFs using reportlab. Perfect for generating polished documents from your markdown notes and drafts.