@iservu-inc/adf-cli 0.11.0 → 0.12.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (34) hide show
  1. package/.adf/feature-audit.md +208 -0
  2. package/.adf/final-summary.md +347 -0
  3. package/.adf/implementation-plan.md +244 -0
  4. package/.adf/implementation-progress.md +203 -0
  5. package/.adf/learning/answer-history.json +995 -0
  6. package/.adf/learning/config.json +25 -0
  7. package/.adf/learning/learned-rules.json +59 -0
  8. package/.adf/learning/patterns.json +277 -0
  9. package/.adf/learning/skip-history.json +1451 -0
  10. package/.adf/learning/stats.json +9 -0
  11. package/.claude/settings.local.json +12 -5
  12. package/CHANGELOG.md +110 -0
  13. package/CLAUDE.md +479 -0
  14. package/bin/adf.js +339 -1
  15. package/lib/ai/ai-client.js +161 -44
  16. package/lib/ai/ai-config.js +249 -105
  17. package/lib/commands/deploy.js +73 -6
  18. package/lib/generators/agents-md-generator.js +431 -161
  19. package/lib/generators/antigravity-generator.js +140 -0
  20. package/lib/generators/deepagent-generator.js +144 -0
  21. package/lib/generators/gemini-cli-generator.js +241 -0
  22. package/lib/generators/index.js +55 -0
  23. package/lib/generators/opencode-generator.js +153 -0
  24. package/lib/generators/zed-generator.js +252 -0
  25. package/lib/templates/shared/agents/architect.md +24 -24
  26. package/lib/templates/shared/agents/dev.md +25 -20
  27. package/lib/templates/shared/agents/pm.md +14 -4
  28. package/lib/templates/shared/agents/sm.md +18 -14
  29. package/lib/templates/shared/templates/openspec-delta.md +16 -0
  30. package/lib/templates/shared/templates/openspec-proposal.md +18 -0
  31. package/lib/templates/shared/templates/openspec-tasks.md +21 -0
  32. package/lib/utils/context-manager.js +484 -0
  33. package/package.json +6 -1
  34. package/tests/agents-md-generator.test.js +47 -10
