@etiquekit/etq 1.0.14 → 1.0.15
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/AGENTS.md +26 -19
- package/LICENSE +3 -2
- package/NOTICE +4 -6
- package/QuickStart.md +46 -35
- package/README.md +56 -56
- package/bin/etiquette +5 -1
- package/bin/etiquette-core +5 -1
- package/docs/ARCHITECTURE.md +17 -20
- package/docs/CONCEPTS.md +5 -5
- package/docs/CORE_PROFILE.md +15 -7
- package/docs/LANE_PROVISIONING.md +2 -7
- package/docs/README.md +14 -13
- package/docs/RELEASE_SURFACE_AUDIT.md +7 -8
- package/docs/SEAT_DISCIPLINE.md +91 -55
- package/docs/SEAT_PROVISIONING.md +19 -16
- package/docs/TEAM_HANDOFF.md +21 -21
- package/docs/WORKTREE_QOL.md +0 -7
- package/docs/contracts/ledger-entry/README.md +11 -11
- package/docs/contracts/ledger-entry/ledger-entry.v0.2.md +2 -2
- package/docs/contracts/ledger-entry/ledger-entry.v0.md +8 -8
- package/lib/etiquette-core.js +313 -0
- package/lib/etiquette.js +1151 -0
- package/package.json +11 -10
- package/templates/etiquette-vanilla-v0/README.md +3 -2
- package/templates/etiquette-vanilla-v0/source/control-seat/README.md +6 -0
- package/templates/etiquette-vanilla-v0/source/control-seat/bin/access-assurance-check +55 -0
- package/templates/etiquette-vanilla-v0/source/control-seat/bin/seat-doctor +5 -0
- package/templates/etiquette-vanilla-v0/source/control-seat/docs/work/access/ACCESS-ASSURANCE.md +39 -0
- package/templates/etiquette-vanilla-v0/source/control-seat/docs/work/access/workspace-secure-profile.v0.json +53 -0
- package/templates/etiquette-vanilla-v0/validate-vanilla.sh +5 -0
- package/templates/hosted-receiver/README.md +41 -0
- package/templates/hosted-receiver/w1-github-webhook-receiver.mjs +129 -0
- package/templates/seat-packs-v0/README.md +2 -3
- package/templates/seat-packs-v0/source/claude-code-seat/README.md +3 -3
- package/templates/seat-packs-v0/source/codex-seat/README.md +3 -3
- package/templates/seat-packs-v0/source/gemini-seat/README.md +3 -3
- package/templates/seat-packs-v0/source/ollama-seat/README.md +3 -3
- package/templates/seat-packs-v0/source/openrouter-seat/README.md +3 -3
- package/docs/CONCEPT_STATUS.md +0 -66
- package/packages/control/src/authority/lease.ts +0 -261
- package/packages/control/src/authority/node-delegation.ts +0 -257
- package/packages/control/src/authority/rig-conductor.ts +0 -632
- package/packages/control/src/cli/argv.ts +0 -155
- package/packages/control/src/cli/commands/console.ts +0 -200
- package/packages/control/src/cli/commands/dispatch-core.ts +0 -89
- package/packages/control/src/cli/commands/dispatch.ts +0 -279
- package/packages/control/src/cli/commands/harness.ts +0 -89
- package/packages/control/src/cli/commands/hook.ts +0 -50
- package/packages/control/src/cli/commands/ledger.ts +0 -91
- package/packages/control/src/cli/commands/local-workflow.ts +0 -4690
- package/packages/control/src/cli/commands/memory.ts +0 -445
- package/packages/control/src/cli/commands/release.ts +0 -108
- package/packages/control/src/cli/commands/rubric.ts +0 -103
- package/packages/control/src/cli/commands/seat.ts +0 -179
- package/packages/control/src/cli/commands/session.ts +0 -127
- package/packages/control/src/cli/commands/supervision.ts +0 -246
- package/packages/control/src/cli/commands/sync.ts +0 -119
- package/packages/control/src/cli/commands/workflow.ts +0 -86
- package/packages/control/src/cli/commands/workspace.ts +0 -50
- package/packages/control/src/cli/core-usage.ts +0 -34
- package/packages/control/src/cli/prompt.ts +0 -67
- package/packages/control/src/cli/supervision-deps.ts +0 -44
- package/packages/control/src/cli/usage.ts +0 -241
- package/packages/control/src/cli.ts +0 -207
- package/packages/control/src/core-cli.ts +0 -50
- package/packages/control/src/dispatch/decision.ts +0 -202
- package/packages/control/src/dispatch/projection.ts +0 -293
- package/packages/control/src/dispatch/record.ts +0 -153
- package/packages/control/src/engagement/project.ts +0 -170
- package/packages/control/src/fs.ts +0 -19
- package/packages/control/src/harness/pruning.ts +0 -406
- package/packages/control/src/hooks/dispatcher.ts +0 -117
- package/packages/control/src/hooks/outbox.ts +0 -86
- package/packages/control/src/hooks/sanitize.ts +0 -6
- package/packages/control/src/hooks/types.ts +0 -34
- package/packages/control/src/index.ts +0 -384
- package/packages/control/src/ledger/entry.ts +0 -303
- package/packages/control/src/ledger/indexer.ts +0 -542
- package/packages/control/src/memory/context.ts +0 -149
- package/packages/control/src/memory/drain-import.ts +0 -207
- package/packages/control/src/memory/indexer.ts +0 -284
- package/packages/control/src/memory/query.ts +0 -75
- package/packages/control/src/memory/sanitize.ts +0 -50
- package/packages/control/src/memory/sharded-drain-import.ts +0 -212
- package/packages/control/src/memory/status.ts +0 -211
- package/packages/control/src/memory/store-lifecycle.ts +0 -509
- package/packages/control/src/memory/store.ts +0 -284
- package/packages/control/src/memory/types.ts +0 -146
- package/packages/control/src/parity/surfaces.ts +0 -748
- package/packages/control/src/project.ts +0 -141
- package/packages/control/src/projection/local-ledger-view.ts +0 -373
- package/packages/control/src/projection/return-enforcement.ts +0 -48
- package/packages/control/src/projection/timeline-preview.ts +0 -539
- package/packages/control/src/projection/timeline.ts +0 -708
- package/packages/control/src/release/readiness.ts +0 -842
- package/packages/control/src/rubric/loader.ts +0 -326
- package/packages/control/src/rubric/promotion.ts +0 -54
- package/packages/control/src/rubric/runner.ts +0 -159
- package/packages/control/src/rubric/types.ts +0 -158
- package/packages/control/src/seat/owner-card.ts +0 -388
- package/packages/control/src/seat/readiness.ts +0 -834
- package/packages/control/src/session/runbook.ts +0 -431
- package/packages/control/src/shared/sanitize.ts +0 -49
- package/packages/control/src/supervision/action-classes.ts +0 -192
- package/packages/control/src/supervision/command-apply.ts +0 -378
- package/packages/control/src/supervision/errors.ts +0 -14
- package/packages/control/src/supervision/event-replay.ts +0 -155
- package/packages/control/src/supervision/events.ts +0 -109
- package/packages/control/src/supervision/index.ts +0 -16
- package/packages/control/src/supervision/manifest.ts +0 -127
- package/packages/control/src/supervision/paths.ts +0 -49
- package/packages/control/src/supervision/projection-adapter.ts +0 -274
- package/packages/control/src/supervision/projection.ts +0 -75
- package/packages/control/src/supervision/rebuild.ts +0 -99
- package/packages/control/src/supervision/session-open.ts +0 -131
- package/packages/control/src/supervision/session-read.ts +0 -99
- package/packages/control/src/supervision/sqlite-impl.ts +0 -71
- package/packages/control/src/supervision/sqlite.ts +0 -121
- package/packages/control/src/supervision/store-rows.ts +0 -371
- package/packages/control/src/supervision/turn-close.ts +0 -154
- package/packages/control/src/supervision/turn-open.ts +0 -284
- package/packages/control/src/sync/event-log-merge-driver.ts +0 -263
- package/packages/control/src/sync/join-plan.ts +0 -375
- package/packages/control/src/sync/outbox.ts +0 -492
- package/packages/control/src/workflow/evaluator.ts +0 -140
- package/packages/control/src/workflow/loader.ts +0 -200
- package/packages/control/src/workflow/types.ts +0 -90
- package/packages/control/src/workspace/authority.ts +0 -499
- package/packages/protocol/src/guards.ts +0 -119
- package/packages/protocol/src/huddle-board.ts +0 -198
- package/packages/protocol/src/huddle.ts +0 -295
- package/packages/protocol/src/incident.ts +0 -251
- package/packages/protocol/src/index.ts +0 -8
- package/packages/protocol/src/interfaces.ts +0 -107
- package/packages/protocol/src/packet-profile.ts +0 -195
- package/packages/protocol/src/state.ts +0 -81
- package/packages/protocol/src/types.ts +0 -434
- package/release/lineage.v0.json +0 -15
- package/scripts/release-candidate-verify.sh +0 -175
- package/scripts/release-checksum.sh +0 -25
- package/scripts/release-pack-canary.sh +0 -97
- package/scripts/release-scan.sh +0 -249
- package/scripts/release-sign.sh +0 -34
|
@@ -34,7 +34,6 @@ docs_default:
|
|
|
34
34
|
- docs/ARCHITECTURE.md
|
|
35
35
|
- docs/CODEX_CLIENT_COMPATIBILITY.md
|
|
36
36
|
- docs/CONCEPTS.md
|
|
37
|
-
- docs/CONCEPT_STATUS.md
|
|
38
37
|
- docs/CORE_PROFILE.md
|
|
39
38
|
- docs/LANE_PROVISIONING.md
|
|
40
39
|
- docs/SEAT_DISCIPLINE.md
|
|
@@ -91,10 +90,10 @@ internal_templates:
|
|
|
91
90
|
posture: excluded from new-seat onboarding
|
|
92
91
|
|
|
93
92
|
package_surface:
|
|
94
|
-
npm_pack_entries:
|
|
93
|
+
npm_pack_entries: 182
|
|
95
94
|
max_budget: 190
|
|
96
95
|
posture: local devkit package plus signed user-local installer
|
|
97
|
-
distribution_origin: https://
|
|
96
|
+
distribution_origin: https://etiquette.example.com
|
|
98
97
|
excludes: workspace package metadata, workspace fixtures, internal, conformance, apps, site, dist, hosted parity docs, portal docs, root kernel manuals
|
|
99
98
|
```
|
|
100
99
|
|
|
@@ -113,7 +112,7 @@ required:
|
|
|
113
112
|
## What Is Not Necessary For All Developers
|
|
114
113
|
|
|
115
114
|
Runtime seat packs, sample-product rehearsals, v3 workflow helper docs, satellite
|
|
116
|
-
operator docs, advisory-signal experiments, and internal
|
|
115
|
+
operator docs, supervision phase docs, advisory-signal experiments, and internal
|
|
117
116
|
templates may remain in the repo for maintainers. The default onboarding path
|
|
118
117
|
must not require them.
|
|
119
118
|
|
|
@@ -126,7 +125,7 @@ blocked:
|
|
|
126
125
|
- personal absolute paths
|
|
127
126
|
- local username markers
|
|
128
127
|
- old repo name
|
|
129
|
-
- shop
|
|
128
|
+
- shop-persona markers in the release rollout package
|
|
130
129
|
- prior-run markers in all-developer docs
|
|
131
130
|
- extra files under docs/
|
|
132
131
|
- unexpected public template directories
|
|
@@ -142,7 +141,7 @@ npm run release:scan
|
|
|
142
141
|
|
|
143
142
|
## Package Readiness Check
|
|
144
143
|
|
|
145
|
-
Use `etiquette release readiness --json` before changing distribution settings. It
|
|
144
|
+
Use `etiquette release readiness --json` before changing distribution settings. It reports private-package, files allowlist, pack-canary, checksum/signature, shell-installer presence, pinned public-key bootstrap support, Codex compatibility, and wrapper gaps; it cannot publish, flip `private`, update Codex, or create a channel.
|
|
146
145
|
Codex-backed remote-runtime, plugin-MCP, and hook/action-auth canaries require CLI `0.141.0`+ (`docs/CODEX_CLIENT_COMPATIBILITY.md`). GA additionally runs `etiquette release ga-readiness --channel shell-installer,npm --tag-free-confirmed --json`; it requires a non-prerelease version, final tarball checksums, trusted RSA signature, private-compatible channels, and explicit remote-tag uniqueness confirmation, while still unable to publish, sign, tag, or create a channel. Git source archives must exclude maintainer-only `internal/`, `conformance/`, `site/`, `fixtures/`, `apps/`, local state, and `dist/`.
|
|
147
146
|
|
|
148
147
|
## Local-Thin Purge (v0.2.1)
|
|
@@ -151,6 +150,6 @@ Codex-backed remote-runtime, plugin-MCP, and hook/action-auth canaries require C
|
|
|
151
150
|
excluded_cli_commands: [remote, agent-plane, mcp, parity, linear, integration] # guarded stubs explain absence
|
|
152
151
|
excluded_source_dirs: [agent-plane/, integration/, linear/, mcp/] # parity/ ships (console dependency)
|
|
153
152
|
excluded_templates: [hosted-receiver/]
|
|
154
|
-
removed_from_templates: [
|
|
155
|
-
doctrine: local
|
|
153
|
+
removed_from_templates: [codex-seat etiquette-monitor-pull] # use `etiquette notify poll`
|
|
154
|
+
doctrine: local set stays thin and provider-neutral; remote/hosted surfaces are source-only until remote lanes open; zero coordination-bus coupling ships
|
|
156
155
|
```
|
package/docs/SEAT_DISCIPLINE.md
CHANGED
|
@@ -1,19 +1,79 @@
|
|
|
1
1
|
# Seat Discipline
|
|
2
2
|
|
|
3
3
|
Seat discipline keeps agent work useful, attributable, and portable across
|
|
4
|
-
runtimes.
|
|
4
|
+
runtimes. Mechanics say what to do; discipline says when to distrust yourself.
|
|
5
|
+
It is organized by moment of need, not by topic.
|
|
6
|
+
|
|
7
|
+
## On Wake
|
|
8
|
+
|
|
9
|
+
- Orient before acting: `whereami`, then the task envelope, then the runbook.
|
|
10
|
+
- Read tiered: status line first, then the exact entry, then the full
|
|
11
|
+
artifact. Never bulk-load directories for "context" — load the specific
|
|
12
|
+
receipt you were pointed to.
|
|
13
|
+
|
|
14
|
+
## Before Claiming Anything
|
|
15
|
+
|
|
16
|
+
- Verify at claim time: re-read the source at the moment you assert it,
|
|
17
|
+
never from memory of an earlier read. A cited manifest or spec is read in
|
|
18
|
+
the same act as the claim.
|
|
19
|
+
- Check the live tip, not your notes: logs and board notes lag integrations.
|
|
20
|
+
- When another seat or a human holds the ground truth, ask — do not
|
|
21
|
+
solo-reconstruct their state.
|
|
22
|
+
|
|
23
|
+
## Before Writing
|
|
24
|
+
|
|
25
|
+
- Read the machine fields, not the title: the envelope's mode and allowed
|
|
26
|
+
writes decide what a task may do; prose is not authority.
|
|
27
|
+
- Search the exact target surface before classifying work as new — most
|
|
28
|
+
"add X" tasks are "finish the X that half-exists."
|
|
29
|
+
- One writer per canonical mutation. Design in parallel; mutate single-file.
|
|
30
|
+
|
|
31
|
+
## While Working
|
|
32
|
+
|
|
33
|
+
- Technical register on the record: schemas, fields, commands, refs.
|
|
34
|
+
Metaphor and personality stay in chat; the record is for the next reader.
|
|
35
|
+
- No person or vendor names in artifacts. Attribute external material at the
|
|
36
|
+
moment of incorporation, with license.
|
|
37
|
+
- One meaningful update per note, reader-resolvable without tooling. Write
|
|
38
|
+
runbook notes, not raw transcript dumps.
|
|
39
|
+
|
|
40
|
+
## Before Returning
|
|
41
|
+
|
|
42
|
+
- Receipt first: outcome, changed files, validation command and result,
|
|
43
|
+
blockers, next owner. No raw logs — cite paths to them.
|
|
44
|
+
- Run validation before returning the receipt. A red validation is reported
|
|
45
|
+
red; "done" without proof is a defect, not a return.
|
|
46
|
+
- If your change altered a source shape, refresh its recorded evidence in
|
|
47
|
+
the same commit.
|
|
48
|
+
- Run post-commit hygiene (`git diff --check HEAD~..HEAD`) — pre-commit
|
|
49
|
+
checks miss freshly added files.
|
|
50
|
+
|
|
51
|
+
## On Review
|
|
52
|
+
|
|
53
|
+
- Verify the shipped artifact, not the branch state you remember.
|
|
54
|
+
- Reviews return evidence, never authority: confirm, counter, or advise.
|
|
55
|
+
A reviewer packet does not mutate the lane it reviews.
|
|
56
|
+
- Accepted review is different from integrated work.
|
|
57
|
+
- Proposals carry their own counter-arguments and open questions — invite
|
|
58
|
+
the pressure test.
|
|
59
|
+
|
|
60
|
+
## At Authority Edges
|
|
61
|
+
|
|
62
|
+
- Stop when authority is unclear, validation cannot run, writes would exceed
|
|
63
|
+
the envelope, a secret appears, or the session is unbounded.
|
|
64
|
+
- Never claim work was authorized without decision language from the
|
|
65
|
+
authority holder. Enthusiasm is not routing.
|
|
66
|
+
- Risk-tier your own gates: proceed on cheap-and-reversible; insist on a
|
|
67
|
+
real decision for irreversible, authority-changing, or spend actions.
|
|
68
|
+
Gating everything trains the rubber-stamp.
|
|
69
|
+
- Promote only through the policy-resolved gate.
|
|
70
|
+
- Memory proposes. Ledgers authorize. Receipts prove. Audit accounts.
|
|
5
71
|
|
|
6
|
-
##
|
|
72
|
+
## When Blocked
|
|
7
73
|
|
|
8
|
-
-
|
|
9
|
-
|
|
10
|
-
-
|
|
11
|
-
- Write useful runbook notes, not raw transcript dumps.
|
|
12
|
-
- Run validation before returning a receipt.
|
|
13
|
-
- Keep receipts compact and cited.
|
|
14
|
-
- Treat accepted review as different from integrated work.
|
|
15
|
-
- Promote only through the policy-resolved gate.
|
|
16
|
-
- Stop when authority, secrets, scope, or validation are unclear.
|
|
74
|
+
- Use the diagnostics verbs before hand-debugging; walk the recovery path
|
|
75
|
+
from the user's seat before declaring a state recoverable.
|
|
76
|
+
- Escalate with a concrete blocker, not a vibe. Quiet is not a finding.
|
|
17
77
|
|
|
18
78
|
## Identity Split
|
|
19
79
|
|
|
@@ -27,54 +87,30 @@ repo_substrate: source, ledger, receipts, validation, commits
|
|
|
27
87
|
|
|
28
88
|
## Work Boundaries
|
|
29
89
|
|
|
30
|
-
A seat should know:
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
- validation commands;
|
|
35
|
-
- stop conditions;
|
|
36
|
-
- expected receipt;
|
|
37
|
-
- next owner.
|
|
38
|
-
|
|
39
|
-
If any of those are missing, ask for a sharper task.
|
|
40
|
-
|
|
41
|
-
## Session Hygiene
|
|
42
|
-
|
|
43
|
-
Sessions are for bounded work. Restoring a session restores context, not
|
|
44
|
-
authority.
|
|
45
|
-
|
|
46
|
-
Before a resumed, interrupted, role-swapped, runner-swapped, or cwd-swapped
|
|
47
|
-
session picks up work, rebind it to the current ledger and task surface:
|
|
48
|
-
|
|
49
|
-
- verify the project, workflow, task, seat, branch, and worktree;
|
|
50
|
-
- verify the routing surface and evidence surface;
|
|
51
|
-
- stop or ignore stale watchers from the old workflow;
|
|
52
|
-
- run readiness only after the rebind is clean.
|
|
53
|
-
|
|
54
|
-
Rebind applies to every runtime. It keeps Codex, Claude Code, Gemini,
|
|
55
|
-
OpenRouter, local shell, and hosted runners from carrying stale context into the
|
|
56
|
-
wrong repo.
|
|
57
|
-
|
|
58
|
-
## Review Discipline
|
|
59
|
-
|
|
60
|
-
Review seats should pressure-test hidden authority changes, missing validation,
|
|
61
|
-
oversized write sets, stale assumptions, unbounded sessions, evidence that
|
|
62
|
-
cannot be reproduced, and claims that should be receipts.
|
|
63
|
-
|
|
64
|
-
Reviewers contribute evidence. The routed owner mutates truth.
|
|
90
|
+
A seat should know: allowed writes; forbidden writes; validation commands;
|
|
91
|
+
stop conditions; expected receipt; next owner. If any are missing, ask for a
|
|
92
|
+
sharper task. Sessions are for bounded work; restoring a session restores
|
|
93
|
+
context, not authority.
|
|
65
94
|
|
|
66
95
|
## Tool Discipline
|
|
67
96
|
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
authentication.
|
|
71
|
-
|
|
72
|
-
Do not let any of them become acceptance.
|
|
97
|
+
Chat is conversation, planning tools are intent, code review tools are diffs
|
|
98
|
+
and CI, incident tools are runtime evidence, identity providers are
|
|
99
|
+
authentication. None of them are acceptance.
|
|
73
100
|
|
|
74
101
|
## Failure Signals
|
|
75
102
|
|
|
76
103
|
Open a follow-up or stop the run when a seat edits outside allowed writes,
|
|
77
|
-
validation repeatedly fails, the runbook grows without a receipt, a task
|
|
78
|
-
unrelated repos, a runtime claims success without evidence, a
|
|
79
|
-
disagrees with git, a grant owner is unclear, or an integration
|
|
80
|
-
or promote work.
|
|
104
|
+
validation repeatedly fails, the runbook grows without a receipt, a task
|
|
105
|
+
spans unrelated repos, a runtime claims success without evidence, a
|
|
106
|
+
projection disagrees with git, a grant owner is unclear, or an integration
|
|
107
|
+
tries to close or promote work.
|
|
108
|
+
|
|
109
|
+
## Growing Local Discipline
|
|
110
|
+
|
|
111
|
+
This document ships the judgment that is true everywhere. Your team's own
|
|
112
|
+
calibration — which seats are strong where, which tools misbehave, which
|
|
113
|
+
routes need a second look — is grown locally: when a correction lands, record
|
|
114
|
+
it as one small note with why and how-to-apply, index it, and re-read it at
|
|
115
|
+
the moment you would otherwise repeat the mistake. Corrections that are never
|
|
116
|
+
recorded are corrections you will pay for twice.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# Seat Provisioning
|
|
2
2
|
|
|
3
|
-
Start with one project owner
|
|
3
|
+
Start with one project owner and one review seat. Add runtime-specific seats only when a concrete task needs them. Use [LANE_PROVISIONING.md](LANE_PROVISIONING.md) when a manager needs to route active work, park future work, or give a new agent a complete pickup bulletin.
|
|
4
4
|
|
|
5
5
|
## Minimal Flow
|
|
6
6
|
|
|
@@ -8,22 +8,21 @@ Start with one project owner. Add review, QA, or runtime-specific seats only whe
|
|
|
8
8
|
2. Initialize the project with `bootstrap local`.
|
|
9
9
|
3. Read `AGENTS.md`, `BOARD.md`, `SESSION_PICKUP.md`, and `SEAT_OPERATING_MANUAL.md`.
|
|
10
10
|
4. Run `whereami`, `doctor`, and `status`.
|
|
11
|
-
5. Confirm the lead
|
|
12
|
-
6.
|
|
13
|
-
7.
|
|
14
|
-
8.
|
|
15
|
-
9.
|
|
16
|
-
10.
|
|
17
|
-
11. Record a receipt before asking for promotion.
|
|
11
|
+
5. Confirm the lead and review seats.
|
|
12
|
+
6. Use `$etiquette-seat-lifecycle` before pickup after stale context, resume, runner/model/profile swaps, or workflow migration.
|
|
13
|
+
7. Have the lead seat `join` and `pickup` the first generated task.
|
|
14
|
+
8. Add extra sessions only when starter sessions are not enough.
|
|
15
|
+
9. Give each seat its allowed writes and validation.
|
|
16
|
+
10. Record a receipt before asking for promotion.
|
|
18
17
|
|
|
19
18
|
```sh
|
|
20
19
|
etiquette setup --target codex --project "$PWD"
|
|
21
|
-
etiquette bootstrap local --project "$PWD" --task-prefix APP
|
|
22
|
-
etiquette whereami --project "$PWD" --seat
|
|
20
|
+
etiquette bootstrap local --project "$PWD" --profile codex-cc-gemini --task-prefix APP
|
|
21
|
+
etiquette whereami --project "$PWD" --seat codex-seat --task APP-001
|
|
23
22
|
etiquette doctor --project "$PWD"
|
|
24
23
|
etiquette status --project "$PWD"
|
|
25
|
-
etiquette join --project "$PWD" --seat
|
|
26
|
-
etiquette pickup --project "$PWD" --seat
|
|
24
|
+
etiquette join --project "$PWD" --seat codex-seat
|
|
25
|
+
etiquette pickup --project "$PWD" --seat codex-seat --task APP-001 --text
|
|
27
26
|
etiquette console board --project "$PWD" --text
|
|
28
27
|
```
|
|
29
28
|
|
|
@@ -34,8 +33,8 @@ Use `control_seat` for local workflow ownership, `execution_seat` for bounded im
|
|
|
34
33
|
## Greenfield Setup
|
|
35
34
|
|
|
36
35
|
```sh
|
|
37
|
-
etiquette bootstrap local --project "$PWD" --task-prefix FOOD \
|
|
38
|
-
--lead-seat impl-seat --lead-principal developer-1
|
|
36
|
+
etiquette bootstrap local --project "$PWD" --profile codex-cc-gemini --task-prefix FOOD \
|
|
37
|
+
--lead-seat impl-seat --lead-principal developer-1 --review-seat review-seat --review-principal reviewer-1
|
|
39
38
|
```
|
|
40
39
|
|
|
41
40
|
```sh
|
|
@@ -44,7 +43,11 @@ etiquette join --project "$PWD" --seat impl-seat
|
|
|
44
43
|
etiquette pickup --project "$PWD" --seat impl-seat --task FOOD-001 --text
|
|
45
44
|
```
|
|
46
45
|
|
|
47
|
-
The starter runbook is enough for normal pickup. Use `session create` only when an extra ad hoc session needs a different scope.
|
|
46
|
+
The starter runbook is enough for normal pickup. Use `session create` only when an extra ad hoc session needs a different scope.
|
|
47
|
+
|
|
48
|
+
The lead seat coordinates. The review seat pressure-tests. Neither gets merge or promotion authority unless policy grants it.
|
|
49
|
+
|
|
50
|
+
Hooks, readiness, and lifecycle preflight are evidence only. The task envelope and allowed writes remain the active work authority.
|
|
48
51
|
|
|
49
52
|
## Child Runners
|
|
50
53
|
|
|
@@ -74,7 +77,7 @@ For bounded, cursor-based wake checks on any seat, use the portable core command
|
|
|
74
77
|
```sh
|
|
75
78
|
etiquette seat readiness \
|
|
76
79
|
--project "$PWD" \
|
|
77
|
-
--seat
|
|
80
|
+
--seat codex-seat \
|
|
78
81
|
--seat-type execution_seat \
|
|
79
82
|
--execution-surface codex \
|
|
80
83
|
--capability-source local_validation \
|
package/docs/TEAM_HANDOFF.md
CHANGED
|
@@ -17,10 +17,10 @@ package. The CLI lives in the developer's user-local install root.
|
|
|
17
17
|
|
|
18
18
|
The manager provides release version, installer URL or path, release base URL
|
|
19
19
|
or local release directory, release public key, project repo or greenfield
|
|
20
|
-
name, lead seat, and first task prefix.
|
|
21
|
-
the first assignment needs them.
|
|
20
|
+
name, lead seat, review seat, and first task prefix.
|
|
22
21
|
|
|
23
|
-
Default starter profile:
|
|
22
|
+
Default starter profile: lead `codex-seat`, review `cc-seat`, bootstrap
|
|
23
|
+
`manager-seat`, task prefix `APP`.
|
|
24
24
|
|
|
25
25
|
## Install CLI
|
|
26
26
|
|
|
@@ -100,8 +100,8 @@ git commit -m "chore: baseline empty workspace"
|
|
|
100
100
|
## Bootstrap Local Etiquette
|
|
101
101
|
|
|
102
102
|
```sh
|
|
103
|
-
etiquette handoff --project "$PWD" --task-prefix APP
|
|
104
|
-
etiquette bootstrap local --project "$PWD" --task-prefix APP
|
|
103
|
+
etiquette handoff --project "$PWD" --profile codex-cc-gemini --task-prefix APP
|
|
104
|
+
etiquette bootstrap local --project "$PWD" --profile codex-cc-gemini --task-prefix APP
|
|
105
105
|
etiquette doctor --project "$PWD"
|
|
106
106
|
etiquette console board --project "$PWD" --text
|
|
107
107
|
```
|
|
@@ -123,38 +123,38 @@ git commit -m "chore: bootstrap etiquette workspace"
|
|
|
123
123
|
Lead seat:
|
|
124
124
|
|
|
125
125
|
```sh
|
|
126
|
-
etiquette whereami --project "$PWD" --seat
|
|
127
|
-
etiquette join --project "$PWD" --seat
|
|
128
|
-
etiquette pickup --project "$PWD" --seat
|
|
126
|
+
etiquette whereami --project "$PWD" --seat codex-seat --task APP-001
|
|
127
|
+
etiquette join --project "$PWD" --seat codex-seat
|
|
128
|
+
etiquette pickup --project "$PWD" --seat codex-seat --task APP-001 --text
|
|
129
129
|
```
|
|
130
130
|
|
|
131
|
-
|
|
131
|
+
Review seat:
|
|
132
132
|
|
|
133
133
|
```sh
|
|
134
|
-
etiquette whereami --project "$PWD" --seat
|
|
135
|
-
etiquette join --project "$PWD" --seat
|
|
136
|
-
etiquette pickup --project "$PWD" --seat
|
|
134
|
+
etiquette whereami --project "$PWD" --seat cc-seat --task APP-002
|
|
135
|
+
etiquette join --project "$PWD" --seat cc-seat
|
|
136
|
+
etiquette pickup --project "$PWD" --seat cc-seat --task APP-002 --text
|
|
137
137
|
```
|
|
138
138
|
|
|
139
|
-
|
|
140
|
-
read-only sequence as the CLI. The portable form is:
|
|
139
|
+
Inside Codex sessions that have the pickup skill installed:
|
|
141
140
|
|
|
142
141
|
```sh
|
|
143
|
-
etiquette
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
142
|
+
~/.codex/skills/etiquette-seat-pickup/scripts/seat-pickup.sh \
|
|
143
|
+
--project "$PWD" \
|
|
144
|
+
--seat codex-seat \
|
|
145
|
+
--task APP-001 \
|
|
146
|
+
--etq "$(command -v etiquette)"
|
|
147
147
|
```
|
|
148
148
|
|
|
149
|
-
|
|
150
|
-
|
|
149
|
+
The wrapper prints board, feed, inbox, task envelope, and session runbook. It is
|
|
150
|
+
a convenience reader, not authority.
|
|
151
151
|
|
|
152
152
|
## Local Wake
|
|
153
153
|
|
|
154
154
|
Seats can refresh their repo-local queue before pickup or review:
|
|
155
155
|
|
|
156
156
|
```sh
|
|
157
|
-
etiquette notify poll --project "$PWD" --seat
|
|
157
|
+
etiquette notify poll --project "$PWD" --seat codex-seat --text
|
|
158
158
|
```
|
|
159
159
|
|
|
160
160
|
The queue is a local pointer cache over `.etiquette/events/local.ndjson`. It is
|
package/docs/WORKTREE_QOL.md
CHANGED
|
@@ -43,13 +43,6 @@ current directory, choose the current directory only when it is the intended
|
|
|
43
43
|
project worktree for the task. Do not resume a repo-local task inside a global
|
|
44
44
|
coordination repo or unrelated workspace.
|
|
45
45
|
|
|
46
|
-
## Seat Rebind
|
|
47
|
-
|
|
48
|
-
After TUI/cmux cutoff, cold restart, role/task change, runner/model/vendor swap,
|
|
49
|
-
or directory ambiguity, verify `whereami --json`, `doctor`, `bus status 8`,
|
|
50
|
-
branch, and worktree before pickup. Then run lifecycle readiness. Rebind grants
|
|
51
|
-
no authority; stale memory is context only.
|
|
52
|
-
|
|
53
46
|
## If A Worktree Is Gone
|
|
54
47
|
|
|
55
48
|
Do not reconstruct from chat. Recreate from Git:
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
# Ledger Entry Contracts
|
|
2
2
|
|
|
3
|
-
This contract keeps the ledger-query-mode work narrow. It hardens the
|
|
4
|
-
typed ledger entries that later
|
|
3
|
+
This contract keeps the ledger-query-mode work narrow. It hardens the journal first:
|
|
4
|
+
typed ledger entries that later working-loop queries can read without guessing.
|
|
5
5
|
|
|
6
6
|
It does not ship a ledger query engine, sabbatical dossier engine, capsule
|
|
7
7
|
promotion loop, or remote ledger authority.
|
|
@@ -10,7 +10,7 @@ promotion loop, or remote ledger authority.
|
|
|
10
10
|
|
|
11
11
|
```text
|
|
12
12
|
raw local ledger entry
|
|
13
|
-
-> typed
|
|
13
|
+
-> typed `spine_eligible` metadata
|
|
14
14
|
-> optional compact projection
|
|
15
15
|
-> later sabbatical capsule only after operator promotion
|
|
16
16
|
```
|
|
@@ -18,12 +18,12 @@ raw local ledger entry
|
|
|
18
18
|
## Core Rule
|
|
19
19
|
|
|
20
20
|
```text
|
|
21
|
-
|
|
21
|
+
The working loop routes the present.
|
|
22
22
|
Sabbatical understands the arc.
|
|
23
|
-
Capsules compress the arc back into
|
|
23
|
+
Capsules compress the arc back into working-loop context.
|
|
24
24
|
```
|
|
25
25
|
|
|
26
|
-
The
|
|
26
|
+
The planner may recommend. The journal may route. Grants authorize. Execution
|
|
27
27
|
mutates. Receipts prove. Audit accounts.
|
|
28
28
|
|
|
29
29
|
## Contracts
|
|
@@ -65,18 +65,18 @@ These names are reserved vocabulary, not V0 machinery:
|
|
|
65
65
|
search adapters; SQLite FTS5 is the only V0.1 retrieval accelerator.
|
|
66
66
|
- `ledger-topic-dossier.v0` — unlock only when an operator asks for a durable
|
|
67
67
|
long-horizon dossier over a real topic.
|
|
68
|
-
- `sabbatical-ledger-query` — reserved as the deliberate
|
|
69
|
-
cannot write the
|
|
70
|
-
- `capsule-to-
|
|
68
|
+
- `sabbatical-ledger-query` — reserved as the deliberate planner posture; it
|
|
69
|
+
cannot write the working journal directly.
|
|
70
|
+
- `capsule-to-journal-feedback` — unlock only when reviewed capsules have a human
|
|
71
71
|
promotion surface.
|
|
72
72
|
|
|
73
73
|
Deferred surfaces must name an operational consumer before implementation.
|
|
74
74
|
|
|
75
75
|
## Boundary
|
|
76
76
|
|
|
77
|
-
- The
|
|
77
|
+
- The planner cannot write the journal directly. It may produce a capsule or
|
|
78
78
|
dossier that an operator later promotes.
|
|
79
|
-
- `spine_eligible: true` is explicit;
|
|
79
|
+
- `spine_eligible: true` is explicit; working-loop indexes do not infer eligibility
|
|
80
80
|
from entry type.
|
|
81
81
|
- Existing ledger lines remain readable as `pre_v0: true` legacy entries.
|
|
82
82
|
- Ledger entries do not authorize work unless a valid grant path says so.
|
|
@@ -9,7 +9,7 @@ does not authorize work, attach grants, close tasks, or replace receipts.
|
|
|
9
9
|
|
|
10
10
|
```text
|
|
11
11
|
The leading timestamp (created_at) is the RECORDING time. It is never
|
|
12
|
-
backdated. If work was done off the
|
|
12
|
+
backdated. If work was done off the journal, it is reconciled with a late
|
|
13
13
|
entry recorded at its true time, pointing at contemporaneous evidence.
|
|
14
14
|
Synthesizing entries with past recording times is corruption, not repair:
|
|
15
15
|
one plausible fake timestamp devalues every real one.
|
|
@@ -51,7 +51,7 @@ valid_time_end:
|
|
|
51
51
|
## Added Entry Type
|
|
52
52
|
|
|
53
53
|
`entry_type: retroactive_import` — a late reconciliation entry covering work
|
|
54
|
-
that was executed without contemporaneous
|
|
54
|
+
that was executed without contemporaneous journal entries. Rules, enforced by
|
|
55
55
|
the validator:
|
|
56
56
|
|
|
57
57
|
- requires schema `ledger-entry.v0.2` (rejected on v0/v0.1);
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# ledger-entry.v0
|
|
2
2
|
|
|
3
|
-
`ledger-entry.v0` is the typed local ledger record used by the
|
|
3
|
+
`ledger-entry.v0` is the typed local ledger record used by the working journal.
|
|
4
4
|
It makes compact ledger lines structurally queryable without promoting the
|
|
5
5
|
ledger into an authority source.
|
|
6
6
|
|
|
@@ -58,7 +58,7 @@ legacy:
|
|
|
58
58
|
`authority.class: grant` may set it to `true`, and only when the entry carries
|
|
59
59
|
the durable grant reference required by the local workflow.
|
|
60
60
|
|
|
61
|
-
`spine_eligible` is explicit. A
|
|
61
|
+
`spine_eligible` is explicit. A working-loop index must not infer it from
|
|
62
62
|
`entry_type`. Entries that are useful for current-state routing should set it to
|
|
63
63
|
`true`; archival, noisy, or unreviewed entries should set it to `false`.
|
|
64
64
|
|
|
@@ -92,17 +92,17 @@ legacy:
|
|
|
92
92
|
spine_eligible: false
|
|
93
93
|
```
|
|
94
94
|
|
|
95
|
-
##
|
|
95
|
+
## Journal And Planner Boundary
|
|
96
96
|
|
|
97
97
|
```text
|
|
98
|
-
|
|
98
|
+
The working loop routes the present.
|
|
99
99
|
Sabbatical understands the arc.
|
|
100
|
-
Capsules compress the arc back into
|
|
100
|
+
Capsules compress the arc back into working-loop context.
|
|
101
101
|
```
|
|
102
102
|
|
|
103
|
-
The
|
|
104
|
-
capsule or dossier, but it cannot write back into the
|
|
105
|
-
from capsule to
|
|
103
|
+
The working journal reads typed ledger entries. The sabbatical planner may produce a
|
|
104
|
+
capsule or dossier, but it cannot write back into the journal directly. Promotion
|
|
105
|
+
from capsule to journal requires an explicit operator gate.
|
|
106
106
|
|
|
107
107
|
## Authority Boundary
|
|
108
108
|
|