@mindrian_os/install 1.13.0-beta.17 → 1.13.0-beta.19
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/.claude-plugin/plugin.json +1 -1
- package/CHANGELOG.md +26 -0
- package/commands/act.md +1 -0
- package/commands/admin.md +1 -0
- package/commands/analyze-needs.md +2 -0
- package/commands/analyze-systems.md +2 -0
- package/commands/analyze-timing.md +2 -0
- package/commands/auto-explore.md +2 -0
- package/commands/beautiful-question.md +2 -0
- package/commands/brain-derive.md +2 -0
- package/commands/build-knowledge.md +2 -0
- package/commands/build-thesis.md +2 -0
- package/commands/causal.md +2 -0
- package/commands/challenge-assumptions.md +2 -0
- package/commands/compare-ventures.md +2 -0
- package/commands/dashboard.md +2 -1
- package/commands/deep-grade.md +2 -0
- package/commands/diagnose.md +21 -1
- package/commands/diagnostics.md +14 -3
- package/commands/doctor.md +4 -1
- package/commands/dogfood-flush.md +92 -0
- package/commands/dominant-designs.md +2 -0
- package/commands/explain-decision.md +2 -0
- package/commands/explore-domains.md +2 -0
- package/commands/explore-futures.md +2 -0
- package/commands/explore-trends.md +2 -0
- package/commands/export.md +1 -0
- package/commands/feynman-timeline-refresh.md +2 -0
- package/commands/file-meeting.md +2 -0
- package/commands/find-analogies.md +1 -0
- package/commands/find-bottlenecks.md +2 -0
- package/commands/find-connections.md +2 -0
- package/commands/funding.md +1 -0
- package/commands/grade.md +2 -0
- package/commands/graph.md +1 -0
- package/commands/hat-briefing.md +1 -0
- package/commands/heal.md +22 -170
- package/commands/help.md +54 -334
- package/commands/hmi-status.md +23 -144
- package/commands/jtbd.md +1 -0
- package/commands/leadership.md +2 -0
- package/commands/lean-canvas.md +2 -0
- package/commands/macro-trends.md +2 -0
- package/commands/map-unknowns.md +2 -0
- package/commands/memory.md +1 -0
- package/commands/models.md +1 -0
- package/commands/mos-reason.md +2 -0
- package/commands/mos.md +139 -0
- package/commands/mullins.md +2 -0
- package/commands/mva-brief.md +2 -0
- package/commands/mva-option.md +2 -0
- package/commands/new-project.md +2 -0
- package/commands/onboard.md +20 -7
- package/commands/operator.md +1 -0
- package/commands/opportunities.md +1 -0
- package/commands/organize.md +22 -469
- package/commands/persona.md +1 -0
- package/commands/pipeline.md +2 -0
- package/commands/present.md +1 -0
- package/commands/publish.md +2 -0
- package/commands/query.md +24 -102
- package/commands/radar.md +2 -0
- package/commands/reanalyze.md +1 -0
- package/commands/research.md +2 -0
- package/commands/room.md +2 -0
- package/commands/rooms.md +1 -0
- package/commands/root-cause.md +2 -0
- package/commands/rs-experts.md +1 -0
- package/commands/rs-explain.md +1 -0
- package/commands/rs-fetch.md +1 -0
- package/commands/rs-thesis.md +1 -0
- package/commands/scenario-plan.md +2 -0
- package/commands/scheduled-tasks.md +1 -0
- package/commands/score-innovation.md +2 -0
- package/commands/scout.md +1 -0
- package/commands/setup.md +2 -0
- package/commands/snapshot.md +2 -0
- package/commands/speakers.md +1 -0
- package/commands/splash.md +5 -2
- package/commands/status.md +1 -0
- package/commands/structure-argument.md +2 -0
- package/commands/suggest-next.md +2 -0
- package/commands/systems-thinking.md +2 -0
- package/commands/think-hats.md +2 -0
- package/commands/update.md +2 -0
- package/commands/user-needs.md +2 -0
- package/commands/validate.md +2 -0
- package/commands/value-proposition.md +2 -0
- package/commands/vault.md +2 -0
- package/commands/visualize.md +24 -29
- package/commands/whitespace.md +2 -1
- package/commands/wiki.md +1 -0
- package/hooks/hooks.json +22 -88
- package/lib/agents/auto-explore-agent.cjs +82 -0
- package/lib/core/breakthrough/canary.cjs +134 -0
- package/lib/core/breakthrough/canary.test.cjs +136 -0
- package/lib/core/breakthrough/detectors.cjs +359 -0
- package/lib/core/breakthrough/detectors.test.cjs +333 -0
- package/lib/core/breakthrough/ethics-fence.cjs +127 -0
- package/lib/core/breakthrough/ethics-fence.test.cjs +178 -0
- package/lib/core/breakthrough/resurfacing.cjs +150 -0
- package/lib/core/breakthrough/resurfacing.test.cjs +233 -0
- package/lib/core/breakthrough/review-queue.cjs +154 -0
- package/lib/core/breakthrough/review-queue.test.cjs +160 -0
- package/lib/core/breakthrough/scanner-d17-d18.test.cjs +229 -0
- package/lib/core/breakthrough/scanner.cjs +426 -0
- package/lib/core/breakthrough/scanner.test.cjs +267 -0
- package/lib/core/breakthrough/schema.cjs +164 -0
- package/lib/core/breakthrough/schema.test.cjs +256 -0
- package/lib/core/breakthrough/scoring.cjs +293 -0
- package/lib/core/breakthrough/scoring.test.cjs +423 -0
- package/lib/core/breakthrough/verb-dispatch.cjs +221 -0
- package/lib/core/breakthrough/verb-dispatch.test.cjs +185 -0
- package/lib/core/breakthrough/voice-scaffold.cjs +247 -0
- package/lib/core/breakthrough/voice-scaffold.test.cjs +251 -0
- package/lib/core/first-touch-version-stamper.cjs +113 -0
- package/lib/core/larry-thinness-acknowledgment.cjs +64 -0
- package/lib/core/larry-thinness-acknowledgment.test.cjs +97 -0
- package/lib/core/llm-name-suggester.cjs +194 -0
- package/lib/core/llm-name-suggester.test.cjs +132 -0
- package/lib/core/mva-orchestrator.cjs +41 -0
- package/lib/core/mva-telemetry.cjs +31 -143
- package/lib/core/navigation/edges.cjs +35 -0
- package/lib/core/navigation/memory-events.cjs +126 -0
- package/lib/core/room-auto-create.cjs +318 -0
- package/lib/core/room-auto-create.test.cjs +198 -0
- package/lib/core/room-discard-cascade.cjs +225 -0
- package/lib/core/room-discard-cascade.test.cjs +135 -0
- package/lib/core/room-name-validator.cjs +132 -0
- package/lib/core/room-name-validator.test.cjs +156 -0
- package/lib/core/room-naming-selector.cjs +357 -0
- package/lib/core/room-naming-selector.test.cjs +277 -0
- package/lib/core/room-receipt-emit.cjs +63 -0
- package/lib/core/room-skeleton-scaffold.cjs +315 -0
- package/lib/core/room-skeleton-scaffold.test.cjs +291 -0
- package/lib/core/stale-copy-scanner.cjs +190 -0
- package/lib/core/state-aware-router.cjs +78 -0
- package/lib/core/telemetry/schema.cjs +168 -0
- package/lib/core/telemetry/schema.test.cjs +124 -0
- package/lib/core/telemetry/validator.cjs +197 -0
- package/lib/core/telemetry/validator.test.cjs +188 -0
- package/lib/core/telemetry/writer.cjs +141 -0
- package/lib/core/telemetry/writer.test.cjs +331 -0
- package/lib/core/terminal-capability.cjs +88 -0
- package/lib/core/venture-shape-nudge.cjs +163 -0
- package/lib/core/venture-shape-nudge.test.cjs +161 -0
- package/lib/core/visual-ops.cjs +70 -2
- package/lib/hmi/selector-dispatcher.cjs +90 -1
- package/lib/hmi/shape-f7-breakthrough-renderer.cjs +222 -0
- package/lib/hmi/shape-f7-breakthrough-renderer.test.cjs +233 -0
- package/lib/memory/body-shape-coverage.test.cjs +268 -0
- package/lib/memory/doctor-deprecation-surface.test.cjs +185 -0
- package/lib/memory/first-touch-version.test.cjs +198 -0
- package/lib/memory/help-coverage.test.cjs +108 -0
- package/lib/memory/help-renderer.test.cjs +145 -0
- package/lib/memory/palette-consistency.test.cjs +127 -0
- package/lib/memory/pending-tension-store.cjs +80 -0
- package/lib/memory/render-v2-disposition.test.cjs +199 -0
- package/lib/memory/run-feynman-tests.cjs +213 -0
- package/lib/memory/sessionstart-coordinator.test.cjs +446 -0
- package/lib/memory/skill-vs-code-drift.test.cjs +257 -0
- package/lib/memory/soft-alias.test.cjs +144 -0
- package/lib/memory/stale-copy-scanner.test.cjs +291 -0
- package/lib/memory/state-aware-router.test.cjs +90 -0
- package/lib/memory/statusline-two-row.test.cjs +338 -0
- package/lib/memory/terminal-capability.test.cjs +155 -0
- package/lib/render/ROOM.md +74 -22
- package/lib/sessionstart/budget-compressor.cjs +130 -0
- package/lib/sessionstart/contributor-interface.cjs +134 -0
- package/lib/sessionstart/contributor-isolator.cjs +128 -0
- package/lib/sessionstart/precedence-ladder.cjs +47 -0
- package/lib/statusline/governing-thought-truncator.cjs +45 -0
- package/lib/statusline/two-row-renderer.cjs +186 -0
- package/lib/statusline/version-resolver.cjs +81 -0
- package/package.json +1 -1
- package/references/visual/ROOM.md +55 -0
- package/references/visual/palette.json +54 -0
- package/skills/larry-personality/SKILL.md +34 -0
- package/skills/ui-system/SKILL.md +109 -1
- package/skills/ui-system/rules/dual-palette.md +156 -0
- package/skills/ui-system/rules/glyph-disambiguation.md +171 -0
- package/skills/ui-system/rules/shape-f-zero-and-six.md +169 -0
|
@@ -0,0 +1,171 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: glyph-disambiguation
|
|
3
|
+
description: >
|
|
4
|
+
ODD 4 resolution (Phase 121.5, 2026-05-16). Documents the 🎯 glyph overload
|
|
5
|
+
(three surfaces, three meanings) and the "JTBD" word collision (Phase 37
|
|
6
|
+
bash nudges vs Phase 100 typed engine) as explicit position-anchored
|
|
7
|
+
exceptions in SKILL.md §3 -- mirroring the existing no-emoji + statusline
|
|
8
|
+
carve-out pattern. The lower-risk path: document the seam, not move it.
|
|
9
|
+
Renumbering / renaming deferred to v1.14.0 cleanup.
|
|
10
|
+
---
|
|
11
|
+
|
|
12
|
+
# Glyph + Word Disambiguation Rule (ODD 4 Resolution)
|
|
13
|
+
|
|
14
|
+
Phase 121.5 (Terminal Coherence Capstone) found two vocabulary collisions in
|
|
15
|
+
v1.13.0 that needed resolution before the final release gate. The lower-risk
|
|
16
|
+
path chosen 2026-05-16: DOCUMENT both as explicit position-anchored exceptions
|
|
17
|
+
in `skills/ui-system/SKILL.md` §3, mirroring the existing no-emoji +
|
|
18
|
+
statusline carve-out pattern. The pattern is: a global rule with a precisely-
|
|
19
|
+
named exception, position-anchored.
|
|
20
|
+
|
|
21
|
+
Renumbering the glyphs and renaming "JTBD" the word were considered and
|
|
22
|
+
deferred to v1.14.0. Rationale:
|
|
23
|
+
|
|
24
|
+
1. Phase 121.5 is consolidation, not expansion (Canon Part 7). Renaming "JTBD"
|
|
25
|
+
the word ripples through 24+ files, Brain context packets, telemetry
|
|
26
|
+
event types. Cost-benefit too high for the closing milestone.
|
|
27
|
+
2. The collisions are real but CONTEXT-DISAMBIGUATING: each occurrence is
|
|
28
|
+
resolved by surface position. 🎯 in statusline Row 2 next to "JTBD" means
|
|
29
|
+
"what job"; 🎯 in /mos:jtbd output means "broadcast"; 🎯 in
|
|
30
|
+
EXPLORATION_LABELS means problem-definition. Each surface owns its
|
|
31
|
+
position-anchored meaning.
|
|
32
|
+
3. Documenting the overload + carve-out is the SAME shape of exception the
|
|
33
|
+
existing emoji carve-out (no-emoji rule with statusline exception) already
|
|
34
|
+
does. We follow the same pattern.
|
|
35
|
+
|
|
36
|
+
Future v1.14.0 may renumber the glyphs OR rename "JTBD". For v1.13.0 final we
|
|
37
|
+
mark the seam, not move it.
|
|
38
|
+
|
|
39
|
+
---
|
|
40
|
+
|
|
41
|
+
## 1. The 🎯 glyph overload (three surfaces, three meanings)
|
|
42
|
+
|
|
43
|
+
The 🎯 emoji is used on three distinct surfaces with three distinct meanings.
|
|
44
|
+
Each surface owns its position-anchored meaning; the three meanings never
|
|
45
|
+
collide on the same surface at the same time.
|
|
46
|
+
|
|
47
|
+
| Surface | 🎯 meaning | Source path |
|
|
48
|
+
|--------------------------------------------------|-----------------------------------------------------------------------------------|----------------------------------------------|
|
|
49
|
+
| Statusline Row 2 (the JTBD label prefix) | "What job are you in right now." | `scripts/context-monitor` |
|
|
50
|
+
| `/mos:jtbd` command output + JTBD broadcast | "This is the job we're proposing." (recommendation prefix) | `commands/jtbd.md` + JTBD nudge rendering |
|
|
51
|
+
| `EXPLORATION_LABELS` problem-definition emoji | "Where the wicked navigator starts." (stage emoji for problem-definition phase) | `lib/core/visual-ops.cjs` EXPLORATION_LABELS |
|
|
52
|
+
|
|
53
|
+
**Reader disambiguation rule.** Ask: WHERE is the 🎯?
|
|
54
|
+
|
|
55
|
+
- Statusline row 2? -> active JTBD context (what job).
|
|
56
|
+
- Command output / broadcast banner? -> JTBD recommendation (which job).
|
|
57
|
+
- EXPLORATION_LABELS render path (visual ops, stage-labeled output)? ->
|
|
58
|
+
problem-definition stage emoji.
|
|
59
|
+
|
|
60
|
+
The three surfaces are physically separate render paths; they never appear
|
|
61
|
+
together in the same line, the same paragraph, or the same selector block.
|
|
62
|
+
|
|
63
|
+
---
|
|
64
|
+
|
|
65
|
+
## 2. The "JTBD" word collision (two systems)
|
|
66
|
+
|
|
67
|
+
The acronym "JTBD" (Jobs-To-Be-Done) names two unrelated systems in the
|
|
68
|
+
plugin:
|
|
69
|
+
|
|
70
|
+
| System | Status | Source path |
|
|
71
|
+
|---------------------------------|----------------------------------------------|-------------------------------------------------------------------|
|
|
72
|
+
| Phase 37 nudge templates | Internal prompt-engineering layer (legacy) | `lib/hmi/build-jtbd-nudges` (bash, prompt-engineering style) |
|
|
73
|
+
| Phase 100 typed engine | AUTHORITATIVE 13-JTBD taxonomy + verb engine | `lib/hmi/jtbd-taxonomy.json` (cues / methodology hooks / verbs) |
|
|
74
|
+
|
|
75
|
+
**Resolution rule.** When SKILL.md, the Mindrian canon, or any user-facing
|
|
76
|
+
surface says "JTBD" without qualification, it means the **Phase 100 typed
|
|
77
|
+
engine** (`lib/hmi/jtbd-taxonomy.json` -- the 13-JTBD taxonomy with
|
|
78
|
+
methodology hooks, next_move_verbs, and completion patterns).
|
|
79
|
+
|
|
80
|
+
The Phase 37 nudges are an internal prompt-engineering layer beneath the
|
|
81
|
+
engine. User-facing surfaces never name them directly. If a code path needs to
|
|
82
|
+
distinguish, the convention is:
|
|
83
|
+
|
|
84
|
+
- "JTBD" (unqualified) -> Phase 100 engine.
|
|
85
|
+
- "JTBD nudge template" / "build-jtbd-nudges" -> Phase 37 layer (internal
|
|
86
|
+
reference only).
|
|
87
|
+
|
|
88
|
+
---
|
|
89
|
+
|
|
90
|
+
## 3. The carve-out pattern
|
|
91
|
+
|
|
92
|
+
This rule mirrors the structure of the existing emoji carve-out in
|
|
93
|
+
`skills/ui-system/SKILL.md` §3:
|
|
94
|
+
|
|
95
|
+
> Global rule: NO EMOJI. EVER.
|
|
96
|
+
> Carve-out: `scripts/context-monitor` statusline is excepted (position-
|
|
97
|
+
> anchored: the host terminal renders it as a passive signal surface, not a
|
|
98
|
+
> MindrianOS command output body).
|
|
99
|
+
|
|
100
|
+
ODD 4 follows the same shape:
|
|
101
|
+
|
|
102
|
+
> Global rule: One glyph -> one meaning. One word -> one system.
|
|
103
|
+
> Carve-out: 🎯 has three position-anchored meanings (statusline row 2 / `/mos:jtbd`
|
|
104
|
+
> output / EXPLORATION_LABELS). "JTBD" has two position-anchored systems
|
|
105
|
+
> (Phase 100 engine = authoritative; Phase 37 nudges = internal-only).
|
|
106
|
+
|
|
107
|
+
The pattern is: precision in the exception, anchored by surface position.
|
|
108
|
+
Future cleanup may move the seam; until then, the surfaces own the meaning.
|
|
109
|
+
|
|
110
|
+
---
|
|
111
|
+
|
|
112
|
+
## 4. The v1.14.0 cleanup proposal
|
|
113
|
+
|
|
114
|
+
A future v1.14.0 cleanup phase MAY:
|
|
115
|
+
|
|
116
|
+
- Renumber the 🎯 glyph by SURFACE: e.g. statusline uses 🎯, broadcast uses
|
|
117
|
+
`🔆` or a new 12-glyph CLI vocabulary entry, EXPLORATION_LABELS uses a
|
|
118
|
+
distinct stage emoji.
|
|
119
|
+
- Rename one of the two "JTBD" systems: e.g. Phase 37 nudges become
|
|
120
|
+
"JTBD-nudges-v0" or "preinference-nudges"; Phase 100 engine retains "JTBD"
|
|
121
|
+
unqualified.
|
|
122
|
+
|
|
123
|
+
Both are renaming exercises with ripple costs: ~24 files for "JTBD" rename,
|
|
124
|
+
3+ render paths for 🎯. Neither is in scope for v1.13.0. Track in
|
|
125
|
+
`docs/CANON-PHASE-MAP.md` v1.14.0 backlog under Canon Part 7 (Reuse Before
|
|
126
|
+
Build) -- the bar for renumbering is "this REPLACES / reconciles N existing
|
|
127
|
+
things," not "this is the N+1th."
|
|
128
|
+
|
|
129
|
+
---
|
|
130
|
+
|
|
131
|
+
## 5. Verification
|
|
132
|
+
|
|
133
|
+
This rule passes when:
|
|
134
|
+
|
|
135
|
+
1. SKILL.md §3 contains the "ODD 4 resolution" paragraph documenting both
|
|
136
|
+
collisions (grep `ODD 4 resolution` returns >= 1 hit).
|
|
137
|
+
2. SKILL.md §3 still preserves the existing no-emoji + statusline carve-out
|
|
138
|
+
(the ODD 4 paragraph is APPENDED, not replacing).
|
|
139
|
+
3. SKILL.md §3 cross-references this rule file
|
|
140
|
+
(`skills/ui-system/rules/glyph-disambiguation.md`).
|
|
141
|
+
4. No new glyphs were added to the 12-glyph CLI vocabulary table in SKILL.md
|
|
142
|
+
§3 (Canon Part 7 invariant: ZERO new glyphs in 121.5).
|
|
143
|
+
5. No code paths were renamed (Canon Part 7 invariant: ZERO concept renames
|
|
144
|
+
in 121.5).
|
|
145
|
+
|
|
146
|
+
---
|
|
147
|
+
|
|
148
|
+
## 6. Canon Refs
|
|
149
|
+
|
|
150
|
+
- **Part 3 (UI Ruling System enforcement)** -- the carve-out is the
|
|
151
|
+
documented exception in the ruling system's vocabulary contract.
|
|
152
|
+
- **Part 7 (Reuse Before Build)** -- consolidation only. ZERO new commands,
|
|
153
|
+
glyphs, renames.
|
|
154
|
+
- **Part 8 (Graph Boundary)** -- no Brain query depends on the disambiguation;
|
|
155
|
+
glyph + word use is LOCAL render-path concern.
|
|
156
|
+
- **Part 10 (Conversation as Product)** -- the terminal must coherently
|
|
157
|
+
express its vocabulary. ODD 4 resolution closes a coherence gap before the
|
|
158
|
+
v1.13.0 final gate.
|
|
159
|
+
|
|
160
|
+
---
|
|
161
|
+
|
|
162
|
+
## 7. See Also
|
|
163
|
+
|
|
164
|
+
- `skills/ui-system/SKILL.md` §3 -- the carve-out lives there in canonical
|
|
165
|
+
form; this rule file is the expansion.
|
|
166
|
+
- `.planning/phases/121.5-terminal-coherence-capstone/121.5-CONTEXT.md` --
|
|
167
|
+
ODD 4 (item 8 + "Open Design Decisions" section).
|
|
168
|
+
- `lib/hmi/jtbd-taxonomy.json` -- the authoritative Phase 100 JTBD system.
|
|
169
|
+
- `lib/hmi/build-jtbd-nudges` -- the Phase 37 layer (internal only).
|
|
170
|
+
- `scripts/context-monitor` -- statusline 🎯 (active JTBD prefix).
|
|
171
|
+
- `lib/core/visual-ops.cjs` -- EXPLORATION_LABELS 🎯 (problem-definition).
|
|
@@ -0,0 +1,169 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: shape-f-zero-and-six
|
|
3
|
+
description: >
|
|
4
|
+
Shape F.0 (Mini Decision Gate) and Shape F.6 (Plan Review Round) sub-shape
|
|
5
|
+
documentation. Both shipped in Phase 88.2. Surface them at queryable
|
|
6
|
+
granularity so the skill auto-loader can pull this rule independently of
|
|
7
|
+
the full SKILL.md when only F.0 or F.6 is in scope. Part of the current
|
|
8
|
+
Shape F catalog as of Phase 121.5 (additive expansion reserved for future
|
|
9
|
+
lens-aware variants).
|
|
10
|
+
---
|
|
11
|
+
|
|
12
|
+
# Shape F.0 + Shape F.6 -- Sub-shape Documentation
|
|
13
|
+
|
|
14
|
+
This rule documents the two Shape F sub-shapes that landed in Phase 88.2 and are
|
|
15
|
+
shipped but were missing from `skills/ui-system/SKILL.md` until the Phase 121.5
|
|
16
|
+
reconciliation pass. The five original sub-shapes (F.1 through F.5) are
|
|
17
|
+
documented in SKILL.md §2 and remain unchanged. F.0 is the lightweight
|
|
18
|
+
binary-or-trinary gate that fires BEFORE the larger Shape F slate; F.6 is the
|
|
19
|
+
Plan Mode wrap that closes a planning round (and, per Phase 101-01, is also the
|
|
20
|
+
JTBD-aware variant of Shape F selected by the dispatcher when a JTBD signal is
|
|
21
|
+
set).
|
|
22
|
+
|
|
23
|
+
The Shape F catalog as of Phase 121.5 carries seven sub-shapes (F.0 / F.1 / F.2
|
|
24
|
+
/ F.3 / F.4 / F.5 / F.6). This is the current catalog; future v1.14.0+ work may
|
|
25
|
+
add lens-aware variants (the dual-graph proposal under review 2026-05-16 may
|
|
26
|
+
introduce ASSOCIATION_LENS / TRANSITION_LENS lens-class variants).
|
|
27
|
+
|
|
28
|
+
---
|
|
29
|
+
|
|
30
|
+
## Shape F.0 -- Mini Decision Gate
|
|
31
|
+
|
|
32
|
+
**Shipped:** Phase 88.2 (Plan 88.2-05 / UISEL-88.2-07).
|
|
33
|
+
|
|
34
|
+
**Implementation:** `lib/hmi/shape-f0-renderer.cjs` (pure CJS, node built-ins
|
|
35
|
+
only, zero new runtime deps).
|
|
36
|
+
|
|
37
|
+
**Purpose.** Tiny binary or trinary decision gate. Lighter than F.1 (which
|
|
38
|
+
carries 3-5 options). F.0 is the minimum-viable gate when the navigator only
|
|
39
|
+
needs a yes / no / defer call before the larger selector slate fires.
|
|
40
|
+
|
|
41
|
+
**When to use.** A surface needs a confirmation BEFORE producing the larger F.1
|
|
42
|
+
selector. Most common pairing: F.0 (accept this recommendation?) -> F.1 (now
|
|
43
|
+
choose next move). Used for binary commits that need an explicit edge produced
|
|
44
|
+
even when the navigator wants to keep moving.
|
|
45
|
+
|
|
46
|
+
**Verb set.** EXACTLY 3 verbs (closed vocabulary, shipped value):
|
|
47
|
+
|
|
48
|
+
- Approve -- cascade now (collapses to Run Methodology or whatever the
|
|
49
|
+
recommendation called for)
|
|
50
|
+
- Reject -- capture reason -> REJECTED_BECAUSE typed edge (graph data, no
|
|
51
|
+
silent dismiss path -- Canon Part 4)
|
|
52
|
+
- Defer -- queue for milestone audit (Defer verb)
|
|
53
|
+
|
|
54
|
+
**No Free-Text slot.** F.0 omits Free-Text by design. The Reject path captures
|
|
55
|
+
the reason as a REJECTED_BECAUSE edge property, which preserves free-form intent
|
|
56
|
+
without expanding the verb vocabulary. F.0 ALWAYS produces a typed edge; there
|
|
57
|
+
is no silent dismiss path.
|
|
58
|
+
|
|
59
|
+
**Header format.**
|
|
60
|
+
|
|
61
|
+
```
|
|
62
|
+
[filled-square] [CONTEXT] - MINI GATE - decision gate
|
|
63
|
+
[right-triangle-filled] {short binary or trinary question}
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
Single-line ASCII border (the visual sub-decision cue). Persona-agnostic
|
|
67
|
+
visually (D-AMEND-04 from Phase 88.2 CONTEXT.md).
|
|
68
|
+
|
|
69
|
+
**Keyboard.** Standard F-family keyboard. up-arrow / down-arrow (or J / K) to
|
|
70
|
+
navigate, Enter to select, `?` to inspect, Esc to cancel.
|
|
71
|
+
|
|
72
|
+
**No RECOMMENDED marker.** F.0 is itself the recommendation surface. Marking
|
|
73
|
+
one of the three options would double-cue. RECOMMENDED markers are an F.1
|
|
74
|
+
through F.5 concept.
|
|
75
|
+
|
|
76
|
+
**State-update hook.** Append to STATE.md Decisions section with the chosen
|
|
77
|
+
verb + a tiny one-line context snapshot (F.0 gates are lightweight; do NOT
|
|
78
|
+
bloat Decisions with full context). Typed edge `(navigator) -[CHOSE_MINI
|
|
79
|
+
{verb}]-> (recommendation-node)` lands in the local graph. Reject additionally
|
|
80
|
+
writes REJECTED_BECAUSE with `{reason, rejected_at, parent_decision_id,
|
|
81
|
+
actor_id?, confidence_self_report?}` via Phase 109 `logEvent` (eventType
|
|
82
|
+
`selector_rejection_captured`).
|
|
83
|
+
|
|
84
|
+
**Canon refs.** Part 3 (the gate), Part 4 (rejection is data), Part 8 (reason
|
|
85
|
+
text is graph-local; never egresses to Brain).
|
|
86
|
+
|
|
87
|
+
---
|
|
88
|
+
|
|
89
|
+
## Shape F.6 -- Plan Review Round
|
|
90
|
+
|
|
91
|
+
**Shipped:** Phase 88.2 (Plan 88.2-06 plan-review variant) + Phase 101-01
|
|
92
|
+
(JTBD-aware Next Move variant).
|
|
93
|
+
|
|
94
|
+
**Implementation:** Two co-existing renderers at collision-safe paths:
|
|
95
|
+
- `lib/hmi/shape-f6-plan-review-renderer.cjs` -- Plan Review Round variant
|
|
96
|
+
(Phase 88.2-06; double-line border for structural distinction from F.0).
|
|
97
|
+
- `lib/hmi/shape-f6-renderer.cjs` -- JTBD-aware Next Move variant (Phase
|
|
98
|
+
101-01; falls through to F.1 if JTBD taxonomy entry missing).
|
|
99
|
+
|
|
100
|
+
The umbrella `F` branch in `lib/hmi/selector-dispatcher.cjs` (`F_SUBSHAPES =
|
|
101
|
+
['F.0', 'F.1', 'F.2', 'F.3', 'F.4', 'F.5', 'F.6']`) routes to the Phase 101-01
|
|
102
|
+
JTBD-aware module when `jtbd` is non-null; explicit `requestedShape: 'F.6'`
|
|
103
|
+
(string) routes to the plan-review renderer.
|
|
104
|
+
|
|
105
|
+
**Purpose.** Plan Mode wrap. When the navigator has been in a planning surface
|
|
106
|
+
(e.g. after a methodology session that produced a plan), F.6 closes the round
|
|
107
|
+
with an explicit Review verb selection BEFORE returning to Plan vs Build mode.
|
|
108
|
+
The JTBD-aware variant produces a JTBD-anchored Next Move slate sourced from
|
|
109
|
+
`lib/hmi/jtbd-taxonomy.json` `next_move_verbs`.
|
|
110
|
+
|
|
111
|
+
**When to use.**
|
|
112
|
+
- End of a plan-producing methodology session (Plan Review variant).
|
|
113
|
+
- Any Shape F surface where a non-null JTBD is in play and the renderer
|
|
114
|
+
should produce a JTBD-aware Next Move slate (JTBD-aware variant).
|
|
115
|
+
|
|
116
|
+
**Verb set.** 3-5 verbs. Plan-review typical slate:
|
|
117
|
+
|
|
118
|
+
- Approve plan -> Synthesize (plan becomes confirmed artifact;
|
|
119
|
+
review_status proposed -> confirmed, Canon Part 9)
|
|
120
|
+
- Revise plan -> Reformulate (re-runs the planning verb with edits)
|
|
121
|
+
- Replan from scratch -> Reformulate from a fresh seed
|
|
122
|
+
- Defer review -> Defer (milestone-audit TodoWrite row)
|
|
123
|
+
- Free-Text -> Free-Text routes to interpretation
|
|
124
|
+
|
|
125
|
+
JTBD-aware variant draws verbs from the taxonomy entry's `next_move_verbs`.
|
|
126
|
+
|
|
127
|
+
**Header format.**
|
|
128
|
+
|
|
129
|
+
```
|
|
130
|
+
[filled-square] [CONTEXT] - PLAN REVIEW - decision gate
|
|
131
|
+
[down-triangle] LOCAL / BRAIN / SIGNAL
|
|
132
|
+
[right-triangle-filled] Review this plan:
|
|
133
|
+
```
|
|
134
|
+
|
|
135
|
+
Double-line border on the Plan Review variant (parent shape -- structural
|
|
136
|
+
distinction from F.0's single-line border).
|
|
137
|
+
|
|
138
|
+
**Keyboard.** Standard F-family keyboard (inherits from F.1 per Phase 101-01
|
|
139
|
+
D-01).
|
|
140
|
+
|
|
141
|
+
**State-update hook.**
|
|
142
|
+
- On Approve, plan is promoted `review_status: proposed -> confirmed` (Canon
|
|
143
|
+
Part 9 truth-state machine).
|
|
144
|
+
- On Revise/Replan, original plan stays `proposed` and a new revision edge is
|
|
145
|
+
created.
|
|
146
|
+
- On Defer, a milestone-audit TodoWrite row queues the review.
|
|
147
|
+
- Plan-review variant additionally writes REVIEWED typed edges per question
|
|
148
|
+
position with `{round_id, position, latency_ms, was_decoy, response,
|
|
149
|
+
confidence_self_report}` via Phase 109 `logEvent` (eventType
|
|
150
|
+
`selector_response`). Round close emits a `f6_round_completed` event.
|
|
151
|
+
|
|
152
|
+
**Decoy ethics.** The Plan Review variant runs decoys (interleaved per
|
|
153
|
+
position) with a debrief Shape A action report at round-end that discloses
|
|
154
|
+
which questions were decoys (round-state `room/decisions/decision-decoy-
|
|
155
|
+
ethics.md`).
|
|
156
|
+
|
|
157
|
+
**Canon refs.** Part 3 (the gate), Part 9 (truth states), Part 4 (every
|
|
158
|
+
response is a typed edge), Part 8 (response text is graph-local).
|
|
159
|
+
|
|
160
|
+
---
|
|
161
|
+
|
|
162
|
+
## Sub-shape catalog notes
|
|
163
|
+
|
|
164
|
+
The Shape F catalog as shipped through Phase 88.2 carries seven sub-shapes
|
|
165
|
+
(F.0 / F.1 / F.2 / F.3 / F.4 / F.5 / F.6). This is the current catalog as of
|
|
166
|
+
Phase 121.5. The catalog is expandable, not foreclosed: lens-aware variants
|
|
167
|
+
(e.g. the dual-graph ASSOCIATION_LENS / TRANSITION_LENS work under review
|
|
168
|
+
2026-05-16) may add future Shape F sub-shapes in v1.14.0+. SKILL.md treats
|
|
169
|
+
today's seven sub-shapes as the shipped vocabulary, not a terminal set.
|