@zalom/plastic 2.0.0-alpha.12 → 2.0.0-alpha.14

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 (42) hide show
  1. package/hooks/message-display +31 -2
  2. package/package.json +1 -1
  3. package/scripts/dashboard.rb +238 -8
  4. package/scripts/doctor.rb +291 -4
  5. package/scripts/lib/dashboard_screen.rb +40 -0
  6. package/scripts/lib/doctor_core.rb +97 -2
  7. package/scripts/lib/hook_replay.rb +128 -0
  8. package/scripts/lib/installer_core.rb +23 -3
  9. package/scripts/lib/message_display.rb +151 -37
  10. package/scripts/lib/report_screen.rb +1139 -35
  11. package/scripts/lib/roadmap_queue.rb +19 -2
  12. package/scripts/lib/roadmap_savepoint.rb +36 -7
  13. package/scripts/lib/savepoint.rb +12 -0
  14. package/scripts/lib/screen_paint.rb +244 -12
  15. package/scripts/lib/screens/dashboard.rb +20 -0
  16. package/scripts/lib/screens/plan.rb +18 -0
  17. package/scripts/lib/screens/roadmap.rb +15 -0
  18. package/scripts/lib/session_ledger.rb +4 -0
  19. package/scripts/lib/verify_intent.rb +33 -0
  20. package/scripts/report-screen +127 -10
  21. package/scripts/savepoint-note +11 -9
  22. package/skills/auto/SKILL.md +13 -12
  23. package/skills/auto/references/human-report-contract.md +83 -8
  24. package/skills/dashboard/SKILL.md +13 -2
  25. package/skills/dashboard/templates/dashboard-global.md +1 -1
  26. package/skills/dashboard/templates/dashboard-project.md +2 -2
  27. package/skills/doctor/SKILL.md +10 -4
  28. package/skills/intent-continuing/SKILL.md +28 -26
  29. package/skills/intent-continuing/references/board-fill.md +9 -0
  30. package/skills/intent-ending/SKILL.md +6 -4
  31. package/skills/intent-executing/SKILL.md +2 -0
  32. package/skills/intent-speccing/SKILL.md +7 -4
  33. package/skills/roadmap/SKILL.md +9 -0
  34. package/skills/roadmap/references/file-format.md +10 -0
  35. package/templates/dashboard-screen.md +22 -0
  36. package/templates/display-fixture.md +21 -0
  37. package/templates/intent-screen.md +1 -1
  38. package/templates/report-plan.md +15 -0
  39. package/templates/report-roadmap-delivered.md +10 -0
  40. package/templates/report-roadmap-plan.md +9 -0
  41. package/templates/report-roadmap-state.md +9 -0
  42. package/templates/report-state.md +1 -1
@@ -144,11 +144,13 @@ ruby ~/.plastic/scripts/qmd-sync reindex --store <store-root> --async
144
144
  No-op when QMD is absent. Runs in the background so it never blocks the
145
145
  turn.
146
146
 
147
- ### Step 7. EM-to-CTO report
147
+ ### Step 7. Print `delivered`
148
148
 
149
- Brief the human like an engineering manager to a CTO: impact and risk first,
150
- in plain language, the decision left to them (merge, release, or accept).
151
- See `outcome.md` for the details; do not restate it verbatim.
149
+ Print `ruby ~/.plastic/scripts/report-screen delivered <intent_dir>` as the first characters
150
+ of the reply: nothing before it, no fence, or the hook cannot paint it. Asked, Delivered (with
151
+ its Proven-by column), Evidence, and Needs you come straight from the record - the EM-to-CTO
152
+ report, impact and risk first, in plain language, with the decision left to the human (merge,
153
+ release, or accept). See `outcome.md` for the details; do not restate it verbatim.
152
154
 
153
155
  ## Abandoned is the same procedure
154
156
 
@@ -63,6 +63,8 @@ Dispatch ONE executor subagent and give it the whole delivery: every task's full
63
63
 
