warp-os 1.1.2 → 1.1.3
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 +40 -0
- package/VERSION +1 -1
- package/agents/warp-plan-architect.md +111 -0
- package/agents/warp-plan-brainstorm.md +84 -1
- package/agents/warp-plan-design.md +88 -3
- package/agents/warp-plan-scope.md +58 -0
- package/agents/warp-plan-security.md +567 -34
- package/agents/warp-qa-debug.md +108 -0
- package/agents/warp-qa-test.md +158 -0
- package/agents/warp-release-update.md +281 -3
- package/bin/migrate-sessions.js +284 -173
- package/dist/warp-plan-architect/SKILL.md +111 -0
- package/dist/warp-plan-brainstorm/SKILL.md +84 -1
- package/dist/warp-plan-design/SKILL.md +88 -3
- package/dist/warp-plan-scope/SKILL.md +58 -0
- package/dist/warp-plan-security/SKILL.md +569 -34
- package/dist/warp-qa-debug/SKILL.md +108 -0
- package/dist/warp-qa-test/SKILL.md +158 -0
- package/dist/warp-release-update/SKILL.md +281 -3
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -6,6 +6,46 @@ Format: [Semantic Versioning](https://semver.org/). Sections: Added, Changed, Re
|
|
|
6
6
|
|
|
7
7
|
---
|
|
8
8
|
|
|
9
|
+
## [1.1.3] - 2026-04-05
|
|
10
|
+
|
|
11
|
+
41 methodology upgrades across 8 skills from gstack analysis. Migration script rewritten for bun + SQLite.
|
|
12
|
+
|
|
13
|
+
### Added
|
|
14
|
+
- **Scope challenge** (architect). Challenges right-sizing before architecture: existing code, minimum change set, complexity smell.
|
|
15
|
+
- **Observability review** (architect). Per-component: logging, metrics, tracing, alerting, debuggability.
|
|
16
|
+
- **Error & rescue map** (architect). Tables mapping codepaths to failures to rescue actions.
|
|
17
|
+
- **Worktree parallelization** (architect). Lane strategy for concurrent builds on independent components.
|
|
18
|
+
- **Implementation alternatives** (scope). Mandatory 2-3 approaches with effort/risk/pros/cons.
|
|
19
|
+
- **Taste calibration** (scope). Identifies well-designed files and anti-patterns to calibrate quality bar.
|
|
20
|
+
- **Dimension rating with fix loop** (design). Rates 7 dimensions 0-10, iterates until all ≥8.
|
|
21
|
+
- **Interaction state coverage** (design). Feature × state matrix ensuring all states are designed.
|
|
22
|
+
- **User journey storyboard** (design). Maps actions to emotions to design specifications.
|
|
23
|
+
- **Landscape awareness** (brainstorm). WebSearch for competitive context with privacy gate.
|
|
24
|
+
- **Design doc lineage** (brainstorm). Archives previous versions, tracks revision chain.
|
|
25
|
+
- **Clean working tree check** (QA). Detects dirty git state before testing.
|
|
26
|
+
- **Diff-aware QA mode** (QA). Auto-scopes testing to changed files on feature branches.
|
|
27
|
+
- **Fix-during-QA mode** (QA). Optional inline fixes with WTF-likelihood heuristic.
|
|
28
|
+
- **Test stub suggestions** (QA). Every bug report includes a skeleton test.
|
|
29
|
+
- **WebSearch for errors** (debug). Sanitized web search when hypotheses exhausted.
|
|
30
|
+
- **5-file blast radius gate** (debug). Stops and asks if fix touches too many files.
|
|
31
|
+
- **Attack surface census** (security). Quantitative endpoint and integration counting.
|
|
32
|
+
- **CI/CD pipeline security** (security). GitHub Actions audit for injection, unpinned actions, secrets.
|
|
33
|
+
- **LLM & AI security** (security). Prompt injection, unsanitized output, API key exposure.
|
|
34
|
+
- **Skill supply chain scanning** (security). Detects malicious patterns in installed skills.
|
|
35
|
+
- **Variant analysis** (security). When a finding is verified, scan codebase for same pattern.
|
|
36
|
+
- **Idempotency guards** (release). Safe to re-run after partial push/PR failure.
|
|
37
|
+
- **Test failure triage** (release). In-branch vs pre-existing failure classification.
|
|
38
|
+
- **Verification gate** (release). Re-runs tests if code changed after initial run.
|
|
39
|
+
- **Retro: session detection, histogram, streaks, compare mode, JSON persistence**.
|
|
40
|
+
|
|
41
|
+
### Changed
|
|
42
|
+
- **Session migration script** rewritten from HTTP API (broken) to bun + direct SQLite inserts. Matches actual claude-mem DB schema. Tested on 7 sessions.
|
|
43
|
+
|
|
44
|
+
### Fixed
|
|
45
|
+
- Removed /freeze reference in qa-debug (gstack skill, not in Warp).
|
|
46
|
+
|
|
47
|
+
---
|
|
48
|
+
|
|
9
49
|
## [1.1.2] - 2026-04-05
|
|
10
50
|
|
|
11
51
|
Session migration for existing users.
|
package/VERSION
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
1.1.
|
|
1
|
+
1.1.3
|
|
@@ -243,6 +243,28 @@ Internalize these cognitive patterns. They fire simultaneously on every input yo
|
|
|
243
243
|
|
|
244
244
|
---
|
|
245
245
|
|
|
246
|
+
## PHASE 0: Scope Challenge
|
|
247
|
+
|
|
248
|
+
**Goal:** Before starting architecture, challenge whether the scope is right-sized. Architecture amplifies scope — if the scope is too large, the architecture will be too large. Five minutes here saves five days in build.
|
|
249
|
+
|
|
250
|
+
Read `.warp/reports/planning/scope.md` and the codebase. Then produce:
|
|
251
|
+
|
|
252
|
+
```
|
|
253
|
+
SCOPE CHALLENGE:
|
|
254
|
+
Existing code that solves sub-problems: [search codebase for partial solutions]
|
|
255
|
+
Minimum change set: [what is the smallest change that delivers the scope?]
|
|
256
|
+
Complexity smell: [>8 files or >2 new classes/services = smell — justify or simplify]
|
|
257
|
+
Built-in alternatives: [does the framework/language have this built in?]
|
|
258
|
+
TODOS cross-reference: [does TODOS.md already track related work?]
|
|
259
|
+
Completeness check: [AI compresses cost — always prefer the complete version]
|
|
260
|
+
```
|
|
261
|
+
|
|
262
|
+
If the scope challenge reveals the work is simpler than planned — existing code already solves sub-problems, the framework has built-in support, or the minimum change set is smaller than expected — surface it via AskUserQuestion and suggest scope reduction before proceeding. Do not architect a system larger than the problem requires.
|
|
263
|
+
|
|
264
|
+
If the scope holds, proceed to Phase 1.
|
|
265
|
+
|
|
266
|
+
---
|
|
267
|
+
|
|
246
268
|
## PHASE 1: System Audit
|
|
247
269
|
|
|
248
270
|
**Goal:** Understand what exists before designing what to build. New architecture on top of unexamined existing architecture produces collisions.
|
|
@@ -366,6 +388,25 @@ OPERATION: [name, e.g., "fetch pilot's active flight"]
|
|
|
366
388
|
|
|
367
389
|
[SYSTEM scale] Produce this for every primary operation. [MODULE scale] Produce this for the 3 most complex operations. [FEATURE scale] Produce this for the primary operation only.
|
|
368
390
|
|
|
391
|
+
### 2D. Error & Rescue Map
|
|
392
|
+
|
|
393
|
+
For each major operation documented in 2C, produce a rescue map that pairs every failure with a specific recovery action and user-visible outcome. This complements the four-path data flow by mapping the operational response plan:
|
|
394
|
+
|
|
395
|
+
```
|
|
396
|
+
ERROR & RESCUE MAP:
|
|
397
|
+
┌──────────────────┬─────────────────┬──────────────────┬────────────────────┐
|
|
398
|
+
│ Method/Codepath │ What Can Fail │ Rescue Action │ User-Visible Result │
|
|
399
|
+
├──────────────────┼─────────────────┼──────────────────┼────────────────────┤
|
|
400
|
+
│ [specific method] │ [specific error] │ [specific action] │ [specific outcome] │
|
|
401
|
+
└──────────────────┴─────────────────┴──────────────────┴────────────────────┘
|
|
402
|
+
```
|
|
403
|
+
|
|
404
|
+
Rules:
|
|
405
|
+
- Every row must name a specific method or codepath, not a vague category.
|
|
406
|
+
- "Rescue Action" must be actionable: retry with backoff, return cached value, degrade gracefully, alert on-call. Never "handle error."
|
|
407
|
+
- "User-Visible Result" must describe exactly what the user sees or experiences. Never "an error message."
|
|
408
|
+
- If a method can fail in multiple ways, each failure gets its own row.
|
|
409
|
+
|
|
369
410
|
---
|
|
370
411
|
|
|
371
412
|
## PHASE 3: API Design
|
|
@@ -533,6 +574,34 @@ BOUNDARY: [Component A] → [Component B]
|
|
|
533
574
|
|
|
534
575
|
---
|
|
535
576
|
|
|
577
|
+
## PHASE 4.6: Observability & Debuggability Review
|
|
578
|
+
|
|
579
|
+
**Goal:** Verify that every major component can be diagnosed in production without attaching a debugger. Systems without observability are systems that fail silently and stay broken longer.
|
|
580
|
+
|
|
581
|
+
For each major component defined in Phase 2, produce:
|
|
582
|
+
|
|
583
|
+
```
|
|
584
|
+
OBSERVABILITY:
|
|
585
|
+
Logging: [what is logged? structured? levels correct?]
|
|
586
|
+
Metrics: [key metrics exposed? latency, error rate, throughput?]
|
|
587
|
+
Tracing: [distributed tracing support? correlation IDs?]
|
|
588
|
+
Alerting: [what triggers alerts? who gets paged?]
|
|
589
|
+
Debuggability: [can you diagnose issues from logs alone?]
|
|
590
|
+
Admin tooling: [any admin endpoints or tools needed?]
|
|
591
|
+
```
|
|
592
|
+
|
|
593
|
+
Rules:
|
|
594
|
+
- **Logging:** Every component must log at structured format (JSON or equivalent). Log levels must be correct: ERROR for things that break, WARN for things that degrade, INFO for state transitions, DEBUG for investigation. If a component has no logging plan, flag it.
|
|
595
|
+
- **Metrics:** At minimum, every component that handles requests must expose latency (p50/p95/p99), error rate, and throughput. Components that manage queues must expose queue depth and processing lag.
|
|
596
|
+
- **Tracing:** If the system has more than two components in a request path, correlation IDs are required. Every log line in a request must include the correlation ID so the full path can be reconstructed.
|
|
597
|
+
- **Alerting:** Every failure mode from Phase 4 must have a corresponding alert or explicit justification for why it does not need one. "We will notice" is not an alerting strategy.
|
|
598
|
+
- **Debuggability:** The litmus test: can an engineer who did not build this component diagnose a production issue using only logs, metrics, and traces — without reading the source code? If not, the observability is insufficient.
|
|
599
|
+
- **Admin tooling:** If the system requires manual intervention for any operational task (clearing a stuck queue, resetting a user's state, force-refreshing cached data), document the admin tool or endpoint that enables it.
|
|
600
|
+
|
|
601
|
+
[FEATURE scale] Brief format — logging and key metrics only. [MODULE scale] Full format for each component. [SYSTEM scale] Full format plus cross-component tracing architecture.
|
|
602
|
+
|
|
603
|
+
---
|
|
604
|
+
|
|
536
605
|
## PHASE 5: Technical Decisions
|
|
537
606
|
|
|
538
607
|
**Goal:** Document each significant technical choice with rationale and alternatives. Future engineers need to understand why, not just what.
|
|
@@ -570,6 +639,39 @@ Categories that almost always contain significant decisions:
|
|
|
570
639
|
|
|
571
640
|
**Goal:** Write the architecture artifact that design, spec, and build all depend on.
|
|
572
641
|
|
|
642
|
+
### 6A. Unresolved Decision Tracking
|
|
643
|
+
|
|
644
|
+
Before writing, review all AskUserQuestion interactions from Phases 0-5. List any decisions the user did not fully answer, deferred, or gave ambiguous responses to:
|
|
645
|
+
|
|
646
|
+
```
|
|
647
|
+
UNRESOLVED DECISIONS:
|
|
648
|
+
- [decision description] — deferred because: [reason] — revisit when: [trigger]
|
|
649
|
+
```
|
|
650
|
+
|
|
651
|
+
Include these in architecture.md under a "## Unresolved Decisions" section. These are not failures — they are explicitly tracked unknowns. Downstream skills (design, build) must check this section and either resolve the decision when they have more context or carry it forward.
|
|
652
|
+
|
|
653
|
+
### 6B. Worktree Parallelization Strategy (Optional)
|
|
654
|
+
|
|
655
|
+
If the architecture has >3 independent components that could be built concurrently (no shared data models, no blocking dependencies), produce a parallelization strategy. This enables the build phase to use git worktrees for concurrent implementation:
|
|
656
|
+
|
|
657
|
+
```
|
|
658
|
+
PARALLELIZATION STRATEGY:
|
|
659
|
+
┌──────────────┬──────────────────┬──────────────┬───────────────┐
|
|
660
|
+
│ Lane │ Components │ Dependencies │ Can Start After│
|
|
661
|
+
├──────────────┼──────────────────┼──────────────┼───────────────┤
|
|
662
|
+
│ Lane A │ [component list] │ none │ immediately │
|
|
663
|
+
│ Lane B │ [component list] │ Lane A types │ Lane A types │
|
|
664
|
+
└──────────────┴──────────────────┴──────────────┴───────────────┘
|
|
665
|
+
```
|
|
666
|
+
|
|
667
|
+
Rules:
|
|
668
|
+
- A lane is a set of components that can be built independently by a separate agent in a worktree.
|
|
669
|
+
- Lane dependencies must be explicit: "Lane B needs the type definitions from Lane A" — not "Lane B needs Lane A to be done."
|
|
670
|
+
- Shared types/interfaces should be in their own lane (often Lane A) so other lanes can start as soon as types are defined.
|
|
671
|
+
- If no meaningful parallelization exists (everything depends on everything else), skip this section.
|
|
672
|
+
|
|
673
|
+
### 6C. Completeness Gate
|
|
674
|
+
|
|
573
675
|
Run a completeness gate before writing:
|
|
574
676
|
|
|
575
677
|
1. Every component in scope has a defined boundary and responsibility
|
|
@@ -619,6 +721,15 @@ Create `.warp/reports/planning/architecture.md`:
|
|
|
619
721
|
## Technical Decisions
|
|
620
722
|
{Each decision with context, options, choice, rationale, reversibility}
|
|
621
723
|
|
|
724
|
+
## Observability
|
|
725
|
+
{Per component: logging, metrics, tracing, alerting, debuggability, admin tooling}
|
|
726
|
+
|
|
727
|
+
## Unresolved Decisions
|
|
728
|
+
{Decisions deferred or unanswered during architecture — description, reason, revisit trigger}
|
|
729
|
+
|
|
730
|
+
## Parallelization Strategy
|
|
731
|
+
{If applicable: lanes, components per lane, dependencies, start conditions}
|
|
732
|
+
|
|
622
733
|
## Open Questions for Design
|
|
623
734
|
{Unresolved questions that the design phase must answer}
|
|
624
735
|
|
|
@@ -299,7 +299,15 @@ Product stage determines which forcing questions to ask (see Phase 2).
|
|
|
299
299
|
```
|
|
300
300
|
If prior brainstorms exist, surface them: "Prior brainstorm found at `.warp/reports/planning/brainstorm.md`. Want to build on it or start fresh?"
|
|
301
301
|
|
|
302
|
-
4.
|
|
302
|
+
4. **Related Design Discovery:** Search `.warp/reports/` for any existing artifacts with keyword overlap to the stated problem:
|
|
303
|
+
```bash
|
|
304
|
+
grep -rl "[key terms from user's problem description]" .warp/reports/ 2>/dev/null
|
|
305
|
+
```
|
|
306
|
+
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?"
|
|
307
|
+
|
|
308
|
+
This prevents duplicate brainstorming and surfaces prior thinking the user may have forgotten about. Skip this step only if `.warp/reports/` does not exist.
|
|
309
|
+
|
|
310
|
+
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.
|
|
303
311
|
|
|
304
312
|
---
|
|
305
313
|
|
|
@@ -434,6 +442,45 @@ If the framing is imprecise, reframe constructively: "Let me try restating what
|
|
|
434
442
|
|
|
435
443
|
---
|
|
436
444
|
|
|
445
|
+
## PHASE 2.5: Landscape Awareness (Both Modes)
|
|
446
|
+
|
|
447
|
+
**Goal:** Ground the brainstorm in what actually exists in the market. Conventional wisdom is often wrong — search for evidence before synthesizing.
|
|
448
|
+
|
|
449
|
+
### Privacy Gate
|
|
450
|
+
|
|
451
|
+
Before any web search, ask via AskUserQuestion:
|
|
452
|
+
|
|
453
|
+
> "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]"
|
|
454
|
+
|
|
455
|
+
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.
|
|
456
|
+
|
|
457
|
+
### Search Strategy
|
|
458
|
+
|
|
459
|
+
Search for:
|
|
460
|
+
- `[product category] + "alternatives"` — what direct competitors exist
|
|
461
|
+
- `[problem domain] + "solutions"` — how people solve this problem today
|
|
462
|
+
- `[user type] + [pain point]` — how the target user describes their problem
|
|
463
|
+
|
|
464
|
+
Use WebSearch for each approved query. Limit to 2-3 searches to avoid over-researching.
|
|
465
|
+
|
|
466
|
+
### Landscape Synthesis
|
|
467
|
+
|
|
468
|
+
Produce:
|
|
469
|
+
|
|
470
|
+
```
|
|
471
|
+
LANDSCAPE SYNTHESIS:
|
|
472
|
+
Conventional wisdom: [what everyone assumes the solution looks like]
|
|
473
|
+
Search findings: [what competitors actually do — 3-5 with URLs]
|
|
474
|
+
First-principles view: [what the data suggests that contradicts conventional wisdom]
|
|
475
|
+
Eureka moments: [any insight that changes the problem framing]
|
|
476
|
+
```
|
|
477
|
+
|
|
478
|
+
**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.
|
|
479
|
+
|
|
480
|
+
**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.
|
|
481
|
+
|
|
482
|
+
---
|
|
483
|
+
|
|
437
484
|
## PHASE 2B: Builder Mode Questions
|
|
438
485
|
|
|
439
486
|
Use this phase when the user is building for fun, learning, hacking, at a hackathon, or doing research.
|
|
@@ -663,6 +710,33 @@ Present via AskUserQuestion. Do NOT proceed without user approval.
|
|
|
663
710
|
|
|
664
711
|
**Goal:** Write the output artifact with all session findings.
|
|
665
712
|
|
|
713
|
+
### Design Doc Lineage
|
|
714
|
+
|
|
715
|
+
Before writing, check if a previous `brainstorm.md` exists:
|
|
716
|
+
|
|
717
|
+
```bash
|
|
718
|
+
if [ -f .warp/reports/planning/brainstorm.md ]; then
|
|
719
|
+
# Get the date from the existing file's pipeline header
|
|
720
|
+
existing_date=$(grep -oP '\d{4}-\d{2}-\d{2}' .warp/reports/planning/brainstorm.md | head -1)
|
|
721
|
+
# Count existing versions in archive
|
|
722
|
+
mkdir -p .warp/reports/planning/archive
|
|
723
|
+
version=$(ls .warp/reports/planning/archive/brainstorm-v*.md 2>/dev/null | wc -l)
|
|
724
|
+
next_version=$((version + 1))
|
|
725
|
+
# Archive the previous version
|
|
726
|
+
cp .warp/reports/planning/brainstorm.md ".warp/reports/planning/archive/brainstorm-v${next_version}.md"
|
|
727
|
+
fi
|
|
728
|
+
```
|
|
729
|
+
|
|
730
|
+
If a previous version was archived, add a `Supersedes:` comment at the top of the new brainstorm.md:
|
|
731
|
+
|
|
732
|
+
```markdown
|
|
733
|
+
<!-- Supersedes: brainstorm-v[N].md ([date]) — [brief reason for new version, e.g., "scope expanded after competitive analysis"] -->
|
|
734
|
+
```
|
|
735
|
+
|
|
736
|
+
This creates an audit trail of how the product thinking evolved. The archive is in `.warp/reports/planning/archive/` and is never deleted.
|
|
737
|
+
|
|
738
|
+
### Write the Artifact
|
|
739
|
+
|
|
666
740
|
Create `.warp/reports/planning/brainstorm.md`:
|
|
667
741
|
|
|
668
742
|
```markdown
|
|
@@ -703,12 +777,21 @@ Create `.warp/reports/planning/brainstorm.md`:
|
|
|
703
777
|
### Approach C: {name — if applicable}
|
|
704
778
|
{from Phase 7}
|
|
705
779
|
|
|
780
|
+
## Landscape Analysis
|
|
781
|
+
{from Phase 2.5 — conventional wisdom, search findings, first-principles view, eureka moments}
|
|
782
|
+
{If skipped by user choice, note: "Landscape analysis skipped at user request."}
|
|
783
|
+
|
|
706
784
|
## Recommended Direction
|
|
707
785
|
{from Phase 6 synthesis}
|
|
708
786
|
|
|
709
787
|
## What to Build First
|
|
710
788
|
{the narrowest wedge}
|
|
711
789
|
|
|
790
|
+
## Distribution Plan
|
|
791
|
+
How users get this: {app store / npm / direct download / SaaS / browser extension / etc.}
|
|
792
|
+
CI/CD pipeline needed: {yes — describe / no — manual / existing pipeline covers it}
|
|
793
|
+
Update mechanism: {auto-update / manual / package manager / N/A for SaaS}
|
|
794
|
+
|
|
712
795
|
## Open Questions
|
|
713
796
|
{unresolved uncertainties that the next skill should address}
|
|
714
797
|
|
|
@@ -420,7 +420,44 @@ SCREEN: [name]
|
|
|
420
420
|
- Never use technical language in user-facing copy: "Something went wrong" not "Error 500"
|
|
421
421
|
- Loading copy uses present participle with ellipsis character: "Loading flights..." uses `…` not `...`
|
|
422
422
|
|
|
423
|
-
### 2E.
|
|
423
|
+
### 2E. Interaction State Coverage
|
|
424
|
+
|
|
425
|
+
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.
|
|
426
|
+
|
|
427
|
+
```
|
|
428
|
+
INTERACTION STATE COVERAGE:
|
|
429
|
+
┌──────────────┬─────────┬───────┬───────┬─────────┬─────────┐
|
|
430
|
+
│ Feature │ Loading │ Empty │ Error │ Success │ Partial │
|
|
431
|
+
├──────────────┼─────────┼───────┼───────┼─────────┼─────────┤
|
|
432
|
+
│ [feature] │ ✓/✗ │ ✓/✗ │ ✓/✗ │ ✓/✗ │ ✓/✗ │
|
|
433
|
+
└──────────────┴─────────┴───────┴───────┴─────────┴─────────┘
|
|
434
|
+
Every ✗ must be designed before the design phase completes.
|
|
435
|
+
```
|
|
436
|
+
|
|
437
|
+
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.
|
|
438
|
+
|
|
439
|
+
### 2F. User Journey & Emotional Arc
|
|
440
|
+
|
|
441
|
+
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.
|
|
442
|
+
|
|
443
|
+
```
|
|
444
|
+
USER JOURNEY:
|
|
445
|
+
┌──────┬──────────────────┬──────────────────┬───────────────────┐
|
|
446
|
+
│ Step │ User Does │ User Feels │ Design Specifies? │
|
|
447
|
+
├──────┼──────────────────┼──────────────────┼───────────────────┤
|
|
448
|
+
│ 1 │ [action] │ [emotion] │ [yes/no + what] │
|
|
449
|
+
│ 2 │ [action] │ [emotion] │ [yes/no + what] │
|
|
450
|
+
└──────┴──────────────────┴──────────────────┴───────────────────┘
|
|
451
|
+
Any step where "Design Specifies?" = no is a gap to fill.
|
|
452
|
+
```
|
|
453
|
+
|
|
454
|
+
Rules:
|
|
455
|
+
- Include negative emotions (confusion, anxiety, frustration) — these are where design matters most
|
|
456
|
+
- 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
|
|
457
|
+
- If a step has no design specification, create one before proceeding to Phase 3
|
|
458
|
+
- For Builder mode projects, the emotional arc should include at least one "delight" moment where the user says "whoa"
|
|
459
|
+
|
|
460
|
+
### 2G. Accessibility Strategy
|
|
424
461
|
|
|
425
462
|
Define accessibility requirements at the strategy level:
|
|
426
463
|
|
|
@@ -447,7 +484,7 @@ REDUCED MOTION:
|
|
|
447
484
|
[how animations degrade — typically to opacity fade only]
|
|
448
485
|
```
|
|
449
486
|
|
|
450
|
-
###
|
|
487
|
+
### 2H. Figma Setup (if available)
|
|
451
488
|
|
|
452
489
|
If Figma MCP is configured (check `.warp/warp-tools.json` → `mcp_servers.figma.status`):
|
|
453
490
|
|
|
@@ -728,7 +765,55 @@ ANTI-SLOP VERIFICATION:
|
|
|
728
765
|
|
|
729
766
|
If ANY item fails the slop scan, go back and fix it before proceeding.
|
|
730
767
|
|
|
731
|
-
**HARD GATE: Visual System complete. Present color palette, typography, spacing, and key component wireframes to user for approval before proceeding to
|
|
768
|
+
**HARD GATE: Visual System complete. Present color palette, typography, spacing, and key component wireframes to user for approval before proceeding to Design Rating.**
|
|
769
|
+
|
|
770
|
+
---
|
|
771
|
+
|
|
772
|
+
## PHASE 3.5: Design Dimension Rating
|
|
773
|
+
|
|
774
|
+
**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.
|
|
775
|
+
|
|
776
|
+
### Rating Method
|
|
777
|
+
|
|
778
|
+
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.
|
|
779
|
+
|
|
780
|
+
```
|
|
781
|
+
DESIGN DIMENSION RATING:
|
|
782
|
+
┌────────────────────────────┬───────┬──────────────────────────────────┐
|
|
783
|
+
│ Dimension │ Score │ What 10 looks like │
|
|
784
|
+
├────────────────────────────┼───────┼──────────────────────────────────┤
|
|
785
|
+
│ Information Architecture │ [0-10]│ [specific description] │
|
|
786
|
+
│ Interaction State Coverage │ [0-10]│ [specific description] │
|
|
787
|
+
│ User Journey & Emotional Arc│ [0-10]│ [specific description] │
|
|
788
|
+
│ Design System Alignment │ [0-10]│ [specific description] │
|
|
789
|
+
│ Responsive & Accessibility │ [0-10]│ [specific description] │
|
|
790
|
+
│ Content Strategy │ [0-10]│ [specific description] │
|
|
791
|
+
│ Delight & Differentiation │ [0-10]│ [specific description] │
|
|
792
|
+
└────────────────────────────┴───────┴──────────────────────────────────┘
|
|
793
|
+
```
|
|
794
|
+
|
|
795
|
+
### Fix Loop
|
|
796
|
+
|
|
797
|
+
For any dimension scoring below 8:
|
|
798
|
+
|
|
799
|
+
1. **Explain the gap** — what specifically is missing or weak, with concrete examples from the current design
|
|
800
|
+
2. **Propose a fix** — what specific change would close the gap
|
|
801
|
+
3. **Apply the fix** — update the relevant Phase 2 or Phase 3 output
|
|
802
|
+
4. **Re-rate** — score the dimension again after the fix
|
|
803
|
+
|
|
804
|
+
Loop until all dimensions score 8 or higher, or the user says "move on."
|
|
805
|
+
|
|
806
|
+
### Dimension Definitions
|
|
807
|
+
|
|
808
|
+
- **Information Architecture:** Is every screen's priority hierarchy clear? Can a user answer their primary question in under 1 second? Is navigation depth ≤ 3?
|
|
809
|
+
- **Interaction State Coverage:** Does every feature have loading, empty, error, success, and partial states designed? (Cross-reference with the Phase 2E table.)
|
|
810
|
+
- **User Journey & Emotional Arc:** Does every step in the primary flow have a designed emotional response? Are negative emotions (anxiety, confusion) explicitly addressed?
|
|
811
|
+
- **Design System Alignment:** Are all colors, typography, spacing, and components using tokens? Zero raw values? Consistent across every screen?
|
|
812
|
+
- **Responsive & Accessibility:** WCAG AA verified for all pairs? Touch targets ≥ 44px? Dynamic type tested? Reduced motion specified? Platform conventions honored?
|
|
813
|
+
- **Content Strategy:** Real copy on every screen, every state? Buttons are verb + object? Error messages include recovery? Empty states suggest next action?
|
|
814
|
+
- **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?
|
|
815
|
+
|
|
816
|
+
**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.**
|
|
732
817
|
|
|
733
818
|
---
|
|
734
819
|
|
|
@@ -328,6 +328,25 @@ LEVERAGE INVENTORY:
|
|
|
328
328
|
|
|
329
329
|
**[SYSTEM scale only]:** If this is a greenfield project with no existing code, note that and proceed.
|
|
330
330
|
|
|
331
|
+
### Taste Calibration
|
|
332
|
+
|
|
333
|
+
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.
|
|
334
|
+
|
|
335
|
+
```
|
|
336
|
+
TASTE CALIBRATION:
|
|
337
|
+
Well-designed (match this quality):
|
|
338
|
+
- [file path] — [why it's good: clear names, good structure, etc.]
|
|
339
|
+
- [file path] — [why it's good]
|
|
340
|
+
Anti-patterns (avoid this):
|
|
341
|
+
- [file path] — [what's wrong: unclear, coupled, etc.]
|
|
342
|
+
```
|
|
343
|
+
|
|
344
|
+
Rules:
|
|
345
|
+
- "Well-designed" means: clear naming, clean separation of concerns, readable without comments, testable in isolation. Not "clever" — clear.
|
|
346
|
+
- "Anti-pattern" means: unclear responsibility, tight coupling, implicit state, hard to test, confusing to a new reader.
|
|
347
|
+
- If the project is greenfield with no existing code, skip this section.
|
|
348
|
+
- 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.
|
|
349
|
+
|
|
331
350
|
---
|
|
332
351
|
|
|
333
352
|
## PHASE 2: Dream State Mapping
|
|
@@ -566,6 +585,41 @@ RISK: [name]
|
|
|
566
585
|
|
|
567
586
|
---
|
|
568
587
|
|
|
588
|
+
## PHASE 6.5: Implementation Alternatives (Mandatory)
|
|
589
|
+
|
|
590
|
+
**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.
|
|
591
|
+
|
|
592
|
+
For the scoped work, produce:
|
|
593
|
+
|
|
594
|
+
```
|
|
595
|
+
IMPLEMENTATION ALTERNATIVES:
|
|
596
|
+
A) [approach name]
|
|
597
|
+
Effort: [low/medium/high] Risk: [low/medium/high]
|
|
598
|
+
Pros: [list] Cons: [list]
|
|
599
|
+
B) [approach name]
|
|
600
|
+
Effort: [low/medium/high] Risk: [low/medium/high]
|
|
601
|
+
Pros: [list] Cons: [list]
|
|
602
|
+
C) [approach name] (if applicable)
|
|
603
|
+
Effort: [low/medium/high] Risk: [low/medium/high]
|
|
604
|
+
Pros: [list] Cons: [list]
|
|
605
|
+
```
|
|
606
|
+
|
|
607
|
+
Rules:
|
|
608
|
+
- **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.
|
|
609
|
+
- **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.
|
|
610
|
+
- **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.
|
|
611
|
+
- **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.
|
|
612
|
+
- **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.
|
|
613
|
+
|
|
614
|
+
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.
|
|
615
|
+
|
|
616
|
+
**Mode effects:**
|
|
617
|
+
- **Expansion / Selective Expansion:** Full analysis with 3 alternatives minimum.
|
|
618
|
+
- **Hold Scope:** 2 alternatives minimum — the current approach and one meaningful variation.
|
|
619
|
+
- **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.
|
|
620
|
+
|
|
621
|
+
---
|
|
622
|
+
|
|
569
623
|
## PHASE 7: Write scope.md
|
|
570
624
|
|
|
571
625
|
**Goal:** Write the scope artifact that architect, design, spec, and build all depend on.
|
|
@@ -625,6 +679,10 @@ Create `.warp/reports/planning/scope.md`:
|
|
|
625
679
|
|
|
626
680
|
{Top risks from Phase 6}
|
|
627
681
|
|
|
682
|
+
## Implementation Alternatives
|
|
683
|
+
|
|
684
|
+
{2-3 approaches with effort/risk/pros/cons from Phase 6.5. Selected approach marked.}
|
|
685
|
+
|
|
628
686
|
## Temporal Decisions
|
|
629
687
|
|
|
630
688
|
{What must be decided now vs. deferred}
|