4.6 KiB
| name | description |
|---|---|
| create-structure-outline | create a phased implementation plan based on research and design decisions |
Create Structure Outline
You are creating a phased implementation plan based on research findings and design decisions.
Input
changeRequest: The user's original change requestresearchDocumentPath: Path to the research document (e.g.,.humanlayer/tasks/ENG-XXXX-description/YYYY-MM-DD-research.md)designDecisions: List of design decisions made during the design discussion phasepatternsToFollow: List of patterns identified during research
Steps
-
Read all input documents FULLY:
- Use Read tool WITHOUT limit/offset to read the research document
- Understand the current state of the codebase from research findings
- Review all design decisions and patterns to follow
-
Check for related task content:
- If a path in
.humanlayer/tasks/TASKNAMEis mentioned, usels .humanlayer/tasks/TASKNAME - Read all relevant files in the task directory
- Read relevant files mentioned in the task files
- If a path in
-
Spawn sub-agents for follow-up research:
For deeper investigation:
- codebase-locator: Find additional files if needed
- codebase-analyzer: Deep-dive on specific implementations
- codebase-pattern-finder: Find more examples of patterns
- web-search-researcher: Research external best practices
Do not run agents in the background - FOREGROUND AGENTS ONLY.
-
Create a phased implementation plan:
- Break the work into logical phases
- Each phase should be independently testable
- Order phases vertically rather than horizontally - wire everything together in a testable way and then add functionality incrementally
-
For each phase, specify:
- Overview of what's being built
- Specific file changes with descriptions
- Validation approach - how we'll manually verify the phase works
-
Document what's out of scope:
- What we're NOT doing in this plan
- Future enhancements to consider later
Output Document
- Read the structure outline template
Read({SKILLBASE}/references/structure_outline_template.md)
-
Write the structure outline to
.humanlayer/tasks/ENG-XXXX-description/YYYY-MM-DD-structure-outline.md- First, find the task directory:
ls .humanlayer/tasks | grep -i "eng-XXXX" - If the directory doesn't exist, create:
.humanlayer/tasks/ENG-XXXX-description/ - Format:
YYYY-MM-DD-structure-outline.mdwhere YYYY-MM-DD is today's date - Directory naming:
- With ticket:
.humanlayer/tasks/ENG-1478-parent-child-tracking/2025-01-08-structure-outline.md - Without ticket:
.humanlayer/tasks/improve-error-handling/2025-01-08-structure-outline.md
- With ticket:
- First, find the task directory:
-
Read the final output template
Read({SKILLBASE}/references/structure_outline_final_answer.md)
- Respond to the user with a summary following the template, including GitHub permalinks
Work with the user to iterate on the design
- If the user gives any input along the way:
- DO NOT just accept the correction
- Spawn new research tasks to verify the correct information
- Read the specific files/directories they mention
- Only proceed once you've verified the facts yourself
- interpret ALL user feedback as instructions to update the document, not to begin implementation
- Update the structure according to the user's feedback
When you write or edit documents in .humanlayer/tasks/, a cloud permalink is automatically provided in the hook response.
- The permalink appears as
additionalContextafter Write/Edit/MultiEdit operations - Use this permalink in your final output for easy navigation
- Example format:
http(s)://{DOMAIN}/artifacts/{artifactId}
Markdown Formatting
When writing markdown files that contain code blocks showing other markdown (like README examples or SKILL.md templates), use 4 backticks (````) for the outer fence so inner 3-backtick code blocks don't prematurely close it:
# Example README
## Installation
```bash
npm install example
```
Phase Validation Design
Not every phase requires manual validation, don't put steps for manual validation just to have them.
There's a good chance that if a phase cannot be manually checked, the phase is either too small or not vertical enough. The goal of manual validation is to avoid getting to the end of a 1000+ line code change and then having to figure out which part went wrong.
Automated testing is always better than manual testing - be thoughtful based on your knowledge of the codebase and testing patterns.