@@ -0,0 +1,153 @@
1
+ const fs = require('fs-extra');
2
+ const path = require('path');
3
+ const ToolConfigGenerator = require('./tool-config-generator');
4
+
5
+ /**
6
+ * Generator for OpenCode CLI configurations
7
+ * Creates .opencode.json with project-specific configuration
8
+ */
9
+ class OpenCodeGenerator extends ToolConfigGenerator {
10
+ /**
11
+ * Generate OpenCode configuration
12
+ * @returns {Object} Generated file path
13
+ */
14
+ async generate() {
15
+ await this.initialize();
16
+
17
+ const configPath = path.join(this.projectPath, '.opencode.json');
18
+
19
+ // Generate configuration
20
+ const config = await this.generateConfig();
21
+
22
+ await fs.writeJson(configPath, config, { spaces: 2 });
23
+
24
+ return { config: configPath };
25
+ }
26
+
27
+ /**
28
+ * Generate .opencode.json configuration
29
+ */
30
+ async generateConfig() {
31
+ const projectContext = await this.getProjectContext();
32
+ const frameworkContext = await this.getFrameworkContext();
33
+
34
+ return {
35
+ data: {
36
+ directory: ".opencode"
37
+ },
38
+ agents: {
39
+ coder: {
40
+ model: this.getCoderModel(),
41
+ maxTokens: 8000
42
+ },
43
+ task: {
44
+ model: this.getTaskModel(),
45
+ maxTokens: 4000
46
+ }
47
+ },
48
+ systemPrompt: this.generateSystemPrompt(projectContext, frameworkContext),
49
+ projectContext: {
50
+ framework: this.getFrameworkName(),
51
+ session: this.getSessionId(),
52
+ outputsPath: `.adf/sessions/${this.getSessionId()}/outputs/`
53
+ },
54
+ mcpServers: {
55
+ filesystem: {
56
+ command: "npx",
57
+ args: ["-y", "@modelcontextprotocol/server-filesystem", this.projectPath],
58
+ env: {}
59
+ }
60
+ },
61
+ debug: false,
62
+ autoCompact: true
63
+ };
64
+ }
65
+
66
+ /**
67
+ * Generate system prompt for OpenCode
68
+ */
69
+ generateSystemPrompt(projectContext, frameworkContext) {
70
+ const agentRole = this.getAgentRole();
71
+
72
+ return `You are ${agentRole} for the ${projectContext.name} project.
73
+
74
+ FRAMEWORK: ${this.getFrameworkName()}
75
+
76
+ PROJECT OVERVIEW:
77
+ ${projectContext.overview || 'AI-assisted development project'}
78
+
79
+ KEY REQUIREMENTS:
80
+ ${frameworkContext.keyPoints || '- Follow project structure\n- Maintain code quality\n- Write comprehensive tests'}
81
+
82
+ OPERATIONAL RULES:
83
+ 1. Read project documentation in .adf/sessions/${this.getSessionId()}/outputs/
84
+ 2. Follow the workflow level: ${this.framework}
85
+ 3. All code changes must pass tests
86
+ 4. Never commit secrets or API keys
87
+ 5. Follow conventional commits format
88
+
89
+ BUILD & TEST:
90
+ - Build: ${projectContext.buildCommand || 'npm run build'}
91
+ - Test: ${projectContext.testCommand || 'npm test'}
92
+ - Lint: ${projectContext.lintCommand || 'npm run lint'}
93
+
94
+ Generated by ADF CLI v${this.getADFVersion()}`;
95
+ }
96
+
97
+ /**
98
+ * Get agent role based on framework
99
+ */
100
+ getAgentRole() {
101
+ const roles = {
102
+ 'rapid': 'a Rapid Development Engineer',
103
+ 'balanced': 'a Senior Software Engineer',
104
+ 'comprehensive': 'a Principal Solutions Architect'
105
+ };
106
+ return roles[this.framework] || 'an AI Coding Assistant';
107
+ }
108
+
109
+ /**
110
+ * Get model for coder agent based on framework
111
+ */
112
+ getCoderModel() {
113
+ const models = {
114
+ 'rapid': 'anthropic/claude-3-5-sonnet-20241022',
115
+ 'balanced': 'anthropic/claude-sonnet-4-5-20250929',
116
+ 'comprehensive': 'anthropic/claude-opus-4-5-20251101'
117
+ };
118
+ return models[this.framework] || 'anthropic/claude-3-5-sonnet-20241022';
119
+ }
120
+
121
+ /**
122
+ * Get model for task agent
123
+ */
124
+ getTaskModel() {
125
+ return 'anthropic/claude-3-5-haiku-20241022';
126
+ }
127
+
128
+ /**
129
+ * Get framework display name
130
+ */
131
+ getFrameworkName() {
132
+ const names = {
133
+ 'rapid': 'Rapid Development (PRP)',
134
+ 'balanced': 'Balanced (Specification-Driven)',
135
+ 'comprehensive': 'BMAD Comprehensive (Enterprise)'
136
+ };
137
+ return names[this.framework] || this.framework;
138
+ }
139
+
140
+ /**
141
+ * Get ADF CLI version
142
+ */
143
+ getADFVersion() {
144
+ try {
145
+ const packageJson = require('../../package.json');
146
+ return packageJson.version;
147
+ } catch (error) {
148
+ return '0.12.0';
149
+ }
150
+ }
151
+ }
152
+
153
+ module.exports = OpenCodeGenerator;
@@ -0,0 +1,252 @@
1
+ const fs = require('fs-extra');
2
+ const path = require('path');
3
+ const ToolConfigGenerator = require('./tool-config-generator');
4
+
5
+ /**
6
+ * Generator for Zed Editor configurations
7
+ * Creates .zed/settings.json with MCP integration and agent configuration
8
+ * Creates .zed/keymap.json for agent switching shortcuts
9
+ * Creates symlink .zed/rules -> ../AGENTS.md (or copies on Windows)
10
+ */
11
+ class ZedGenerator extends ToolConfigGenerator {
12
+ /**
13
+ * Generate Zed Editor configurations
14
+ * @returns {Object} Generated file paths
15
+ */
16
+ async generate() {
17
+ await this.initialize();
18
+
19
+ const zedDir = path.join(this.projectPath, '.zed');
20
+ await fs.ensureDir(zedDir);
21
+
22
+ const generated = {
23
+ settings: null,
24
+ keymap: null,
25
+ rules: null
26
+ };
27
+
28
+ // Generate settings.json
29
+ generated.settings = await this.generateSettings(zedDir);
30
+
31
+ // Generate keymap.json
32
+ generated.keymap = await this.generateKeymap(zedDir);
33
+
34
+ // Create symlink or copy AGENTS.md
35
+ generated.rules = await this.linkAgentsMd(zedDir);
36
+
37
+ return generated;
38
+ }
39
+
40
+ /**
41
+ * Generate .zed/settings.json with MCP and agent configuration
42
+ */
43
+ async generateSettings(zedDir) {
44
+ const settingsPath = path.join(zedDir, 'settings.json');
45
+
46
+ // Determine model configuration based on framework
47
+ const modelConfig = this.getModelConfiguration();
48
+
49
+ const settings = {
50
+ agent: {
51
+ default_model: modelConfig.default,
52
+ feature_specific_models: modelConfig.featureSpecific,
53
+ model_parameters: modelConfig.parameters,
54
+ always_allow_tool_actions: true,
55
+ single_file_review: true
56
+ },
57
+ context_servers: this.getMCPContextServers(),
58
+ terminal: {
59
+ env: this.getTerminalEnvironment()
60
+ }
61
+ };
62
+
63
+ await fs.writeJson(settingsPath, settings, { spaces: 2 });
64
+ return settingsPath;
65
+ }
66
+
67
+ /**
68
+ * Get model configuration based on framework complexity
69
+ */
70
+ getModelConfiguration() {
71
+ const configs = {
72
+ rapid: {
73
+ default: {
74
+ provider: 'anthropic',
75
+ model: 'claude-3-5-sonnet-20241022'
76
+ },
77
+ featureSpecific: {
78
+ thread_summary_model: {
79
+ provider: 'google',
80
+ model: 'gemini-2.0-flash-exp'
81
+ },
82
+ commit_message_model: {
83
+ provider: 'google',
84
+ model: 'gemini-2.0-flash-exp'
85
+ },
86
+ inline_assistant_model: {
87
+ provider: 'anthropic',
88
+ model: 'claude-3-5-sonnet-20241022'
89
+ }
90
+ },
91
+ parameters: [
92
+ { provider: 'anthropic', temperature: 0.1 },
93
+ { provider: 'google', temperature: 0.2 }
94
+ ]
95
+ },
96
+ balanced: {
97
+ default: {
98
+ provider: 'anthropic',
99
+ model: 'claude-3-5-sonnet-20241022'
100
+ },
101
+ featureSpecific: {
102
+ thread_summary_model: {
103
+ provider: 'google',
104
+ model: 'gemini-2.0-flash-exp'
105
+ },
106
+ commit_message_model: {
107
+ provider: 'google',
108
+ model: 'gemini-2.0-flash-exp'
109
+ },
110
+ inline_assistant_model: {
111
+ provider: 'anthropic',
112
+ model: 'claude-3-5-sonnet-20241022'
113
+ }
114
+ },
115
+ parameters: [
116
+ { provider: 'anthropic', temperature: 0.1 },
117
+ { provider: 'google', temperature: 0.2 }
118
+ ]
119
+ },
120
+ comprehensive: {
121
+ default: {
122
+ provider: 'anthropic',
123
+ model: 'claude-3-5-sonnet-20241022'
124
+ },
125
+ featureSpecific: {
126
+ thread_summary_model: {
127
+ provider: 'anthropic',
128
+ model: 'claude-3-5-sonnet-20241022'
129
+ },
130
+ commit_message_model: {
131
+ provider: 'anthropic',
132
+ model: 'claude-3-5-sonnet-20241022'
133
+ },
134
+ inline_assistant_model: {
135
+ provider: 'anthropic',
136
+ model: 'claude-3-5-sonnet-20241022'
137
+ }
138
+ },
139
+ parameters: [
140
+ { provider: 'anthropic', temperature: 0.05 }
141
+ ]
142
+ }
143
+ };
144
+
145
+ return configs[this.framework] || configs.balanced;
146
+ }
147
+
148
+ /**
149
+ * Get MCP context servers configuration
150
+ */
151
+ getMCPContextServers() {
152
+ const servers = {
153
+ project_context: {
154
+ command: 'npx',
155
+ args: ['@modelcontextprotocol/server-filesystem', '.context']
156
+ }
157
+ };
158
+
159
+ // Add Archon if configured
160
+ const archonUrl = process.env.ARCHON_MCP_URL || this.metadata?.archonUrl;
161
+ if (archonUrl) {
162
+ servers.archon = {
163
+ url: archonUrl
164
+ };
165
+ }
166
+
167
+ return servers;
168
+ }
169
+
170
+ /**
171
+ * Get terminal environment variables
172
+ */
173
+ getTerminalEnvironment() {
174
+ const env = {};
175
+
176
+ // Add ARCHON_MCP_PORT if configured
177
+ if (process.env.ARCHON_MCP_URL) {
178
+ const url = new URL(process.env.ARCHON_MCP_URL);
179
+ if (url.port) {
180
+ env.ARCHON_MCP_PORT = url.port;
181
+ }
182
+ }
183
+
184
+ return env;
185
+ }
186
+
187
+ /**
188
+ * Generate .zed/keymap.json with agent switching shortcuts
189
+ */
190
+ async generateKeymap(zedDir) {
191
+ const keymapPath = path.join(zedDir, 'keymap.json');
192
+
193
+ const keymap = [
194
+ {
195
+ context: 'Editor',
196
+ bindings: {
197
+ 'ctrl-shift-a': 'assistant::Toggle',
198
+ 'ctrl-shift-c': 'assistant::CycleMessageRole',
199
+ 'ctrl-shift-r': 'assistant::Restart'
200
+ }
201
+ },
202
+ {
203
+ context: 'AssistantPanel',
204
+ bindings: {
205
+ 'ctrl-enter': 'assistant::Assist',
206
+ 'escape': 'assistant::Hide',
207
+ 'ctrl-shift-n': 'assistant::NewConversation'
208
+ }
209
+ }
210
+ ];
211
+
212
+ await fs.writeJson(keymapPath, keymap, { spaces: 2 });
213
+ return keymapPath;
214
+ }
215
+
216
+ /**
217
+ * Create symlink .zed/rules -> ../AGENTS.md
218
+ * Falls back to file copy on Windows if symlink fails
219
+ */
220
+ async linkAgentsMd(zedDir) {
221
+ const rulesPath = path.join(zedDir, 'rules');
222
+ const agentsMdPath = path.join(this.projectPath, 'AGENTS.md');
223
+
224
+ // Remove existing link/file if present
225
+ if (await fs.pathExists(rulesPath)) {
226
+ await fs.remove(rulesPath);
227
+ }
228
+
229
+ // Check if AGENTS.md exists
230
+ if (!await fs.pathExists(agentsMdPath)) {
231
+ console.warn('AGENTS.md not found, skipping Zed rules link');
232
+ return null;
233
+ }
234
+
235
+ try {
236
+ // Try to create symlink (Unix/Mac/modern Windows)
237
+ await fs.symlink('../AGENTS.md', rulesPath, 'file');
238
+ return { type: 'symlink', path: rulesPath };
239
+ } catch (error) {
240
+ // Symlink failed (older Windows or permissions), copy file instead
241
+ try {
242
+ await fs.copy(agentsMdPath, rulesPath);
243
+ return { type: 'copy', path: rulesPath };
244
+ } catch (copyError) {
245
+ console.warn(`Failed to create Zed rules link: ${copyError.message}`);
246
+ return null;
247
+ }
248
+ }
249
+ }
250
+ }
251
+
252
+ module.exports = ZedGenerator;
@@ -9,9 +9,12 @@ dependencies:
9
9
  templates:
