maxsim-flutter 1.35.0 → 1.37.0

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.
@@ -1 +1 @@
1
- {"version":3,"file":"agent-writer.d.ts","sourceRoot":"","sources":["../../src/claude-setup/agent-writer.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAEzD,UAAU,eAAe;IACvB,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,MAAM,GAAG,QAAQ,GAAG,OAAO,CAAC;IACnC,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,EAAE,UAAU,CAAC;IACvB,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAAC;IACtC,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED;;;GAGG;AACH,wBAAsB,WAAW,CAC/B,OAAO,EAAE,cAAc,EACvB,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,MAAM,EAAE,CAAC,CAenB;AAED;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,cAAc,GAAG,eAAe,EAAE,CAOhF"}
1
+ {"version":3,"file":"agent-writer.d.ts","sourceRoot":"","sources":["../../src/claude-setup/agent-writer.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAEzD,UAAU,eAAe;IACvB,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,MAAM,GAAG,QAAQ,GAAG,OAAO,CAAC;IACnC,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,EAAE,UAAU,CAAC;IACvB,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAAC;IACtC,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED;;;GAGG;AACH,wBAAsB,WAAW,CAC/B,OAAO,EAAE,cAAc,EACvB,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,MAAM,EAAE,CAAC,CAenB;AAED;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,cAAc,GAAG,eAAe,EAAE,CAgBhF"}
@@ -22,12 +22,16 @@ export async function writeAgents(context, outputPath) {
22
22
  * Useful for testing and dry-run mode.
23
23
  */
24
24
  export function buildAgentDefinitions(context) {
25
- return [
25
+ const agents = [
26
26
  buildFlutterArchitectAgent(context),
27
27
  buildFlutterBuilderAgent(context),
28
28
  buildFlutterTesterAgent(context),
29
29
  buildFlutterReviewerAgent(context),
30
30
  ];
31
+ if (context.claude?.agentTeams) {
32
+ agents.push(buildFlutterSpecifierAgent(context), buildFlutterPlannerAgent(context));
33
+ }
34
+ return agents;
31
35
  }
32
36
  function formatAgentMarkdown(agent) {
33
37
  const toolsList = JSON.stringify(agent.tools);
@@ -77,12 +81,38 @@ function buildModuleContext(context) {
77
81
  }
78
82
  return `Active modules: ${modules.join(', ')}. Be aware of module boundaries and inter-module dependencies.`;
79
83
  }
84
+ function buildSharedSections() {
85
+ return `
86
+ ## Error Recovery Protocol
87
+
88
+ 1. **Self-Correction**: Re-read the error, check recent changes, retry with fix
89
+ 2. **AI-to-AI Escalation**: If stuck after 2 attempts, ask another agent for fresh perspective
90
+ 3. **Human-Augmented**: After 3 failed attempts, ask the user for context or constraints
91
+ 4. **Full Human Takeover**: If the issue requires domain knowledge or external access, hand off completely
92
+
93
+ ## Context Management
94
+
95
+ - Monitor context usage — quality degrades at 70%+ fill
96
+ - Use \`/clear\` between unrelated tasks
97
+ - Delegate large file scans to haiku subagents
98
+ - When context feels heavy, summarize progress and start fresh
99
+
100
+ ## Handoff Format
101
+
102
+ When handing off to the next agent, include:
103
+ 1. Changed files — absolute paths
104
+ 2. Tests added/modified — file paths and count
105
+ 3. Quality status — last check output
106
+ 4. Blockers — unresolved issues
107
+ 5. Next step — what the receiving agent should do`;
108
+ }
80
109
  function buildFlutterArchitectAgent(context) {
81
110
  const moduleContext = buildModuleContext(context);
111
+ const sharedSections = buildSharedSections();
82
112
  return {
83
113
  filename: 'flutter-architect.md',
84
114
  name: 'flutter-architect',
85
- description: 'Read-only planning agent. Designs feature architecture, defines interfaces, and plans implementation before coding begins.',
115
+ description: 'Read-only planning agent. Designs feature architecture, defines interfaces, and plans implementation order. Triggers on: new feature, design, architecture review, plan implementation.',
86
116
  model: 'opus',
87
117
  tools: ['Read', 'Grep', 'Glob', 'WebSearch'],
88
118
  maxTurns: 30,
@@ -136,15 +166,17 @@ Consult \`.claude/rules/\` for the full set of project-specific rules and conven
136
166
  - Do NOT write or edit files — planning only
137
167
  - Do NOT make implementation decisions without checking existing patterns
138
168
  - Do NOT skip dependency analysis between features
139
- - Do NOT approve designs that violate Clean Architecture layer rules`,
169
+ - Do NOT approve designs that violate Clean Architecture layer rules
170
+ ${sharedSections}`,
140
171
  };
141
172
  }
142
173
  function buildFlutterBuilderAgent(context) {
143
174
  const moduleContext = buildModuleContext(context);
175
+ const sharedSections = buildSharedSections();
144
176
  return {
145
177
  filename: 'flutter-builder.md',
146
178
  name: 'flutter-builder',
147
- description: 'Implements Flutter features following Clean Architecture. Handles both architecture review and implementation.',
179
+ description: 'Implements Flutter features following Clean Architecture. Triggers on: implement, build, code, create, modify, fix.',
148
180
  model: 'opus',
149
181
  tools: ['Read', 'Write', 'Edit', 'Grep', 'Glob', 'Bash'],
150
182
  isolation: 'worktree',
@@ -236,15 +268,17 @@ dart run build_runner build --delete-conflicting-outputs
236
268
  - Do NOT modify files outside the project directory
237
269
  - Do NOT run \`flutter clean\` without explicit instruction
238
270
  - Do NOT install new packages without checking acceptance criteria first
239
- - Do NOT skip quality gates`,
271
+ - Do NOT skip quality gates
272
+ ${sharedSections}`,
240
273
  };
241
274
  }
242
275
  function buildFlutterTesterAgent(context) {
243
276
  const moduleContext = buildModuleContext(context);
277
+ const sharedSections = buildSharedSections();
244
278
  return {
245
279
  filename: 'flutter-tester.md',
246
280
  name: 'flutter-tester',
247
- description: 'TDD-first testing agent. Writes tests before implementation and validates that features meet acceptance criteria.',
281
+ description: 'TDD-first testing agent. Writes tests before implementation and validates coverage. Triggers on: test, verify, coverage, TDD, assertion.',
248
282
  model: 'sonnet',
249
283
  tools: ['Read', 'Write', 'Edit', 'Grep', 'Glob', 'Bash'],
250
284
  isolation: 'worktree',
@@ -326,16 +360,18 @@ dart format --set-exit-if-changed . # Code is formatted
326
360
  - Do NOT write implementation code — only tests
327
361
  - Do NOT modify source files outside \`test/\`
328
362
  - Do NOT mark tasks complete without all tests passing
329
- - Do NOT skip edge case tests`,
363
+ - Do NOT skip edge case tests
364
+ ${sharedSections}`,
330
365
  };
331
366
  }
332
367
  function buildFlutterReviewerAgent(context) {
333
368
  const moduleContext = buildModuleContext(context);
369
+ const sharedSections = buildSharedSections();
334
370
  return {
335
371
  filename: 'flutter-reviewer.md',
336
372
  name: 'flutter-reviewer',
337
- description: 'Read-only compliance checker. Reviews code for Clean Architecture violations, Riverpod patterns, and code quality.',
338
- model: 'haiku',
373
+ description: 'Read-only compliance checker. Reviews code for architecture violations and quality. Triggers on: review, check, audit, compliance, quality.',
374
+ model: 'sonnet',
339
375
  tools: ['Read', 'Grep', 'Glob'],
340
376
  memory: 'user',
341
377
  maxTurns: 20,
@@ -343,7 +379,7 @@ function buildFlutterReviewerAgent(context) {
343
379
 
344
380
  ## Model Selection Rationale
345
381
 
346
- This agent uses **Haiku** because Haiku is fast and cost-effective for pattern-matching review tasks checking import rules, naming conventions, and checklist compliance does not require Sonnet-level reasoning.
382
+ This agent uses **Sonnet** for thorough code review — security analysis, architecture violation detection, and nuanced compliance checking require more reasoning capability than Haiku provides.
347
383
 
348
384
  ## Sub-Agent Policy
349
385
 
@@ -409,7 +445,134 @@ Consult \`.claude/rules/\` for the full set of project-specific rules and conven
409
445
  - Do NOT write or edit any files — read-only analysis only
410
446
  - Do NOT approve code with unresolved architecture violations
411
447
  - Do NOT skip the review checklist
412
- - Do NOT suggest changes without specific file/line references`,
448
+ - Do NOT suggest changes without specific file/line references
449
+ ${sharedSections}`,
450
+ };
451
+ }
452
+ function buildFlutterSpecifierAgent(context) {
453
+ const moduleContext = buildModuleContext(context);
454
+ const sharedSections = buildSharedSections();
455
+ return {
456
+ filename: 'flutter-specifier.md',
457
+ name: 'flutter-specifier',
458
+ description: 'Specification-Driven Development agent. Writes detailed specifications before implementation. Triggers on: specify, spec, requirements, acceptance criteria, define behavior.',
459
+ model: 'opus',
460
+ tools: ['Read', 'Grep', 'Glob', 'WebSearch'],
461
+ maxTurns: 30,
462
+ body: `You are a Flutter specifier for **${context.projectName}**. You write detailed specifications before any implementation begins, following Specification-Driven Development (SDD).
463
+
464
+ ## Model Selection Rationale
465
+
466
+ This agent uses **Opus** for deep specification reasoning — defining precise acceptance criteria, identifying edge cases, and analyzing cross-feature impacts requires Opus-level capability.
467
+
468
+ ## Your Role
469
+
470
+ You are a **specification** teammate. You:
471
+ 1. Read the story or feature request
472
+ 2. Analyze the existing codebase for relevant patterns and constraints
473
+ 3. Write detailed specifications with acceptance criteria
474
+ 4. Define data models, interfaces, and behavior contracts
475
+ 5. Identify edge cases, error scenarios, and cross-feature impacts
476
+ 6. Hand off the specification to the planner or builder
477
+
478
+ ## Specification Workflow
479
+
480
+ 1. **Understand**: Read the story requirements thoroughly
481
+ 2. **Research**: Search the codebase for related code, patterns, and conventions
482
+ 3. **Specify**: Write detailed specs including:
483
+ - Acceptance criteria (with testable predicates)
484
+ - Data models and interface signatures
485
+ - Error scenarios and edge cases
486
+ - Performance and security considerations
487
+ 4. **Validate**: Cross-check specs against existing architecture
488
+ 5. **Hand off**: Provide the planner with complete specs
489
+
490
+ ## Clean Architecture Compliance
491
+
492
+ All specifications must respect the layer rules:
493
+ - **Domain** (entities, repository interfaces, use cases) — no external dependencies
494
+ - **Data** (repository implementations, data sources, models) — depends only on Domain
495
+ - **Presentation** (pages, widgets, Riverpod providers) — depends on Domain, never directly on Data
496
+
497
+ ## Module Context
498
+
499
+ ${moduleContext}
500
+
501
+ ## Scope Boundaries
502
+
503
+ ### Do
504
+ - Read and analyze existing code patterns
505
+ - Write detailed specifications with acceptance criteria
506
+ - Research best practices and Flutter conventions
507
+ - Identify edge cases and error scenarios
508
+
509
+ ### Do NOT
510
+ - Do NOT write or edit implementation files — specification only
511
+ - Do NOT skip edge case analysis
512
+ - Do NOT approve specifications that violate Clean Architecture
513
+ - Do NOT specify features without checking existing patterns
514
+ ${sharedSections}`,
515
+ };
516
+ }
517
+ function buildFlutterPlannerAgent(context) {
518
+ const moduleContext = buildModuleContext(context);
519
+ const sharedSections = buildSharedSections();
520
+ return {
521
+ filename: 'flutter-planner.md',
522
+ name: 'flutter-planner',
523
+ description: 'Implementation planner for SDD workflow. Creates step-by-step implementation plans from specifications. Triggers on: plan, break down, implementation steps, task breakdown, sprint plan.',
524
+ model: 'sonnet',
525
+ tools: ['Read', 'Grep', 'Glob'],
526
+ maxTurns: 25,
527
+ body: `You are a Flutter implementation planner for **${context.projectName}**. You create step-by-step implementation plans from specifications, following Specification-Driven Development (SDD).
528
+
529
+ ## Model Selection Rationale
530
+
531
+ This agent uses **Sonnet** for structured planning — breaking specifications into ordered implementation steps, identifying dependencies, and creating task breakdowns is well-suited to Sonnet's capabilities.
532
+
533
+ ## Your Role
534
+
535
+ You are a **planning** teammate. You:
536
+ 1. Read the specification from the specifier
537
+ 2. Break it into ordered implementation steps
538
+ 3. Identify dependencies between steps
539
+ 4. Estimate complexity and assign to appropriate agents
540
+ 5. Create a clear implementation plan for the builder and tester
541
+
542
+ ## Planning Workflow
543
+
544
+ 1. **Read spec**: Understand the full specification and acceptance criteria
545
+ 2. **Decompose**: Break the spec into atomic implementation tasks
546
+ 3. **Order**: Arrange tasks respecting Clean Architecture layer order (Domain → Data → Presentation)
547
+ 4. **Dependencies**: Identify which tasks block others
548
+ 5. **Assign**: Recommend which agent should handle each task
549
+ 6. **Hand off**: Provide the ordered plan to the team
550
+
551
+ ## Task Decomposition Rules
552
+
553
+ - Each task should be completable in a single agent turn
554
+ - Tasks follow Clean Architecture layer order
555
+ - Test tasks are paired with implementation tasks (TDD)
556
+ - Each task has clear acceptance criteria from the spec
557
+
558
+ ## Module Context
559
+
560
+ ${moduleContext}
561
+
562
+ ## Scope Boundaries
563
+
564
+ ### Do
565
+ - Read specifications and existing code
566
+ - Create ordered implementation plans
567
+ - Identify task dependencies and blockers
568
+ - Recommend agent assignments
569
+
570
+ ### Do NOT
571
+ - Do NOT write or edit implementation files — planning only
572
+ - Do NOT skip dependency analysis
573
+ - Do NOT create plans that violate Clean Architecture layer order
574
+ - Do NOT plan tasks without clear acceptance criteria
575
+ ${sharedSections}`,
413
576
  };
414
577
  }
415
578
  //# sourceMappingURL=agent-writer.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"agent-writer.js","sourceRoot":"","sources":["../../src/claude-setup/agent-writer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"agent-writer.js","sourceRoot":"","sources":["../../src/claude-setup/agent-writer.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  import type { ProjectContext } from '../core/context.js';
2
2
  /**
3
- * Generates a slim CLAUDE.md (~80 lines) for a scaffolded Flutter project.
3
+ * Generates a slim CLAUDE.md (~90 lines) for a scaffolded Flutter project.
4
4
  * Detailed rules are referenced via @-imports to .claude/rules/ files.
5
5
  */
6
6
  export declare function generateClaudeMd(context: ProjectContext): string;
@@ -1 +1 @@
1
- {"version":3,"file":"claude-md-generator.d.ts","sourceRoot":"","sources":["../../src/claude-setup/claude-md-generator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAEzD;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,cAAc,GAAG,MAAM,CAgBhE"}
1
+ {"version":3,"file":"claude-md-generator.d.ts","sourceRoot":"","sources":["../../src/claude-setup/claude-md-generator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAEzD;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,cAAc,GAAG,MAAM,CAiBhE"}
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Generates a slim CLAUDE.md (~80 lines) for a scaffolded Flutter project.
2
+ * Generates a slim CLAUDE.md (~90 lines) for a scaffolded Flutter project.
3
3
  * Detailed rules are referenced via @-imports to .claude/rules/ files.
4
4
  */
5
5
  export function generateClaudeMd(context) {
@@ -8,8 +8,9 @@ export function generateClaudeMd(context) {
8
8
  generateRules(context),
9
9
  generateBuildCommands(),
10
10
  generateQualityGates(),
11
+ generateSecurity(),
11
12
  generateModelPolicy(),
12
- generateDevelopmentWorkflow(),
13
+ generateDevelopmentWorkflow(context),
13
14
  generateKeyPaths(),
14
15
  ];
15
16
  if (context.claude.agentTeams) {
@@ -46,6 +47,8 @@ function generateRules(context) {
46
47
  '@.claude/rules/security.md',
47
48
  '@.claude/rules/git-workflow.md',
48
49
  '@.claude/rules/code-quality.md',
50
+ '@.claude/rules/error-recovery.md',
51
+ '@.claude/rules/context-management.md',
49
52
  ];
50
53
  if (context.modules.auth)
51
54
  imports.push('@.claude/rules/auth.md');
@@ -87,6 +90,15 @@ function generateQualityGates() {
87
90
  - \`flutter test\` — all pass
88
91
  - \`dart format --set-exit-if-changed .\` — formatted`;
89
92
  }
93
+ function generateSecurity() {
94
+ return `## Security
95
+
96
+ - **NEVER** hardcode secrets, API keys, or credentials in source code
97
+ - **NEVER** log PII (personal identifiable information) or sensitive data
98
+ - Validate ALL external input — user input, API responses, deep link parameters
99
+ - Use \`flutter_secure_storage\` for sensitive data, not \`SharedPreferences\`
100
+ - Always use HTTPS for network requests`;
101
+ }
90
102
  function generateModelPolicy() {
91
103
  return `## Model Usage Policy
92
104
 
@@ -94,12 +106,16 @@ function generateModelPolicy() {
94
106
  - **Sonnet**: Simple, well-defined tasks with clear requirements.
95
107
  - **Haiku**: Trivial tasks only (formatting, simple scans).`;
96
108
  }
97
- function generateDevelopmentWorkflow() {
98
- return `## Development Workflow
99
-
100
- - Commit: \`feat: [StoryID] - description\`
101
- - Files: \`snake_case.dart\`
102
- - Tests: \`<source>_test.dart\``;
109
+ function generateDevelopmentWorkflow(context) {
110
+ const lines = [
111
+ '## Development Workflow',
112
+ '',
113
+ ];
114
+ if (context.claude.agentTeams) {
115
+ lines.push('### SDD Pipeline (for new features)', '`/specify` → `/plan` → `/tasks` → `/start-team`', 'Use Spec-Driven Development for features with 3+ files across multiple layers.', '');
116
+ }
117
+ lines.push('- Commit: `feat: [StoryID] - description`', '- Files: `snake_case.dart`', '- Tests: `<source>_test.dart`');
118
+ return lines.join('\n');
103
119
  }
104
120
  function generateKeyPaths() {
105
121
  return `## Key Paths
@@ -1 +1 @@
1
- {"version":3,"file":"claude-md-generator.js","sourceRoot":"","sources":["../../src/claude-setup/claude-md-generator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"claude-md-generator.js","sourceRoot":"","sources":["../../src/claude-setup/claude-md-generator.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"commands-writer.d.ts","sourceRoot":"","sources":["../../src/claude-setup/commands-writer.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAEzD;;;GAGG;AACH,wBAAsB,aAAa,CAAC,OAAO,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAS9F"}
1
+ {"version":3,"file":"commands-writer.d.ts","sourceRoot":"","sources":["../../src/claude-setup/commands-writer.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAEzD;;;GAGG;AACH,wBAAsB,aAAa,CAAC,OAAO,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAmB9F"}
@@ -7,11 +7,15 @@ import path from 'node:path';
7
7
  export async function writeCommands(context, outputPath) {
8
8
  const commandsDir = path.join(outputPath, '.claude', 'commands');
9
9
  await fs.ensureDir(commandsDir);
10
- await Promise.all([
10
+ const writes = [
11
11
  fs.writeFile(path.join(commandsDir, 'add-feature.md'), generateAddFeatureCommand(context)),
12
12
  fs.writeFile(path.join(commandsDir, 'analyze.md'), generateAnalyzeCommand()),
13
- fs.writeFile(path.join(commandsDir, 'start-team.md'), generateStartTeamCommand()),
14
- ]);
13
+ fs.writeFile(path.join(commandsDir, 'start-team.md'), generateStartTeamCommand(context)),
14
+ ];
15
+ if (context.claude?.agentTeams) {
16
+ writes.push(fs.writeFile(path.join(commandsDir, 'specify.md'), generateSpecifyCommand()), fs.writeFile(path.join(commandsDir, 'plan.md'), generatePlanCommand()), fs.writeFile(path.join(commandsDir, 'tasks.md'), generateTasksCommand()));
17
+ }
18
+ await Promise.all(writes);
15
19
  }
16
20
  function generateAddFeatureCommand(context) {
17
21
  const routerNote = context.modules.auth
@@ -304,7 +308,21 @@ flutter analyze && flutter test && dart format --set-exit-if-changed .
304
308
  \`\`\`
305
309
  `;
306
310
  }
307
- function generateStartTeamCommand() {
311
+ function generateStartTeamCommand(context) {
312
+ const sddNote = context.claude?.agentTeams
313
+ ? `
314
+ ## SDD Pipeline (recommended for 3+ file features)
315
+
316
+ Before spawning the team, use the SDD pipeline to produce a structured spec and plan:
317
+
318
+ 1. \`/specify\` — Interview funnel to produce \`specs/<feature>.md\`
319
+ 2. \`/plan\` — Analyze spec and codebase to produce \`specs/<feature>.plan.md\`
320
+ 3. \`/tasks\` — Generate PRD stories with dependencies in \`prd.json\`
321
+
322
+ Then run \`/start-team\` to execute the stories with the agent team.
323
+
324
+ `
325
+ : '';
308
326
  return `# Start Team Sprint
309
327
 
310
328
  Orchestrate a Claude Code Agent Team sprint from \`prd.json\`.
@@ -318,7 +336,7 @@ git status # Working tree must be clean
318
336
  flutter analyze # Zero errors/warnings
319
337
  flutter test # All tests pass
320
338
  \`\`\`
321
-
339
+ ${sddNote}
322
340
  ## Step 1 — Read prd.json
323
341
 
324
342
  Load \`prd.json\` and identify incomplete stories (\`passes: false\`). Group by phase, pick the next batch of stories to implement.
@@ -331,12 +349,12 @@ Create a team named \`flutter-sprint\` using TeamCreate. Create TaskCreate entri
331
349
 
332
350
  Spawn 4 agents with the following roles and models:
333
351
 
334
- | Agent | Model | Role |
335
- |-------|-------|------|
336
- | **architect** | opus | Designs implementation approach, identifies files and interfaces |
337
- | **builder** | opus | Writes failing tests (RED), then minimal code to pass (GREEN) |
338
- | **tester** | sonnet | Validates implementation, runs quality gates, checks coverage |
339
- | **reviewer** | haiku | Reviews code for Clean Architecture compliance and best practices |
352
+ | Agent | Model | Role | File Ownership |
353
+ |-------|-------|------|----------------|
354
+ | **architect** | opus | Designs implementation approach, identifies files and interfaces | \`specs/\`, \`docs/\` |
355
+ | **builder** | opus | Writes failing tests (RED), then minimal code to pass (GREEN) | \`lib/\`, \`test/\` |
356
+ | **tester** | sonnet | Validates implementation, runs quality gates, checks coverage | \`test/\`, quality reports |
357
+ | **reviewer** | sonnet | Reviews code for Clean Architecture compliance and best practices | Review comments only |
340
358
 
341
359
  ## Step 4 — TDD Flow Per Story
342
360
 
@@ -347,7 +365,15 @@ For each story, follow this orchestration:
347
365
  3. **Tester** runs \`flutter analyze && flutter test\`, checks coverage
348
366
  4. **Reviewer** reviews code for architecture compliance
349
367
 
350
- ## Step 5 — Commit + Push
368
+ ## Step 5 — Error Recovery Protocol
369
+
370
+ If a step fails, follow the 4-tier escalation:
371
+ 1. **Self-Correction**: Re-read error, check last changes, run diagnostics
372
+ 2. **AI-to-AI**: Ask another agent for a fresh perspective
373
+ 3. **Human-Augmented**: Ask the user for domain context
374
+ 4. **Full Handoff**: Document what was tried and hand to user
375
+
376
+ ## Step 6 — Commit + Push
351
377
 
352
378
  After each story passes all quality gates:
353
379
 
@@ -359,9 +385,143 @@ git push
359
385
 
360
386
  Mark the story as \`passes: true\` in \`prd.json\`.
361
387
 
362
- ## Step 6 — Repeat
388
+ ## Step 7 — Repeat
363
389
 
364
390
  Continue with the next story until the sprint batch is complete. Shut down agents when done.
365
391
  `;
366
392
  }
393
+ function generateSpecifyCommand() {
394
+ return `---
395
+ model: opus
396
+ ---
397
+ # Specify Feature
398
+
399
+ Interview funnel to produce a structured feature specification.
400
+
401
+ ## Interview Steps
402
+
403
+ ### 1. Problem Statement
404
+ Ask: "What problem does this feature solve? Who benefits?"
405
+
406
+ ### 2. Scope Definition
407
+ Ask: "What is in scope and what is explicitly out of scope?"
408
+
409
+ ### 3. Data Model
410
+ Ask: "What are the core entities? What fields do they have? What are the relationships?"
411
+ Produce freezed entity definitions.
412
+
413
+ ### 4. User Interface
414
+ Ask: "What screens/pages are needed? What user interactions?"
415
+ List pages with their navigation paths.
416
+
417
+ ### 5. API Contracts
418
+ Ask: "What API endpoints are needed? What are request/response shapes?"
419
+ Define repository interfaces.
420
+
421
+ ### 6. Edge Cases
422
+ Ask: "What happens when: network fails, data is empty, user cancels, input is invalid?"
423
+
424
+ ### 7. Security Considerations
425
+ Ask: "Does this feature handle sensitive data? Authentication required? Input validation needs?"
426
+
427
+ ### 8. Constraints
428
+ Ask: "Any performance requirements? Offline support needed? Accessibility requirements?"
429
+
430
+ ## Output
431
+
432
+ Save the spec to \`specs/<feature-name>.md\` using the spec template from skills.
433
+ Include all answers structured into the template sections.
434
+ `;
435
+ }
436
+ function generatePlanCommand() {
437
+ return `---
438
+ model: opus
439
+ ---
440
+ # Plan Feature Implementation
441
+
442
+ Read a feature spec and produce an implementation plan following Clean Architecture.
443
+
444
+ ## Input
445
+
446
+ Read the spec from \`specs/<feature-name>.md\`.
447
+
448
+ ## Analysis Steps
449
+
450
+ ### 1. Analyze Current Codebase
451
+ - Identify existing patterns and conventions in \`lib/\`
452
+ - Check for reusable providers, entities, or utilities
453
+ - Review \`pubspec.yaml\` for available packages
454
+
455
+ ### 2. Plan Domain Layer (Phase 1)
456
+ - List all entities with freezed annotations
457
+ - Define repository interfaces
458
+ - Design use cases (single-responsibility)
459
+
460
+ ### 3. Plan Data Layer (Phase 2)
461
+ - Design data models with serialization
462
+ - Plan data sources (remote, local)
463
+ - Map repository implementations
464
+
465
+ ### 4. Plan Presentation Layer (Phase 3)
466
+ - Design providers (AsyncNotifier pattern)
467
+ - Plan pages and their routes
468
+ - Identify reusable widgets
469
+
470
+ ### 5. Plan Integration (Phase 4)
471
+ - Route registration in \`app_router.dart\`
472
+ - Code generation requirements
473
+ - Integration test scenarios
474
+
475
+ ## Output
476
+
477
+ Save the plan to \`specs/<feature-name>.plan.md\` using the plan template from skills.
478
+ Include file ownership boundaries and complexity estimates for each file.
479
+ `;
480
+ }
481
+ function generateTasksCommand() {
482
+ return `---
483
+ model: sonnet
484
+ ---
485
+ # Generate Tasks from Plan
486
+
487
+ Read a feature plan and generate PRD stories for \`prd.json\`.
488
+
489
+ ## Input
490
+
491
+ Read the plan from \`specs/<feature-name>.plan.md\`.
492
+
493
+ ## Steps
494
+
495
+ ### 1. Break Plan into Stories
496
+ - Each story should be completable in a single TDD cycle
497
+ - One story per layer or sub-feature
498
+ - Include acceptance criteria with testable predicates
499
+
500
+ ### 2. Define Dependencies
501
+ - Domain stories have no dependencies
502
+ - Data stories depend on their domain stories
503
+ - Presentation stories depend on domain stories
504
+ - Integration stories depend on data and presentation
505
+
506
+ ### 3. Estimate Complexity
507
+ - 1-2 SP: Single file, straightforward
508
+ - 3 SP: 2-3 files, moderate logic
509
+ - 5 SP: Multiple files, complex logic
510
+ - 8 SP: Cross-cutting, architectural
511
+
512
+ ### 4. Write to prd.json
513
+ Add stories with:
514
+ - Unique IDs following existing pattern
515
+ - Phase matching the plan phases
516
+ - Priority based on dependency order (P0 for domain, P1 for data, P2 for presentation)
517
+ - \`passes: false\`
518
+
519
+ ### 5. Create Tasks
520
+ Use TaskCreate to generate task entries with \`blockedBy\` dependencies matching the story dependencies.
521
+
522
+ ## Output
523
+
524
+ Report the number of stories created and their dependency graph.
525
+ `;
526
+ }
367
527
  //# sourceMappingURL=commands-writer.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"commands-writer.js","sourceRoot":"","sources":["../../src/claude-setup/commands-writer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,UAAU,CAAC;AAC1B,OAAO,IAAI,MAAM,WAAW,CAAC;AAG7B;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,OAAuB,EAAE,UAAkB;IAC7E,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,SAAS,EAAE,UAAU,CAAC,CAAC;IACjE,MAAM,EAAE,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;IAEhC,MAAM,OAAO,CAAC,GAAG,CAAC;QAChB,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,gBAAgB,CAAC,EAAE,yBAAyB,CAAC,OAAO,CAAC,CAAC;QAC1F,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,YAAY,CAAC,EAAE,sBAAsB,EAAE,CAAC;QAC5E,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,eAAe,CAAC,EAAE,wBAAwB,EAAE,CAAC;KAClF,CAAC,CAAC;AACL,CAAC;AAED,SAAS,yBAAyB,CAAC,OAAuB;IACxD,MAAM,UAAU,GAAG,OAAO,CAAC,OAAO,CAAC,IAAI;QACrC,CAAC,CAAC;;;;;;;;;;;;;;CAcL;QACG,CAAC,CAAC,EAAE,CAAC;IAEP,MAAM,QAAQ,GAAG,OAAO,CAAC,OAAO,CAAC,IAAI;QACnC,CAAC,CAAC;;;;;;;;CAQL;QACG,CAAC,CAAC,EAAE,CAAC;IAEP,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAmKP,UAAU,GAAG,QAAQ;;;;;;;;;;;;;CAatB,CAAC;AACF,CAAC;AAED,SAAS,sBAAsB;IAC7B,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAiFR,CAAC;AACF,CAAC;AAED,SAAS,wBAAwB;IAC/B,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAyDR,CAAC;AACF,CAAC"}
1
+ {"version":3,"file":"commands-writer.js","sourceRoot":"","sources":["../../src/claude-setup/commands-writer.ts"],"names":[],"mappings":"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"}
@@ -14,6 +14,8 @@ export interface HooksConfig {
14
14
  PreToolUse?: HookEntry[];
15
15
  PostToolUse?: HookEntry[];
16
16
  Notification?: HookEntry[];
17
+ PreCompact?: HookEntry[];
18
+ Stop?: HookEntry[];
17
19
  };
18
20
  }
19
21
  export interface HooksResult {
@@ -1 +1 @@
1
- {"version":3,"file":"hooks-writer.d.ts","sourceRoot":"","sources":["../../src/claude-setup/hooks-writer.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAEzD,UAAU,SAAS;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,KAAK,CAAC;QACX,IAAI,EAAE,SAAS,CAAC;QAChB,OAAO,EAAE,MAAM,CAAC;QAChB,OAAO,CAAC,EAAE,MAAM,CAAC;KAClB,CAAC,CAAC;CACJ;AAED,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE;QACL,aAAa,CAAC,EAAE,SAAS,EAAE,CAAC;QAC5B,YAAY,CAAC,EAAE,SAAS,EAAE,CAAC;QAC3B,UAAU,CAAC,EAAE,SAAS,EAAE,CAAC;QACzB,WAAW,CAAC,EAAE,SAAS,EAAE,CAAC;QAC1B,YAAY,CAAC,EAAE,SAAS,EAAE,CAAC;KAC5B,CAAC;CACH;AAED,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,MAAM,EAAE,WAAW,CAAC;CACrB;AAiHD,wBAAsB,UAAU,CAAC,OAAO,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,CAwGlG"}
1
+ {"version":3,"file":"hooks-writer.d.ts","sourceRoot":"","sources":["../../src/claude-setup/hooks-writer.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAEzD,UAAU,SAAS;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,KAAK,CAAC;QACX,IAAI,EAAE,SAAS,CAAC;QAChB,OAAO,EAAE,MAAM,CAAC;QAChB,OAAO,CAAC,EAAE,MAAM,CAAC;KAClB,CAAC,CAAC;CACJ;AAED,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE;QACL,aAAa,CAAC,EAAE,SAAS,EAAE,CAAC;QAC5B,YAAY,CAAC,EAAE,SAAS,EAAE,CAAC;QAC3B,UAAU,CAAC,EAAE,SAAS,EAAE,CAAC;QACzB,WAAW,CAAC,EAAE,SAAS,EAAE,CAAC;QAC1B,YAAY,CAAC,EAAE,SAAS,EAAE,CAAC;QAC3B,UAAU,CAAC,EAAE,SAAS,EAAE,CAAC;QACzB,IAAI,CAAC,EAAE,SAAS,EAAE,CAAC;KACpB,CAAC;CACH;AAED,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,MAAM,EAAE,WAAW,CAAC;CACrB;AAmLD,wBAAsB,UAAU,CAAC,OAAO,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,CAoIlG"}