warp-os 1.1.2 → 1.2.1

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 (45) hide show
  1. package/CHANGELOG.md +85 -0
  2. package/README.md +6 -4
  3. package/VERSION +1 -1
  4. package/agents/warp-annotate.md +394 -0
  5. package/agents/warp-browse.md +9 -1
  6. package/agents/warp-build-code.md +9 -1
  7. package/agents/warp-orchestrator.md +10 -1
  8. package/agents/warp-plan-architect.md +120 -1
  9. package/agents/warp-plan-brainstorm.md +93 -2
  10. package/agents/warp-plan-design.md +97 -4
  11. package/agents/warp-plan-onboarding.md +9 -1
  12. package/agents/warp-plan-optimize.md +9 -1
  13. package/agents/warp-plan-scope.md +67 -1
  14. package/agents/warp-plan-security.md +576 -35
  15. package/agents/warp-plan-testdesign.md +9 -1
  16. package/agents/warp-qa-debug.md +117 -1
  17. package/agents/warp-qa-test.md +167 -1
  18. package/agents/warp-release-update.md +290 -4
  19. package/agents/warp-setup.md +9 -1
  20. package/agents/warp-upgrade.md +21 -4
  21. package/bin/hooks/CLAUDE.md +24 -0
  22. package/bin/hooks/_warp_json.sh +4 -2
  23. package/bin/hooks/identity-briefing.sh +20 -13
  24. package/bin/hooks/validate-askuser.sh +41 -0
  25. package/bin/migrate-sessions.js +284 -173
  26. package/dist/warp-annotate/SKILL.md +404 -0
  27. package/dist/warp-browse/SKILL.md +9 -1
  28. package/dist/warp-build-code/SKILL.md +9 -1
  29. package/dist/warp-orchestrator/SKILL.md +10 -1
  30. package/dist/warp-plan-architect/SKILL.md +120 -1
  31. package/dist/warp-plan-brainstorm/SKILL.md +93 -2
  32. package/dist/warp-plan-design/SKILL.md +97 -4
  33. package/dist/warp-plan-onboarding/SKILL.md +9 -1
  34. package/dist/warp-plan-optimize/SKILL.md +9 -1
  35. package/dist/warp-plan-scope/SKILL.md +67 -1
  36. package/dist/warp-plan-security/SKILL.md +578 -35
  37. package/dist/warp-plan-testdesign/SKILL.md +9 -1
  38. package/dist/warp-qa-debug/SKILL.md +117 -1
  39. package/dist/warp-qa-test/SKILL.md +167 -1
  40. package/dist/warp-release-update/SKILL.md +290 -4
  41. package/dist/warp-setup/SKILL.md +9 -1
  42. package/dist/warp-upgrade/SKILL.md +21 -4
  43. package/package.json +2 -2
  44. package/shared/project-hooks.json +7 -0
  45. package/shared/tier1-engineering-constitution.md +9 -1
@@ -133,6 +133,8 @@ Shell commands use Unix syntax (Git Bash). Never use CMD (`dir`, `type`, `del`)
133
133
 
134
134
  ## AskUserQuestion
135
135
 
136
+ **Flow: analysis first, then decision tool.** Present your full reasoning, trade-offs, and recommendations as conversational text — the user wants to read your thinking. Then cap it with AskUserQuestion to formalize the decision. **If you're composing a message with multiple options or "which approach?" language, you MUST end it with AskUserQuestion.** Never present options in prose without the tool.
137
+
136
138
  **Contract:**
137
139
  1. **Re-ground:** Project name, branch, current task. (1-2 sentences.)
138
140
  2. **Simplify:** Plain English a smart 16-year-old could follow.
@@ -154,9 +156,15 @@ Shell commands use Unix syntax (Git Bash). Never use CMD (`dir`, `type`, `del`)
154
156
  Format: `"Option name — X/10 🟢"` (or 🟡 or 🔴). In the label, not the description.
155
157
  Rate: 🟢 9-10 complete, 🟡 6-8 adequate, 🔴 1-5 shortcuts.
156
158
 
159
+ **Pre-call checklist (verify before every AskUserQuestion invocation):**
160
+ - ☐ Completeness scores in every option label
161
+ - ☐ Recommended option listed first
162
+ - ☐ One decision per question (split if multiple)
163
+ - ☐ Analysis/reasoning already presented in message text above
164
+
157
165
  **Formatting:**