64
64
  After each commit lands (the red commit and every commit after it), append a `Commit` line to the savepoint ledger: `ruby ~/.plastic/scripts/savepoint-note <intent_dir> --kind Commit --text "<sha> <what it proves>"` (intent 317, D17). This is what feeds `report-screen delay`; a commit with no line is a gap the delay report cannot explain.
65
65
 
66
+ Print `ruby ~/.plastic/scripts/report-screen state <intent_dir> --changed "<what just landed>"` as the first characters of the reply, nothing before it, no fence, right after the red commit and again once the suite goes green (intent 331f).
67
+
66
68
  Read its response by code:
67
69
  - DONE or DONE_WITH_CONCERNS → proceed to Step 3.
68
70
  - NEEDS_CONTEXT → provide the missing context, re-dispatch the executor.
@@ -111,10 +111,13 @@ When the rulings are enough to build from:
111
111
  rulings say more than the record already does.
112
112
  3. **Self-verify.** Read `references/self-verify-checklist.md` before presenting; fix any
113
113
  failing check and re-verify from the top.
114
- 4. **Present and hand off.** Present `spec.md` and the action files. Then offer the routes:
115
- run it now inline when the work is small enough for direct mode; hand to `plastic-auto`
116
- when the owner says auto and the checklist above passes (all decisions resolved, scope
117
- bounded, dependencies named, success criteria defined); or keep thinking.
114
+ 4. **Present and hand off.** Print `ruby ~/.plastic/scripts/report-screen plan <intent_dir>` as
115
+ the first characters of the reply: nothing before it, no fence, or the hook cannot paint it.
116
+ It carries Asked, Decisions, Steps, Mode, Reviewer, then the Steps and Risks tables, filled
117
+ from `spec.md` and the action files just written, never restated by eye. Then offer the
118
+ routes: run it now inline when the work is small enough for direct mode; hand to
119
+ `plastic-auto` when the owner says auto and the checklist above passes (all decisions
120
+ resolved, scope bounded, dependencies named, success criteria defined); or keep thinking.
118
121
 
119
122
  Report, in this order: which files were written (`spec.md` new or rewritten, the action
120
123
  files), the count of acceptance criteria, which `## Insights` rulings superseded an earlier
@@ -47,6 +47,15 @@ Read `../plastic-conventions/references/roadmaps.md` for the roadmap file format
47
47
  semantics, and the status-mirror rule that this skill's own file-format reference builds on. This
48
48
  path resolves relative to this skill's own installed directory.
49
49
 
50
+ ## Reports (intent 331f)
51
+
52
+ Each verb prints its report screen as the first characters of the reply: nothing before it, no
53
+ fence, or the hook cannot paint it.
54
+
55
+ - Create prints `ruby ~/.plastic/scripts/report-screen roadmap <roadmap.md> plan`.
56
+ - Read / consume prints `ruby ~/.plastic/scripts/report-screen roadmap <roadmap.md> state`.
57
+ - Close / archive prints `ruby ~/.plastic/scripts/report-screen roadmap <roadmap.md> delivered`.
58
+
50
59
  ## Notes
51
60
 
52
61
  - File location and the four-section shape are identical across tiers; do not invent a different
@@ -96,6 +96,16 @@ The ledger is derived and rebuildable (`ruby ~/.plastic/scripts/roadmap-savepoin
96
96
  roadmaps/{slug}.md`, reconstructing it from `## Log`), never a status source: `INDEX.md` stays the
97
97
  single writer of intent status, exactly as for the roadmap file itself.
98
98
 
