.agents/skills/oat-project-design/SKILL.md
Use when discovery and specification are complete and implementation-ready decisions are needed. Produces detailed technical design artifacts, including architecture and interfaces.
npx skillsauth add tkstang/open-agent-toolkit oat-project-designInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Transform specification requirements into a detailed technical design with architecture, components, and implementation strategy.
Required: Complete specification document. If missing, run the oat-project-spec skill first.
When executing this skill, provide lightweight progress feedback so the user can tell what’s happening after they confirm.
Print a phase banner once at start using horizontal separators, e.g.:
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ OAT ▸ DESIGN ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Before multi-step work, print step indicators, e.g.:
[1/5] Validating spec + reading context…[2/5] Drafting architecture overview…[3/5] Designing components + data models…[4/5] Reviewing design with user…[5/5] Updating state + committing…OAT stores active project context in .oat/config.local.json (activeProject, local-only).
PROJECT_PATH=$(oat config get activeProject 2>/dev/null || true)
PROJECTS_ROOT="${OAT_PROJECTS_ROOT:-$(oat config get projects.root 2>/dev/null || echo ".oat/projects/shared")}"
PROJECTS_ROOT="${PROJECTS_ROOT%/}"
If PROJECT_PATH is missing/invalid:
{project-name}PROJECT_PATH to ${PROJECTS_ROOT}/{project-name}mkdir -p .oat
oat config set activeProject "$PROJECT_PATH"
If PROJECT_PATH is valid: derive {project-name} as the directory name (basename of the path).
cat "$PROJECT_PATH/spec.md" | head -10 | grep "oat_status:"
Required frontmatter:
oat_status: completeoat_ready_for: oat-project-designIf not complete: Block and ask user to finish specification first.
Read "$PROJECT_PATH/spec.md" completely to understand:
Read for architectural context and conventions:
.oat/repo/knowledge/project-index.md - Overview.oat/repo/knowledge/architecture.md - Existing patterns.oat/repo/knowledge/stack.md - Technologies available.oat/repo/knowledge/conventions.md - Code patterns to follow.oat/repo/knowledge/integrations.md - External services.oat/repo/knowledge/concerns.md - Issues to avoidPurpose: Ensure design aligns with existing architecture and follows established patterns.
Copy template: .oat/templates/design.md → "$PROJECT_PATH/design.md"
Update frontmatter:
---
oat_status: in_progress
oat_ready_for: null
oat_blockers: []
oat_last_updated: { today }
oat_generated: false
oat_template: false
---
Based on spec's high-level design + knowledge base architecture:
System Context:
Key Components:
Data Flow:
Update design.md Architecture section.
For each component identified:
Component Details:
### {Component Name}
**Purpose:** {Single responsibility}
**Responsibilities:**
- {Specific task 1}
- {Specific task 2}
**Interfaces:**
{Code signatures following conventions.md patterns}
**Dependencies:**
- {What it depends on}
**Design Decisions:**
- {Why this approach}
Follow patterns from conventions.md. Use stack.md technologies.
For each entity/model needed:
Model Schema:
Considerations:
For each API endpoint or interface:
Specification:
Considerations:
Based on NFRs + concerns.md:
Required sections:
Reference security patterns from conventions.md and concerns.md.
Based on NFRs + concerns.md:
Required sections:
Reference performance patterns from concerns.md.
Error Strategy:
Based on spec success metrics + testing.md:
Step 12a: Create Requirement-to-Test Mapping
Pull from spec.md Requirement Index and expand:
| ID | Verification | Key Scenarios | | ----------- | ------------------ | ---------------------------------------- | | {from spec} | {method from spec} | {scenarios seeded from pointer + design} |
For each requirement:
method: pointer) into VerificationStep 12b: Define Test Levels
Follow testing patterns from testing.md.
Why mapping matters:
oat-project-plan task breakdownDeployment Strategy:
If changes require migrations:
Migration Plan:
Break work into phases:
Phase Structure:
### Phase 1: {Phase Name}
**Goal:** {What this achieves}
**Tasks:**
- {High-level task 1}
- {High-level task 2}
**Verification:** {How to verify completion}
Keep phases manageable (1-3 days of work each).
Track unresolved design questions:
For each significant risk:
Risk Assessment:
- **{Risk Name}:** {Probability} | {Impact}
- **Mitigation:** {How to reduce}
- **Contingency:** {Backup plan}
Review Points:
Iterate: Make refinements based on feedback, update oat_last_updated.
Read "$PROJECT_PATH/state.md" frontmatter:
oat_hill_checkpointsoat_hill_completedIf "design" is in oat_hill_checkpoints, require explicit user approval before advancing.
Approval prompt (required):
oat-project-plan?"Optional independent review path:
oat-project-review-provide artifact designIf user does not approve yet:
oat_status: in_progressoat_ready_for: null"design" to oat_hill_completed.If design is not configured as a HiLL checkpoint, or user explicitly approves, continue to Step 20.
Update frontmatter:
---
oat_status: complete
oat_ready_for: oat-project-plan
oat_blockers: []
oat_last_updated: { today }
---
Update "$PROJECT_PATH/state.md":
Frontmatter updates:
oat_current_task: nulloat_last_commit: {commit_sha_from_step_22}oat_blockers: []oat_phase: designoat_phase_status: completeoat_project_state_updated: "{ISO 8601 UTC timestamp}""design" is in oat_hill_checkpoints: append "design" to oat_hill_completed arrayNote: Only append to oat_hill_completed when the phase is configured as a HiLL gate.
Update content:
## Current Phase
Design - Ready for implementation planning
## Progress
- ✓ Discovery complete
- ✓ Specification complete
- ✓ Design complete
- ⧗ Awaiting implementation plan
Note: This shows what users will do when USING oat-project-design. During implementation of OAT itself, use standard commit format.
git add "$PROJECT_PATH/"
git commit -m "docs: complete design for {project-name}
Architecture:
- {N} components
- {Key architectural decision}
Implementation:
- {N} phases planned
- {Estimated complexity}
Ready for implementation planning"
Design phase complete for {project-name}.
Architecture:
- {N} components defined
- {N} data models specified
- {N} API endpoints designed
Next: Create implementation plan with the oat-project-plan skill
documentation
Use when OAT implementation changes and repository reference docs must be synchronized. Updates .oat/repo/reference to match current behavior.
business
Merge multiple analysis artifacts into a single coherent report with provenance tracking. Reads existing artifacts from /deep-research, /analyze, and /compare.
testing
Use when the user questions or suspects an agent claim is wrong. Adversarially gathers evidence to verify or refute the claim using the best sources available in the current environment.
tools
Use when prioritizing backlog work or evaluating a roadmap. Produces value-effort ratings, dependency mapping, and execution recommendations.