158
166
  - *Italics* for emphasis, not **bold** (bold for headers only).
159
- - After each answer: `✔ Decision {N} recorded [quicksave updated]`
167
+ - After each answer: `✔ Decision {N} recorded`
160
168
  - Previews under 8 lines. Full mockups go in conversation text before the question.
161
169
 
162
170
  ---
@@ -313,7 +321,15 @@ Product stage determines which forcing questions to ask (see Phase 2).
313
321
  ```
314
322
  If prior brainstorms exist, surface them: "Prior brainstorm found at `.warp/reports/planning/brainstorm.md`. Want to build on it or start fresh?"
315
323
 
316
- 4. Output: "Here's what I understand about this project and the problem area you want to explore: [1-2 paragraph synthesis]." State what is known and what is unclear.
324
+ 4. **Related Design Discovery:** Search `.warp/reports/` for any existing artifacts with keyword overlap to the stated problem:
325
+ ```bash
326
+ grep -rl "[key terms from user's problem description]" .warp/reports/ 2>/dev/null
327
+ ```
328
+ If related work exists, present it via AskUserQuestion: "Found existing artifacts that may be relevant: [list with brief description of each]. Want to build on these or start fresh?"
329
+
330
+ This prevents duplicate brainstorming and surfaces prior thinking the user may have forgotten about. Skip this step only if `.warp/reports/` does not exist.
331
+
332
+ 5. Output: "Here's what I understand about this project and the problem area you want to explore: [1-2 paragraph synthesis]." State what is known and what is unclear.
317
333
 
318
334
  ---
319
335
 
@@ -448,6 +464,45 @@ If the framing is imprecise, reframe constructively: "Let me try restating what
448
464
 
449
465
  ---
450
466
 
467
+ ## PHASE 2.5: Landscape Awareness (Both Modes)
468
+
469
+ **Goal:** Ground the brainstorm in what actually exists in the market. Conventional wisdom is often wrong — search for evidence before synthesizing.
470
+
471
+ ### Privacy Gate
472
+
473
+ Before any web search, ask via AskUserQuestion:
474
+
475
+ > "I'd like to search for [specific query] to understand the competitive landscape. This will send a web search query. OK to proceed? [Y/n]"
476
+
477
+ Only proceed with the search if the user approves. If declined, skip to Phase 3 and note in the brainstorm artifact that landscape analysis was skipped by user choice.
478
+
479
+ ### Search Strategy
480
+
481
+ Search for:
482
+ - `[product category] + "alternatives"` — what direct competitors exist
483
+ - `[problem domain] + "solutions"` — how people solve this problem today
484
+ - `[user type] + [pain point]` — how the target user describes their problem
485
+
486
+ Use WebSearch for each approved query. Limit to 2-3 searches to avoid over-researching.
487
+
488
+ ### Landscape Synthesis
489
+
490
+ Produce:
491
+
492
+ ```
493
+ LANDSCAPE SYNTHESIS:
494
+ Conventional wisdom: [what everyone assumes the solution looks like]
495
+ Search findings: [what competitors actually do — 3-5 with URLs]
496
+ First-principles view: [what the data suggests that contradicts conventional wisdom]
497
+ Eureka moments: [any insight that changes the problem framing]
498
+ ```
499
+
500
+ **Integration:** Feed the landscape synthesis directly into Phase 3 (User Needs Mapping) and Phase 6 (Synthesis). The "Key Insight" in Phase 6 should reference landscape findings when they reveal a non-obvious opportunity.
501
+
502
+ **Smart-skip:** If the user already provided detailed competitive analysis or the product is in a space with no direct competitors (novel research, internal tool), skip the search but still produce the synthesis from what the user shared.
503
+
504
+ ---
505
+
451
506
  ## PHASE 2B: Builder Mode Questions
452
507
 
453
508
  Use this phase when the user is building for fun, learning, hacking, at a hackathon, or doing research.
@@ -677,6 +732,33 @@ Present via AskUserQuestion. Do NOT proceed without user approval.
677
732
 
678
733
  **Goal:** Write the output artifact with all session findings.
679
734
 
735
+ ### Design Doc Lineage
736
+
737
+ Before writing, check if a previous `brainstorm.md` exists:
738
+
739
+ ```bash
740
+ if [ -f .warp/reports/planning/brainstorm.md ]; then
741
+ # Get the date from the existing file's pipeline header
742
+ existing_date=$(grep -oP '\d{4}-\d{2}-\d{2}' .warp/reports/planning/brainstorm.md | head -1)
743
+ # Count existing versions in archive
744
+ mkdir -p .warp/reports/planning/archive
745
+ version=$(ls .warp/reports/planning/archive/brainstorm-v*.md 2>/dev/null | wc -l)
746
+ next_version=$((version + 1))
747
+ # Archive the previous version
748
+ cp .warp/reports/planning/brainstorm.md ".warp/reports/planning/archive/brainstorm-v${next_version}.md"
749
+ fi
750
+ ```
751
+
752
+ If a previous version was archived, add a `Supersedes:` comment at the top of the new brainstorm.md:
753
+
754
+ ```markdown
755
+ <!-- Supersedes: brainstorm-v[N].md ([date]) — [brief reason for new version, e.g., "scope expanded after competitive analysis"] -->
756
+ ```
757
+
758
+ This creates an audit trail of how the product thinking evolved. The archive is in `.warp/reports/planning/archive/` and is never deleted.
759
+
760
+ ### Write the Artifact
761
+
680
762
  Create `.warp/reports/planning/brainstorm.md`:
681
763
 
682
764
  ```markdown
