@alphazede/bearing-lite 0.1.11 → 0.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.
Files changed (50) hide show
  1. package/CONTRIBUTING.md +25 -0
  2. package/README.md +46 -14
  3. package/hooks/assurance-budget.cjs +149 -0
  4. package/hooks/closeout.cjs +16 -0
  5. package/hooks/com.anthropic.claude-code/mapping.md +72 -0
  6. package/hooks/com.cursor/hooks.json +11 -1
  7. package/hooks/hooks.json +45 -1
  8. package/hooks/plan-package.cjs +177 -0
  9. package/hooks/planning-review.cjs +9 -14
  10. package/hooks/policy.cjs +45 -0
  11. package/hooks/reconcile.cjs +145 -0
  12. package/hooks/te-capability.cjs +137 -0
  13. package/hooks/te-host.cjs +644 -0
  14. package/hooks/transition-order.cjs +32 -2
  15. package/lineups.json +1 -0
  16. package/package.json +4 -2
  17. package/plugin.json +1 -1
  18. package/schemas/authority.schema.json +75 -0
  19. package/schemas/event.schema.json +59 -0
  20. package/schemas/implementation.schema.json +150 -0
  21. package/schemas/journey.schema.json +101 -0
  22. package/schemas/lineups.schema.json +145 -0
  23. package/schemas/seit.schema.json +108 -0
  24. package/skills/bearing-lite/SKILL.md +20 -21
  25. package/skills/bearing-lite/references/assurance-policy.md +66 -0
  26. package/skills/bearing-lite/references/lineups.md +107 -0
  27. package/skills/bearing-lite/references/peer-synthesis.md +7 -3
  28. package/skills/bearing-lite/references/role-routing.mmd +2 -2
  29. package/skills/bearing-lite/references/task-state.md +4 -4
  30. package/skills/bearing-lite/references/task-state.mmd +1 -1
  31. package/skills/bearing-lite/templates/task.md +20 -11
  32. package/skills/crewmate/SKILL.md +3 -0
  33. package/skills/explorer/SKILL.md +7 -6
  34. package/skills/gather-supplies/SKILL.md +7 -1
  35. package/skills/integration-engineer/SKILL.md +41 -0
  36. package/skills/light-implementer/SKILL.md +53 -0
  37. package/skills/map-the-route/SKILL.md +9 -7
  38. package/skills/map-the-route/references/artifact-grammar.md +67 -32
  39. package/skills/park-ranger/SKILL.md +14 -9
  40. package/skills/plan-integrator/SKILL.md +46 -0
  41. package/skills/requirements-engineer/SKILL.md +57 -0
  42. package/skills/scribe/SKILL.md +34 -0
  43. package/skills/set-bearings/SKILL.md +16 -7
  44. package/skills/set-bearings/templates/workspace.md +28 -0
  45. package/skills/surveyor/SKILL.md +15 -9
  46. package/skills/systems-modeler/SKILL.md +35 -0
  47. package/skills/test-engineer/SKILL.md +48 -0
  48. package/skills/validator/SKILL.md +20 -27
  49. package/skills/validator/references/grading-rubric.md +5 -4
  50. package/skills/bearing-lite/templates/default-role-lineup.md +0 -26
@@ -10,37 +10,36 @@ planning nodes return owner questions. Plugin hosts are partial; skill-copy is s
10
10
  planning or dispatch. A live same-checkout competitor returns `WAITING_ON` with sanitized identity.
11
11
  2. Resume the next incomplete stage in the same generation; refresh `candidate_revision`.
12
12
  Never replay accepted stages or duplicate dispatch. Invalid leases fail closed.
13
- 3. If `~/.agents/bearing-lite/default-role-lineup.md` is absent, create a proposed copy
14
- from `templates/default-role-lineup.md`;
15
- never infer identity values. The recorded snapshot is authoritative for this Journey.
16
- Later edits to
17
- `~/.agents/bearing-lite/default-role-lineup.md` have no effect on it except through an
13
+ 3. Lineup comes only from `~/.agents/bearing-lite/lineups.json` per
14
+ `references/lineups.md`; a missing catalog returns `no_named_profiles`,
15
+ never a generated file; never infer identity values. The Router is observed, not selected.
16
+ The recorded snapshot is authoritative for this Journey. Later edits to
17
+ `~/.agents/bearing-lite/lineups.json` have no effect on it except through an
18
18
  explicit owner-confirmed dated visible amendment. Dispatch uses lineup identity from the recorded snapshot.
19
19
  4. Run Repository Fit → Set Bearings → Gather Supplies; unresolved material intent blocks Map the Route.
20
20
  5. Invoke Map the Route after settled intent. Do not ask for lineup or route
21
21
  before it; carry owner-supplied lineup and `review_cadence: at-end` as proposals.
22
- 6. On `PLAN_REVIEW_READY`, enforce `references/review-policy.md`: one candidate,
23
- unique independent slots, one round and aggregated repair, deterministic PASS,
24
- no rereview. Journey snapshots bind slots; validation never dispatches. Show one integrated
22
+ 6. Enforce `references/review-policy.md`. Show one integrated
25
23
  approval-or-change gate for outcome, design, route, lineup, role states,
