@alphazede/bearing-lite 0.1.10 → 0.2.0
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/CONTRIBUTING.md +25 -0
- package/README.md +76 -32
- package/hooks/assurance-budget.cjs +167 -0
- package/hooks/closeout.cjs +64 -15
- package/hooks/com.anthropic.claude-code/host.cjs +8 -11
- package/hooks/com.anthropic.claude-code/mapping.md +88 -2
- package/hooks/com.cursor/hooks.json +11 -1
- package/hooks/hooks.json +45 -1
- package/hooks/planning-review.cjs +99 -0
- package/hooks/te-capability.cjs +137 -0
- package/hooks/te-host.cjs +620 -0
- package/hooks/transition-order.cjs +45 -2
- package/lineups.json +1 -0
- package/package.json +9 -4
- package/plugin.json +1 -1
- package/schemas/authority.schema.json +75 -0
- package/schemas/implementation.schema.json +127 -0
- package/schemas/journey.schema.json +88 -0
- package/schemas/lineups.schema.json +145 -0
- package/schemas/seit.schema.json +108 -0
- package/skills/bearing-lite/SKILL.md +39 -46
- package/skills/bearing-lite/agents/openai.yaml +1 -1
- package/skills/bearing-lite/references/assurance-policy.md +66 -0
- package/skills/bearing-lite/references/lineups.md +81 -0
- package/skills/bearing-lite/references/peer-synthesis.md +8 -4
- package/skills/bearing-lite/references/review-policy.md +37 -0
- package/skills/bearing-lite/references/role-routing.mmd +10 -10
- package/skills/bearing-lite/references/task-state.md +6 -6
- package/skills/bearing-lite/references/task-state.mmd +1 -1
- package/skills/bearing-lite/templates/default-role-lineup.md +11 -3
- package/skills/bearing-lite/templates/task.md +75 -21
- package/skills/crewmate/SKILL.md +26 -17
- package/skills/explorer/SKILL.md +35 -34
- package/skills/gather-supplies/SKILL.md +9 -2
- package/skills/integration-engineer/SKILL.md +41 -0
- package/skills/map-the-route/SKILL.md +48 -36
- package/skills/map-the-route/references/artifact-grammar.md +94 -35
- package/skills/navigator/SKILL.md +18 -41
- package/skills/park-ranger/SKILL.md +24 -16
- package/skills/plan-integrator/SKILL.md +37 -0
- package/skills/scribe/SKILL.md +34 -0
- package/skills/surveyor/SKILL.md +22 -15
- package/skills/systems-modeler/SKILL.md +35 -0
- package/skills/test-engineer/SKILL.md +46 -0
- package/skills/validator/SKILL.md +20 -25
- package/skills/validator/references/grading-rubric.md +5 -4
|
@@ -3,51 +3,44 @@ name: bearing-lite
|
|
|
3
3
|
description: Bearing Lite Router for Journeys. Not for ordinary work, assigned packets, implementation, or publication.
|
|
4
4
|
---
|
|
5
5
|
|
|
6
|
-
The Router alone writes Journey planning state and owns
|
|
7
|
-
planning nodes return owner questions.
|
|
8
|
-
or hidden ledger. plugin hosts are partial; skill-copy is skills-only.
|
|
6
|
+
The Router alone writes Journey planning state, owns owner conversation, and owns Expedition sequencing;
|
|
7
|
+
planning nodes return owner questions. Plugin hosts are partial; skill-copy is skills-only.
|
|
9
8
|
|
|
10
|
-
1. Say `Preparing this Journey.`
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
and
|
|
30
|
-
good lineup for the roles on this Journey?`; never choose. Recommend cadence
|
|
31
|
-
with a reason plus one cheaper and one more expensive alternative stating
|
|
32
|
-
what each gives up or buys. Ask `Where should the single independent
|
|
33
|
-
review run—after a slice, after an integrated round, or at the end?`
|
|
34
|
-
7. Record route, lineup, and cadence before task mapping; if declined, record the named default explicitly.
|
|
35
|
-
The recorded snapshot is authoritative for this Journey. Later edits to
|
|
36
|
-
`~/.agents/bearing-lite/default-role-lineup.md` have no effect on it. Replace
|
|
37
|
-
only through an explicit owner-confirmed dated visible amendment. Invoke Map the Route with the snapshot.
|
|
38
|
-
8. Every ready node gets a fresh session with lineup identity from the recorded snapshot.
|
|
9
|
+
1. Say `Preparing this Journey.` Acquire or resume a generation-bound checkout lease before
|
|
10
|
+
planning or dispatch. A live same-checkout competitor returns `WAITING_ON` with sanitized identity.
|
|
11
|
+
2. Resume the next incomplete stage in the same generation; refresh `candidate_revision`.
|
|
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
|
|
14
|
+
proposed copy; never infer identity values. The recorded snapshot is authoritative for this Journey.
|
|
15
|
+
Later edits to
|
|
16
|
+
`~/.agents/bearing-lite/default-role-lineup.md` have no effect on it except through an
|
|
17
|
+
explicit owner-confirmed dated visible amendment. Dispatch uses lineup identity from the recorded snapshot.
|
|
18
|
+
4. Run Repository Fit → Set Bearings → Gather Supplies; unresolved material intent blocks Map the Route.
|
|
19
|
+
5. Invoke Map the Route after settled intent. Do not ask for lineup or route
|
|
20
|
+
before it; carry owner-supplied lineup and `review_cadence: at-end` as proposals.
|
|
21
|
+
Follow `references/lineups.md` for catalog selection and save.
|
|
22
|
+
6. Enforce `references/review-policy.md`. Show one integrated
|
|
23
|
+
approval-or-change gate for outcome, design, route, lineup, role states,
|
|
24
|
+
reasoning, cadence, and plan. Record the approved Journey type and snapshot; regenerate changes.
|
|
25
|
+
Never add a staged lineup or route-review gate.
|
|
26
|
+
Dispatch only after approval.
|
|
27
|
+
7. Crewmate and Explorer may continue in-wave.
|
|
28
|
+
Use the visible wave receipt and update implementation and review once per wave.
|
|
39
29
|
|
|
40
|
-
Return `READY`, `WAITING_ON`, `OWNER_DECISION_REQUIRED`, or `COMPLETE`.
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
`
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
30
|
+
Return `READY`, `WAITING_ON`, `OWNER_DECISION_REQUIRED`, or `COMPLETE`.
|
|
31
|
+
`max_assurance_rounds` is 1 per declared phase or wave-end, not per Journey;
|
|
32
|
+
Direct route checks `assurance_rounds`, never
|
|
33
|
+
dispatch Navigator, and one review may authorize one repair. Verify repair
|
|
34
|
+
deterministically without another review; failed repair/scope change returns
|
|
35
|
+
`OWNER_DECISION_REQUIRED` naming the candidate and count. `COMPLETE` ends Bearing assurance.
|
|
36
|
+
Authorized deployment without reopening review.
|
|
37
|
+
Planning review is a separate pre-dispatch gate; it never consumes implementation
|
|
38
|
+
`required_assurance`, `assurance_rounds`, or `max_assurance_rounds`.
|
|
39
|
+
Release the lease once: release the checkout lease exactly once on `COMPLETE` or `CANCELLED`;
|
|
40
|
+
recovery needs explicit recorded generation increment.
|
|
41
|
+
Recovery 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
|
+
Selected-only missing and required-only missing are typed gaps. Unselected
|
|
45
|
+
and unrequired absence remains inactive, not a global failure.
|
|
46
|
+
Never implement, self-assure, select models, or publish.
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
interface:
|
|
2
2
|
display_name: "Bearing Lite"
|
|
3
3
|
short_description: "Route a stateful repository Journey"
|
|
4
|
-
default_prompt: "Use $bearing-lite to start or resume this Journey, resolve planning one stage at a time, confirm the lineup
|
|
4
|
+
default_prompt: "Use $bearing-lite to start or resume this Journey, resolve planning one stage at a time, confirm the lineup, record at-end review, then dispatch bounded sessions."
|
|
5
5
|
|
|
6
6
|
policy:
|
|
7
7
|
allow_implicit_invocation: false
|
|
@@ -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,81 @@
|
|
|
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
|
+
## Validity
|
|
26
|
+
|
|
27
|
+
Named selection and save require a valid catalog. Bind
|
|
28
|
+
`schemas/lineups.schema.json` Draft 2020-12 validation before named
|
|
29
|
+
selection or save. That schema is the validation document, not a second
|
|
30
|
+
search root for user data. Do not add a runtime catalog library.
|
|
31
|
+
|
|
32
|
+
On load and on save, inspect raw object members first. Reject duplicate
|
|
33
|
+
raw JSON keys; do not silently collapse. Then parse and apply Draft 2020-12
|
|
34
|
+
validation against package-root `schemas/lineups.schema.json`. Fail closed
|
|
35
|
+
as follows even when the schema cannot express the check:
|
|
36
|
+
|
|
37
|
+
- Reject duplicate role assignments within each phase.
|
|
38
|
+
- Reject ASCII case-fold collisions on both load and save. Do not trim
|
|
39
|
+
or case-fold names.
|
|
40
|
+
- Defaults keys must resolve exactly. Unresolved defaults fail closed.
|
|
41
|
+
- Invalid structure or name fails closed on both load and save.
|
|
42
|
+
|
|
43
|
+
Refuse named selection or save on any of those failures. Do not invent a
|
|
44
|
+
fallback profile and do not read packaged bytes as user data.
|
|
45
|
+
|
|
46
|
+
## Selection
|
|
47
|
+
|
|
48
|
+
Explicit inline owner choices require no catalog lookup and no extra
|
|
49
|
+
confirmation. Consume them as already explicit.
|
|
50
|
+
|
|
51
|
+
A named choice needs a valid catalog and an exact selected key. Do not trim
|
|
52
|
+
or case-fold the name. Independent planning and implementation selections
|
|
53
|
+
remain separate; the owner may pick two names, one name twice, or inline on
|
|
54
|
+
either side.
|
|
55
|
+
|
|
56
|
+
Optional user `defaults.planning` and `defaults.implementation` are
|
|
57
|
+
recommendations requiring selection or confirmation. They are never a silent
|
|
58
|
+
grant and not an authority grant. Do not apply them without that
|
|
59
|
+
confirmation. Do not invent a packaged default.
|
|
60
|
+
|
|
61
|
+
Copy selected entries into the Journey snapshot as a frozen snapshot copy.
|
|
62
|
+
Preserve fallback array order. Bind a SHA-256 configuration digest of that
|
|
63
|
+
frozen snapshot copy. Digest that copy only: selected entries with fallback
|
|
64
|
+
order and selection sources. Exclude N/K/C, review cadence, route, and
|
|
65
|
+
authority. Canonical JSON: UTF-8, sort_keys, compact separators.
|
|
66
|
+
Later catalog edits do not mutate the frozen snapshot copy or its digest.
|
|
67
|
+
|
|
68
|
+
## Save
|
|
69
|
+
|
|
70
|
+
Save only on explicit owner request. Never save this Journey as a side
|
|
71
|
+
effect of selection, freeze, or routing.
|
|
72
|
+
|
|
73
|
+
Create versus replace: if replace is already explicit, do not ask again;
|
|
74
|
+
otherwise preview the selected-entry replacement and confirm. Create must
|
|
75
|
+
not overwrite an existing exact key. Replace updates only that key.
|
|
76
|
+
|
|
77
|
+
Preserve unrelated valid keys and defaults. Refuse changed-input overwrite.
|
|
78
|
+
Use a safe atomic update (sibling temp file, then rename).
|
|
79
|
+
|
|
80
|
+
Do not write N/K/C, review cadence, route, or authority into catalog
|
|
81
|
+
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) |
|
|
14
|
-
| Navigator |
|
|
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
|
+
| 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
|
-
|
|
|
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 |
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
# Planning review policy
|
|
2
|
+
|
|
3
|
+
This machine-readable block is the single declarative authority for
|
|
4
|
+
planning-review constraints. `hooks/planning-review.cjs` exports its runtime
|
|
5
|
+
mirror; focused tests require an exact match. Changing these bounds needs
|
|
6
|
+
an explicit owner amendment. This policy records no route, provider, model,
|
|
7
|
+
harness, account, or agent identity.
|
|
8
|
+
|
|
9
|
+
```json
|
|
10
|
+
{
|
|
11
|
+
"reviewer_slots_min": 2,
|
|
12
|
+
"reviewer_slots_max": 2,
|
|
13
|
+
"independence_required": true,
|
|
14
|
+
"isolated_findings_until_aggregation": true,
|
|
15
|
+
"candidate_fields": ["candidate_ref", "candidate_revision", "candidate_digest"],
|
|
16
|
+
"shared_candidate_required": true,
|
|
17
|
+
"review_rounds": 1,
|
|
18
|
+
"aggregated_repairs_max": 1,
|
|
19
|
+
"post_repair_gate": "deterministic_PASS",
|
|
20
|
+
"automatic_rereview": "prohibited",
|
|
21
|
+
"slot_exhaustion_outcome": "FAIL_ROUND",
|
|
22
|
+
"terminal_outcomes": ["HALT", "OWNER_AMENDMENT_REQUIRED"]
|
|
23
|
+
}
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
Map the Route writes the separate Journey binding in the approved lineup
|
|
27
|
+
snapshot. It lists unique abstract `slot_id` values, each slot's owner-selected
|
|
28
|
+
`primary_route_ref`, and ordered `fallback_route_refs`. Each receipt records a
|
|
29
|
+
distinct selected route from its slot. All receipts bind to the same non-empty
|
|
30
|
+
candidate ref, revision, and digest. Exhausting any slot
|
|
31
|
+
returns `FAIL_ROUND`. Candidate or independence mismatch, a second round or
|
|
32
|
+
repair, or a missing deterministic PASS after repair returns `HALT`. Automatic
|
|
33
|
+
confirmation or rereview returns `OWNER_AMENDMENT_REQUIRED`.
|
|
34
|
+
|
|
35
|
+
This gate reviews planning artifacts before dispatch. It never invokes a
|
|
36
|
+
reviewer. Implementation assurance remains governed separately by
|
|
37
|
+
`max_assurance_rounds` and task `required_assurance` / `assurance_rounds`.
|
|
@@ -1,21 +1,21 @@
|
|
|
1
1
|
flowchart TD
|
|
2
2
|
O[Owner Authority] <--> R[Stateful Bearing Lite Router]
|
|
3
|
-
R --> J{Explorer Journey or Expedition?}
|
|
4
3
|
R --> P{Next missing planning stage?}
|
|
5
4
|
P -->|Repository Fit| PF[Fresh Repository Fit]
|
|
6
5
|
P -->|Set Bearings| SB[Fresh Set Bearings]
|
|
7
6
|
P -->|Gather Supplies| GS[Fresh Gather Supplies]
|
|
8
7
|
P -->|Map the Route| MR[Fresh Map the Route]
|
|
9
|
-
PF & SB & GS
|
|
10
|
-
R -->
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
8
|
+
PF & SB & GS -->|typed return| R
|
|
9
|
+
R --> MR
|
|
10
|
+
MR -->|five artifacts with proposed route, lineup, role states, reasoning, cadence| I{One integrated owner review}
|
|
11
|
+
I -->|change| MR
|
|
12
|
+
I -->|approve Explorer Journey: one packet| C[Crewmate may continue in-wave]
|
|
13
|
+
I -->|approve Explorer Journey: one wave| E[Explorer may continue in-wave]
|
|
14
|
+
I -->|approve Expedition: Router sequences waves| E
|
|
15
15
|
E --> C
|
|
16
|
-
C --> A{
|
|
17
|
-
A -->|
|
|
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
|
|
21
|
-
V & PK & S -->|
|
|
21
|
+
V & PK & S -->|compact receipt| R
|
|
@@ -11,10 +11,10 @@ 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` |
|
|
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
|
-
| `CORRECTION_REQUIRED` |
|
|
17
|
+
| `CORRECTION_REQUIRED` | Router or nearest parent coordinator | Agent-owned in-authority correction required |
|
|
18
18
|
| `OWNER_DECISION_REQUIRED` | Owner Authority | Authority, scope, security, or replacement-path judgment required |
|
|
19
19
|
| `COMPLETE` | Parent coordinator after assurance | Outcome and required assurance satisfied |
|
|
20
20
|
| `CANCELLED` | Owner Authority or authorized parent | Task will not proceed |
|
|
@@ -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
|
|
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.
|
|
@@ -36,11 +36,11 @@ The project's human-readable plan is the only task-state record. Diagrams explai
|
|
|
36
36
|
## Ownership rules
|
|
37
37
|
|
|
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
|
|
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
|
-
-
|
|
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:
|
|
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
|
|
@@ -6,19 +6,27 @@ implementation and asks whether it is good for the current Journey. Never fill
|
|
|
6
6
|
agent, model, or reasoning values on the user's behalf.
|
|
7
7
|
|
|
8
8
|
```markdown
|
|
9
|
-
review_cadence:
|
|
9
|
+
review_cadence: at-end
|
|
10
10
|
|
|
11
11
|
| Role | Primary agent/harness | Primary model | Primary reasoning | Fallback agent/harness | Fallback model | Fallback reasoning |
|
|
12
12
|
| --- | --- | --- | --- | --- | --- | --- |
|
|
13
13
|
| Router | OWNER_TO_SET | OWNER_TO_SET | OWNER_TO_SET | OWNER_TO_SET | OWNER_TO_SET | OWNER_TO_SET |
|
|
14
|
-
| Navigator | OWNER_TO_SET | OWNER_TO_SET | OWNER_TO_SET | OWNER_TO_SET | OWNER_TO_SET | OWNER_TO_SET |
|
|
15
14
|
| Explorer | OWNER_TO_SET | OWNER_TO_SET | OWNER_TO_SET | OWNER_TO_SET | OWNER_TO_SET | OWNER_TO_SET |
|
|
16
15
|
| Crewmate | OWNER_TO_SET | OWNER_TO_SET | OWNER_TO_SET | OWNER_TO_SET | OWNER_TO_SET | OWNER_TO_SET |
|
|
17
|
-
|
|
|
16
|
+
| Test Engineer | OWNER_TO_SET | OWNER_TO_SET | OWNER_TO_SET | OWNER_TO_SET | OWNER_TO_SET | OWNER_TO_SET |
|
|
17
|
+
| Scribe | OWNER_TO_SET | OWNER_TO_SET | OWNER_TO_SET | OWNER_TO_SET | OWNER_TO_SET | OWNER_TO_SET |
|
|
18
|
+
| Plan Integrator | OWNER_TO_SET | OWNER_TO_SET | OWNER_TO_SET | OWNER_TO_SET | OWNER_TO_SET | OWNER_TO_SET |
|
|
19
|
+
| Systems Modeler | OWNER_TO_SET | OWNER_TO_SET | OWNER_TO_SET | OWNER_TO_SET | OWNER_TO_SET | OWNER_TO_SET |
|
|
20
|
+
| Integration Engineer | OWNER_TO_SET | OWNER_TO_SET | OWNER_TO_SET | OWNER_TO_SET | OWNER_TO_SET | OWNER_TO_SET |
|
|
18
21
|
| Park Ranger | OWNER_TO_SET | OWNER_TO_SET | OWNER_TO_SET | OWNER_TO_SET | OWNER_TO_SET | OWNER_TO_SET |
|
|
19
22
|
| Surveyor | OWNER_TO_SET | OWNER_TO_SET | OWNER_TO_SET | OWNER_TO_SET | OWNER_TO_SET | OWNER_TO_SET |
|
|
20
23
|
```
|
|
21
24
|
|
|
25
|
+
Navigator is not a normal lineup role. Existing plans that still assign it use
|
|
26
|
+
the Navigator compatibility diagnostic; treat the assignment as unused.
|
|
27
|
+
Validator is not a normal lineup role. Existing plans that still assign it use
|
|
28
|
+
the Validator compatibility diagnostic; treat the assignment as unused.
|
|
29
|
+
|
|
22
30
|
Journey artifacts copy the confirmed values and mark named instances active,
|
|
23
31
|
standby, or unused. Only verified primary unavailability activates its approved
|
|
24
32
|
fallback. If both are unavailable, return `OWNER_DECISION_REQUIRED`.
|
|
@@ -2,29 +2,54 @@
|
|
|
2
2
|
|
|
3
3
|
Use one compact Markdown block per task in the project's existing plan or progress document. Omit unused conditional fields. Prefer the project's format; add only missing fields. Do not create a Bearing-owned state file or hidden ledger.
|
|
4
4
|
|
|
5
|
-
## Journey settings
|
|
5
|
+
## Journey settings
|
|
6
6
|
|
|
7
|
-
|
|
7
|
+
Map the Route records these plan-level proposals above the task blocks in the
|
|
8
|
+
complete five-artifact package. The integrated owner review approves or changes
|
|
9
|
+
the journey, lineup, role states, reasoning, cadence, and plan together; no
|
|
10
|
+
pre-Map lineup or route-review gate is allowed.
|
|
8
11
|
|
|
9
12
|
```markdown
|
|
10
13
|
- journey: <Explorer Journey | Expedition>
|
|
11
|
-
- review_cadence:
|
|
12
|
-
- choice_basis: <
|
|
13
|
-
- lineup_snapshot: <named
|
|
14
|
+
- review_cadence: at-end
|
|
15
|
+
- choice_basis: <proposed recommendation and reason; owner-approved at integrated review>
|
|
16
|
+
- lineup_snapshot: <named implementation/assurance instances plus the planning_review binding below>
|
|
17
|
+
- planning_review:
|
|
18
|
+
- policy_ref: skills/bearing-lite/references/review-policy.md
|
|
19
|
+
- candidate_ref: <shared planning-package reference>
|
|
20
|
+
- candidate_revision: <shared planning-package revision>
|
|
21
|
+
- candidate_digest: <shared planning-package digest>
|
|
22
|
+
- reviewer_slots:
|
|
23
|
+
- slot_id: <abstract unique slot>
|
|
24
|
+
primary_route_ref: <owner-selected lineup route reference>
|
|
25
|
+
fallback_route_refs: [<ordered owner-selected route references>]
|
|
26
|
+
- round_number: 1
|
|
27
|
+
- completed_rounds: <0-1>
|
|
28
|
+
- receipts: <one isolated receipt per slot, including the distinct selected_route_ref>
|
|
29
|
+
- aggregated_repairs: <0-1>
|
|
30
|
+
- deterministic_gate: <PASS after repair; otherwise omitted>
|
|
14
31
|
```
|
|
15
32
|
|
|
16
|
-
`review_cadence`
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
implementation.
|
|
22
|
-
|
|
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
|
|
36
|
+
task-level tests or author self-checks. Never infer it from
|
|
37
|
+
`required_assurance` on an individual task. The proposal is visible in
|
|
38
|
+
`implementation.json` and `review.html`, then becomes authoritative only after
|
|
39
|
+
the integrated owner approval; do not offer `per-slice` or `per-round`.
|
|
40
|
+
`journey` stays a proposal until the mapped implementation graph exists and the
|
|
41
|
+
integrated owner review approves it. `lineup_snapshot` is authoritative after
|
|
42
|
+
that approval. Later
|
|
23
43
|
edits to `~/.agents/bearing-lite/default-role-lineup.md` have no effect.
|
|
24
44
|
Replace it only through an explicit owner-confirmed dated visible amendment.
|
|
25
45
|
Record the amendment date beside the replacement values. Dispatch identities
|
|
26
46
|
come from this snapshot, not from the current global defaults file.
|
|
27
47
|
|
|
48
|
+
Every configured planning-review slot uses the same candidate ref, revision,
|
|
49
|
+
and digest. Findings stay isolated until one aggregation. Slot exhaustion is
|
|
50
|
+
`FAIL_ROUND`; policy violations halt or require an owner amendment. The binding
|
|
51
|
+
does not populate `required_assurance` and does not dispatch reviewers.
|
|
52
|
+
|
|
28
53
|
## Checkout lease (record before any planning write)
|
|
29
54
|
|
|
30
55
|
The Router's first write is this visible lease. Inventory nonterminal Journeys
|
|
@@ -53,6 +78,26 @@ same generation. `COMPLETE` or `CANCELLED` releases the lease exactly
|
|
|
53
78
|
once. Stale recovery is explicit, recorded, increments generation, and cannot
|
|
54
79
|
steal a live lease. Process discovery cannot replace this durable lease.
|
|
55
80
|
|
|
81
|
+
## Wave receipt (record at wave start)
|
|
82
|
+
|
|
83
|
+
Continuations reuse this visible record beside the checkout lease. Validate at
|
|
84
|
+
wave start, after detected drift, and before commit — not before every
|
|
85
|
+
mutation. Resume from it; do not reread every accepted artifact or redispatch
|
|
86
|
+
completed slices.
|
|
87
|
+
|
|
88
|
+
```markdown
|
|
89
|
+
- wave_receipt:
|
|
90
|
+
- wave: <wave id>
|
|
91
|
+
- lease_generation: <generation>
|
|
92
|
+
- branch: <branch>
|
|
93
|
+
- candidate_revision: <revision at last check>
|
|
94
|
+
- authority: <envelope>
|
|
95
|
+
- checked_at: <wave_start | external_change | commit>
|
|
96
|
+
```
|
|
97
|
+
|
|
98
|
+
Stale, forged, or drifted receipts fail closed. Changed HEAD, authority,
|
|
99
|
+
generation, route, or writer overlap forces revalidation or a fresh session.
|
|
100
|
+
|
|
56
101
|
## Always present
|
|
57
102
|
|
|
58
103
|
```markdown
|
|
@@ -67,7 +112,7 @@ steal a live lease. Process discovery cannot replace this durable lease.
|
|
|
67
112
|
Field rules:
|
|
68
113
|
|
|
69
114
|
- `task_id` — stable identifier unique within the plan.
|
|
70
|
-
- `outcome` — approved intent for this task only.
|
|
115
|
+
- `outcome` — approved intent for this task only. Never a role-return token and never copied into `verdict`.
|
|
71
116
|
- `status` — one of `PROPOSED`, `READY`, `WAITING_ON`, `IN_PROGRESS`, `EVIDENCE_READY`, `VALIDATING`, `REVIEWING`, `ACCEPTANCE`, `CORRECTION_REQUIRED`, `OWNER_DECISION_REQUIRED`, `COMPLETE`, `CANCELLED`.
|
|
72
117
|
- `assigned_role` — current role contract for the active step, or unassigned while proposing.
|
|
73
118
|
- `depends_on` — list of other `task_id` values only, never prose.
|
|
@@ -78,23 +123,32 @@ Field rules:
|
|
|
78
123
|
```markdown
|
|
79
124
|
- scope: <allowed paths, systems, and boundaries>
|
|
80
125
|
- authority: <approved envelope; protected actions remain owner-only>
|
|
81
|
-
- required_assurance: [
|
|
126
|
+
- required_assurance: [Assurance Test Engineer]
|
|
82
127
|
```
|
|
83
128
|
|
|
84
|
-
`required_assurance` lists only roles that must accept the same candidate (for example `
|
|
129
|
+
`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).
|
|
130
|
+
|
|
131
|
+
test-writing Crewmate write set is tests and approved fixtures only. Product
|
|
132
|
+
write set excludes tests and must not weaken independently authored tests.
|
|
133
|
+
Neither self-certifies.
|
|
85
134
|
|
|
86
135
|
## After candidate work (add when evidence exists)
|
|
87
136
|
|
|
88
137
|
```markdown
|
|
89
138
|
- candidate_ref: <strongest native revision or changed-path reference available>
|
|
90
|
-
-
|
|
91
|
-
-
|
|
139
|
+
- changed_paths: <paths changed in this candidate>
|
|
140
|
+
- tests: <commands run and observed results>
|
|
141
|
+
- findings: <labeled inferences and gaps>
|
|
142
|
+
- verdict: <closed role-return token>
|
|
143
|
+
- assurance_rounds: <0-1 completed assurance rounds for this declared phase or wave>
|
|
92
144
|
```
|
|
93
145
|
|
|
146
|
+
`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`.
|
|
94
147
|
`candidate_ref` must not claim stronger provenance than the client can prove.
|
|
95
|
-
`assurance_rounds` counts
|
|
96
|
-
against Bearing Lite `max_assurance_rounds`. A repair or
|
|
97
|
-
does not reset it;
|
|
148
|
+
`assurance_rounds` counts this declared phase or wave's single submission to
|
|
149
|
+
required assurance against Bearing Lite `max_assurance_rounds`. A repair or
|
|
150
|
+
replacement candidate does not reset it; the next distinct declared phase or
|
|
151
|
+
wave carries its own budget. The parent
|
|
98
152
|
coordinator writes the count before dispatch. If the review permits correction, spend at
|
|
99
153
|
most one remaining `attempts` repair, run deterministic coordinator verification,
|
|
100
154
|
and close the gate without another review. A failed repair or scope change
|
|
@@ -115,4 +169,4 @@ review. Any source or candidate change during deployment is separately scoped.
|
|
|
115
169
|
|
|
116
170
|
## Single-writer reminder
|
|
117
171
|
|
|
118
|
-
Only the parent coordinator updates this block after rereading it. Crewmate,
|
|
172
|
+
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.
|