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
|
@@ -141,6 +141,8 @@ Shell commands use Unix syntax (Git Bash). Never use CMD (`dir`, `type`, `del`)
|
|
|
141
141
|
|
|
142
142
|
## AskUserQuestion
|
|
143
143
|
|
|
144
|
+
**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.
|
|
145
|
+
|
|
144
146
|
**Contract:**
|
|
145
147
|
1. **Re-ground:** Project name, branch, current task. (1-2 sentences.)
|
|
146
148
|
2. **Simplify:** Plain English a smart 16-year-old could follow.
|
|
@@ -162,9 +164,15 @@ Shell commands use Unix syntax (Git Bash). Never use CMD (`dir`, `type`, `del`)
|
|
|
162
164
|
Format: `"Option name — X/10 🟢"` (or 🟡 or 🔴). In the label, not the description.
|
|
163
165
|
Rate: 🟢 9-10 complete, 🟡 6-8 adequate, 🔴 1-5 shortcuts.
|
|
164
166
|
|
|
167
|
+
**Pre-call checklist (verify before every AskUserQuestion invocation):**
|
|
168
|
+
- ☐ Completeness scores in every option label
|
|
169
|
+
- ☐ Recommended option listed first
|
|
170
|
+
- ☐ One decision per question (split if multiple)
|
|
171
|
+
- ☐ Analysis/reasoning already presented in message text above
|
|
172
|
+
|
|
165
173
|
**Formatting:**
|
|
166
174
|
- *Italics* for emphasis, not **bold** (bold for headers only).
|
|
167
|
-
- After each answer: `✔ Decision {N} recorded
|
|
175
|
+
- After each answer: `✔ Decision {N} recorded`
|
|
168
176
|
- Previews under 8 lines. Full mockups go in conversation text before the question.
|
|
169
177
|
|
|
170
178
|
---
|
|
@@ -323,12 +331,29 @@ npx turbo run test 2>&1 | tail -30
|
|
|
323
331
|
TEST SUITE STATUS:
|
|
324
332
|
Total tests: [N]
|
|
325
333
|
Passing: [N]
|
|
326
|
-
Failing: [N]
|
|
334
|
+
Failing: [N]
|
|
327
335
|
Skipped: [N] (each must have documented reason in build-log)
|
|
328
336
|
Runtime: [X]s
|
|
329
337
|
```
|
|
330
338
|
|
|
331
|
-
|
|
339
|
+
If any tests fail, triage before blocking. Not all failures are equal — failures you introduced are blockers, pre-existing failures are decisions.
|
|
340
|
+
|
|
341
|
+
```bash
|
|
342
|
+
# Identify pre-existing failures by checking the test against the base branch
|
|
343
|
+
git stash && npx turbo run test 2>&1 | tail -30 # run tests on base state
|
|
344
|
+
git stash pop
|
|
345
|
+
```
|
|
346
|
+
|
|
347
|
+
```
|
|
348
|
+
TEST FAILURE TRIAGE:
|
|
349
|
+
In-branch failures (introduced by this diff): [N] — MUST fix before ship
|
|
350
|
+
Pre-existing failures (existed before this work): [N] — Handle each:
|
|
351
|
+
- Fix now, OR
|
|
352
|
+
- Add to TODOS.md with rationale, OR
|
|
353
|
+
- Document as known issue in PR body
|
|
354
|
+
```
|
|
355
|
+
|
|
356
|
+
**HARD GATE: In-branch failures (failures introduced by your diff) MUST be fixed before shipping. Pre-existing failures must be handled — fix, defer to TODOS.md with rationale, or document as known issue in the PR body — but each must have an explicit decision, not silent acceptance.**
|
|
332
357
|
|
|
333
358
|
### 1C. Security Recency Check
|
|
334
359
|
|
|
@@ -368,6 +393,69 @@ QA READINESS:
|
|
|
368
393
|
|
|
369
394
|
**HARD GATE: If QA readiness is NO-GO, stop. Return to /warp-qa-test or /warp-qa-debug. If CONDITIONAL, present the remaining issues to the user and get explicit approval to proceed.**
|
|
370
395
|
|
|
396
|
+
### 1E. Verification Gate
|
|
397
|
+
|
|
398
|
+
If ANY code was changed after the initial test run in Phase 1B (e.g., fixing diff review findings, addressing review comments, last-minute polish), re-run the full test suite before proceeding to commit.
|
|
399
|
+
|
|
400
|
+
The Iron Law: "Should work now" is not evidence. Run it. "I'm confident the fix is correct" — confidence is not a test result.
|
|
401
|
+
|
|
402
|
+
```
|
|
403
|
+
VERIFICATION GATE:
|
|
404
|
+
Code changed after initial test run: [yes | no]
|
|
405
|
+
If yes:
|
|
406
|
+
Files modified: [list]
|
|
407
|
+
Reason: [review fix | polish | bug fix | other]
|
|
408
|
+
Re-run result: [N] passing, [N] failing
|
|
409
|
+
Gate: [PASS — all green | FAIL — fix and re-run]
|
|
410
|
+
```
|
|
411
|
+
|
|
412
|
+
This gate re-triggers whenever code changes. There is no limit to how many times it runs. The only exit is a clean test suite with zero changes after the last run.
|
|
413
|
+
|
|
414
|
+
### 1F. Plan Completion Audit
|
|
415
|
+
|
|
416
|
+
Read scope.md acceptance criteria and compare against what was actually built. Every AC gets an explicit status.
|
|
417
|
+
|
|
418
|
+
```bash
|
|
419
|
+
# Read scope acceptance criteria
|
|
420
|
+
cat .warp/reports/planning/scope.md 2>/dev/null | head -100
|
|
421
|
+
```
|
|
422
|
+
|
|
423
|
+
```
|
|
424
|
+
PLAN COMPLETION AUDIT:
|
|
425
|
+
Acceptance Criteria from scope.md:
|
|
426
|
+
1. [AC description] — DONE (evidence: [test name, file, or behavior])
|
|
427
|
+
2. [AC description] — NOT DONE (reason: [why] + user approved to ship without)
|
|
428
|
+
3. [AC description] — PARTIAL (what's done, what's missing)
|
|
429
|
+
...
|
|
430
|
+
|
|
431
|
+
Summary: [N] DONE / [N] NOT DONE / [N] PARTIAL out of [N] total
|
|
432
|
+
```
|
|
433
|
+
|
|
434
|
+
**HARD GATE: User must explicitly approve shipping without any NOT DONE or PARTIAL items.** Present each incomplete AC and ask: "Ship without this? [Y/n]". If the user says no, return to build.
|
|
435
|
+
|
|
436
|
+
### 1G. Distribution Pipeline Check
|
|
437
|
+
|
|
438
|
+
If the architecture introduces a new standalone artifact (CLI binary, npm package, library, Docker image), check whether a release/publish workflow exists.
|
|
439
|
+
|
|
440
|
+
```bash
|
|
441
|
+
# Check for publish workflows
|
|
442
|
+
ls -la .github/workflows/*publish* .github/workflows/*release* 2>/dev/null
|
|
443
|
+
cat package.json 2>/dev/null | grep -E '"(name|publishConfig|bin|main|module|exports)"' || true
|
|
444
|
+
ls -la Dockerfile* docker-compose* 2>/dev/null
|
|
445
|
+
```
|
|
446
|
+
|
|
447
|
+
```
|
|
448
|
+
DISTRIBUTION CHECK:
|
|
449
|
+
Publishable artifacts detected: [list or "none"]
|
|
450
|
+
For each artifact:
|
|
451
|
+
Artifact: [name]
|
|
452
|
+
Registry: [npm | PyPI | crates.io | Docker Hub | etc.]
|
|
453
|
+
Publish workflow exists: [yes — path | no — FLAG]
|
|
454
|
+
Version in package file matches VERSION: [yes | no — FLAG]
|
|
455
|
+
```
|
|
456
|
+
|
|
457
|
+
If a publishable artifact has no release workflow, flag it: "No publish workflow detected for {artifact}. Create one before shipping, or document why manual publish is acceptable."
|
|
458
|
+
|
|
371
459
|
---
|
|
372
460
|
|
|
373
461
|
## PHASE 2: Diff Review
|
|
@@ -490,6 +578,25 @@ DIFF REVIEW SUMMARY:
|
|
|
490
578
|
|
|
491
579
|
### 3A. Version Bump
|
|
492
580
|
|
|
581
|
+
Before bumping, run an idempotency check. This makes `/warp-release-update` safe to re-run after a partial failure (e.g., version was bumped but push failed, or PR was created but tests were re-run).
|
|
582
|
+
|
|
583
|
+
```bash
|
|
584
|
+
# Check current version state
|
|
585
|
+
cat VERSION 2>/dev/null || echo "no VERSION file"
|
|
586
|
+
git log --oneline -1 -- VERSION
|
|
587
|
+
git rev-list --count @{u}..HEAD 2>/dev/null || echo "no upstream"
|
|
588
|
+
gh pr list --head "$(git branch --show-current)" --json number,url --jq '.[0]' 2>/dev/null || echo "no PR"
|
|
589
|
+
```
|
|
590
|
+
|
|
591
|
+
```
|
|
592
|
+
IDEMPOTENCY CHECK:
|
|
593
|
+
Version already bumped: [yes — skip bump | no — proceed]
|
|
594
|
+
Branch already pushed: [yes — skip push | no — proceed]
|
|
595
|
+
PR already exists: [yes — update body | no — create new]
|
|
596
|
+
```
|
|
597
|
+
|
|
598
|
+
If version is already bumped (VERSION file shows the target version), skip the bump and proceed to changelog verification. If branch is already pushed, skip push in Phase 4C. If a PR already exists, update the PR body in Phase 5 instead of creating a new one (`gh pr edit` instead of `gh pr create`).
|
|
599
|
+
|
|
493
600
|
Determine the appropriate version bump:
|
|
494
601
|
|
|
495
602
|
```
|
|
@@ -567,6 +674,27 @@ STAGING REVIEW:
|
|
|
567
674
|
|
|
568
675
|
### 4B. Commit
|
|
569
676
|
|
|
677
|
+
Analyze the diff and consider whether it should be split into logical, independently-valid commits. Each commit should pass tests on its own and be ordered by dependency:
|
|
678
|
+
|
|
679
|
+
```
|
|
680
|
+
COMMIT SPLIT ANALYSIS:
|
|
681
|
+
Total files changed: [N]
|
|
682
|
+
Suggested split:
|
|
683
|
+
1. [type]: [description] — [N] files (infrastructure / config)
|
|
684
|
+
2. [type]: [description] — [N] files (models / data layer)
|
|
685
|
+
3. [type]: [description] — [N] files (business logic / services)
|
|
686
|
+
4. [type]: [description] — [N] files (UI / components)
|
|
687
|
+
5. [type]: [description] — [N] files (tests)
|
|
688
|
+
6. [type]: [description] — [N] files (docs / VERSION)
|
|
689
|
+
|
|
690
|
+
Recommended: [split into N commits | single commit is fine]
|
|
691
|
+
Rationale: [why — e.g., "all changes are tightly coupled" or "infra + feature + tests are independent concerns"]
|
|
692
|
+
```
|
|
693
|
+
|
|
694
|
+
Dependency order for split commits: infrastructure → models → business logic → UI → tests → docs → VERSION. Each commit in the sequence should pass the test suite independently, making `git bisect` useful when tracking down regressions.
|
|
695
|
+
|
|
696
|
+
If the user prefers a single commit, that is fine — but always offer the split for non-trivial diffs (5+ files or 3+ logical concerns).
|
|
697
|
+
|
|
570
698
|
Create a meaningful commit (or verify commits are already clean from the polish phase):
|
|
571
699
|
|
|
572
700
|
```bash
|
|
@@ -856,7 +984,31 @@ API DOCS UPDATE CHECK:
|
|
|
856
984
|
☐ Error codes updated
|
|
857
985
|
```
|
|
858
986
|
|
|
859
|
-
### 7E.
|
|
987
|
+
### 7E. TODOS.md Auto-Update
|
|
988
|
+
|
|
989
|
+
After shipping, scan the diff against TODOS.md to keep the backlog honest.
|
|
990
|
+
|
|
991
|
+
```bash
|
|
992
|
+
# Read current TODOS
|
|
993
|
+
cat TODOS.md 2>/dev/null || echo "no TODOS.md"
|
|
994
|
+
```
|
|
995
|
+
|
|
996
|
+
```
|
|
997
|
+
TODOS.MD UPDATE:
|
|
998
|
+
Completed items detected from diff: [N]
|
|
999
|
+
- [item description] — completed by [commit/file evidence]
|
|
1000
|
+
- [item description] — completed by [commit/file evidence]
|
|
1001
|
+
Action: [check boxes | move to Completed section | leave as-is if none]
|
|
1002
|
+
|
|
1003
|
+
New TODO-worthy work created by this diff: [N]
|
|
1004
|
+
- [description] — [why this is a TODO, not a bug]
|
|
1005
|
+
- [description]
|
|
1006
|
+
Action: [add to TODOS.md | skip if none]
|
|
1007
|
+
```
|
|
1008
|
+
|
|
1009
|
+
Mark completed items (check the box or move to a Completed section, matching the project's TODOS.md format). Add new items only if the diff genuinely creates deferred work — do not manufacture TODOs.
|
|
1010
|
+
|
|
1011
|
+
### 7F. Documentation Commit
|
|
860
1012
|
|
|
861
1013
|
If any documentation was updated:
|
|
862
1014
|
|
|
@@ -1143,6 +1295,28 @@ git log --format="%cd" --date=short --since="7 days ago" | sort | uniq -c
|
|
|
1143
1295
|
|
|
1144
1296
|
Collect: commit history, files changed, hotspots (most-modified files), test file changes, new/deleted files.
|
|
1145
1297
|
|
|
1298
|
+
**Work Session Detection:** Detect coding sessions using a 45-minute gap threshold between consecutive commits. Two commits within 45 minutes of each other belong to the same session. A gap larger than 45 minutes starts a new session.
|
|
1299
|
+
|
|
1300
|
+
```bash
|
|
1301
|
+
# Get commit timestamps for session detection
|
|
1302
|
+
git log --format="%H %ai" --since="7 days ago" | sort -k2,3
|
|
1303
|
+
```
|
|
1304
|
+
|
|
1305
|
+
Classify each session:
|
|
1306
|
+
- **Deep** (>2 hours): sustained focus work, likely feature development or complex debugging
|
|
1307
|
+
- **Medium** (30 min — 2 hours): standard work sessions
|
|
1308
|
+
- **Micro** (<30 min): quick fixes, one-off commits, config changes
|
|
1309
|
+
|
|
1310
|
+
```
|
|
1311
|
+
WORK SESSIONS:
|
|
1312
|
+
Total sessions: [N]
|
|
1313
|
+
Deep (>2hr): [N] sessions, [N] total hours
|
|
1314
|
+
Medium (30min-2hr): [N] sessions, [N] total hours
|
|
1315
|
+
Micro (<30min): [N] sessions
|
|
1316
|
+
Total active hours: [N]
|
|
1317
|
+
LOC per active hour: [N] (lines added + removed / active hours)
|
|
1318
|
+
```
|
|
1319
|
+
|
|
1146
1320
|
### R2. Work Pattern Analysis
|
|
1147
1321
|
|
|
1148
1322
|
**Commit pacing:** Distributed across the week (healthy) vs. burst-and-crash (warning). Flag 3+ day gaps or all commits on 1-2 days.
|
|
@@ -1151,6 +1325,63 @@ Collect: commit history, files changed, hotspots (most-modified files), test fil
|
|
|
1151
1325
|
|
|
1152
1326
|
**Scope adherence:** Compare work done to TODOS.md priorities. Note emergent work (normal), scope creep (worth naming), distraction (address).
|
|
1153
1327
|
|
|
1328
|
+
**Hourly Commit Histogram:** Produce an ASCII bar chart of commits by hour of day. Identify peak hours, dead zones, and bimodal patterns (e.g., morning burst + late night session).
|
|
1329
|
+
|
|
1330
|
+
```bash
|
|
1331
|
+
# Commits by hour
|
|
1332
|
+
git log --format="%H %ai" --since="7 days ago" | awk '{split($3,t,":"); print t[1]}' | sort | uniq -c | sort -k2 -n
|
|
1333
|
+
```
|
|
1334
|
+
|
|
1335
|
+
```
|
|
1336
|
+
COMMIT HISTOGRAM (by hour):
|
|
1337
|
+
00 |
|
|
1338
|
+
01 |
|
|
1339
|
+
...
|
|
1340
|
+
09 | ████████ (8)
|
|
1341
|
+
10 | ████████████ (12)
|
|
1342
|
+
11 | ██████ (6)
|
|
1343
|
+
12 | ██ (2)
|
|
1344
|
+
...
|
|
1345
|
+
21 | ██████████ (10)
|
|
1346
|
+
22 | ████████████████ (16)
|
|
1347
|
+
23 | ████ (4)
|
|
1348
|
+
|
|
1349
|
+
Peak hours: [list — e.g., 10:00, 22:00]
|
|
1350
|
+
Dead zones: [list — e.g., 00:00-08:00, 12:00-14:00]
|
|
1351
|
+
Pattern: [single peak | bimodal | distributed | nocturnal]
|
|
1352
|
+
```
|
|
1353
|
+
|
|
1354
|
+
**Streak Tracking:** Count consecutive days with at least 1 commit. A streak is broken by a calendar day with zero commits.
|
|
1355
|
+
|
|
1356
|
+
```bash
|
|
1357
|
+
# Commits per day (all time for streak, period for current)
|
|
1358
|
+
git log --format="%cd" --date=short | sort -u
|
|
1359
|
+
```
|
|
1360
|
+
|
|
1361
|
+
```
|
|
1362
|
+
STREAK:
|
|
1363
|
+
Current streak: [N] days (since [date])
|
|
1364
|
+
Longest streak: [N] days ([start date] — [end date])
|
|
1365
|
+
Days active this period: [N] / [N] total days
|
|
1366
|
+
Activity rate: [N]%
|
|
1367
|
+
```
|
|
1368
|
+
|
|
1369
|
+
**TODOS/Backlog Health:** Read TODOS.md and assess backlog health for the retro period.
|
|
1370
|
+
|
|
1371
|
+
```bash
|
|
1372
|
+
cat TODOS.md 2>/dev/null || echo "no TODOS.md"
|
|
1373
|
+
```
|
|
1374
|
+
|
|
1375
|
+
```
|
|
1376
|
+
BACKLOG HEALTH:
|
|
1377
|
+
Total open items: [N]
|
|
1378
|
+
P1 (critical/urgent) items: [N]
|
|
1379
|
+
Items added this period: [N]
|
|
1380
|
+
Items completed this period: [N]
|
|
1381
|
+
Net change: [+N | -N | 0] (positive = backlog growing)
|
|
1382
|
+
Health: [healthy (shrinking or stable) | warning (growing) | critical (P1 count > 3)]
|
|
1383
|
+
```
|
|
1384
|
+
|
|
1154
1385
|
### R3. Code Quality Metrics
|
|
1155
1386
|
|
|
1156
1387
|
```bash
|
|
@@ -1190,6 +1421,61 @@ RETROSPECTIVE: {period}
|
|
|
1190
1421
|
Actions: {3-5 assigned items}
|
|
1191
1422
|
```
|
|
1192
1423
|
|
|
1424
|
+
**JSON Snapshot Persistence:** Save retro metrics as JSON to `.warp/reports/releasing/retro-history.json` for trend comparison across retros. Append to the array — do not overwrite previous entries.
|
|
1425
|
+
|
|
1426
|
+
```bash
|
|
1427
|
+
# Read existing history (or initialize)
|
|
1428
|
+
cat .warp/reports/releasing/retro-history.json 2>/dev/null || echo "[]"
|
|
1429
|
+
```
|
|
1430
|
+
|
|
1431
|
+
Append a snapshot with this shape:
|
|
1432
|
+
|
|
1433
|
+
```json
|
|
1434
|
+
{
|
|
1435
|
+
"date": "YYYY-MM-DD",
|
|
1436
|
+
"period": "YYYY-MM-DD to YYYY-MM-DD",
|
|
1437
|
+
"commits": N,
|
|
1438
|
+
"loc_added": N,
|
|
1439
|
+
"loc_removed": N,
|
|
1440
|
+
"files_changed": N,
|
|
1441
|
+
"test_count": N,
|
|
1442
|
+
"test_coverage_pct": N,
|
|
1443
|
+
"quality_score": N,
|
|
1444
|
+
"sessions": { "deep": N, "medium": N, "micro": N },
|
|
1445
|
+
"active_hours": N,
|
|
1446
|
+
"streak_current": N,
|
|
1447
|
+
"streak_longest": N,
|
|
1448
|
+
"backlog_open": N,
|
|
1449
|
+
"backlog_p1": N,
|
|
1450
|
+
"actions_completed": N,
|
|
1451
|
+
"actions_total": N
|
|
1452
|
+
}
|
|
1453
|
+
```
|
|
1454
|
+
|
|
1455
|
+
**Compare Mode:** If prior retro data exists in `retro-history.json`, show period-over-period deltas for key metrics. Use arrows to indicate direction.
|
|
1456
|
+
|
|
1457
|
+
```
|
|
1458
|
+
TREND COMPARISON (vs. previous retro):
|
|
1459
|
+
Commits: [N] [↑ +3 | ↓ -2 | → same]
|
|
1460
|
+
LOC (net): [N] [↑ | ↓ | →]
|
|
1461
|
+
Test count: [N] [↑ | ↓ | →]
|
|
1462
|
+
Coverage: [N]% [↑ | ↓ | →]
|
|
1463
|
+
Quality score: [N]/10 [↑ | ↓ | →]
|
|
1464
|
+
Active hours: [N] [↑ | ↓ | →]
|
|
1465
|
+
Streak: [N]d [↑ | ↓ | →]
|
|
1466
|
+
Backlog (open): [N] [↑ growing | ↓ shrinking | → stable]
|
|
1467
|
+
|
|
1468
|
+
Overall trajectory: [improving | stable | declining | mixed]
|
|
1469
|
+
```
|
|
1470
|
+
|
|
1471
|
+
If no prior data exists, skip the comparison and note: "First retro — no prior data for comparison. Trends will appear after the next retro."
|
|
1472
|
+
|
|
1473
|
+
**Tweetable Summary:** Produce a single-line summary suitable for a status update, team standup, or personal log.
|
|
1474
|
+
|
|
1475
|
+
```
|
|
1476
|
+
TWEETABLE: Week of {date}: {N} commits, {N} LOC, {N}% tests, {N} files | Streak: {N}d | Quality: {N}/10
|
|
1477
|
+
```
|
|
1478
|
+
|
|
1193
1479
|
---
|
|
1194
1480
|
|
|
1195
1481
|
## PUSH GATE
|
package/dist/warp-setup/SKILL.md
CHANGED
|
@@ -132,6 +132,8 @@ Shell commands use Unix syntax (Git Bash). Never use CMD (`dir`, `type`, `del`)
|
|
|
132
132
|
|
|
133
133
|
## AskUserQuestion
|
|
134
134
|
|
|
135
|
+
**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.
|
|
136
|
+
|
|
135
137
|
**Contract:**
|
|
136
138
|
1. **Re-ground:** Project name, branch, current task. (1-2 sentences.)
|
|
137
139
|
2. **Simplify:** Plain English a smart 16-year-old could follow.
|
|
@@ -153,9 +155,15 @@ Shell commands use Unix syntax (Git Bash). Never use CMD (`dir`, `type`, `del`)
|
|
|
153
155
|
Format: `"Option name — X/10 🟢"` (or 🟡 or 🔴). In the label, not the description.
|
|
154
156
|
Rate: 🟢 9-10 complete, 🟡 6-8 adequate, 🔴 1-5 shortcuts.
|
|
155
157
|
|
|
158
|
+
**Pre-call checklist (verify before every AskUserQuestion invocation):**
|
|
159
|
+
- ☐ Completeness scores in every option label
|
|
160
|
+
- ☐ Recommended option listed first
|
|
161
|
+
- ☐ One decision per question (split if multiple)
|
|
162
|
+
- ☐ Analysis/reasoning already presented in message text above
|
|
163
|
+
|
|
156
164
|
**Formatting:**
|
|
157
165
|
- *Italics* for emphasis, not **bold** (bold for headers only).
|
|
158
|
-
- After each answer: `✔ Decision {N} recorded
|
|
166
|
+
- After each answer: `✔ Decision {N} recorded`
|
|
159
167
|
- Previews under 8 lines. Full mockups go in conversation text before the question.
|
|
160
168
|
|
|
161
169
|
---
|
|
@@ -128,6 +128,8 @@ Shell commands use Unix syntax (Git Bash). Never use CMD (`dir`, `type`, `del`)
|
|
|
128
128
|
|
|
129
129
|
## AskUserQuestion
|
|
130
130
|
|
|
131
|
+
**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.
|
|
132
|
+
|
|
131
133
|
**Contract:**
|
|
132
134
|
1. **Re-ground:** Project name, branch, current task. (1-2 sentences.)
|
|
133
135
|
2. **Simplify:** Plain English a smart 16-year-old could follow.
|
|
@@ -149,9 +151,15 @@ Shell commands use Unix syntax (Git Bash). Never use CMD (`dir`, `type`, `del`)
|
|
|
149
151
|
Format: `"Option name — X/10 🟢"` (or 🟡 or 🔴). In the label, not the description.
|
|
150
152
|
Rate: 🟢 9-10 complete, 🟡 6-8 adequate, 🔴 1-5 shortcuts.
|
|
151
153
|
|
|
154
|
+
**Pre-call checklist (verify before every AskUserQuestion invocation):**
|
|
155
|
+
- ☐ Completeness scores in every option label
|
|
156
|
+
- ☐ Recommended option listed first
|
|
157
|
+
- ☐ One decision per question (split if multiple)
|
|
158
|
+
- ☐ Analysis/reasoning already presented in message text above
|
|
159
|
+
|
|
152
160
|
**Formatting:**
|
|
153
161
|
- *Italics* for emphasis, not **bold** (bold for headers only).
|
|
154
|
-
- After each answer: `✔ Decision {N} recorded
|
|
162
|
+
- After each answer: `✔ Decision {N} recorded`
|
|
155
163
|
- Previews under 8 lines. Full mockups go in conversation text before the question.
|
|
156
164
|
|
|
157
165
|
---
|
|
@@ -320,11 +328,20 @@ WARP │ UPGRADE
|
|
|
320
328
|
Hooks: patched ✓
|
|
321
329
|
claude-mem: installed ✓
|
|
322
330
|
Stale: {N items cleaned / none}
|
|
323
|
-
Restart:
|
|
331
|
+
Restart: {context-aware — see below}
|
|
324
332
|
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
325
333
|
```
|
|
326
334
|
|
|
327
|
-
|
|
335
|
+
### Restart guidance (context-aware)
|
|
336
|
+
|
|
337
|
+
Skills are discovered dynamically — new skills are available immediately after install, no restart needed. Hooks fire on session lifecycle events (SessionStart, Stop, PreToolUse) — if hook *scripts* changed in this upgrade, a restart picks up the new behavior.
|
|
338
|
+
|
|
339
|
+
Determine restart need:
|
|
340
|
+
- **Hooks changed** (new hooks added, existing hooks modified) → `Restart: recommended (hooks updated)`
|
|
341
|
+
- **Only skills/agents changed** → `Restart: not needed — new skills available now`
|
|
342
|
+
- **Already current** (same version) → `Restart: not needed`
|
|
343
|
+
|
|
344
|
+
When hooks changed, say: "Restart Claude Code to pick up updated hooks." When they didn't, say: "No restart needed — new skills are available now."
|
|
328
345
|
|
|
329
346
|
---
|
|
330
347
|
|
|
@@ -336,7 +353,7 @@ WARP │ UPGRADE
|
|
|
336
353
|
- Check for and offer to clean stale artifacts
|
|
337
354
|
- Verify claude-mem is installed
|
|
338
355
|
- Show changelog summary
|
|
339
|
-
-
|
|
356
|
+
- Give context-aware restart guidance (hooks changed → recommend restart; skills only → no restart needed)
|
|
340
357
|
|
|
341
358
|
**MUST NOT:**
|
|
342
359
|
- Use git clone/pull to upgrade (npm handles distribution now)
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "warp-os",
|
|
3
|
-
"version": "1.1
|
|
4
|
-
"description": "A development operating system for Claude Code.
|
|
3
|
+
"version": "1.2.1",
|
|
4
|
+
"description": "A development operating system for Claude Code. 17 skills compiled into a pipeline that thinks through every step of building a product.",
|
|
5
5
|
"author": "WolfOnWings",
|
|
6
6
|
"license": "MIT",
|
|
7
7
|
"repository": {
|
|
@@ -26,6 +26,13 @@
|
|
|
26
26
|
"hooks": [
|
|
27
27
|
{"type": "command", "command": "echo 'Warp requires the Bash tool. All hooks and scripts are bash.' >&2; exit 2", "timeout": 5}
|
|
28
28
|
]
|
|
29
|
+
},
|
|
30
|
+
{
|
|
31
|
+
"matcher": "AskUserQuestion",
|
|
32
|
+
"description": "Warp: enforce completeness scores in option labels",
|
|
33
|
+
"hooks": [
|
|
34
|
+
{"type": "command", "command": "bash ~/.warp/hooks/validate-askuser.sh", "timeout": 5}
|
|
35
|
+
]
|
|
29
36
|
}
|
|
30
37
|
]
|
|
31
38
|
}
|
|
@@ -113,6 +113,8 @@ Shell commands use Unix syntax (Git Bash). Never use CMD (`dir`, `type`, `del`)
|
|
|
113
113
|
|
|
114
114
|
## AskUserQuestion
|
|
115
115
|
|
|
116
|
+
**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.
|
|
117
|
+
|
|
116
118
|
**Contract:**
|
|
117
119
|
1. **Re-ground:** Project name, branch, current task. (1-2 sentences.)
|
|
118
120
|
2. **Simplify:** Plain English a smart 16-year-old could follow.
|
|
@@ -134,9 +136,15 @@ Shell commands use Unix syntax (Git Bash). Never use CMD (`dir`, `type`, `del`)
|
|
|
134
136
|
Format: `"Option name — X/10 🟢"` (or 🟡 or 🔴). In the label, not the description.
|
|
135
137
|
Rate: 🟢 9-10 complete, 🟡 6-8 adequate, 🔴 1-5 shortcuts.
|
|
136
138
|
|
|
139
|
+
**Pre-call checklist (verify before every AskUserQuestion invocation):**
|
|
140
|
+
- ☐ Completeness scores in every option label
|
|
141
|
+
- ☐ Recommended option listed first
|
|
142
|
+
- ☐ One decision per question (split if multiple)
|
|
143
|
+
- ☐ Analysis/reasoning already presented in message text above
|
|
144
|
+
|
|
137
145
|
**Formatting:**
|
|
138
146
|
- *Italics* for emphasis, not **bold** (bold for headers only).
|
|
139
|
-
- After each answer: `✔ Decision {N} recorded
|
|
147
|
+
- After each answer: `✔ Decision {N} recorded`
|
|
140
148
|
- Previews under 8 lines. Full mockups go in conversation text before the question.
|
|
141
149
|
|
|
142
150
|
---
|