26
- reasoning, cadence, and plan. Record the approved Journey type and snapshot; regenerate changes.
24
+ reasoning, cadence, and plan. Record the approved Journey type and snapshot.
27
25
  Never add a staged lineup or route-review gate.
28
26
  Dispatch only after approval.
29
- 7. Dispatch from the snapshot. Crewmate and Explorer may continue in-wave unchanged.
30
- Validate the lease at wave start, after drift, and before commit; use the visible wave receipt
31
- and update implementation and review once per wave.
27
+ 7. Crewmate and Explorer may continue in-wave. `work_class: light` slices go to the
28
+ Light Implementer; a `reclassify: judgement` return re-dispatches to the Crewmate.
29
+ Use the visible wave receipt and update implementation and review once per wave.
32
30
 
33
- Return `READY`, `WAITING_ON`, `OWNER_DECISION_REQUIRED`, or `COMPLETE`. Three
34
- evidence-changing corrections outside assurance.
35
- `max_assurance_rounds` is 1 per Journey; Direct route checks `assurance_rounds`, never
31
+ Return `READY`, `WAITING_ON`, `OWNER_DECISION_REQUIRED`, or `COMPLETE`.
32
+ `max_assurance_rounds` is 1 per declared phase or wave-end, not per Journey;
33
+ Direct route checks `assurance_rounds`, never
36
34
  dispatch Navigator, and one review may authorize one repair. Verify repair
37
35
  deterministically without another review; failed repair/scope change returns
38
- `OWNER_DECISION_REQUIRED` naming the candidate and count. Only a separately scoped,
39
- materially changed new Journey resets review allowance. `COMPLETE` ends Bearing assurance.
40
- Authorized deployment keeps checks without reopening review.
36
+ `OWNER_DECISION_REQUIRED` naming the candidate and count. `COMPLETE` ends Bearing assurance.
37
+ Authorized deployment without reopening review.
41
38
  Planning review is a separate pre-dispatch gate; it never consumes implementation
42
- `required_assurance`, `assurance_rounds`, or `max_assurance_rounds`.
39
+ assurance.
43
40
  Release the lease once: release the checkout lease exactly once on `COMPLETE` or `CANCELLED`;
44
- recovery needs explicit recorded generation increment.
45
- Recovery cannot steal a live lease.
41
+ recovery needs explicit recorded generation increment and cannot steal a live lease.
42
+ Selected or required capabilities activate. Unavailability of selected-or-required
43
+ capability is a typed capability gap, not success and not invented behavior.
44
+ Unselected and unrequired absence remains inactive, not a global failure.
46
45
  Never implement, self-assure, select models, or publish.