99
+ ## Screens read this format (intent 331c)
100
+
101
+ `report-screen roadmap <roadmap.md> plan|state|delivered` reads exactly the shapes above and
102
+ nothing else: `## Goal`'s first sentence, the `## Batches` (or legacy `## Waves`) grouping and its
103
+ entries (through `RoadmapQueue`'s own reconciled reader - INDEX still wins), and the events from
104
+ the savepoint ledger, falling back to `## Log` classified through the same keyword vocabulary when
105
+ no ledger file exists (an archived roadmap moved before intent 134 shipped, `manual-first.md`
106
+ among them). A screen never invents a status, a time, or a merge sha the file, `INDEX.md`, or the
107
+ ledger did not already carry - the same `not recorded` floor the intent screens use.
108
+
99
109
  ## Worked example
100
110
 
101
111
  ```
@@ -0,0 +1,22 @@
1
+ ## ▶ {{scope}} · dashboard
2
+
3
+ | | | |
4
+ | --- | --- | --- |
5
+ | **Active** | {{active}} | intents |
6
+ | **In delivery** | {{in_delivery}} | with a fresh lock |
7
+ | **Delivered** | {{delivered}} | in the last 7 days |
8
+ | **Roadmap** | {{roadmap}} | frontier batch |
9
+ | **Sessions** | {{sessions}} | alive |
10
+ | **Changed** | {{changed}} | newest savepoint |
11
+
12
+ **Where we are**
13
+
14
+ | Graph ID | Intent | Stage | Progress | Lead |
15
+ | --- | --- | --- | --- | --- |
16
+ {{where_we_are.rows}}
17
+
18
+ **Where we go next**
19
+
20
+ | Rank | Graph ID | Intent | Reason |
21
+ | --- | --- | --- | --- |
22
+ {{where_we_go_next.rows}}
@@ -0,0 +1,21 @@
1
+ <!-- Doctor's display self-test fixture (intent 331e). Replayed through the
2
+ installed MessageDisplay hook by `display_hook_paints` to prove painting
3
+ still works; this is NOT a report-screen scaffold (no {{...}} mustache
4
+ placeholders) and ships no data of its own. -->
5
+
6
+ ## ▶ 331e · Doctor display check
7
+
8
+ | | | |
9
+ | --- | --- | --- |
10
+ | **Store** | project:plastic | the plastic project store |
11
+ | **Status** | Active | listed under ## Active in INDEX.md |
12
+ | **Stage** | Exec | What, Why, How, Exec delivered; the work is open |
13
+ | **Progress** | ██████████░░░░░░░░░░ 3 / 6 | 3 steps open |
14
+
15
+ **Steps**
16
+
17
+ | Step | Status | What |
18
+ | --- | --- | --- |
19
+ | S1 | done | Tests red |
20
+ | S2 | done | check_display_registration in doctor_core.rb |
21
+ | S3 | open | The three full-run checks in doctor.rb |
@@ -12,6 +12,6 @@
12
12
 
13
13
  **Steps**
14
14
 
15
- | Step | Status | What |
15
+ | Step | Status | Detail |
16
16
  | --- | --- | --- |
17
17
  {{steps.rows}}
@@ -0,0 +1,15 @@
1
+ ## ▶ {{id}} · {{name}} · plan
2
+
3
+ | | | |
4
+ | --- | --- | --- |
5
+ {{fields.rows}}
6
+
7
+ **Steps**
8
+
9
+ | Step | Action | Detail |
10
+ | --- | --- | --- |
11
+ {{steps.rows}}
12
+
13
+ **Risks**
14
+
15
+ {{risks.block}}
@@ -0,0 +1,10 @@
1
+ ## ✔ {{slug}} · roadmap · delivered
2
+ {{meta}}
3
+
4
+ **Delivered**
5
+
6
+ {{delivered.table}}
7
+
8
+ **Log**
9
+
10
+ {{log.table}}
@@ -0,0 +1,9 @@
1
+ ## ▶ {{slug}} · roadmap · plan
2
+
3
+ | | | |
4
+ | --- | --- | --- |
5
+ {{fields.rows}}
6
+
7
+ **Batches**
8
+
9
+ {{entries.table}}
@@ -0,0 +1,9 @@
1
+ ## ▶ {{slug}} · roadmap
2
+
3
+ | | | |
4
+ | --- | --- | --- |
5
+ {{fields.rows}}
6
+
7
+ **Batches**
8
+
9
+ {{entries.table}}
@@ -6,6 +6,6 @@
6
6
 
7
7
  **Steps**
8
8
 
9
- | Step | Status | What |
9
+ | Step | Status | Detail |
10
10
  | --- | --- | --- |
11
11
  {{steps.rows}}