10
10
  - architecture-template.md
11
11
  - tech-stack-template.md
12
+ - openspec-proposal.md
13
+ - openspec-delta.md
12
14
  tasks:
13
15
  - design-architecture.md
14
16
  - validate-tech-stack.md
17
+ - create-openspec-proposal.md
15
18
  data:
16
19
  - constitution.md
17
20
  - technical-preferences.md
@@ -222,32 +225,29 @@ Document all key decisions:
222
225
 
223
226
  ### Phase 6: Validation
224
227
 
225
- ```
226
- 1. Technical Feasibility
227
- - Can we build this?
228
- - Do we have the expertise?
229
- - Are there unknown unknowns?
228
+ ...
229
+
230
+ ## OpenSpec Brownfield Workflow
230
231
 
231
- 2. Performance Validation
232
- - Will it meet NFR performance targets?
233
- - Scalability headroom adequate?
234
- - Bottlenecks identified?
232
+ Use this workflow when modifying existing systems (1 -> n) to maintain a source of truth.
233
+
234
+ ```
235
+ 1. Initialize OpenSpec (if first time)
236
+ npx openspec init
235
237
 
236
- 3. Security Validation
237
- - OWASP Top 10 addressed?
238
- - Data protection adequate?
239
- - Compliance requirements met?
238
+ 2. Create Change Proposal
239
+ - Create directory: openspec/changes/<feature-name>/
240
+ - Create proposal.md using openspec-proposal.md template
241
+ - Create tasks.md using openspec-tasks.md template
240
242
 