@@ -0,0 +1,66 @@
1
+ # Assurance budget policy
2
+
3
+ Decision source: `OWNER-EMV-REVIEW-CADENCE-UNIFICATION-001` through
4
+ `ROUTER-EMV-CADENCE-IMPLEMENTATION-001`.
5
+
6
+ The implementation assurance budget is scoped to each **declared phase or
7
+ wave**, not to the Journey and not to a slice. Automatic review is dispatched
8
+ at the end of each declared phase or wave. `hooks/assurance-budget.cjs` is the
9
+ exact runtime mirror of the block below; the block is authoritative.
10
+
11
+ ```json
12
+ {
13
+ "budget_scope": "per_declared_phase_or_wave",
14
+ "review_rounds": 1,
15
+ "aggregated_repairs_max": 1,
16
+ "post_repair_gate": "deterministic_PASS",
17
+ "automatic_phase_or_wave_end_review": "required",
18
+ "automatic_per_slice_review": "prohibited",
19
+ "post_repair_rereview": "prohibited",
20
+ "automatic_rereview_of_same_unit": "prohibited",
21
+ "budget_reset_on_candidate_change": false,
22
+ "budget_reset_on_model_change": false,
23
+ "budget_reset_on_harness_change": false,
24
+ "budget_reset_on_role_change": false,
25
+ "budget_reset_on_session_change": false,
26
+ "budget_reset_on_resume": false,
27
+ "budget_reset_on_alias_or_rename": false,
28
+ "budget_reset_condition": "next_distinct_declared_phase_or_wave_present_in_the_frozen_declaration"
29
+ }
30
+ ```
31
+
32
+ ## Unit identity
33
+
34
+ Budget identity is `journey + unit_kind + unit_id`. The unit id is resolved
35
+ from the frozen declaration: `waves[].id`, else `phases[].phaseId`, else the
36
+ single `direct` sentinel when neither is declared. A unit id absent from the
37
+ frozen declaration fails closed as `undeclared_review_unit`; renaming a
38
+ declared unit's display name never mints a fresh budget.
39
+
40
+ The budget key
41
+ records no route, provider, model, harness, account, or agent identity.
42
+ Candidate revision, lease generation, assigned role, session, and
43
+ slice id are likewise never key components, and none of them lowers a spent
44
+ count.
45
+
46
+ ## Spending the budget
47
+
48
+ - One review round per declared phase or wave. A second round on the same unit
49
+ halts with `assurance_round_limit`.
50
+ - A repairable verdict permits at most one aggregate repair. A second repair
51
+ halts with `assurance_repair_limit`.
52
+ - After that repair the coordinator closes the unit on a deterministic `PASS`
53
+ gate; a missing or non-`PASS` gate halts with
54
+ `deterministic_post_repair_gate_required`.
55
+ - The repaired unit is never reviewed again. `automatic_rereview_requested` and
56
+ `review_after_repair` both require an owner amendment.
57
+ - A transport receipt of `WAITING_ON` or `UNAVAILABLE` is not a spent round; it
58
+ returns `NEEDS_MORE_EVIDENCE`.
59
+ - The next distinct declared phase or wave carries its own budget.
60
+
61
+ ## Planning review stays separate
62
+
63
+ Planning review is a separate pre-dispatch gate with its own 1/1 allowance in
64
+ `references/review-policy.md`. It never consumes implementation
65
+ `required_assurance`, `assurance_rounds`, or `max_assurance_rounds`, and this
66
+ budget never consumes the planning gate.
@@ -0,0 +1,107 @@
1
+ # Named lineup catalog
2
+
3
+ Candidate procedure for the user-owned JSON catalog. It is not a staged
4
+ lineup or route-review gate. Selection is not an authority grant.
5
+
6
+ ## Location
7
+
8
+ The live user catalog is exactly one file:
9
+
10
+ `<absolute home>/.agents/bearing-lite/lineups.json`
11
+
12
+ Resolve `<absolute home>` as a nonempty absolute `HOME`, else a nonempty
13
+ absolute `USERPROFILE` on its platform; otherwise fail closed with
14
+ `home_unresolved`. Do not use cwd, the package root, XDG, a relative
15
+ `lineups.json`, or a second search root.
16
+
17
+ The packaged catalog is package-root `lineups.json`. Never read it as user
18
+ data. Never write the packaged catalog, including resolved symlink aliases
19
+ of that file.
20
+
21
+ Missing user file means no named profiles. Do not auto-create the live
22
+ catalog. An empty `lineups` object is valid and is not an error. A
23
+ malformed unused catalog cannot override explicit inline owner choices.
24
+
25
+ ## Configurable roles
26
+
27
+ Catalog entries assign Explorer, Crewmate, Light Implementer, Test Engineer,
28
+ Scribe, Plan Integrator, Systems Modeler, Integration Engineer, Requirements
29
+ Engineer, Park Ranger, and Surveyor. The Light Implementer takes only slices
30
+ whose `work_class` is `light` (criteria in `skills/light-implementer`); it
31
+ has its own primary and fallbacks, usually a lighter and cheaper route. Navigator and Validator are not lineup roles;
32
+ existing plans that still assign them use the compatibility diagnostics and
33
+ treat the assignment as unused. Never fill agent, model, or reasoning values
34
+ on the user's behalf. `review_cadence` is `at-end`.
35
+
36
+ The Router is not a configurable role: it is whatever session is running
37
+ planning. The Journey snapshot records the observed Router identity
38
+ (harness, model, reasoning at that time). A catalog or snapshot entry with
39
+ `role: Router` is ignored with the typed note `router_row_ignored`; it is
40
+ never a deviation.
41
+
42
+ Only verified primary unavailability activates its approved fallback. If
43
+ both are unavailable, return `OWNER_DECISION_REQUIRED`.
44
+
45
+ This catalog is the single lineup source. A legacy
46
+ `~/.agents/bearing-lite/default-role-lineup.md` is never read or created;
47
+ when one is present it is ignored with the typed note
48
+ `legacy_lineup_md_ignored`. A missing catalog returns the typed outcome
49
+ `no_named_profiles` and an inline-selection prompt.
50
+
51
+ ## Validity
52
+
53
+ Named selection and save require a valid catalog. Bind
54
+ `schemas/lineups.schema.json` Draft 2020-12 validation before named
55
+ selection or save. That schema is the validation document, not a second
56
+ search root for user data. Do not add a runtime catalog library.
57
+
58
+ On load and on save, inspect raw object members first. Reject duplicate
59
+ raw JSON keys; do not silently collapse. Then parse and apply Draft 2020-12
60
+ validation against package-root `schemas/lineups.schema.json`. Fail closed
61
+ as follows even when the schema cannot express the check:
62
+
63
+ - Reject duplicate role assignments within each phase.
64
+ - Reject ASCII case-fold collisions on both load and save. Do not trim
65
+ or case-fold names.
66
+ - Defaults keys must resolve exactly. Unresolved defaults fail closed.
67
+ - Invalid structure or name fails closed on both load and save.
68
+
69
+ Refuse named selection or save on any of those failures. Do not invent a
70
+ fallback profile and do not read packaged bytes as user data.
71
+
72
+ ## Selection
73
+
74
+ Explicit inline owner choices require no catalog lookup and no extra
75
+ confirmation. Consume them as already explicit.
76
+
77
+ A named choice needs a valid catalog and an exact selected key. Do not trim
78
+ or case-fold the name. Independent planning and implementation selections
79
+ remain separate; the owner may pick two names, one name twice, or inline on
80
+ either side.
81
+
82
+ Optional user `defaults.planning` and `defaults.implementation` are
83
+ recommendations requiring selection or confirmation. They are never a silent
84
+ grant and not an authority grant. Do not apply them without that
85
+ confirmation. Do not invent a packaged default.
86
+
87
+ Copy selected entries into the Journey snapshot as a frozen snapshot copy.
88
+ Preserve fallback array order. Bind a SHA-256 configuration digest of that
89
+ frozen snapshot copy. Digest that copy only: selected entries with fallback
90
+ order and selection sources. Exclude N/K/C, review cadence, route, and
91
+ authority. Canonical JSON: UTF-8, sort_keys, compact separators.
92
+ Later catalog edits do not mutate the frozen snapshot copy or its digest.
93
+
94
+ ## Save
95
+
96
+ Save only on explicit owner request. Never save this Journey as a side
97
+ effect of selection, freeze, or routing.
98
+
99
+ Create versus replace: if replace is already explicit, do not ask again;
100
+ otherwise preview the selected-entry replacement and confirm. Create must
101
+ not overwrite an existing exact key. Replace updates only that key.
102
+
103
+ Preserve unrelated valid keys and defaults. Refuse changed-input overwrite.
104
+ Use a safe atomic update (sibling temp file, then rename).
105
+
106
+ Do not write N/K/C, review cadence, route, or authority into catalog
107
+ entries.
@@ -10,10 +10,14 @@ copy peer text, runtimes, state stores, or authority assumptions.
10
10
  | Repository Fit | [Kiro steering](https://kiro.dev/docs/steering/) | verified workspace and explicit global/workspace scope |
11
11
  | Set Bearings | [Kiro steering](https://kiro.dev/docs/steering/) | durable human-readable workspace context |
12
12
  | Gather Supplies | [Matt Pocock grilling](https://github.com/mattpocock/skills/blob/main/skills/productivity/grilling/SKILL.md) | relentless dependency-ordered interview, one recommended question at a time |
13
- | Map the Route | [Kiro Quick Spec](https://kiro.dev/docs/specs/quick-spec/) and [GitHub Spec Kit](https://github.com/github/spec-kit/blob/main/workflows/speckit/workflow.yml) | staged requirements/design/tasks and explicit gates |
13
+ | Map the Route | [Kiro Quick Spec](https://kiro.dev/docs/specs/quick-spec/) and [GitHub Spec Kit](https://github.com/github/spec-kit/blob/main/workflows/speckit/workflow.yml) | technical-plan, design.md, seit.json, implementation.json, two-state review.html |
14
14
  | Navigator | compatibility diagnostic | unused on new Journeys; Router owns sequencing |
15
15
  | Explorer | LangChain subagents | bounded worker dispatch, proven-independent lane coordination, and result integration |
16
- | Crewmate | Spec Kit implement step | bounded execution after approved planning |
17
- | Validator | Spec Kit gate | evidence gate on a stable candidate |
16
+ | Crewmate | Spec Kit implement step | bounded execution after approved planning; split test-writing versus product |
17
+ | Scribe | event side lane | transcribes; cannot activate authority |
18
+ | Plan Integrator | Spec Kit tasks gate | reconciles five artifacts; generates implementation.json and review.html |
19
+ | Systems Modeler | MBSE view selection | after requirements; before design finalization |
20
+ | Integration Engineer | assembly method | dual planning and execution sessions |
21
+ | Test Engineer | Spec Kit gate | Planning and Assurance sessions; Validator absent from active roles |
18
22
  | Park Ranger | LangChain reviewer subagent | independent defect review with a typed return |
19
23
  | Surveyor | Spec Kit review gate | outcome comparison before completion |
@@ -13,8 +13,8 @@ flowchart TD
13
13
  I -->|approve Explorer Journey: one wave| E[Explorer may continue in-wave]
14
14
  I -->|approve Expedition: Router sequences waves| E
15
15
  E --> C
16
- C --> A{Final integrated candidate at-end?}
17
- A -->|Validator declared| V[Fresh Validator]
16
+ C --> A{Declared phase or wave end candidate?}
17
+ A -->|Assurance Test Engineer declared| V[Fresh Assurance Test Engineer]
18
18
  A -->|Park Ranger declared| PK[Fresh Park Ranger]
19
19
  A -->|Surveyor declared| S[Fresh Surveyor]
20
20
  A -->|not yet| E
@@ -11,7 +11,7 @@ The project's human-readable plan is the only task-state record. Diagrams explai
11
11
  | `WAITING_ON` | Parent coordinator | Named prerequisite, checkout-lease conflict, or independent-assurance dispatch unavailable |
12
12
  | `IN_PROGRESS` | Assigned worker or coordinator | Assigned action is being performed |
13
13
  | `EVIDENCE_READY` | Parent coordinator | Candidate and evidence ready for next missing assurance |
14
- | `VALIDATING` | Validator | Evidence sufficiency under validation |
14
+ | `VALIDATING` | Assurance Test Engineer | Evidence sufficiency under validation |
15
15
  | `REVIEWING` | Park Ranger when required | Independent defect review active |
16
16
  | `ACCEPTANCE` | Surveyor, Owner Authority, or parent coordinator when `required_assurance` is `none` | User-facing acceptance or coordinator completion confirmation is active |
17
17
  | `CORRECTION_REQUIRED` | Router or nearest parent coordinator | Agent-owned in-authority correction required |
@@ -27,7 +27,7 @@ The project's human-readable plan is the only task-state record. Diagrams explai
27
27
  - `IN_PROGRESS` → `EVIDENCE_READY` with candidate and handoff; → `CORRECTION_REQUIRED` on correctable failure; → `OWNER_DECISION_REQUIRED` on security, authority, or integrity guard.
28
28
  - `CORRECTION_REQUIRED` → `READY` on attempt 1 or 2 with a new hypothesis and evidence; → `OWNER_DECISION_REQUIRED` on the third failed correction or out-of-contract amendment.
29
29
  - `EVIDENCE_READY` → `VALIDATING` | `REVIEWING` | `ACCEPTANCE` for the next missing required role; → `WAITING_ON` if assurance dispatch is unavailable.
30
- - During the single assurance round, an accepted Validator or Park Ranger handoff returns to `EVIDENCE_READY` to select the next missing assurance role in declared order.
30
+ - During the single assurance round, an accepted Assurance Test Engineer or Park Ranger handoff returns to `EVIDENCE_READY` to select the next missing assurance role in declared order.
31
31
  - `VALIDATING` → `CORRECTION_REQUIRED` when more evidence or repair is needed; otherwise back through `EVIDENCE_READY` for remaining assurance.
32
32
  - `REVIEWING` → `CORRECTION_REQUIRED` | `EVIDENCE_READY` | `OWNER_DECISION_REQUIRED` by verdict.
33
33
  - `ACCEPTANCE` → `COMPLETE` when every required assurance accepted the same candidate; when `required_assurance` is `none`, parent-coordinator confirmation satisfies the assurance requirement; → `CORRECTION_REQUIRED` on acceptance gap.
@@ -38,9 +38,9 @@ The project's human-readable plan is the only task-state record. Diagrams explai
38
38
  - One parent coordinator writes each task block and its transitions.
39
39
  - Router alone writes cross-wave dependencies and Expedition-wide sequencing.
40
40
  - Workers and assurance roles return handoffs; they do not race plan edits.
41
- - Candidate authors never provide their own Validator, Park Ranger, or Surveyor verdict.
41
+ - Candidate authors never provide their own Assurance Test Engineer, Park Ranger, or Surveyor verdict.
42
42
  - Waiting on a prerequisite consumes no correction attempt. Each task has its own three-attempt correction counter; identical retries without new evidence are invalid.
43
- - One Journey receives at most one assurance round and one review-directed repair. Replacement candidates do not reset the count. The coordinator verifies that repair deterministically and does not dispatch assurance again.
43
+ - Each declared phase or wave receives at most one assurance round and one review-directed repair. Replacement candidates do not reset the count within that declared unit; the next distinct declared phase or wave carries its own 1/1 budget. The coordinator verifies that repair deterministically and does not dispatch assurance again.
44
44
  - `COMPLETE` is terminal for Bearing assurance. An already authorized deployment keeps operational verification and rollback readiness but does not reopen review; candidate-changing deployment work requires separate scope.
45
45
 
46
46
  ## Checkout lease
@@ -12,7 +12,7 @@ stateDiagram-v2
12
12
  IN_PROGRESS --> OWNER_DECISION_REQUIRED
13
13
  CORRECTION_REQUIRED --> READY
14
14
  CORRECTION_REQUIRED --> OWNER_DECISION_REQUIRED: third failed correction
15
- EVIDENCE_READY --> VALIDATING: Validator required
15
+ EVIDENCE_READY --> VALIDATING: Assurance Test Engineer required
16
16
  EVIDENCE_READY --> REVIEWING: Park Ranger required
17
17
  EVIDENCE_READY --> ACCEPTANCE: Surveyor, owner, or coordinator when required_assurance is none
18
18
  EVIDENCE_READY --> WAITING_ON: assurance dispatch unavailable
@@ -30,16 +30,20 @@ pre-Map lineup or route-review gate is allowed.
30
30
  - deterministic_gate: <PASS after repair; otherwise omitted>
31
31
  ```
32
32
 
33
- `review_cadence` is `at-end` only. The single independent review runs on the
34
- final integrated candidate, not at a slice or round boundary, and not as
33
+ `review_cadence` is `at-end` for each declared phase or wave. The single
34
+ independent review runs on that unit's integrated candidate at its end, not at
35
+ a slice or round boundary, and not as
35
36
  task-level tests or author self-checks. Never infer it from
36
37
  `required_assurance` on an individual task. The proposal is visible in
37
- `implementation.md` and `review.html`, then becomes authoritative only after
38
+ `implementation.json` and `review.html`, then becomes authoritative only after
38
39
  the integrated owner approval; do not offer `per-slice` or `per-round`.
39
40
  `journey` stays a proposal until the mapped implementation graph exists and the
40
41
  integrated owner review approves it. `lineup_snapshot` is authoritative after
41
42
  that approval. Later
42
- edits to `~/.agents/bearing-lite/default-role-lineup.md` have no effect.
43
+ edits to `~/.agents/bearing-lite/lineups.json` have no effect. The `Router`
44
+ row of the snapshot is the observed identity of the session that ran planning
45
+ (harness, model, reasoning at that time); it is never a catalog selection and
46
+ never a deviation.
43
47
  Replace it only through an explicit owner-confirmed dated visible amendment.
44
48
  Record the amendment date beside the replacement values. Dispatch identities
45
49
  come from this snapshot, not from the current global defaults file.
@@ -122,10 +126,14 @@ Field rules:
122
126
  ```markdown
123
127
  - scope: <allowed paths, systems, and boundaries>
124
128
  - authority: <approved envelope; protected actions remain owner-only>
125
- - required_assurance: [Validator]
129
+ - required_assurance: [Assurance Test Engineer]
126
130
  ```
127
131
 
128
- `required_assurance` lists only roles that must accept the same candidate (for example `Validator`, and `Park Ranger` or `Surveyor` when their triggers apply).
132
+ `required_assurance` lists only roles that must accept the same candidate (for example `Assurance Test Engineer`, and `Park Ranger` or `Surveyor` when their triggers apply).
133
+
134
+ test-writing Crewmate write set is tests and approved fixtures only. Product
135
+ write set excludes tests and must not weaken independently authored tests.
136
+ Neither self-certifies.
129
137
 
130
138
  ## After candidate work (add when evidence exists)
131
139
 
@@ -135,14 +143,15 @@ Field rules:
135
143
  - tests: <commands run and observed results>
136
144
  - findings: <labeled inferences and gaps>
137
145
  - verdict: <closed role-return token>
138
- - assurance_rounds: <0-1 completed assurance rounds for this Journey>
146
+ - assurance_rounds: <0-1 completed assurance rounds for this declared phase or wave>
139
147
  ```
140
148
 
141
149
  `verdict` is one of `ACCEPT`, `ACCEPT_WITH_FINDINGS`, `BLOCK`, `CANDIDATE_READY`, `FAIL`, `GAPS`, `NEEDS_MORE_EVIDENCE`, `OWNER_DECISION_REQUIRED`, `PARTIAL`, `PASS`, `READY`, `REPAIR_REQUIRED`, `REROUTED`, `WAITING_ON`. Do not copy task `outcome` into `verdict`.
142
150
  `candidate_ref` must not claim stronger provenance than the client can prove.
143
- `assurance_rounds` counts the Journey's single submission to required assurance
144
- against Bearing Lite `max_assurance_rounds`. A repair or replacement candidate
145
- does not reset it; only a separately scoped, materially changed new Journey starts at 0, and a new Journey is not a way around the bound. The parent
151
+ `assurance_rounds` counts this declared phase or wave's single submission to
152
+ required assurance against Bearing Lite `max_assurance_rounds`. A repair or
153
+ replacement candidate does not reset it; the next distinct declared phase or
154
+ wave carries its own budget. The parent
146
155
  coordinator writes the count before dispatch. If the review permits correction, spend at
147
156
  most one remaining `attempts` repair, run deterministic coordinator verification,
148
157
  and close the gate without another review. A failed repair or scope change
@@ -163,4 +172,4 @@ review. Any source or candidate change during deployment is separately scoped.
163
172
 
164
173
  ## Single-writer reminder
165
174
 
166
- Only the parent coordinator updates this block after rereading it. Crewmate, Validator, Park Ranger, and Surveyor return compact receipts (`verdict`, `candidate_ref`, `changed_paths`, `tests`, `findings`, `blocker`); the coordinator records transitions. Router alone changes cross-wave dependencies or global sequencing. Update `implementation.md` and `review.html` once per wave, plus owner-decision or blocker changes.
175
+ Only the parent coordinator updates this block after rereading it. Crewmate, Test Engineer, Park Ranger, and Surveyor return compact receipts (`verdict`, `candidate_ref`, `changed_paths`, `tests`, `findings`, `blocker`); the coordinator records transitions. Router alone changes cross-wave dependencies or global sequencing. Update `implementation.json` and `review.html` once per wave, plus owner-decision or blocker changes.
@@ -20,6 +20,9 @@ Lowest mutation authority and highest hands-on work in the Bearing ladder.
20
20
  - **Match:** one packet is `READY` and every input is fixed.
21
21
  - **Non-match:** multi-packet coordination, design gaps, missing authority,
22
22
  assurance, or owner-only action.
23
+ - **Split:** test-writing Crewmate may change only tests and approved
24
+ fixtures. Product Crewmate write set excludes tests and must not weaken
25
+ independently authored tests. Neither self-certifies.
23
26
 
24
27
  ## Algorithm
25
28
 
@@ -40,14 +40,15 @@ Wave authority. Coordinates more and implements less than Crewmate.
40
40
  conversation history. Independent work, a changed envelope, or owner choice
41
41
  starts a fresh Crewmate.
42
42
  4. Inspect compact returns against write sets and acceptance; integrate
43
- evidence without implementing. Update `implementation.md` and `review.html`
43
+ evidence without implementing. Update `implementation.json` and `review.html`
44
44
  once per wave, plus owner-decision or blocker changes.
45
- 5. Dispatch declared assurance only at-end on the final integrated candidate.
46
- Expedition waves defer assurance to the Router's final Journey boundary.
47
- Deterministic checks always run. Honor `max_assurance_rounds` of 1 from
48
- visible `assurance_rounds`. If the review is repairable, spend at most one
45
+ 5. Dispatch declared assurance automatically at wave-end on this wave's
46
+ integrated candidate. Deterministic checks always run. Honor
47
+ `max_assurance_rounds` of 1 per declared phase or wave from visible
48
+ `assurance_rounds`. If the review is repairable, spend at most one
49
49
  remaining `attempts` repair, run deterministic coordinator verification,
50
- and close the gate without another review. A failed repair or scope change
50
+ and close the gate without another review. The next distinct declared
51
+ phase or wave carries its own budget. A failed repair or scope change
51
52
  returns `OWNER_DECISION_REQUIRED` with candidate and count. After Journey
52
53
  `COMPLETE`, deployment checks do not reopen assurance.
53
54
 
@@ -25,7 +25,13 @@ Planning node, not a persona or plan-state writer.
25
25
  ## Algorithm
26
26
 
27
27
  1. Inspect the repository and available evidence before asking. Never ask the
28
- owner for a fact tools can establish.
28
+ owner for a fact tools can establish. Maintain a coverage ledger from
29
+ required roles and artifacts. Cells are `DISCOVERABLE`, `OPEN`, `DECIDED`,
30
+ `DEFERRED`, `NOT_APPLICABLE`, or `BLOCKED`. Exit is falsifiable: zero
31
+ `OPEN`; `DECIDED` cites owner decision and source; `DEFERRED` has a bounded
32
+ owner-approved destination or trigger; `NOT_APPLICABLE` has a reason;
33
+ `BLOCKED` is surfaced. Planning is a fan-out/fan-in DAG with Scribe as an
34
+ event side lane.
29
35
  2. Select the earliest unresolved decision whose dependencies are satisfied.
30
36
  3. Ask exactly one question, relayed to the owner through the Router. Lead
31
37
  with the recommended answer and why, then explain only material
@@ -0,0 +1,41 @@
1
+ ---
2
+ name: integration-engineer
3
+ description: >
4
+ Dual-session Integration Engineer for planning assembly strategy and
5
+ execution assembly of the exact integrated candidate. Use for Planning
6
+ Integration Engineer or Execution Integration Engineer. Do not
7
+ implement missing product behavior or self-certify.
8
+ ---
9
+
10
+ # Integration Engineer
11
+
12
+ Planning and execution sessions are separate because authority differs.
13
+
14
+ ## Inputs and match
15
+
16
+ - **Inputs:** items/versions, compatibility, order, entry criteria,
17
+ configuration identity, authorized glue, interfaces.
18
+ - **Match:** progressive assembly is required.
19
+ - **Non-match:** product implementation, requirement rewrite, test
20
+ authorship.
21
+
22
+ ## Algorithm
23
+
24
+ 1. Planning Integration Engineer defines items/versions, compatibility,
25
+ order, entry criteria, stubs, configuration identity, post-step V&V
26
+ handoffs, anomaly/rollback/recovery, and the final integrated
27
+ candidate after requirements, views, and design interfaces stabilize.
28
+ 2. Execution Integration Engineer confirms identities and readiness,
29
+ assembles approved elements, applies only authorized integration
30
+ glue, exercises interfaces, records anomalies or rollback, produces
31
+ the exact integrated candidate, and hands to Assurance Test Engineer.
32
+ 3. Missing Integration Engineering method skill is a typed capability
33
+ gap, not invented behavior.
34
+
35
+ ## Return and recovery
36
+
37
+ Return `CANDIDATE_READY` or `OWNER_DECISION_REQUIRED` with verdict,
38
+ candidate_ref, changed_paths, tests, findings, and blocker.
39
+
40
+ Never implement missing product, revise requirements or design, weaken
41
+ tests, or self-certify.
@@ -0,0 +1,53 @@
1
+ ---
2
+ name: light-implementer
3
+ description: >
4
+ Execute one approved light slice exactly as its packet states, verified by
5
+ the packet's deterministic command. Use for Light Implementer, light,
6
+ mechanical, scaffold, bind, assemble, regenerate, or runbook packets. Do
7
+ not use for judgement work, authoring, repair, review, or any decision.
8
+ ---
9
+
10
+ # Light Implementer
11
+
12
+ The cheapest route in the ladder. Inputs fully determine the output, a
13
+ command decides pass or fail, and nothing is decided in-session.
14
+
15
+ ## Inputs and match
16
+
17
+ - **Inputs:** the Crewmate packet contract (baseline, objective, exact write
18
+ set, authority, commands, stop rule, return schema, visible wave receipt,
19
+ lineup identity from the recorded snapshot) for a slice whose
20
+ `work_class` is `light`.
21
+ - **Match:** every criterion holds:
22
+ 1. Inputs are all named and present: paths, digests, UIDs, a runbook.
23
+ Nothing is discovered or interpreted.
24
+ 2. The transformation is mechanical: copy, assemble, format, fill a
25
+ template, append rows, run a documented command, record its output.
26
+ 3. The packet names the command whose exit status verifies the output.
27
+ 4. No decision: no value chosen, ambiguity resolved, candidate selected,
28
+ requirement, contract, rationale, or verification case written.
29
+ 5. Bounded blast radius: one write set, no product source, no host or
30
+ runtime mutation beyond a documented read-only or prepare call.
31
+ - **Non-match:** a `judgement` slice; a packet whose LOOP says repair your
32
+ own findings; an `[OPEN]` value; a register conflict to weigh.
33
+
34
+ ## Algorithm
35
+
36
+ 1. Revalidate the checkout lease exactly as the Crewmate does. On mismatch
37
+ return `WAITING_ON` without writing.
38
+ 2. Do exactly what the packet states, inside the write set, and nothing else.
39
+ 3. Run the packet's verification command at the candidate revision. Record
40
+ exit status, output digest, and changed paths.
41
+ 4. If any step needs a choice the packet did not make, stop before writing
42
+ further and return `NEEDS_MORE_EVIDENCE` with `reclassify: judgement`
43
+ and the exact question. Never guess, never escalate silently.
44
+ 5. There is no in-wave repair loop. A failing command returns the typed
45
+ failure with its output; the Router decides.
46
+
47
+ ## Return and recovery
48
+
49
+ Return `CANDIDATE_READY`, `NEEDS_MORE_EVIDENCE`, `WAITING_ON`, or
50
+ `OWNER_DECISION_REQUIRED` with verdict, candidate_ref, changed_paths, tests,
51
+ findings, blocker, and `reclassify` when set.
52
+
53
+ Never author, repair, self-certify, expand the write set, or publish.
@@ -13,35 +13,37 @@ Fresh planning node. The Router writes Journey state and owns owner conversation
13
13
 
14
14
  ## Match, inputs, and non-match
15
15
 
16
- - **Match:** material intent is settled and any specification, design, SEIT,
16
+ - **Match:** material intent is settled and any technical-plan, design, SEIT,
17
17
  implementation graph, or review HTML is missing.
18
- - **Inputs:** confirmed decisions, repository map and evidence, artifact status,
18
+ - **Inputs:** confirmed decisions, workspace.md and evidence, artifact status,
19
19
  requirements register, repository rules, proposed owner-supplied lineup and
20
20
  `review_cadence: at-end`, plus the return schema.
21
21
  - **Non-match:** unresolved material scope, behavior, authority, risk, or
22
22
  acceptance intent returns `REROUTE_GATHER_SUPPLIES`; generate no
23
- `implementation.md` or `review.html`.
23
+ `implementation.json` or `review.html`.
24
24
 
25
25
  ## Procedure
26
26
 
27
- 1. Derive `<journey-topic>-spec.md` from the confirmed title; ask only on
27
+ 1. Derive `<journey-topic>-technical-plan.md` from the confirmed title; ask only on
28
28
  ambiguity or collision. Establish whether a requirements register exists;
29
29
  if repository evidence cannot decide, return `NEEDS_OWNER_DECISION`. Never
30
30
  infer one. Registered identities remain references; author only Journey-local
31
31
  criteria; author the needed Journey-level proof or return
32
32
  `NEEDS_OWNER_DECISION` when register authority is unclear.
33
33
  2. Author and prospectively check, in dependency order, the testable
34
- specification, `design.md`, and `seit.md`. Preserve IDs and do not drop
34
+ technical-plan, `design.md`, and `seit.json`. Preserve IDs and do not drop
35
35
  Journey-level proof or published-standard clause coverage.
36
36
  3. Map the implementation graph and propose the Explorer Journey or Expedition,
37
37
  active/standby/unused role states, lineup, reasoning, and
38
38
  `review_cadence: at-end`. Bind the planning-review slots to owner-supplied
39
39
  primary and ordered fallback route references under one candidate ref,
40
40
  revision, and digest. Use supplied identities; never invent them.
41
- 4. After those stable source inputs, generate `implementation.md` and the
41
+ 4. After those stable source inputs, freeze: `node <plugin root>/hooks/plan-package.cjs <plan dir>`
42
+ must PASS; any finding halts. Then generate `implementation.json` and the
42
43
  self-contained offline `review.html` together. Each includes the proposed
43
44
  route, lineup, role states, reasoning, cadence, traceability, waves,
44
- recovery, approval boundaries, and register references versus Journey-local requirements.
45
+ recovery, approval boundaries, and register references versus Journey-local
46
+ requirements. Two `review.html` states: `planning-review` and `final-closeout`.
45
47
  5. Give every slice stable requirement/design/SEIT IDs, dependencies, exact
46
48
  write set, authority, role, session rule, evidence, recovery, and stop rule.
47
49
  6. Open and verify final HTML, then request exactly one integrated owner review