Awesome-omni-skill phase-2-outline
Architecture-driven solution outline creation with intelligent module selection and Skills by Profile assignment
git clone https://github.com/diegosouzapw/awesome-omni-skill
T=$(mktemp -d) && git clone --depth=1 https://github.com/diegosouzapw/awesome-omni-skill "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/tools/phase-2-outline" ~/.claude/skills/diegosouzapw-awesome-omni-skill-phase-2-outline-9804b2 && rm -rf "$T"
skills/tools/phase-2-outline/SKILL.mdPhase Refine Outline Skill
EXECUTION MODE: You are now executing this skill. DO NOT explain or summarize these instructions to the user. IMMEDIATELY begin executing the workflow steps below, starting with Step 1.
Role: Architecture-driven workflow skill for creating solution outlines. Uses pre-computed architecture data to make intelligent module and package placement decisions.
Key Insight: Module and package matching is semantic analysis that requires LLM reasoning. Scripts provide DATA, the LLM provides REASONING.
Input Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| string | Yes | Plan identifier |
| string | No | User feedback from review (for revision iterations) |
Workflow Overview
┌──────────────────────────────────────────────────────────────────┐ │ ARCHITECTURE-DRIVEN WORKFLOW │ ├──────────────────────────────────────────────────────────────────┤ │ │ │ Step 1: Load architecture context │ │ → architecture info │ │ │ │ Step 2: Load and understand requirements │ │ → manage-plan-documents read --type request │ │ │ │ Step 2.5: Load outline extension skills (if domain has one) │ │ → resolve-workflow-skill-extension --type outline │ │ → Extensions provide Domain Constraints, Patterns │ │ │ │ Step 3: Assess complexity (simple vs complex) │ │ → Decompose if multi-module │ │ │ │ Step 4: Select target modules │ │ → Score by responsibility, purpose, packages │ │ │ │ Step 5: Determine package placement │ │ → architecture module --name X --full │ │ │ │ Step 6: Create deliverables with Skills by Profile │ │ → One deliverable per module │ │ → Skills by Profile from module.skills_by_profile │ │ │ │ Step 7: Create IT deliverable (optional) │ │ → architecture modules --command integration-tests │ │ → Separate deliverable targeting IT module │ │ │ └──────────────────────────────────────────────────────────────────┘
Step 1: Load Architecture Context
Query project architecture BEFORE any codebase exploration. Architecture data is pre-computed and compact (~500 tokens).
EXECUTE:
python3 .plan/execute-script.py plan-marshall:analyze-project-architecture:architecture info
Output format:
plan-marshall:analyze-project-architecture/standards/client-api.md
If status=error or architecture not found: Return error and abort:
status: error message: Run /marshall-steward first
Step 2: Load and Understand Requirements
Load the request document and extract actionable requirements.
EXECUTE:
python3 .plan/execute-script.py pm-workflow:manage-plan-documents:manage-plan-documents read \ --plan-id {plan_id} --type request
Output format:
pm-workflow:manage-plan-documents/documents/request.toon
Parse for:
- Functional requirements (what to build)
- Constraints (technology, patterns, compatibility)
- Explicit test requirements (unit, integration, E2E)
- Acceptance criteria
EXECUTE:
python3 .plan/execute-script.py pm-workflow:manage-config:manage-config read \ --plan-id {plan_id}
Output format:
pm-workflow:manage-config
Extract
domains array - each deliverable will be assigned a single domain from this array.
Step 2.5: Load Outline Extension Skills
For each domain in config.toon, check if an outline extension exists and load it as context.
Purpose: Outline extensions provide domain-specific knowledge (Domain Constraints, Deliverable Patterns) that augment the standard workflow. They are skills loaded as context, not workflow replacements.
For each domain from Step 2:
EXECUTE:
python3 .plan/execute-script.py plan-marshall:plan-marshall-config:plan-marshall-config \ resolve-workflow-skill-extension --domain {domain} --type outline
Output (TOON):
status: success domain: {domain} type: outline extension: pm-plugin-development:ext-outline-plugin # or null if no extension
If extension exists (not null), load it as context:
Skill: {resolved_extension}
The extension skill provides:
- Domain Constraints: Rules for deliverable creation (component rules, dependency rules)
- Deliverable Patterns: Grouping strategies, file structures, verification commands
- Impact Analysis Patterns: Discovery commands for cross-cutting changes
These are applied naturally during deliverable creation (Steps 4-6) - no special processing needed.
If no extension exists: Continue with standard workflow. Most domains (java, javascript) don't need outline extensions.
Step 3: Assess Complexity (Simple vs Complex)
Determine if task is single-module (simple) or multi-module (complex):
| Scope | Workflow | Action |
|---|---|---|
| Single module affected | Simple | Proceed to module selection |
| Multiple modules affected | Complex | Decompose first, then simple workflow per sub-task |
Simple Workflow (single module)
┌───────────────────────────────┐ │ SIMPLE WORKFLOW │ ├───────────────────────────────┤ │ 1. Select target module │ │ 2. Select target package │ │ 3. Create deliverables │ └───────────────────────────────┘
Complex Workflow (multi-module)
┌───────────────────────────────┐ │ COMPLEX WORKFLOW │ ├───────────────────────────────┤ │ 1. Load dependency graph │ │ 2. Decompose into sub-tasks │ │ 3. Run simple workflow each │ │ 4. Aggregate deliverables │ │ 5. Order by layers (graph) │ └───────────────────────────────┘
For complex tasks, load the complete dependency graph to determine execution ordering.
EXECUTE:
python3 .plan/execute-script.py plan-marshall:analyze-project-architecture:architecture graph
Output format:
plan-marshall:analyze-project-architecture/standards/module-graph-format.md (force load)
Detail: See
standards/module-selection.md for decomposition patterns and dependency ordering.
Step 4: Select Target Modules
For simple tasks: identify the single affected module. For complex tasks: select module for each sub-task.
Module Selection Analysis
For each candidate module, evaluate:
| Factor | Weight | Score Criteria |
|---|---|---|
| responsibility match | 3 | Keywords in task match responsibility |
| purpose fit | 2 | Purpose compatible with change type |
| key_packages match | 3 | Task aligns with package descriptions |
| dependency position | 2 | Correct layer for the change |
Selection threshold: Modules with weighted score >= 6 are candidates.
Query Module Details
For each candidate module:
EXECUTE:
python3 .plan/execute-script.py plan-marshall:analyze-project-architecture:architecture module \ --name {module}
Document Selection Reasoning
Template:
templates/module-selection-analysis.md (force load)
Step 5: Determine Package Placement
For each selected module, determine where new code belongs.
Load Complete Package Structure
EXECUTE:
python3 .plan/execute-script.py plan-marshall:analyze-project-architecture:architecture module \ --name {module} --full
Package Selection Decision Matrix
| Scenario | Action |
|---|---|
| Task matches key_package description | Place in that key_package |
| Task needs utility location | Check for existing util package |
| New cross-cutting concern | Create new package (document reasoning) |
| Unclear placement | Check has_package_info packages first |
Detail: See
standards/module-selection.md for key_packages guidance and validation checklist.
Document Package Reasoning
Template:
templates/package-selection.md (force load)
Step 6: Create Deliverables with Skills by Profile
Create deliverables with module context and skills organized by profile.
Core constraint: One deliverable = one module.
Check Module Test Infrastructure
EXECUTE:
python3 .plan/execute-script.py plan-marshall:analyze-project-architecture:architecture modules \ --command module-tests
Returns list of module names that have unit test infrastructure.
Skills by Profile Block
: Always includedskills-implementation
: Only if module has test infrastructureskills-testing
Detail: See
standards/skills-by-profile.md for profile design rationale and task-plan integration.
Deliverable Structure
Contract:
pm-workflow:manage-solution-outline/standards/deliverable-contract.md (force load)
Each deliverable MUST include all required fields from the contract:
- Metadata (change_type, execution_mode, domain, depends)
- Module Context (module, package, placement_rationale)
- Skills by Profile (skills-implementation; skills-testing if test infra exists)
- Affected files (explicit list)
- Verification (command and criteria)
Step 7: Create IT Deliverable (Optional)
If integration tests are needed, create a separate deliverable targeting the IT module.
When to Create IT Deliverable
| Change Type | IT Needed? | Rationale |
|---|---|---|
| API endpoint (REST, GraphQL) | YES | External contract |
| UI component | YES | User-facing behavior |
| Public library API | YES | Consumer contract |
| Configuration/properties | YES | Runtime behavior |
| Internal implementation | NO | No external impact |
| Refactoring (same behavior) | NO | Behavior unchanged |
| Private/internal classes | NO | Not externally visible |
Check IT Infrastructure
EXECUTE:
python3 .plan/execute-script.py plan-marshall:analyze-project-architecture:architecture modules \ --command integration-tests
If result is empty: Skip IT deliverable (no IT module exists).
Detail: See
standards/integration-tests.md for IT decision flow, module patterns, and verification commands.
IT Deliverable Structure
IT deliverables follow the same contract as implementation deliverables.
Contract:
pm-workflow:manage-solution-outline/standards/deliverable-contract.md
Key Differences:
- IT is always a separate deliverable - not embedded in implementation deliverable
- IT targets the IT module - found via
architecture modules --command integration-tests - IT depends on implementation - set
to reference the implementation deliverabledepends: - IT has only
- IT code is "implementation" of test codeskills-implementation
Step 8: Write Solution Document
Write the solution document using heredoc.
Skill:
pm-workflow:manage-solution-outline (force load)
Provides complete guidance on solution document structure, diagram patterns, and examples by task type.
EXECUTE:
python3 .plan/execute-script.py pm-workflow:manage-solution-outline:manage-solution-outline \ write \ --plan-id {plan_id} <<'EOF' {content per manage-solution-outline skill with deliverables per deliverable-contract.md} EOF
Validation runs automatically on every write.
Step 9: Set Detected Domains
EXECUTE:
python3 .plan/execute-script.py pm-workflow:manage-config:manage-config set-domains \ --plan-id {plan_id} --domains {detected_domains}
This is an intelligent decision output - not a copy of marshal.json domains, but Claude's analysis of which domains are relevant to the specific request.
Step 10: Record Issues as Lessons
EXECUTE:
python3 .plan/execute-script.py plan-marshall:lessons-learned:manage-lesson add \ --component-type skill \ --component-name phase-2-outline \ --category observation \ --title "{issue summary}" \ --detail "{context and resolution approach}"
Step 11: Return Results
Return structured output:
status: success plan_id: {plan_id} deliverable_count: {N} domains_detected: [{detected_domains}] lessons_recorded: {count} message: {error message if status=error}
Error Handling
| Scenario | Action |
|---|---|
| Architecture not found | Return and abort |
| Request not found | Return |
| Validation fails | Fix issues or return partial with error list |
| Domain unknown | Return error with valid domains |
| Script execution fails | Record lesson-learned, return error |
Integration
Invoked by:
pm-workflow:solution-outline-agent (thin agent)
Script Notations (use EXACTLY as shown):
- Architecture queriesplan-marshall:analyze-project-architecture:architecture
- Write solution documentpm-workflow:manage-solution-outline:manage-solution-outline
- Request operationspm-workflow:manage-plan-documents:manage-plan-documents
- Plan config operationspm-workflow:manage-config:manage-config
- Plan referencespm-workflow:manage-references:manage-references
- Record lessons on issuesplan-marshall:lessons-learned:manage-lesson
Consumed By:
skill (reads deliverables for task creation)pm-workflow:phase-3-plan
Output Validation
The workflow skill MUST validate that each deliverable contains all required fields from the deliverable contract:
-
metadatachange_type -
metadataexecution_mode -
metadata (valid domain from marshal.json)domain -
field (depends
or valid deliverable references)none - Module context (module, package, placement_rationale)
- Skills by Profile (
always;skills-implementation
if module has test infra)skills-testing - Explicit file list (not "all files matching X")
- Verification command and criteria
Related Documents
- Outline extension contractpm-workflow:workflow-extension-api/standards/extensions/outline-extension.md
- Deliverable structurepm-workflow:manage-solution-outline/standards/deliverable-contract.md
- Workflow architecture overviewpm-workflow:workflow-architecture
- Architecture API documentationplan-marshall:analyze-project-architecture
- Module dependency graph formatplan-marshall:analyze-project-architecture/standards/module-graph-format.md