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.
- package/CHANGELOG.md +85 -0
- package/README.md +6 -4
- package/VERSION +1 -1
- package/agents/warp-annotate.md +394 -0
- package/agents/warp-browse.md +9 -1
- package/agents/warp-build-code.md +9 -1
- package/agents/warp-orchestrator.md +10 -1
- package/agents/warp-plan-architect.md +120 -1
- package/agents/warp-plan-brainstorm.md +93 -2
- package/agents/warp-plan-design.md +97 -4
- package/agents/warp-plan-onboarding.md +9 -1
- package/agents/warp-plan-optimize.md +9 -1
- package/agents/warp-plan-scope.md +67 -1
- package/agents/warp-plan-security.md +576 -35
- package/agents/warp-plan-testdesign.md +9 -1
- package/agents/warp-qa-debug.md +117 -1
- package/agents/warp-qa-test.md +167 -1
- package/agents/warp-release-update.md +290 -4
- package/agents/warp-setup.md +9 -1
- package/agents/warp-upgrade.md +21 -4
- package/bin/hooks/CLAUDE.md +24 -0
- package/bin/hooks/_warp_json.sh +4 -2
- package/bin/hooks/identity-briefing.sh +20 -13
- package/bin/hooks/validate-askuser.sh +41 -0
- package/bin/migrate-sessions.js +284 -173
- package/dist/warp-annotate/SKILL.md +404 -0
- package/dist/warp-browse/SKILL.md +9 -1
- package/dist/warp-build-code/SKILL.md +9 -1
- package/dist/warp-orchestrator/SKILL.md +10 -1
- package/dist/warp-plan-architect/SKILL.md +120 -1
- package/dist/warp-plan-brainstorm/SKILL.md +93 -2
- package/dist/warp-plan-design/SKILL.md +97 -4
- package/dist/warp-plan-onboarding/SKILL.md +9 -1
- package/dist/warp-plan-optimize/SKILL.md +9 -1
- package/dist/warp-plan-scope/SKILL.md +67 -1
- package/dist/warp-plan-security/SKILL.md +578 -35
- package/dist/warp-plan-testdesign/SKILL.md +9 -1
- package/dist/warp-qa-debug/SKILL.md +117 -1
- package/dist/warp-qa-test/SKILL.md +167 -1
- package/dist/warp-release-update/SKILL.md +290 -4
- package/dist/warp-setup/SKILL.md +9 -1
- package/dist/warp-upgrade/SKILL.md +21 -4
- package/package.json +2 -2
- package/shared/project-hooks.json +7 -0
- 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
|
|
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.
|
|
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
|
|
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.
|
|
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
|
-
###
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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}
|