@alphazede/bearing-lite 0.1.1 → 0.1.8
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/README.md +35 -15
- package/hooks/com.anthropic.claude-code/host.cjs +39 -3
- package/hooks/com.anthropic.claude-code/mapping.md +9 -3
- package/package.json +1 -1
- package/plugin.json +1 -1
- package/skills/bearing-lite/SKILL.md +42 -47
- package/skills/bearing-lite/references/peer-synthesis.md +2 -4
- package/skills/bearing-lite/references/role-routing.mmd +2 -8
- package/skills/bearing-lite/references/task-state.md +19 -1
- package/skills/bearing-lite/references/task-state.mmd +1 -1
- package/skills/bearing-lite/templates/default-role-lineup.md +0 -2
- package/skills/bearing-lite/templates/task.md +39 -0
- package/skills/crewmate/SKILL.md +11 -2
- package/skills/explorer/SKILL.md +24 -9
- package/skills/gather-supplies/SKILL.md +17 -9
- package/skills/map-the-route/SKILL.md +20 -17
- package/skills/map-the-route/references/artifact-grammar.md +5 -5
- package/skills/navigator/SKILL.md +22 -6
- package/skills/park-ranger/SKILL.md +5 -1
- package/skills/repository-fit/SKILL.md +2 -1
- package/skills/validator/SKILL.md +4 -2
- package/skills/bearing-lite/assets/role-routing.png +0 -0
- package/skills/bearing-lite/assets/task-state.png +0 -0
- package/skills/sub-explorer/SKILL.md +0 -39
- package/skills/trail-boss/SKILL.md +0 -40
- package/skills/trail-boss/agents/openai.yaml +0 -4
package/README.md
CHANGED
|
@@ -14,6 +14,27 @@ execution/correction round, or once at the end. Owner Authority remains human-on
|
|
|
14
14
|
|
|
15
15
|
Bearing Lite was created by William Rumph.
|
|
16
16
|
|
|
17
|
+
## Quick start with Pi
|
|
18
|
+
|
|
19
|
+
Install the published skills package:
|
|
20
|
+
|
|
21
|
+
```sh
|
|
22
|
+
pi install npm:@alphazede/bearing-lite
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
Then give your agent a real task:
|
|
26
|
+
|
|
27
|
+
> Use Bearing Lite to add rate limiting to this API without changing its public
|
|
28
|
+
> responses. Require one independent review at the end.
|
|
29
|
+
|
|
30
|
+
Bearing Lite asks whether the work is an Explorer Journey or an Expedition,
|
|
31
|
+
fills only the missing planning stages, confirms the agent lineup and review
|
|
32
|
+
cadence, and dispatches bounded sessions with visible Markdown state.
|
|
33
|
+
|
|
34
|
+
If Bearing Lite helps keep a long agent task scoped and reviewable,
|
|
35
|
+
[star the repository](https://github.com/alphazede/bearing-lite). It helps other
|
|
36
|
+
coding-agent users find it.
|
|
37
|
+
|
|
17
38
|
## Install
|
|
18
39
|
|
|
19
40
|
Install as a host plugin. The portable identity is always `bearing-lite` /
|
|
@@ -43,7 +64,7 @@ grok plugin install bearing-lite --trust
|
|
|
43
64
|
agy plugin install /path/to/bearing-lite/.agy
|
|
44
65
|
|
|
45
66
|
# Pi — skills package, no command hooks
|
|
46
|
-
pi install
|
|
67
|
+
pi install npm:@alphazede/bearing-lite
|
|
47
68
|
```
|
|
48
69
|
|
|
49
70
|
Claude Code, Codex, Grok Build, Cursor, and Kimi Code are **partial** hook
|
|
@@ -75,11 +96,11 @@ the applicable Journey snapshot before implementation.
|
|
|
75
96
|
| Route | When | Cost |
|
|
76
97
|
|---|---|---|
|
|
77
98
|
| **Explorer Journey** | One bounded packet or one wave | Direct Crewmate or one Explorer |
|
|
78
|
-
| **Expedition** | Multi-phase or concurrent independent lanes | Navigator
|
|
99
|
+
| **Expedition** | Multi-phase or concurrent independent lanes | Navigator |
|
|
79
100
|
|
|
80
101
|
An **Explorer Journey** uses a direct Crewmate for one ready packet or one
|
|
81
102
|
Explorer over a compact/sequential wave.
|
|
82
|
-
**Expedition** adds navigation
|
|
103
|
+
**Expedition** adds navigation so independent lanes
|
|
83
104
|
stay small and sharp instead of degrading in one long context. Either shape can
|
|
84
105
|
use substantial tokens; the product does not impose a default budget ceiling.
|
|
85
106
|
|
|
@@ -91,8 +112,9 @@ The text below remains authoritative for clients that do not render Mermaid.
|
|
|
91
112
|
**Authoritative text (vision optional):** Owner Authority remains human-only. The
|
|
92
113
|
Bearing Lite Router is the stateful planning controller, not a work role. It
|
|
93
114
|
invokes only missing planning stages in fresh sessions, confirms the owner's
|
|
94
|
-
lineup and cadence, then dispatches an Explorer Journey or Expedition.
|
|
95
|
-
|
|
115
|
+
lineup and cadence, then dispatches an Explorer Journey or Expedition. Explorer
|
|
116
|
+
coordinates proven-independent in-wave lanes without a nested coordinator.
|
|
117
|
+
Validator, Park Ranger,
|
|
96
118
|
and Surveyor appear only when declared and when the selected per-slice,
|
|
97
119
|
per-round, or at-end boundary is reached. Diagrams explain orientation; they
|
|
98
120
|
never authorize a transition.
|
|
@@ -102,10 +124,8 @@ never authorize a transition.
|
|
|
102
124
|
| Role | What it is | Executes | Notes |
|
|
103
125
|
|---|---|---|---|
|
|
104
126
|
| **Router** | Stateful planning controller | no | User-facing; planning-state writer |
|
|
105
|
-
| **Navigator** | Expedition orchestrator | no | Owns cross-wave sequencing |
|
|
106
|
-
| **
|
|
107
|
-
| **Explorer** | One-wave controller | no | Dispatches Crewmates |
|
|
108
|
-
| **Sub-explorer** | Nested lane controller | no | Only when lanes are proven independent |
|
|
127
|
+
| **Navigator** | Expedition orchestrator | no | Owns cross-wave sequencing and conflicts |
|
|
128
|
+
| **Explorer** | One-wave controller | no | Dispatches Crewmates; owns proven-independent lanes |
|
|
109
129
|
| **Crewmate** | Bounded implementer | yes | Most hands-on work; exact write set |
|
|
110
130
|
| **Validator** | Evidence sufficiency | no | Independent of the author |
|
|
111
131
|
| **Park Ranger** | Defect review | no | Independent of the author |
|
|
@@ -120,21 +140,21 @@ Failure escalates to the nearest role whose scope can see it:
|
|
|
120
140
|
| Failure scope | Escalates to |
|
|
121
141
|
|---|---|
|
|
122
142
|
| Within one slice or packet | Explorer or nearest parent |
|
|
123
|
-
| Across slices in a wave |
|
|
124
|
-
| Across phases | Navigator |
|
|
143
|
+
| Across slices in a wave | Explorer |
|
|
144
|
+
| Across waves or phases | Navigator |
|
|
125
145
|
| Contract, security, or authority change | Owner Authority |
|
|
126
146
|
|
|
127
147
|
## Task state (explanatory)
|
|
128
148
|
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
Reviewable Mermaid source: [`skills/bearing-lite/references/task-state.mmd`](skills/bearing-lite/references/task-state.mmd).
|
|
149
|
+
Current task-state diagram source: [`skills/bearing-lite/references/task-state.mmd`](skills/bearing-lite/references/task-state.mmd).
|
|
150
|
+
The text below remains authoritative for clients that do not render Mermaid.
|
|
132
151
|
Authoritative transition rules: [`skills/bearing-lite/references/task-state.md`](skills/bearing-lite/references/task-state.md).
|
|
133
152
|
|
|
134
153
|
**Authoritative summary:** The project's plan is the only task-state record.
|
|
135
154
|
Normal progress is `PROPOSED` → `READY` → `IN_PROGRESS` → `EVIDENCE_READY`, then
|
|
136
155
|
optional `VALIDATING` / `REVIEWING` when required, then `ACCEPTANCE` →
|
|
137
|
-
`COMPLETE`. `WAITING_ON` holds for missing prerequisites
|
|
156
|
+
`COMPLETE`. `WAITING_ON` holds for missing prerequisites, checkout-lease
|
|
157
|
+
conflict, or assurance dispatch.
|
|
138
158
|
`CORRECTION_REQUIRED` allows two in-authority repairs; a third failed correction
|
|
139
159
|
escalates to `OWNER_DECISION_REQUIRED`. Diagrams never create state or authorize
|
|
140
160
|
transitions.
|
|
@@ -53,7 +53,8 @@ const TASK_MARK = /(?:^|\n)###\s*task_id:\s*\S+/;
|
|
|
53
53
|
const TASK_LINE = /^###\s*task_id:\s*(\S+)\s*$/;
|
|
54
54
|
const FIELD_LINE =
|
|
55
55
|
/^-\s*(assigned_role|next_action|status|required_assurance|blocker|evidence|candidate_ref|scope|authority|outcome|depends_on|receiving_role|plan_ref|role|subject):\s*(.*)$/;
|
|
56
|
-
const JOURNEY_LINE =
|
|
56
|
+
const JOURNEY_LINE = /^\s*-\s*journey:\s*(.+)$/i;
|
|
57
|
+
const LEASE_MARK = /^\s*-\s*checkout_lease:/m;
|
|
57
58
|
|
|
58
59
|
const ACTIVATION_EVENTS = new Set([
|
|
59
60
|
"SessionStart",
|
|
@@ -63,6 +64,7 @@ const ACTIVATION_EVENTS = new Set([
|
|
|
63
64
|
"SubagentStart",
|
|
64
65
|
]);
|
|
65
66
|
const CLOSEOUT_EVENTS = new Set(["Stop", "SubagentStop", "SessionEnd"]);
|
|
67
|
+
const STOP_CONTINUATION_EVENTS = new Set(["Stop", "SubagentStop"]);
|
|
66
68
|
|
|
67
69
|
const EVENT_ALIASES = Object.freeze({
|
|
68
70
|
sessionstart: "SessionStart",
|
|
@@ -212,9 +214,13 @@ function deriveContext(cwd) {
|
|
|
212
214
|
} catch {
|
|
213
215
|
continue;
|
|
214
216
|
}
|
|
215
|
-
if (!TASK_MARK.test(text) && !/^-\s*assigned_role:/m.test(text)) continue;
|
|
216
|
-
planPresent = true;
|
|
217
217
|
const parsed = parsePlanMarkdown(text);
|
|
218
|
+
const hasAssignedRole = /^-\s*assigned_role:/m.test(text);
|
|
219
|
+
const hasLease = LEASE_MARK.test(text);
|
|
220
|
+
if (!TASK_MARK.test(text) && !hasAssignedRole && !parsed.journey && !hasLease) {
|
|
221
|
+
continue;
|
|
222
|
+
}
|
|
223
|
+
planPresent = true;
|
|
218
224
|
if (parsed.journey) journey = parsed.journey;
|
|
219
225
|
for (const task of parsed.tasks) allTasks.push(task);
|
|
220
226
|
}
|
|
@@ -248,6 +254,28 @@ function classForEvent(eventName) {
|
|
|
248
254
|
return null;
|
|
249
255
|
}
|
|
250
256
|
|
|
257
|
+
function isTruthyFlag(value) {
|
|
258
|
+
return value === true || value === "true";
|
|
259
|
+
}
|
|
260
|
+
|
|
261
|
+
function isStopReentry(input, eventName) {
|
|
262
|
+
if (!STOP_CONTINUATION_EVENTS.has(eventName)) return false;
|
|
263
|
+
return isTruthyFlag(input.stop_hook_active) || isTruthyFlag(input.stopHookActive);
|
|
264
|
+
}
|
|
265
|
+
|
|
266
|
+
function hasDiscoverableJourney(derived) {
|
|
267
|
+
return (
|
|
268
|
+
derived.plan_present === true ||
|
|
269
|
+
derived.router_invoked === true ||
|
|
270
|
+
Boolean(derived.assigned_role) ||
|
|
271
|
+
derived.active_task != null
|
|
272
|
+
);
|
|
273
|
+
}
|
|
274
|
+
|
|
275
|
+
function quietSuccess() {
|
|
276
|
+
return {};
|
|
277
|
+
}
|
|
278
|
+
|
|
251
279
|
function formatAdvice(verdict) {
|
|
252
280
|
const lines = [
|
|
253
281
|
"Bearing Lite " + verdict.hook_class + ": " + verdict.outcome,
|
|
@@ -346,6 +374,10 @@ function handle(input) {
|
|
|
346
374
|
return unavailableHost(eventName || "SessionStart", "unmapped_host_event");
|
|
347
375
|
}
|
|
348
376
|
|
|
377
|
+
if (isStopReentry(parsed, eventName)) {
|
|
378
|
+
return quietSuccess();
|
|
379
|
+
}
|
|
380
|
+
|
|
349
381
|
const cwd =
|
|
350
382
|
presentString(parsed.cwd) ||
|
|
351
383
|
presentString(parsed.workspaceRoot) ||
|
|
@@ -361,6 +393,10 @@ function handle(input) {
|
|
|
361
393
|
);
|
|
362
394
|
}
|
|
363
395
|
|
|
396
|
+
if (STOP_CONTINUATION_EVENTS.has(eventName) && !hasDiscoverableJourney(derived)) {
|
|
397
|
+
return quietSuccess();
|
|
398
|
+
}
|
|
399
|
+
|
|
364
400
|
return toHostResponse(eventName, evaluateForHost(eventName, derived));
|
|
365
401
|
}
|
|
366
402
|
|
|
@@ -43,7 +43,7 @@ trees) and sets only:
|
|
|
43
43
|
|
|
44
44
|
| Bearing field | Source |
|
|
45
45
|
|---|---|
|
|
46
|
-
| `plan_present` | a Markdown file contains a `task_id` or `
|
|
46
|
+
| `plan_present` | a Markdown file contains a `task_id`, `assigned_role`, non-placeholder journey marker, or `checkout_lease` block |
|
|
47
47
|
| `router_invoked` | a `- journey:` setting is present and not a placeholder |
|
|
48
48
|
| `assigned_role` | active task `assigned_role` when not `unassigned` or `<…>` |
|
|
49
49
|
| `next_action` / `next_action_known` | active task `next_action` when not a placeholder |
|
|
@@ -57,7 +57,13 @@ of inventing context.
|
|
|
57
57
|
|
|
58
58
|
| Outcome | Host JSON | Process exit |
|
|
59
59
|
|---|---|---|
|
|
60
|
-
| `ADVISE`, `REROUTE`, `UNAVAILABLE` | `hookSpecificOutput.additionalContext` | always `0` |
|
|
60
|
+
| `ADVISE`, `REROUTE`, `UNAVAILABLE` on activation or a discoverable-Journey first-pass Stop | `hookSpecificOutput.additionalContext` | always `0` |
|
|
61
|
+
| Stop/SubagentStop re-entry (`stop_hook_active`) | quiet success (empty JSON; no `additionalContext`) | always `0` |
|
|
62
|
+
| Stop/SubagentStop with no discoverable Journey | quiet success (empty JSON; no `additionalContext`) | always `0` |
|
|
63
|
+
| first-pass Stop/SubagentStop with a discoverable Journey | `hookSpecificOutput.additionalContext` | always `0` |
|
|
61
64
|
| `BLOCK` | JSON `decision: "block"` only; this mapping never requests protected completion | always `0` |
|
|
62
65
|
|
|
63
|
-
|
|
66
|
+
A discoverable Journey is a visible plan with a `task_id`, `assigned_role`,
|
|
67
|
+
non-placeholder journey marker, or `checkout_lease` block. Empty cwd and
|
|
68
|
+
`stop_hook_active` re-entry stay quiet. Never map policy or infrastructure to
|
|
69
|
+
a non-zero exit.
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@alphazede/bearing-lite",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.8",
|
|
4
4
|
"description": "Skills-first Agent Plugin for planning, routing, bounded execution, and independent review of repository work—without CLI, MCP, server, or hidden runtime state.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"agent-plugins",
|
package/plugin.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"$schema": "https://agent-plugins.org/schemas/1.0.0/plugin.schema.json",
|
|
3
3
|
"name": "bearing-lite",
|
|
4
|
-
"version": "0.1.
|
|
4
|
+
"version": "0.1.8",
|
|
5
5
|
"description": "Skills-first portable plugin that routes repository work through the smallest valid planning stages and agent roles, using project Markdown as the only task record.",
|
|
6
6
|
"author": {
|
|
7
7
|
"name": "William Rumph / AlphaZede",
|
|
@@ -1,52 +1,47 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: bearing-lite
|
|
3
|
-
description:
|
|
4
|
-
Stateful Bearing Lite Router for starting or resuming a Journey, owning the
|
|
5
|
-
planning conversation, recording visible state, and dispatching fresh nodes.
|
|
6
|
-
Use only on explicit Bearing Lite invocation. Do not use for ordinary work,
|
|
7
|
-
an assigned role packet, model selection, implementation, or publication.
|
|
3
|
+
description: Bearing Lite Router for Journeys. Not for ordinary work, assigned packets, implementation, or publication.
|
|
8
4
|
---
|
|
9
5
|
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
1. Say `Gathering Supplies for this Journey.` Detect new versus resumed work.
|
|
25
|
-
2. For a new Journey, recommend one route and ask exactly: `What Journey shall
|
|
26
|
-
we Embark on—an Explorer Journey or an Expedition?` Explorer fits one bounded
|
|
27
|
-
wave; Expedition fits dependency-connected waves.
|
|
28
|
-
3. For a resume, state the next incomplete planning stage and continue unless
|
|
29
|
-
owner intent is missing. Never replay accepted stages.
|
|
6
|
+
The Router alone writes Journey planning state and owns owner conversation;
|
|
7
|
+
planning nodes return owner questions. No second start confirmation, `.bearing`,
|
|
8
|
+
or hidden ledger. plugin hosts are partial; skill-copy is skills-only.
|
|
9
|
+
|
|
10
|
+
1. Say `Preparing this Journey.` Inventory visible nonterminal Journeys; acquire or
|
|
11
|
+
resume a generation-bound checkout lease before any planning write or dispatch.
|
|
12
|
+
A live same-checkout competitor returns `WAITING_ON` with sanitized competing identity;
|
|
13
|
+
Distinct explicitly approved compatible worktrees may proceed.
|
|
14
|
+
2. New Journey: recommend Explorer Journey or Expedition with reason; say when
|
|
15
|
+
the other fits. Ask exactly: `What Journey shall
|
|
16
|
+
we Embark on—an Explorer Journey or an Expedition?`
|
|
17
|
+
3. On resume, keep the same lease generation and next incomplete stage. Parent-proven
|
|
18
|
+
same-Journey progress refreshes `candidate_revision` on that generation.
|
|
19
|
+
Never replay accepted stages or duplicate a dispatch.
|
|
30
20
|
4. If `~/.agents/bearing-lite/default-role-lineup.md` is absent, create a
|
|
31
|
-
proposed copy from `templates/default-role-lineup.md
|
|
32
|
-
|
|
33
|
-
5.
|
|
34
|
-
Supplies
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
the
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
21
|
+
proposed copy from `templates/default-role-lineup.md`; confirm one role at a
|
|
22
|
+
time. Never infer identity values.
|
|
23
|
+
5. Run one missing stage in order: Repository Fit → Set Bearings → Gather
|
|
24
|
+
Supplies. The Router holds every owner conversation inline; Gather Supplies
|
|
25
|
+
is a Router-led interview, never dispatched. Dispatch a fresh session only
|
|
26
|
+
for bounded mechanical legwork (mapping, drafting) after stage intent is
|
|
27
|
+
clear, on a cheaper lower-reasoning model than the Router; integrate returns.
|
|
28
|
+
6. Before Map the Route, display each role's primary/fallback, model, reasoning,
|
|
29
|
+
and active/standby/unused state. Ask `Is this a
|
|
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 `How often would you like an independent
|
|
33
|
+
review—per slice, per 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.
|
|
39
|
+
|
|
40
|
+
Return `READY`, `WAITING_ON`, `OWNER_DECISION_REQUIRED`, or `COMPLETE`. Fallback
|
|
41
|
+
follows primary unavailability; both failing returns to owner.
|
|
42
|
+
Allow three evidence-changing corrections. `max_assurance_rounds` is 3 per
|
|
43
|
+
candidate lineage; Direct route checks `assurance_rounds`; Navigator is not required. At the
|
|
44
|
+
bound return `OWNER_DECISION_REQUIRED` naming the candidate and count; new candidate lineage resets;
|
|
45
|
+
release the checkout lease exactly once on `COMPLETE` or `CANCELLED`. Recover by
|
|
46
|
+
explicit recorded generation increment that cannot steal a live lease. Process discovery
|
|
47
|
+
cannot replace the lease. Never implement, self-assure, select models, or publish.
|
|
@@ -11,10 +11,8 @@ copy peer text, runtimes, state stores, or authority assumptions.
|
|
|
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
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 |
|
|
14
|
-
| Navigator | LangChain subagents | central sequencing
|
|
15
|
-
|
|
|
16
|
-
| Explorer | LangChain subagents | bounded worker dispatch and result integration |
|
|
17
|
-
| Sub-Explorer | LangChain subagents | one justified extra context-isolation level |
|
|
14
|
+
| Navigator | LangChain subagents | central sequencing, context isolation, and conflict-aware wave integration |
|
|
15
|
+
| Explorer | LangChain subagents | bounded worker dispatch, proven-independent lane coordination, and result integration |
|
|
18
16
|
| Crewmate | Spec Kit implement step | bounded execution after approved planning |
|
|
19
17
|
| Validator | Spec Kit gate | evidence gate on a stable candidate |
|
|
20
18
|
| Park Ranger | LangChain reviewer subagent | independent defect review with a typed return |
|
|
@@ -11,14 +11,8 @@ flowchart TD
|
|
|
11
11
|
J -->|Explorer Journey: one packet| C[Fresh Crewmate]
|
|
12
12
|
J -->|Explorer Journey: one wave| E[Fresh Explorer]
|
|
13
13
|
J -->|Expedition| N[Fresh Navigator]
|
|
14
|
-
N -->
|
|
15
|
-
|
|
16
|
-
TB -->|no| E
|
|
17
|
-
T --> E
|
|
18
|
-
E --> X{Two or more proven-independent lanes?}
|
|
19
|
-
X -->|yes| SE[Fresh Sub-Explorer]
|
|
20
|
-
SE --> C
|
|
21
|
-
X -->|no| C
|
|
14
|
+
N --> E
|
|
15
|
+
E --> C
|
|
22
16
|
C --> A{Selected cadence boundary?}
|
|
23
17
|
A -->|Validator declared| V[Fresh Validator]
|
|
24
18
|
A -->|Park Ranger declared| PK[Fresh Park Ranger]
|
|
@@ -8,7 +8,7 @@ The project's human-readable plan is the only task-state record. Diagrams explai
|
|
|
8
8
|
| --- | --- | --- |
|
|
9
9
|
| `PROPOSED` | Parent coordinator | Task exists but is not execution-ready |
|
|
10
10
|
| `READY` | Parent coordinator | Dependencies, scope, authority, and route are satisfied |
|
|
11
|
-
| `WAITING_ON` | Parent coordinator | Named prerequisite or independent-assurance dispatch unavailable |
|
|
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
14
|
| `VALIDATING` | Validator | Evidence sufficiency under validation |
|
|
@@ -40,3 +40,21 @@ The project's human-readable plan is the only task-state record. Diagrams explai
|
|
|
40
40
|
- Workers and assurance roles return handoffs; they do not race plan edits.
|
|
41
41
|
- Candidate authors never provide their own Validator, 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
|
+
|
|
44
|
+
## Checkout lease
|
|
45
|
+
|
|
46
|
+
The Router inventories visible nonterminal Journeys and holds one
|
|
47
|
+
generation-bound checkout lease before any planning write or dispatch.
|
|
48
|
+
|
|
49
|
+
- Same checkout plus a live other Journey → `WAITING_ON` with sanitized
|
|
50
|
+
competing Journey and controller. Distinct explicitly approved compatible
|
|
51
|
+
worktrees may proceed.
|
|
52
|
+
- Resume keeps the same generation and must not duplicate dispatch.
|
|
53
|
+
- `COMPLETE` or `CANCELLED` releases the lease exactly once.
|
|
54
|
+
- Stale recovery is explicit, recorded, increments generation, and cannot
|
|
55
|
+
steal a live lease. Forged or stale-generation records fail closed.
|
|
56
|
+
- Branch or HEAD drift from the leased identity stops the transition before
|
|
57
|
+
mutation. Authorized same-Journey candidate progress whose parent is the
|
|
58
|
+
current leased revision refreshes `candidate_revision` on the same
|
|
59
|
+
generation. Foreign controller, branch/worktree, or unrelated HEAD still
|
|
60
|
+
fail closed as `WAITING_ON`.
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
stateDiagram-v2
|
|
2
2
|
[*] --> PROPOSED
|
|
3
3
|
PROPOSED --> READY
|
|
4
|
-
PROPOSED --> WAITING_ON
|
|
4
|
+
PROPOSED --> WAITING_ON: named prerequisite or checkout-lease conflict
|
|
5
5
|
WAITING_ON --> READY: prerequisite satisfied
|
|
6
6
|
WAITING_ON --> EVIDENCE_READY: fresh assurance available
|
|
7
7
|
WAITING_ON --> CANCELLED
|
|
@@ -12,9 +12,7 @@ review_cadence: <per-slice | per-round | at-end>
|
|
|
12
12
|
| --- | --- | --- | --- | --- | --- | --- |
|
|
13
13
|
| Router | OWNER_TO_SET | OWNER_TO_SET | OWNER_TO_SET | OWNER_TO_SET | OWNER_TO_SET | OWNER_TO_SET |
|
|
14
14
|
| Navigator | OWNER_TO_SET | OWNER_TO_SET | OWNER_TO_SET | OWNER_TO_SET | OWNER_TO_SET | OWNER_TO_SET |
|
|
15
|
-
| Trail Boss | OWNER_TO_SET | OWNER_TO_SET | OWNER_TO_SET | OWNER_TO_SET | OWNER_TO_SET | OWNER_TO_SET |
|
|
16
15
|
| Explorer | OWNER_TO_SET | OWNER_TO_SET | OWNER_TO_SET | OWNER_TO_SET | OWNER_TO_SET | OWNER_TO_SET |
|
|
17
|
-
| Sub-Explorer | OWNER_TO_SET | OWNER_TO_SET | OWNER_TO_SET | OWNER_TO_SET | OWNER_TO_SET | OWNER_TO_SET |
|
|
18
16
|
| Crewmate | OWNER_TO_SET | OWNER_TO_SET | OWNER_TO_SET | OWNER_TO_SET | OWNER_TO_SET | OWNER_TO_SET |
|
|
19
17
|
| Validator | OWNER_TO_SET | OWNER_TO_SET | OWNER_TO_SET | OWNER_TO_SET | OWNER_TO_SET | OWNER_TO_SET |
|
|
20
18
|
| Park Ranger | OWNER_TO_SET | OWNER_TO_SET | OWNER_TO_SET | OWNER_TO_SET | OWNER_TO_SET | OWNER_TO_SET |
|
|
@@ -18,6 +18,39 @@ author self-checks. Never infer it from `required_assurance` on an individual
|
|
|
18
18
|
task. `per-round` means after each integrated execution or correction round;
|
|
19
19
|
`at-end` means one review of the final integrated candidate. The Router asks the
|
|
20
20
|
owner to confirm both the applicable lineup and cadence before implementation.
|
|
21
|
+
`lineup_snapshot` is authoritative for this Journey after recording. Later
|
|
22
|
+
edits to `~/.agents/bearing-lite/default-role-lineup.md` have no effect.
|
|
23
|
+
Replace it only through an explicit owner-confirmed dated visible amendment.
|
|
24
|
+
Record the amendment date beside the replacement values. Dispatch identities
|
|
25
|
+
come from this snapshot, not from the current global defaults file.
|
|
26
|
+
|
|
27
|
+
## Checkout lease (record before any planning write)
|
|
28
|
+
|
|
29
|
+
The Router's first write is this visible lease. Inventory nonterminal Journeys
|
|
30
|
+
first. Do not dispatch or write other planning state until the lease is
|
|
31
|
+
`active` for this Journey.
|
|
32
|
+
|
|
33
|
+
```markdown
|
|
34
|
+
- checkout_lease:
|
|
35
|
+
- journey: <Journey id>
|
|
36
|
+
- controller: <Router>
|
|
37
|
+
- repository: <canonical repository>
|
|
38
|
+
- checkout: <worktree or checkout identity>
|
|
39
|
+
- branch: <branch>
|
|
40
|
+
- candidate_revision: <candidate revision>
|
|
41
|
+
- acquired_at: <acquisition time>
|
|
42
|
+
- generation: <positive integer>
|
|
43
|
+
- state: <active | released>
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
Same checkout plus a live other Journey returns `WAITING_ON` with sanitized
|
|
47
|
+
competing Journey and controller identities. Distinct explicitly approved
|
|
48
|
+
compatible worktrees may proceed. Resume keeps the same generation and does
|
|
49
|
+
not duplicate dispatch. Authorized same-Journey candidate progress whose
|
|
50
|
+
parent is the current leased revision refreshes `candidate_revision` on the
|
|
51
|
+
same generation. `COMPLETE` or `CANCELLED` releases the lease exactly
|
|
52
|
+
once. Stale recovery is explicit, recorded, increments generation, and cannot
|
|
53
|
+
steal a live lease. Process discovery cannot replace this durable lease.
|
|
21
54
|
|
|
22
55
|
## Always present
|
|
23
56
|
|
|
@@ -54,9 +87,15 @@ Field rules:
|
|
|
54
87
|
```markdown
|
|
55
88
|
- candidate_ref: <strongest native revision or changed-path reference available>
|
|
56
89
|
- evidence: <commands run, results observed, and inferences labeled separately>
|
|
90
|
+
- assurance_rounds: <0-3 completed assurance rounds for this candidate lineage>
|
|
57
91
|
```
|
|
58
92
|
|
|
59
93
|
`candidate_ref` must not claim stronger provenance than the client can prove.
|
|
94
|
+
`assurance_rounds` counts each candidate version submitted to required assurance
|
|
95
|
+
in one candidate lineage against Bearing Lite `max_assurance_rounds`. A repair
|
|
96
|
+
of the same work stays in the lineage. A new candidate lineage resets the count
|
|
97
|
+
to 0. The parent coordinator writes the count and checks it before redispatched
|
|
98
|
+
assurance.
|
|
60
99
|
|
|
61
100
|
## Waiting or correcting only
|
|
62
101
|
|
package/skills/crewmate/SKILL.md
CHANGED
|
@@ -14,7 +14,8 @@ Lowest mutation authority and highest hands-on work in the Bearing ladder.
|
|
|
14
14
|
## Inputs and match
|
|
15
15
|
|
|
16
16
|
- **Inputs:** approved baseline, objective, dependencies, exact write set,
|
|
17
|
-
authority, acceptance/SEIT rows, commands, cadence, stop rule, return schema
|
|
17
|
+
authority, acceptance/SEIT rows, commands, cadence, stop rule, return schema,
|
|
18
|
+
and lineup identity from the recorded Journey snapshot.
|
|
18
19
|
- **Match:** one packet is `READY` and every input is fixed.
|
|
19
20
|
- **Non-match:** multi-packet coordination, design gaps, missing authority,
|
|
20
21
|
assurance, or owner-only action.
|
|
@@ -22,7 +23,15 @@ Lowest mutation authority and highest hands-on work in the Bearing ladder.
|
|
|
22
23
|
## Algorithm
|
|
23
24
|
|
|
24
25
|
1. Start a fresh session and confirm candidate continuity, boundaries, and clean
|
|
25
|
-
dependency state. Do not infer missing owner choices.
|
|
26
|
+
dependency state. Do not infer missing owner choices. Read dispatch
|
|
27
|
+
identities only from the recorded Journey snapshot, never from the current
|
|
28
|
+
global defaults file. Revalidate the visible checkout
|
|
29
|
+
lease against the approved Journey, repository, checkout/worktree, branch,
|
|
30
|
+
candidate revision, generation, and active state before the first write and
|
|
31
|
+
every mutation. Released, stale-generation, forged, or
|
|
32
|
+
branch/HEAD-drifted leases fail closed. Authorized same-Journey
|
|
33
|
+
candidate progress whose parent is the current leased revision refreshes
|
|
34
|
+
candidate_revision on the same generation. On mismatch, return WAITING_ON without writing.
|
|
26
35
|
2. For a verified contract defect, create the smallest failing regression first.
|
|
27
36
|
3. Make the smallest change that satisfies the packet inside the write set.
|
|
28
37
|
4. Run assigned focused commands and author self-checks. Review cadence never
|
package/skills/explorer/SKILL.md
CHANGED
|
@@ -3,35 +3,50 @@ name: explorer
|
|
|
3
3
|
description: >
|
|
4
4
|
Own one approved execution wave, dispatching bounded fresh-session packets
|
|
5
5
|
and integrating their evidence. Use for Explorer Journey, wave orchestration,
|
|
6
|
-
or parallel packet sequencing. Do not use
|
|
7
|
-
|
|
6
|
+
proven-independent in-wave lanes, or parallel packet sequencing. Do not use
|
|
7
|
+
for implementation, cross-wave work, planning, automatic nesting, or
|
|
8
|
+
independent assurance.
|
|
8
9
|
---
|
|
9
10
|
|
|
10
11
|
# Explorer
|
|
11
12
|
|
|
12
|
-
Wave authority. Coordinates more and implements less than
|
|
13
|
+
Wave authority. Coordinates more and implements less than Crewmate.
|
|
13
14
|
|
|
14
15
|
## Inputs and match
|
|
15
16
|
|
|
16
17
|
- **Inputs:** approved baseline, wave objective, packet graph, dependencies,
|
|
17
|
-
scope, authority, lineup, review cadence,
|
|
18
|
-
|
|
18
|
+
scope, authority, lineup from the recorded Journey snapshot, review cadence,
|
|
19
|
+
acceptance, and return schema.
|
|
20
|
+
- **Match:** one wave needs packet sequencing, dispatch, integration, or
|
|
21
|
+
proven-independent lane coordination.
|
|
19
22
|
- **Non-match:** one bounded packet needs no orchestration, multiple waves
|
|
20
23
|
conflict, or assurance alone is requested.
|
|
21
24
|
|
|
22
25
|
## Algorithm
|
|
23
26
|
|
|
24
27
|
1. Start fresh and verify wave readiness, exact packet boundaries, dependencies,
|
|
25
|
-
and approved primary/fallback identities
|
|
26
|
-
|
|
27
|
-
|
|
28
|
+
and approved primary/fallback identities from the recorded Journey snapshot,
|
|
29
|
+
never from the current global defaults file. Revalidate the visible checkout
|
|
30
|
+
lease against the approved Journey, repository, checkout/worktree, branch,
|
|
31
|
+
candidate revision, generation, and active state before the first write,
|
|
32
|
+
dispatch, or integration. Released, stale-generation, forged, or
|
|
33
|
+
branch/HEAD-drifted leases fail closed. Authorized same-Journey
|
|
34
|
+
candidate progress whose parent is the current leased revision refreshes
|
|
35
|
+
candidate_revision on the same generation. The same valid lease continues
|
|
36
|
+
without duplicate dispatch.
|
|
37
|
+
2. Use direct Crewmates by default. When two or more lanes are proven
|
|
38
|
+
independent, coordinate those lanes directly inside this wave; never add a
|
|
39
|
+
nested coordinator.
|
|
28
40
|
3. Give every node a fresh bounded session. Never pass raw conversation history.
|
|
29
41
|
4. Inspect returns against write sets and acceptance; integrate evidence without
|
|
30
42
|
implementing missing packet work.
|
|
31
43
|
5. Dispatch declared assurance at `per-slice` or after each integrated execution
|
|
32
44
|
or correction round at `per-round`. At `at-end`, an Explorer Journey reviews
|
|
33
45
|
its final wave once; an Expedition wave defers assurance to the Navigator's
|
|
34
|
-
final Journey boundary. Deterministic checks always run.
|
|
46
|
+
final Journey boundary. Deterministic checks always run. Before redispatched
|
|
47
|
+
assurance, honor `max_assurance_rounds` from visible `assurance_rounds`. At
|
|
48
|
+
the bound, return `OWNER_DECISION_REQUIRED` with candidate and count; do not
|
|
49
|
+
dispatch another repair or review. A new candidate lineage resets the count.
|
|
35
50
|
|
|
36
51
|
## Return and recovery
|
|
37
52
|
|
|
@@ -13,8 +13,9 @@ Planning node, not a persona or plan-state writer.
|
|
|
13
13
|
|
|
14
14
|
## Match and inputs
|
|
15
15
|
|
|
16
|
-
- **Match:** a
|
|
17
|
-
|
|
16
|
+
- **Match:** a material scope, behavior, authority, risk, or acceptance
|
|
17
|
+
decision is unresolved. The Explorer-versus-Expedition route choice is not
|
|
18
|
+
gathered here; the Router asks it at the pre-implementation gate.
|
|
18
19
|
- **Non-match:** evidence can answer it, the owner already decided it, or a work
|
|
19
20
|
packet is ready.
|
|
20
21
|
- **Inputs:** goal, visible plan state, repository evidence, prior decisions,
|
|
@@ -25,21 +26,28 @@ Planning node, not a persona or plan-state writer.
|
|
|
25
26
|
1. Inspect the repository and available evidence before asking. Never ask the
|
|
26
27
|
owner for a fact tools can establish.
|
|
27
28
|
2. Select the earliest unresolved decision whose dependencies are satisfied.
|
|
28
|
-
3. Ask exactly one question
|
|
29
|
-
|
|
29
|
+
3. Ask exactly one question, relayed to the owner through the Router. Lead
|
|
30
|
+
with the recommended answer and why, then explain only material
|
|
31
|
+
alternatives and tradeoffs. Wait for the owner.
|
|
30
32
|
4. Challenge vague terms, contradictions, unsafe assumptions, and incomplete
|
|
31
33
|
acceptance. A default, probability, or silence is not approval.
|
|
32
34
|
5. Follow the affected dependency branch. Revisit an earlier answer when new
|
|
33
35
|
evidence conflicts; otherwise do not replay it.
|
|
34
|
-
6.
|
|
35
|
-
|
|
36
|
-
|
|
36
|
+
6. Buffer confirmed decisions in the active session. Do not persist, patch, or
|
|
37
|
+
re-render Journey state after each answer.
|
|
38
|
+
7. Return one consolidated decision batch to the Router at a natural checkpoint:
|
|
39
|
+
the dependency branch is complete, Map the Route is next, handoff/context
|
|
40
|
+
loss is imminent, or the owner requests a flush.
|
|
41
|
+
8. When no material branch remains, summarize the shared interpretation and ask
|
|
42
|
+
for explicit confirmation that shared understanding has been reached; then
|
|
43
|
+
return the final decision batch.
|
|
37
44
|
|
|
38
45
|
## Return and recovery
|
|
39
46
|
|
|
40
47
|
Return `DECISION_CONFIRMED`, `SHARED_UNDERSTANDING_CONFIRMED`,
|
|
41
48
|
`NEEDS_EVIDENCE`, or `OWNER_DECISION_REQUIRED` with decision ID, answer,
|
|
42
|
-
rationale, affected requirements, remaining branch,
|
|
43
|
-
three evidence-changing attempts on one
|
|
49
|
+
rationale, affected requirements, buffered decision count, remaining branch,
|
|
50
|
+
checkpoint, and next action. Stop after three evidence-changing attempts on one
|
|
51
|
+
blocked decision.
|
|
44
52
|
|
|
45
53
|
Never write Journey state, choose for the owner, design, or implement.
|
|
@@ -14,30 +14,33 @@ Fresh planning node. The Router remains the plan-state writer and user contact.
|
|
|
14
14
|
## Inputs and match
|
|
15
15
|
|
|
16
16
|
- **Inputs:** confirmed decisions, repository map, artifact status, requirements,
|
|
17
|
-
owner-selected lineup/cadence, repository rules, and return schema.
|
|
17
|
+
owner-selected route/lineup/cadence, repository rules, and return schema.
|
|
18
18
|
- **Match:** first specification gate or post-approval planning package is missing.
|
|
19
19
|
- **Non-match:** executable tasks already map to current approved artifacts.
|
|
20
20
|
|
|
21
21
|
## Algorithm
|
|
22
22
|
|
|
23
|
-
1. Derive `<journey-topic>-spec.md` from the confirmed title
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
23
|
+
1. Derive and announce `<journey-topic>-spec.md` from the confirmed title;
|
|
24
|
+
require owner input only on ambiguity or collision. Never require generic
|
|
25
|
+
`plan-spec.md`.
|
|
26
|
+
2. Author in dependency order: testable specification, `design.md`, `seit.md`,
|
|
27
|
+
then `implementation.md`. Run prospective checks internally; interrupt the
|
|
28
|
+
owner only when evidence creates a material intent, scope, risk, or authority
|
|
29
|
+
decision.
|
|
30
|
+
3. Generate one complete self-contained offline `review.html` after all four
|
|
31
|
+
artifacts are current. Include implementation, traceability, roles, waves,
|
|
32
|
+
failure/recovery paths, and approval boundaries in that review.
|
|
30
33
|
4. Give every slice stable requirement/design/SEIT IDs, dependencies, exact
|
|
31
34
|
write set, authority, fresh-session role, evidence, recovery, and stop rule.
|
|
32
|
-
5. Copy the confirmed lineup and review cadence into implementation and
|
|
33
|
-
Show named active, standby, and unused role instances.
|
|
34
|
-
6.
|
|
35
|
-
|
|
36
|
-
|
|
35
|
+
5. Copy the confirmed route, lineup, and review cadence into implementation and
|
|
36
|
+
HTML. Show named active, standby, and unused role instances.
|
|
37
|
+
6. Open the exact final HTML, verify its launcher/process, and request one
|
|
38
|
+
integrated owner approval. Use staged owner approvals only when the owner
|
|
39
|
+
explicitly requests them.
|
|
37
40
|
|
|
38
41
|
## Return and recovery
|
|
39
42
|
|
|
40
|
-
Return `
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
43
|
+
Return `PLAN_REVIEW_READY`, `NEEDS_OWNER_DECISION`, or `VALIDATION_FAILED` with
|
|
44
|
+
artifact paths, evidence, blocker, and next action. After approval,
|
|
45
|
+
`review.html` is authoritative. At most three evidence-changing correction
|
|
46
|
+
rounds; never invent approval or implement.
|
|
@@ -76,8 +76,8 @@ placeholders, bare negations, or deferral language.
|
|
|
76
76
|
|
|
77
77
|
## Completion boundary
|
|
78
78
|
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
after owner approval.
|
|
79
|
+
Author specification, design, SEIT, and implementation in that dependency order
|
|
80
|
+
with internal prospective checks. The owner review gate requires all four
|
|
81
|
+
artifacts plus the complete `review.html`; do not insert a specification-only
|
|
82
|
+
owner gate unless the owner explicitly requests staged approvals. The HTML
|
|
83
|
+
becomes authoritative only after integrated owner approval.
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: navigator
|
|
3
3
|
description: >
|
|
4
|
-
Sequence dependency-connected Expedition waves,
|
|
5
|
-
and integration boundaries. Use for Navigator, Expedition, or multi-wave
|
|
4
|
+
Sequence dependency-connected Expedition waves, resolve cross-wave conflicts,
|
|
5
|
+
and own integration boundaries. Use for Navigator, Expedition, or multi-wave
|
|
6
6
|
execution control. Do not use for one packet/wave, product implementation,
|
|
7
7
|
planning-state ownership, model selection, publication, or assurance.
|
|
8
8
|
---
|
|
@@ -14,20 +14,36 @@ Highest execution authority below Router; performs the least hands-on execution.
|
|
|
14
14
|
## Inputs and match
|
|
15
15
|
|
|
16
16
|
- **Inputs:** approved artifacts, wave graph, dependencies, repository scope,
|
|
17
|
-
authority, lineup, review cadence,
|
|
18
|
-
|
|
17
|
+
authority, lineup from the recorded Journey snapshot, review cadence,
|
|
18
|
+
acceptance, and return schema.
|
|
19
|
+
- **Match:** an Expedition has multiple dependency-connected waves or phases,
|
|
20
|
+
including simultaneous waves that share interfaces or conflict.
|
|
19
21
|
- **Non-match:** one Explorer wave or Crewmate packet is sufficient.
|
|
20
22
|
|
|
21
23
|
## Algorithm
|
|
22
24
|
|
|
23
25
|
1. Start fresh and reread the approved specification, design, SEIT,
|
|
24
26
|
implementation, and review baseline. Verify snapshot lineup and cadence.
|
|
25
|
-
|
|
26
|
-
|
|
27
|
+
Read dispatch identities only from the recorded Journey snapshot, never
|
|
28
|
+
from the current global defaults file. Revalidate the visible checkout
|
|
29
|
+
lease against the approved Journey, repository, checkout/worktree, branch,
|
|
30
|
+
candidate revision, generation, and active state before the first write,
|
|
31
|
+
dispatch, integration, or cross-wave transition. Released, stale-generation,
|
|
32
|
+
forged, or branch/HEAD-drifted leases fail closed. Authorized same-Journey
|
|
33
|
+
candidate progress whose parent is the current leased revision refreshes
|
|
34
|
+
candidate_revision on the same generation. The same valid lease
|
|
35
|
+
continues without duplicate dispatch.
|
|
36
|
+
2. Sequence fresh Explorer sessions. For simultaneous waves with
|
|
37
|
+
shared-interface or dependency conflicts, resolve ordering and integration
|
|
38
|
+
here; never add a nested multi-wave controller.
|
|
27
39
|
3. Integrate typed wave returns and correct only sequencing/coverage gaps inside
|
|
28
40
|
approved authority; never perform implementation.
|
|
29
41
|
4. Dispatch independent assurance at the confirmed cadence: every slice, every
|
|
30
42
|
integrated execution/correction round, or only the final integrated outcome.
|
|
43
|
+
Before redispatched assurance, honor `max_assurance_rounds` from visible
|
|
44
|
+
`assurance_rounds`. At the bound, return `OWNER_DECISION_REQUIRED` with
|
|
45
|
+
candidate and count; do not dispatch another repair or review. A new
|
|
46
|
+
candidate lineage resets the count.
|
|
31
47
|
5. Return to the Router after the bounded Expedition outcome; do not silently
|
|
32
48
|
continue into another Journey or protected action.
|
|
33
49
|
|
|
@@ -34,6 +34,10 @@ Independent defect assurance, outside the mutation-authority ladder.
|
|
|
34
34
|
|
|
35
35
|
Return `BLOCK`, `REPAIR_REQUIRED`, `ACCEPT_WITH_FINDINGS`, or `ACCEPT` with
|
|
36
36
|
candidate ref, findings, evidence, verdict, blocker, next action, and receiver.
|
|
37
|
-
|
|
37
|
+
`ACCEPT`, `ACCEPT_WITH_FINDINGS`, and `BLOCK` are terminal. `REPAIR_REQUIRED`
|
|
38
|
+
permits bounded correction. `ACCEPT_WITH_FINDINGS` accepts residual findings;
|
|
39
|
+
do not follow it with another repair. Coordinators enforce
|
|
40
|
+
`max_assurance_rounds`. Review again only after candidate-changing repairs
|
|
41
|
+
when rounds remain.
|
|
38
42
|
|
|
39
43
|
Never edit, self-review, duplicate general review, or grant publication rights.
|
|
@@ -27,7 +27,8 @@ Fresh planning node. It returns evidence; the Router records the decision.
|
|
|
27
27
|
owner evidence with a typed finding.
|
|
28
28
|
4. Propose exactly one repository and one plan-directory assumption with path
|
|
29
29
|
evidence and a short reason.
|
|
30
|
-
5.
|
|
30
|
+
5. Return one owner confirmation question through the Router. A recommendation
|
|
31
|
+
is not confirmation.
|
|
31
32
|
|
|
32
33
|
## Return and recovery
|
|
33
34
|
|
|
@@ -33,8 +33,10 @@ Independent assurance responsibility, outside the mutation-authority ladder.
|
|
|
33
33
|
## Return and recovery
|
|
34
34
|
|
|
35
35
|
Return `PASS`, `NEEDS_MORE_EVIDENCE`, or `FAIL` with candidate ref, criteria,
|
|
36
|
-
evidence, findings, blocker, next action, and receiver.
|
|
37
|
-
|
|
36
|
+
evidence, findings, blocker, next action, and receiver. `PASS` is terminal.
|
|
37
|
+
`NEEDS_MORE_EVIDENCE` and `FAIL` permit bounded correction. Coordinators
|
|
38
|
+
enforce `max_assurance_rounds`; this role does not redispatch. Re-evaluate only
|
|
39
|
+
a new candidate or materially new evidence.
|
|
38
40
|
|
|
39
41
|
Never implement, repeat unchanged review, replace Park Ranger/Surveyor, or
|
|
40
42
|
grant owner-only approval.
|
|
Binary file
|
|
Binary file
|
|
@@ -1,39 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: sub-explorer
|
|
3
|
-
description: >
|
|
4
|
-
Coordinate at least two proven-independent lanes inside one Explorer wave in
|
|
5
|
-
a fresh session. Use for Sub-Explorer or necessary in-wave lane coordination.
|
|
6
|
-
Do not use for one lane, nested Sub-Explorers, implementation, cross-wave
|
|
7
|
-
control, planning, or assurance.
|
|
8
|
-
---
|
|
9
|
-
|
|
10
|
-
# Sub-Explorer
|
|
11
|
-
|
|
12
|
-
Second mutation-authority level; coordinates more and implements less than a
|
|
13
|
-
Crewmate. Maximum one Sub-Explorer level.
|
|
14
|
-
|
|
15
|
-
## Inputs and match
|
|
16
|
-
|
|
17
|
-
- **Inputs:** parent wave, lane boundaries, packet specs, dependencies,
|
|
18
|
-
authority, lineup identities, cadence, and return schema.
|
|
19
|
-
- **Match:** two or more disjoint lanes materially reduce context or conflict.
|
|
20
|
-
- **Non-match:** direct packets suffice, independence is unproven, or another
|
|
21
|
-
Sub-Explorer level is requested.
|
|
22
|
-
|
|
23
|
-
## Algorithm
|
|
24
|
-
|
|
25
|
-
1. Start fresh; verify parent authority, lane disjointness, dependencies, and
|
|
26
|
-
approved primary/fallback identity for each node.
|
|
27
|
-
2. Dispatch fresh Crewmate sessions with only their bounded packet and evidence.
|
|
28
|
-
3. Track returns by packet ID; preserve foreign changes and never write a packet.
|
|
29
|
-
4. Reconcile lane evidence and return conflicts to the Explorer.
|
|
30
|
-
5. Request assurance only at the recorded cadence boundary and only through the
|
|
31
|
-
parent coordinator.
|
|
32
|
-
|
|
33
|
-
## Return and recovery
|
|
34
|
-
|
|
35
|
-
Return `READY`, `REROUTED`, `WAITING_ON`, or `OWNER_DECISION_REQUIRED` with
|
|
36
|
-
plan ref, role, subject, dependencies, scope, authority, evidence, blocker, next
|
|
37
|
-
action, and receiver. Allow three evidence-changing corrections per lane.
|
|
38
|
-
|
|
39
|
-
Never implement, add nesting, expand the wave, or provide assurance.
|
|
@@ -1,40 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: trail-boss
|
|
3
|
-
description: >
|
|
4
|
-
Coordinate concurrent Explorer waves that share interfaces, dependencies, or
|
|
5
|
-
integration conflicts in a fresh session. Use for Trail Boss, cross-wave
|
|
6
|
-
readiness, or integration ordering. Do not use for one wave, packet work,
|
|
7
|
-
planning, model selection, review, grading, or assurance.
|
|
8
|
-
---
|
|
9
|
-
|
|
10
|
-
# Trail Boss
|
|
11
|
-
|
|
12
|
-
Cross-wave authority. Coordinates more and implements less than Explorer.
|
|
13
|
-
|
|
14
|
-
## Inputs and match
|
|
15
|
-
|
|
16
|
-
- **Inputs:** approved wave graph, lane status, shared interfaces, dependencies,
|
|
17
|
-
authority, lineup, cadence, budgets, and return schema.
|
|
18
|
-
- **Match:** at least two active Explorer waves require conflict or integration
|
|
19
|
-
control.
|
|
20
|
-
- **Non-match:** one Explorer can sequence all work or the request is execution
|
|
21
|
-
or assurance.
|
|
22
|
-
|
|
23
|
-
## Algorithm
|
|
24
|
-
|
|
25
|
-
1. Start fresh; verify every wave owner, dependency edge, shared interface, and
|
|
26
|
-
candidate boundary.
|
|
27
|
-
2. Schedule readiness and integration order. Serialize conflicting writes;
|
|
28
|
-
allow parallel waves only when independence is proven.
|
|
29
|
-
3. Dispatch fresh Explorer sessions with bounded wave packets and named lineup.
|
|
30
|
-
4. Reconcile typed returns and surface interface drift without repairing it.
|
|
31
|
-
5. Tell the Navigator when the cadence boundary is ready for assurance; never
|
|
32
|
-
create an extra review round.
|
|
33
|
-
|
|
34
|
-
## Return and recovery
|
|
35
|
-
|
|
36
|
-
Return `READY`, `REROUTED`, `WAITING_ON`, or `OWNER_DECISION_REQUIRED` with
|
|
37
|
-
plan ref, role, subject, dependencies, scope, authority, evidence, blocker, next
|
|
38
|
-
action, and receiver. Try at most three evidence-changing schedules.
|
|
39
|
-
|
|
40
|
-
Never implement, absorb Explorer work, self-assure, or expand authority.
|