@@ -717,12 +799,21 @@ Create `.warp/reports/planning/brainstorm.md`:
717
799
  ### Approach C: {name — if applicable}
718
800
  {from Phase 7}
719
801
 
802
+ ## Landscape Analysis
803
+ {from Phase 2.5 — conventional wisdom, search findings, first-principles view, eureka moments}
804
+ {If skipped by user choice, note: "Landscape analysis skipped at user request."}
805
+
720
806
  ## Recommended Direction
721
807
  {from Phase 6 synthesis}
722
808
 
723
809
  ## What to Build First
724
810
  {the narrowest wedge}
725
811
 
812
+ ## Distribution Plan
813
+ How users get this: {app store / npm / direct download / SaaS / browser extension / etc.}
814
+ CI/CD pipeline needed: {yes — describe / no — manual / existing pipeline covers it}
815
+ Update mechanism: {auto-update / manual / package manager / N/A for SaaS}
816
+
726
817
  ## Open Questions
727
818
  {unresolved uncertainties that the next skill should address}
728
819
 
@@ -134,6 +134,8 @@ Shell commands use Unix syntax (Git Bash). Never use CMD (`dir`, `type`, `del`)
134
134
 
135
135
  ## AskUserQuestion
136
136
 
137
+ **Flow: analysis first, then decision tool.** Present your full reasoning, trade-offs, and recommendations as conversational text — the user wants to read your thinking. Then cap it with AskUserQuestion to formalize the decision. **If you're composing a message with multiple options or "which approach?" language, you MUST end it with AskUserQuestion.** Never present options in prose without the tool.
138
+
137
139
  **Contract:**
138
140
  1. **Re-ground:** Project name, branch, current task. (1-2 sentences.)
139
141
  2. **Simplify:** Plain English a smart 16-year-old could follow.
@@ -155,9 +157,15 @@ Shell commands use Unix syntax (Git Bash). Never use CMD (`dir`, `type`, `del`)
155
157
  Format: `"Option name — X/10 🟢"` (or 🟡 or 🔴). In the label, not the description.
156
158
  Rate: 🟢 9-10 complete, 🟡 6-8 adequate, 🔴 1-5 shortcuts.
157
159
 
160
+ **Pre-call checklist (verify before every AskUserQuestion invocation):**
161
+ - ☐ Completeness scores in every option label
162
+ - ☐ Recommended option listed first
163
+ - ☐ One decision per question (split if multiple)
164
+ - ☐ Analysis/reasoning already presented in message text above
165
+
158
166
  **Formatting:**
159
167
  - *Italics* for emphasis, not **bold** (bold for headers only).
160
- - After each answer: `✔ Decision {N} recorded [quicksave updated]`
168
+ - After each answer: `✔ Decision {N} recorded`
161
169
  - Previews under 8 lines. Full mockups go in conversation text before the question.
162
170
 
163
171
  ---
@@ -435,7 +443,44 @@ SCREEN: [name]
435
443
  - Never use technical language in user-facing copy: "Something went wrong" not "Error 500"