241
- 4. Cost Validation
242
- - Infrastructure costs projected
243
- - Third-party service costs
244
- - Development effort estimated
243
+ 3. Create Spec Deltas
244
+ - Identify existing specs in openspec/specs/
245
+ - Create delta files in openspec/changes/<feature-name>/specs/
246
+ - Use ## ADDED / ## MODIFIED / ## REMOVED markers
245
247
 
246
- 5. Constitutional Compliance
247
- - Article 1: Spec-first
248
- - Article 3: Simplicity first
249
- - Article 8: Security by design ✓
250
- - Article 9: Performance as requirement ✓
248
+ 4. Review & Align
249
+ - Present proposal and deltas to the team/user
250
+ - Iterate based on feedback until agreed
251
251
  ```
252
252
 
253
253
  ## Architecture Patterns
@@ -553,5 +553,5 @@ Ready for SM to create stories.
553
553
  ---
554
554
 
555
555
  **Agent Version**: 1.0.0
556
- **Framework**: AgentDevFramework-Claude
557
- **Methodology**: BMAD-METHOD + Software Architecture Best Practices
556
+ **Framework**: AgentDevFramework
557
+ **Methodology**: BMAD-METHOD + Software Architecture Best Practices
@@ -9,9 +9,11 @@ dependencies:
9
9
  templates:
10
10
  - story-template.md
11
11
  - code-review-template.md
12
+ - openspec-tasks.md
12
13
  tasks:
13
14
  - implement-story.md
14
15
  - run-tests.md
16
+ - implement-openspec-change.md
15
17
  data:
16
18
  - constitution.md
17
19
  - technical-preferences.md
@@ -221,24 +223,27 @@ You are a Senior Full-Stack Developer focused on implementing features from deta
221
223
 
222
224
  ### Phase 4: Handoff
223
225
 
226
+ ...
227
+
228
+ ## OpenSpec Implementation Workflow
229
+
230
+ Use this when working on an OpenSpec change proposal.
231
+
224
232
  ```
