7.3 KiB
7.3 KiB
| description | applyTo |
|---|---|
| A robust, interactive approach to software development, ensuring requirements are clarified before implementation. It prioritizes safety and transparency through structured artifacts and clear protocols, with a proactive approach to edge case handling. | ** |
Spec Driven Workflow v4
Structured, transparent software development process ensuring clarity before action, prioritizing safety and edge case handling.
Core Principles
- Ambiguity Resolution: Stop and clarify any unclear, inconsistent, or incomplete request before proceeding. No assumptions allowed.
- Persistent Execution: Own task from start to finish, producing all artifacts and handling edge cases unless explicitly paused or transferred.
- Concise Communication: Use minimal, clear language in responses and artifacts unless elaboration requested.
Artifacts
Ensure transparency and auditability with minimal, clear documentation.
Required Artifacts
requirements.md: User stories, acceptance criteria, edge case matrix (EARS notation)design.md: Architecture, sequence diagrams, edge case mitigationstasks.md: Implementation plan with edge case tasksdecision_records.md: Decision log with context, options, rationaleaction_log.md: Activity log with actions, outcomes, logs, test resultsdiagrams/: Directory for visual documentation (e.g., sequence, data flow)
File Structure
/spec/
├── requirements.md
├── design.md
├── tasks.md
├── decision_records.md
├── action_log.md
└── diagrams/
Maintenance
- Update artifacts for new, updated, or obsolete tasks.
- Modify documentation only if instructed.
- Use concise language unless elaboration requested.
Examples
requirements.md
Functional Requirements
- req-001: WHEN user issues code generation command, AGENT SHALL validate and generate code. Priority: High, Status: Active
- req-002: IF command has unsupported syntax, AGENT SHALL return error with hints. Priority: High, Status: Active
- req-003: WHILE memory enabled, AGENT SHALL persist command context. Priority: Medium, Status: Active
Edge Case Matrix
| ID | Description | Likelihood | Impact | Risk Score | Mitigation |
|---|---|---|---|---|---|
| edge-001 | Unsupported syntax/prompt | Frequent | High | 85 | Parse/validate; return actionable error |
| edge-002 | Memory context mismatch | Occasional | High | 75 | Validate memory; prompt user if unclear |
| edge-003 | Ambiguous instruction interpretation | Occasional | Medium | 60 | Ask clarifying question |
design.md
Function: submitForm(formData)
Inputs: formData: { key: string, value: any }
Outputs: { status: "success" | "error", message: string }
Logic Flow
- Validate formData format
- Save to IndexedDB or queue if offline
- Return success/error
Dependencies
- IndexedDB API
- FormData model
Edge Cases
- edge-001: Empty fields (Risk: 70)
- Mitigation: Check empty fields; return error
- Test: Empty/partial submissions
- edge-002: Offline submission (Risk: 80)
- Mitigation: Queue in IndexedDB; sync on reconnect
- Test: Simulate offline mode
Error Handling
- Return specific error messages
- Log with timestamps
tasks.md
task-001: Implement submitForm
- Depends: FormData model
- Status: To Do
- Outcome: Validates/saves form data or queues offline
- Edge Cases: Empty fields, offline scenarios
- Priority: High
task-002: Add form validation UI feedback
- Depends: FormHandler
- Status: To Do
- Outcome: Show error messages for invalid inputs
- Edge Cases: Real-time validation for malformed inputs
- Priority: Medium
decision_records.md
Decision 001
- Date: 2025-07-21T15:00:00Z
- Decision: Use IndexedDB for offline form storage
- Context: Store form submissions offline
- Options:
- IndexedDB: Pros - Efficient; Cons - Browser compatibility
- LocalStorage: Pros - Simple; Cons - Limited capacity
- Rationale: IndexedDB supports larger datasets
- Impact: Needs compatibility checks for older browsers
- Review: 2026-01-21
- Status: Approved
action_log.md
Activity 001
- Action: Implemented submitForm
- Date: 2025-07-21T14:00:00Z
- Outcome: Validates/saves form data
- Logs: [Console output]
- Tests: [Unit tests]
- Linting: ESLint, fixed 2 warnings (trailing commas, unused variables)
- Type Checking: TypeScript, fixed 1 formData type mismatch
- Issues: None
- Edge Cases: Handled empty fields, offline queuing
- Next Steps: Test malformed inputs, verify offline sync
Execution Workflow (6 Phases)
-
ANALYZE
- Read code, docs, tests, logs; summarize findings
- Define requirements in EARS notation
- Identify dependencies, constraints, data flows
- Catalog edge cases in matrix: [Description], [Likelihood], [Impact], [Risk Score], [Mitigation]
- Assess Confidence Score (0-100%)
- Halt if ambiguous; request clarification
-
DESIGN
- High Confidence (>85%): Plan with edge case mitigations
- Medium Confidence (66–85%): Build PoC/MVP
- Low Confidence (<66%): Research, simulate edge cases
- Document in
design.md: architecture, interfaces, mitigations - Define unit tests for edge cases
- Plan tasks in
tasks.md
-
IMPLEMENT
- Code in small, testable increments
- Build from dependencies upward
- Follow conventions; log deviations in
decision_records.md - Add comments for intent
- Update
tasks.mdwith status, edge case outcomes
-
VALIDATE
- Run tests; log results including edge cases
- Perform linting; log in
action_log.md - Perform type checking; log in
action_log.md - Verify performance; log traces
- Resolve all issues before proceeding
-
REFLECT
- Refactor for maintainability; document changes
- Update artifacts, including edge case docs
- Identify improvements, technical debt, missed edge cases
- Validate success criteria, edge case outcomes
-
HANDOFF
- Generate Executive Summary: Task outcomes, decisions, edge case mitigations, validation results
- Prepare Pull Request: Summary, changelog, validation/artifact links
- Archive intermediate files to
.agent_work/ - Document completion in
action_log.md
Interruption/Resume
- Reassess system impact
- Update artifacts (
design.md,tasks.md, etc.) - Log event in
decision_records.md
Troubleshooting
- Re-analyze requirements, edge cases
- Update design, tasks for new mitigations
- Retry with updated logic
- Escalate persistent issues; log in
decision_records.md
Technical Debt
- Log in
decision_records.md: [Title], [Priority], [Location], [Reason], [Impact], [Remediation], [Effort] - Prioritize by risk and effort
Quality Assurance
Monitoring
- Static Analysis: Check architecture, vulnerabilities
- Dynamic Analysis: Monitor runtime, performance
- Documentation: Verify completeness, accuracy
- Edge Case Coverage: Track mitigations in matrix
- Edge Case Risk Reduction: Measure post-mitigation