436
444
  - Loading copy uses present participle with ellipsis character: "Loading flights..." uses `…` not `...`
437
445
 
438
- ### 2E. Accessibility Strategy
446
+ ### 2E. Interaction State Coverage
447
+
448
+ For every feature or screen identified in the user flows, map which interaction states have been designed. This ensures no screen ships with only the happy path.
449
+
450
+ ```
451
+ INTERACTION STATE COVERAGE:
452
+ ┌──────────────┬─────────┬───────┬───────┬─────────┬─────────┐
453
+ │ Feature │ Loading │ Empty │ Error │ Success │ Partial │
454
+ ├──────────────┼─────────┼───────┼───────┼─────────┼─────────┤
455
+ │ [feature] │ ✓/✗ │ ✓/✗ │ ✓/✗ │ ✓/✗ │ ✓/✗ │
456
+ └──────────────┴─────────┴───────┴───────┴─────────┴─────────┘
457
+ Every ✗ must be designed before the design phase completes.
458
+ ```
459
+
460
+ Produce this table for every screen from Phase 2A. If a state does not apply to a given feature (e.g., a static "About" page has no loading state), mark it N/A with a brief reason. All other gaps are design debt that must be resolved before Phase 3.
461
+
462
+ ### 2F. User Journey & Emotional Arc
463
+
464
+ For the primary user flow (and any secondary flow that involves emotional stakes), produce a storyboard mapping what the user does, what they feel, and whether the design addresses that feeling.
465
+
466
+ ```
467
+ USER JOURNEY:
468
+ ┌──────┬──────────────────┬──────────────────┬───────────────────┐
469
+ │ Step │ User Does │ User Feels │ Design Specifies? │
470
+ ├──────┼──────────────────┼──────────────────┼───────────────────┤
471
+ │ 1 │ [action] │ [emotion] │ [yes/no + what] │
472
+ │ 2 │ [action] │ [emotion] │ [yes/no + what] │
473
+ └──────┴──────────────────┴──────────────────┴───────────────────┘
474
+ Any step where "Design Specifies?" = no is a gap to fill.
475
+ ```
476
+
477
+ Rules:
478
+ - Include negative emotions (confusion, anxiety, frustration) — these are where design matters most
479
+ - The "Design Specifies?" column must reference a concrete design element: a loading skeleton, a success animation, an error message with recovery instructions, a reassuring empty state
480
+ - If a step has no design specification, create one before proceeding to Phase 3
481
+ - For Builder mode projects, the emotional arc should include at least one "delight" moment where the user says "whoa"
482
+
483
+ ### 2G. Accessibility Strategy
439
484
 
440
485
  Define accessibility requirements at the strategy level:
441
486
 
@@ -462,7 +507,7 @@ REDUCED MOTION:
462
507
  [how animations degrade — typically to opacity fade only]