225
- 1. Mark story as "Ready for QA"
226
- - Update story status
227
- - Add completion notes
228
-
229
- 2. Document any deviations from spec
230
- - Why deviation was necessary
231
- - Impact analysis
232
- - Approval obtained
233
-
234
- 3. Provide test evidence
235
- - Test coverage report
236
- - All tests passing
237
- - Performance benchmarks (if applicable)
238
-
239
- 4. Update progress tracking
240
- - Update sprint board
241
- - Notify team
233
+ 1. Load Change Context
234
+ - Read openspec/changes/<change>/proposal.md
235
+ - Review tasks.md for implementation steps
236
+ - Study spec deltas in openspec/changes/<change>/specs/
237
+
238
+ 2. Execute Tasks
239
+ - Follow the TDD process for each task
240
+ - Mark tasks as complete [x] in openspec/changes/<change>/tasks.md
241
+ - Save implementation decisions to mem0
242
+
243
+ 3. Finalize & Archive
244
+ - Ensure all deltas are satisfied
245
+ - Run: npx openspec archive <change>
246
+ - Verify specs in openspec/specs/ are updated
242
247
  ```
243
248
 
244
249
  ## Code Quality Standards
@@ -618,7 +623,7 @@ Before marking story complete:
618
623
 
619
624
  ## Remember
620
625
 
621
- You work from detailed story files with complete context. Your job is **disciplined execution**, not interpretation. When ambiguity exists, ask for clarification rather than assuming intent.
626
+ You work from detailed story files with complete context. Your job is **disciplined execution**, not interpretation. When ambiguity exists, ask for clarification rather than assuming intent.
622
627
 
623
628
  **Success Metrics**:
624
629
  - Tests pass on first QA review
@@ -630,5 +635,5 @@ You work from detailed story files with complete context. Your job is **discipli
630
635
  ---
631
636
 
632
637
  **Agent Version**: 1.0.0
633
- **Framework**: AgentDevFramework-Claude
634
- **Last Updated**: 2025-01-XX
638
+ **Framework**: AgentDevFramework
639
+ **Last Updated**: 2025-01-XX
@@ -10,10 +10,12 @@ dependencies:
10
10
  - prd-template.md
11
11
  - epic-template.md
12
12
  - user-story-template.md
13
+ - openspec-proposal.md
13
14
  tasks:
14
15
  - create-prd.md
15
16
  - define-epics.md
16
17
  - write-stories.md
18
+ - create-proposal.md
17
19
  data:
18
20
  - constitution.md
19
21
  - technical-preferences.md
@@ -48,7 +50,7 @@ You are a Product Manager focused on creating comprehensive Product Requirements
48
50
 
49
51
  ## Primary Responsibilities
50
52
 
51
- ### 1. PRD Creation
53
+ ### 1. PRD Creation (Path A: Greenfield)
52
54
 
53
55
  **Create comprehensive Product Requirements Document**:
54
56
  - Executive Summary
@@ -62,7 +64,15 @@ You are a Product Manager focused on creating comprehensive Product Requirements
62
64
  - Success Metrics
63
65
  - Out of Scope
64
66
 
65
- ### 2. Requirements Definition
67
+ ### 2. Change Proposal (Path B: OpenSpec)
68
+
69
+ **Create Change Proposal in `openspec/changes/<name>/proposal.md`**:
70
+ - **Why**: The problem or opportunity.
71
+ - **What**: The specific changes required.
72
+ - **Success**: How we know it worked.
73
+ - **Impact**: User impact analysis.
74
+
75
+ ### 3. Requirements Definition
66
76
 
67
77
  **Define clear, testable requirements**:
68
78
  - Functional Requirements (what the system does)
@@ -661,5 +671,5 @@ PRD complete. Ready for architect review.
661
671
  ---
662
672
 
663
673
  **Agent Version**: 1.0.0
664
- **Framework**: AgentDevFramework-Claude
665
- **Methodology**: BMAD-METHOD + Agile Best Practices
674
+ **Framework**: AgentDevFramework
675
+ **Methodology**: BMAD-METHOD + Agile Best Practices
@@ -9,10 +9,12 @@ dependencies:
9
9
  templates:
10
10
  - story-template.md
11
11
  - epic-shard-template.md
12
+ - openspec-tasks.md
12
13
  tasks:
13
14
  - draft-story.md
14
15
  - validate-story.md
15
16
  - coordinate-handoff.md
17
+ - create-openspec-tasks.md
16
18
  data:
17
19
  - constitution.md
18
20
  - prd.md
@@ -65,7 +67,7 @@ You are Samira, a Scrum Master focused on creating implementation-ready stories
65
67
 
66
68
  ## Story Creation Workflow
67
69
 
68
- ### Phase 1: Context Gathering
70
+ ### 1. Context Gathering (Path A: Greenfield)
69
71
 
70
72
  ```
71
73
  1. Read Planning Phase Outputs
@@ -73,21 +75,23 @@ You are Samira, a Scrum Master focused on creating implementation-ready stories
73
75
  - Architecture doc (from Architect)
74
76
  - Epic definition
75
77
  - Related stories
78
+ ```
76
79
 
77
- 2. Shard Epic if Needed
78
- - If epic > 40 story points: shard into smaller epics
79
- - Each shard: 20-40 points (1-2 weeks)
80
- - Save shards to epic-shards/{epic}-shard-{N}.md
80
+ ### 2. Task Breakdown (Path B: OpenSpec)
81
81
 
82
- 3. Query mem0 for Context
83
- /mem0 retrieve story context <epic>
84
- /mem0 retrieve implementation notes <feature>
82
+ ```
83
+ 1. Read Change Context
84
+ - Proposal (from PM) in `openspec/changes/<name>/proposal.md`
85
+ - Spec Deltas (from Architect) in `openspec/changes/<name>/specs/delta.md`
85
86
 
86
- 4. Use Context7 for Patterns
87
- @context7 <relevant technology>
87
+ 2. Create Implementation Tasks
88
+ - Create/Update `openspec/changes/<name>/tasks.md`
89
+ - Break down deltas into atomic TDD steps
90
+ - Ensure specific test guidance for each task
91
+ - Validate against Constitutional principles
88
92
  ```
89
93
 
90
- ### Phase 2: Story Drafting
94
+ ### 3. Story Drafting
91
95
 
92
96
  ```