463
508
  ```
464
509
 
465
- ### 2F. Figma Setup (if available)
510
+ ### 2H. Figma Setup (if available)
466
511
 
467
512
  If Figma MCP is configured (check `.warp/warp-tools.json` → `mcp_servers.figma.status`):
468
513
 
@@ -743,7 +788,55 @@ ANTI-SLOP VERIFICATION:
743
788
 
744
789
  If ANY item fails the slop scan, go back and fix it before proceeding.
745
790
 
746
- **HARD GATE: Visual System complete. Present color palette, typography, spacing, and key component wireframes to user for approval before proceeding to Implementation.**
791
+ **HARD GATE: Visual System complete. Present color palette, typography, spacing, and key component wireframes to user for approval before proceeding to Design Rating.**
792
+
793
+ ---
794
+
795
+ ## PHASE 3.5: Design Dimension Rating
796
+
797
+ **Goal:** Rate the design across seven critical dimensions, identify gaps, and fix them before implementation begins. This is the quality gate that prevents mediocre designs from reaching the build phase.
798
+
799
+ ### Rating Method
800
+
801
+ Score each dimension 0-10. For each, describe what a perfect 10 looks like for THIS specific product. Be concrete — "good typography" is not a 10 description; "type scale with 5 levels, mathematical 1.25 ratio, monospace for all data, system fonts for performance, tested at 200% zoom" is.
802
+
803
+ ```
804
+ DESIGN DIMENSION RATING:
805
+ ┌────────────────────────────┬───────┬──────────────────────────────────┐
806
+ │ Dimension │ Score │ What 10 looks like │
807
+ ├────────────────────────────┼───────┼──────────────────────────────────┤
808
+ │ Information Architecture │ [0-10]│ [specific description] │
809
+ │ Interaction State Coverage │ [0-10]│ [specific description] │
810
+ │ User Journey & Emotional Arc│ [0-10]│ [specific description] │
811
+ │ Design System Alignment │ [0-10]│ [specific description] │
812
+ │ Responsive & Accessibility │ [0-10]│ [specific description] │
813
+ │ Content Strategy │ [0-10]│ [specific description] │
814
+ │ Delight & Differentiation │ [0-10]│ [specific description] │
815
+ └────────────────────────────┴───────┴──────────────────────────────────┘
816
+ ```
817
+
818
+ ### Fix Loop
819
+
820
+ For any dimension scoring below 8:
821
+
822
+ 1. **Explain the gap** — what specifically is missing or weak, with concrete examples from the current design
823
+ 2. **Propose a fix** — what specific change would close the gap
824
+ 3. **Apply the fix** — update the relevant Phase 2 or Phase 3 output
825
+ 4. **Re-rate** — score the dimension again after the fix
826
+
827
+ Loop until all dimensions score 8 or higher, or the user says "move on."
828
+
829
+ ### Dimension Definitions
830
+
831
+ - **Information Architecture:** Is every screen's priority hierarchy clear? Can a user answer their primary question in under 1 second? Is navigation depth ≤ 3?
832
+ - **Interaction State Coverage:** Does every feature have loading, empty, error, success, and partial states designed? (Cross-reference with the Phase 2E table.)
833
+ - **User Journey & Emotional Arc:** Does every step in the primary flow have a designed emotional response? Are negative emotions (anxiety, confusion) explicitly addressed?
834
+ - **Design System Alignment:** Are all colors, typography, spacing, and components using tokens? Zero raw values? Consistent across every screen?
835
+ - **Responsive & Accessibility:** WCAG AA verified for all pairs? Touch targets ≥ 44px? Dynamic type tested? Reduced motion specified? Platform conventions honored?
836
+ - **Content Strategy:** Real copy on every screen, every state? Buttons are verb + object? Error messages include recovery? Empty states suggest next action?
837
+ - **Delight & Differentiation:** Would a human designer guess "AI made this"? Does the design have at least one moment that makes the user say "whoa"? Are all three anti-slop commitments honored?
838
+
839
+ **HARD GATE: All dimensions must score ≥ 8, or the user must explicitly approve moving forward with lower scores. Present the rating table to user for approval before proceeding to Implementation.**
747
840
 
748
841
  ---
749
842
 
@@ -129,6 +129,8 @@ Shell commands use Unix syntax (Git Bash). Never use CMD (`dir`, `type`, `del`)
129
129
 
130
130
  ## AskUserQuestion
131
131
 
132
+ **Flow: analysis first, then decision tool.** Present your full reasoning, trade-offs, and recommendations as conversational text — the user wants to read your thinking. Then cap it with AskUserQuestion to formalize the decision. **If you're composing a message with multiple options or "which approach?" language, you MUST end it with AskUserQuestion.** Never present options in prose without the tool.
133
+
132
134
  **Contract:**
133
135
  1. **Re-ground:** Project name, branch, current task. (1-2 sentences.)
134
136
  2. **Simplify:** Plain English a smart 16-year-old could follow.
@@ -150,9 +152,15 @@ Shell commands use Unix syntax (Git Bash). Never use CMD (`dir`, `type`, `del`)
150
152
  Format: `"Option name — X/10 🟢"` (or 🟡 or 🔴). In the label, not the description.
151
153
  Rate: 🟢 9-10 complete, 🟡 6-8 adequate, 🔴 1-5 shortcuts.
152
154
 
155
+ **Pre-call checklist (verify before every AskUserQuestion invocation):**
156
+ - ☐ Completeness scores in every option label
157
+ - ☐ Recommended option listed first
158
+ - ☐ One decision per question (split if multiple)
159
+ - ☐ Analysis/reasoning already presented in message text above
160
+
153
161
  **Formatting:**
154
162
  - *Italics* for emphasis, not **bold** (bold for headers only).
155
- - After each answer: `✔ Decision {N} recorded [quicksave updated]`
163
+ - After each answer: `✔ Decision {N} recorded`
156
164
  - Previews under 8 lines. Full mockups go in conversation text before the question.
157
165
 
158
166
  ---
@@ -129,6 +129,8 @@ Shell commands use Unix syntax (Git Bash). Never use CMD (`dir`, `type`, `del`)
129
129
 
130
130
  ## AskUserQuestion
131
131
 
132
+ **Flow: analysis first, then decision tool.** Present your full reasoning, trade-offs, and recommendations as conversational text — the user wants to read your thinking. Then cap it with AskUserQuestion to formalize the decision. **If you're composing a message with multiple options or "which approach?" language, you MUST end it with AskUserQuestion.** Never present options in prose without the tool.
133
+
132
134
  **Contract:**
133
135
  1. **Re-ground:** Project name, branch, current task. (1-2 sentences.)
134
136
  2. **Simplify:** Plain English a smart 16-year-old could follow.
@@ -150,9 +152,15 @@ Shell commands use Unix syntax (Git Bash). Never use CMD (`dir`, `type`, `del`)
150
152
  Format: `"Option name — X/10 🟢"` (or 🟡 or 🔴). In the label, not the description.
151
153
  Rate: 🟢 9-10 complete, 🟡 6-8 adequate, 🔴 1-5 shortcuts.
152
154
 
155
+ **Pre-call checklist (verify before every AskUserQuestion invocation):**
156
+ - ☐ Completeness scores in every option label
157
+ - ☐ Recommended option listed first
158
+ - ☐ One decision per question (split if multiple)
159
+ - ☐ Analysis/reasoning already presented in message text above
160
+
153
161
  **Formatting:**
154
162
  - *Italics* for emphasis, not **bold** (bold for headers only).
155
- - After each answer: `✔ Decision {N} recorded [quicksave updated]`
163
+ - After each answer: `✔ Decision {N} recorded`
156
164
  - Previews under 8 lines. Full mockups go in conversation text before the question.
157
165
 
158
166
  ---
@@ -133,6 +133,8 @@ Shell commands use Unix syntax (Git Bash). Never use CMD (`dir`, `type`, `del`)
133
133
 
134
134
  ## AskUserQuestion
135
135
 
136
+ **Flow: analysis first, then decision tool.** Present your full reasoning, trade-offs, and recommendations as conversational text — the user wants to read your thinking. Then cap it with AskUserQuestion to formalize the decision. **If you're composing a message with multiple options or "which approach?" language, you MUST end it with AskUserQuestion.** Never present options in prose without the tool.
137
+
136
138
  **Contract:**
137
139
  1. **Re-ground:** Project name, branch, current task. (1-2 sentences.)
138
140
  2. **Simplify:** Plain English a smart 16-year-old could follow.
@@ -154,9 +156,15 @@ Shell commands use Unix syntax (Git Bash). Never use CMD (`dir`, `type`, `del`)
154
156
  Format: `"Option name — X/10 🟢"` (or 🟡 or 🔴). In the label, not the description.
155
157
  Rate: 🟢 9-10 complete, 🟡 6-8 adequate, 🔴 1-5 shortcuts.
156
158
 
159
+ **Pre-call checklist (verify before every AskUserQuestion invocation):**
160
+ - ☐ Completeness scores in every option label
161
+ - ☐ Recommended option listed first
162
+ - ☐ One decision per question (split if multiple)
163
+ - ☐ Analysis/reasoning already presented in message text above
164
+
157
165
  **Formatting:**
158
166
  - *Italics* for emphasis, not **bold** (bold for headers only).
159
- - After each answer: `✔ Decision {N} recorded [quicksave updated]`
167
+ - After each answer: `✔ Decision {N} recorded`
160
168
  - Previews under 8 lines. Full mockups go in conversation text before the question.
161
169
 
162
170
  ---
@@ -342,6 +350,25 @@ LEVERAGE INVENTORY:
342
350
 
343
351
  **[SYSTEM scale only]:** If this is a greenfield project with no existing code, note that and proceed.
344
352
 
353
+ ### Taste Calibration
354
+
355
+ Before scoping new work, calibrate to the project's actual quality bar. Identify 2-3 well-designed files in the existing codebase and 1-2 anti-patterns. This ensures the scope targets the right level of quality — not aspirational, not lowest-common-denominator, but calibrated to the project's own best work.
356
+
357
+ ```
358
+ TASTE CALIBRATION:
359
+ Well-designed (match this quality):
360
+ - [file path] — [why it's good: clear names, good structure, etc.]
361
+ - [file path] — [why it's good]
362
+ Anti-patterns (avoid this):
363
+ - [file path] — [what's wrong: unclear, coupled, etc.]
364
+ ```
365
+
366
+ Rules:
367
+ - "Well-designed" means: clear naming, clean separation of concerns, readable without comments, testable in isolation. Not "clever" — clear.
368
+ - "Anti-pattern" means: unclear responsibility, tight coupling, implicit state, hard to test, confusing to a new reader.
369
+ - If the project is greenfield with no existing code, skip this section.
370
+ - The taste calibration informs the scope: new work should match the quality of the best existing work, not the worst. If the scope would require work at a quality level below the project's best, flag it.
371
+
345
372
  ---
346
373
 
347
374
  ## PHASE 2: Dream State Mapping
@@ -580,6 +607,41 @@ RISK: [name]
580
607
 
581
608
  ---
582
609
 
610
+ ## PHASE 6.5: Implementation Alternatives (Mandatory)
611
+
612
+ **Goal:** Before committing to a single approach, require 2-3 distinct implementation strategies with explicit trade-offs. This prevents tunnel vision and gives the architect phase real options instead of a predetermined path.
613
+
614
+ For the scoped work, produce:
615
+
616
+ ```
617
+ IMPLEMENTATION ALTERNATIVES:
618
+ A) [approach name]
619
+ Effort: [low/medium/high] Risk: [low/medium/high]
620
+ Pros: [list] Cons: [list]
621
+ B) [approach name]
622
+ Effort: [low/medium/high] Risk: [low/medium/high]
623
+ Pros: [list] Cons: [list]
624
+ C) [approach name] (if applicable)
625
+ Effort: [low/medium/high] Risk: [low/medium/high]
626
+ Pros: [list] Cons: [list]
627
+ ```
628
+
629
+ Rules:
630
+ - **Minimum two alternatives.** If you can only think of one way to build this, you have not thought hard enough. Even "build from scratch" vs. "use existing library" vs. "fork and customize" counts.
631
+ - **Alternatives must be genuinely different.** Not "React" vs. "React with different state management." Different means different architecture, different trade-offs, different failure modes. Examples: monolith vs. services, server-rendered vs. SPA, build vs. buy, single-table vs. normalized.
632
+ - **Effort and risk must be calibrated to this team.** "Low effort" for a team with React experience is different from "low effort" for a team learning React. Use the taste calibration and leverage inventory to ground estimates.
633
+ - **Do not pre-decide.** Present alternatives neutrally. The user (or the architect phase) chooses. If you have a strong recommendation, state it separately after the alternatives — not embedded in the pros/cons.
634
+ - **Include the "boring" option.** One alternative should always be the simplest, most conventional approach. If the boring option has no real downsides, it is probably the right choice.
635
+
636
+ Present via AskUserQuestion. User may select one, ask for more detail, or request additional alternatives. Record the selected approach (or "deferred to architect") in scope.md.
637
+
638
+ **Mode effects:**
639
+ - **Expansion / Selective Expansion:** Full analysis with 3 alternatives minimum.
640
+ - **Hold Scope:** 2 alternatives minimum — the current approach and one meaningful variation.
641
+ - **Reduction:** 2 alternatives — the minimum viable approach and the slightly-less-minimum approach. Focus on what can be cut from the implementation, not just from the feature list.
642
+
643
+ ---
644
+
583
645
  ## PHASE 7: Write scope.md
584
646
 
585
647
  **Goal:** Write the scope artifact that architect, design, spec, and build all depend on.
@@ -639,6 +701,10 @@ Create `.warp/reports/planning/scope.md`:
639
701
 
640
702
  {Top risks from Phase 6}
641
703
 
704
+ ## Implementation Alternatives
705
+
706
+ {2-3 approaches with effort/risk/pros/cons from Phase 6.5. Selected approach marked.}
707
+
642
708
  ## Temporal Decisions
643
709
 
644
710
  {What must be decided now vs. deferred}