93
97
  1. Story Structure
@@ -722,7 +726,7 @@ test('complete login flow', async () => {
722
726
  - [ ] Risk assessment included
723
727
  - [ ] Dependencies identified
724
728
  - [ ] Performance requirements defined
725
- - [ ] Security requirements included
729
+ - [ ] Security requirements defined
726
730
  - [ ] Definition of Done complete
727
731
  - [ ] Story points estimated
728
732
  - [ ] Constitutional compliance verified
@@ -780,5 +784,5 @@ Would you like me to:
780
784
  ---
781
785
 
782
786
  **Agent Version**: 1.0.0
783
- **Framework**: AgentDevFramework-Claude
784
- **Methodology**: BMAD-METHOD + Context Engineering + Agile Best Practices
787
+ **Framework**: AgentDevFramework
788
+ **Methodology**: BMAD-METHOD + Context Engineering + Agile Best Practices
@@ -0,0 +1,16 @@
1
+ # OpenSpec Delta: [Spec Name]
2
+
3
+ ## ➕ ADDED Requirements
4
+ ### Requirement: [Name]
5
+ Description using SHALL/MUST.
6
+ #### Scenario: [Context]
7
+ - WHEN [Action]
8
+ - THEN [Outcome]
9
+
10
+ ## 🔄 MODIFIED Requirements
11
+ ### Requirement: [Name]
12
+ *Original requirement reference*
13
+ Updated description.
14
+
15
+ ## ➖ REMOVED Requirements
16
+ - [Requirement Name]