@etiquekit/etq 1.0.12 → 1.0.14

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (149) hide show
  1. package/AGENTS.md +19 -26
  2. package/LICENSE +2 -3
  3. package/NOTICE +6 -4
  4. package/QuickStart.md +35 -47
  5. package/README.md +54 -54
  6. package/bin/etiquette +1 -5
  7. package/bin/etiquette-core +1 -5
  8. package/docs/ARCHITECTURE.md +5 -5
  9. package/docs/CODEX_CLIENT_COMPATIBILITY.md +1 -1
  10. package/docs/CONCEPTS.md +7 -23
  11. package/docs/CONCEPT_STATUS.md +66 -0
  12. package/docs/CORE_PROFILE.md +3 -5
  13. package/docs/LANE_PROVISIONING.md +7 -2
  14. package/docs/README.md +4 -4
  15. package/docs/RELEASE_SURFACE_AUDIT.md +8 -7
  16. package/docs/SEAT_DISCIPLINE.md +55 -91
  17. package/docs/SEAT_PROVISIONING.md +19 -22
  18. package/docs/TEAM_HANDOFF.md +21 -21
  19. package/docs/WORKTREE_QOL.md +7 -6
  20. package/docs/contracts/ledger-entry/README.md +11 -11
  21. package/docs/contracts/ledger-entry/ledger-entry.v0.2.md +3 -3
  22. package/docs/contracts/ledger-entry/ledger-entry.v0.md +8 -8
  23. package/package.json +9 -9
  24. package/packages/control/src/authority/lease.ts +261 -0
  25. package/packages/control/src/authority/node-delegation.ts +257 -0
  26. package/packages/control/src/authority/rig-conductor.ts +632 -0
  27. package/packages/control/src/cli/argv.ts +155 -0
  28. package/packages/control/src/cli/commands/console.ts +200 -0
  29. package/packages/control/src/cli/commands/dispatch-core.ts +89 -0
  30. package/packages/control/src/cli/commands/dispatch.ts +279 -0
  31. package/packages/control/src/cli/commands/harness.ts +89 -0
  32. package/packages/control/src/cli/commands/hook.ts +50 -0
  33. package/packages/control/src/cli/commands/ledger.ts +91 -0
  34. package/packages/control/src/cli/commands/local-workflow.ts +4690 -0
  35. package/packages/control/src/cli/commands/memory.ts +445 -0
  36. package/packages/control/src/cli/commands/release.ts +108 -0
  37. package/packages/control/src/cli/commands/rubric.ts +103 -0
  38. package/packages/control/src/cli/commands/seat.ts +179 -0
  39. package/packages/control/src/cli/commands/session.ts +127 -0
  40. package/packages/control/src/cli/commands/supervision.ts +246 -0
  41. package/packages/control/src/cli/commands/sync.ts +119 -0
  42. package/packages/control/src/cli/commands/workflow.ts +86 -0
  43. package/packages/control/src/cli/commands/workspace.ts +50 -0
  44. package/packages/control/src/cli/core-usage.ts +34 -0
  45. package/packages/control/src/cli/prompt.ts +67 -0
  46. package/packages/control/src/cli/supervision-deps.ts +44 -0
  47. package/packages/control/src/cli/usage.ts +241 -0
  48. package/packages/control/src/cli.ts +207 -0
  49. package/packages/control/src/core-cli.ts +50 -0
  50. package/packages/control/src/dispatch/decision.ts +202 -0
  51. package/packages/control/src/dispatch/projection.ts +293 -0
  52. package/packages/control/src/dispatch/record.ts +153 -0
  53. package/packages/control/src/engagement/project.ts +170 -0
  54. package/packages/control/src/fs.ts +19 -0
  55. package/packages/control/src/harness/pruning.ts +406 -0
  56. package/packages/control/src/hooks/dispatcher.ts +117 -0
  57. package/packages/control/src/hooks/outbox.ts +86 -0
  58. package/packages/control/src/hooks/sanitize.ts +6 -0
  59. package/packages/control/src/hooks/types.ts +34 -0
  60. package/packages/control/src/index.ts +384 -0
  61. package/packages/control/src/ledger/entry.ts +303 -0
  62. package/packages/control/src/ledger/indexer.ts +542 -0
  63. package/packages/control/src/memory/context.ts +149 -0
  64. package/packages/control/src/memory/drain-import.ts +207 -0
  65. package/packages/control/src/memory/indexer.ts +284 -0
  66. package/packages/control/src/memory/query.ts +75 -0
  67. package/packages/control/src/memory/sanitize.ts +50 -0
  68. package/packages/control/src/memory/sharded-drain-import.ts +212 -0
  69. package/packages/control/src/memory/status.ts +211 -0
  70. package/packages/control/src/memory/store-lifecycle.ts +509 -0
  71. package/packages/control/src/memory/store.ts +284 -0
  72. package/packages/control/src/memory/types.ts +146 -0
  73. package/packages/control/src/parity/surfaces.ts +748 -0
  74. package/packages/control/src/project.ts +141 -0
  75. package/packages/control/src/projection/local-ledger-view.ts +373 -0
  76. package/packages/control/src/projection/return-enforcement.ts +48 -0
  77. package/packages/control/src/projection/timeline-preview.ts +539 -0
  78. package/packages/control/src/projection/timeline.ts +708 -0
  79. package/packages/control/src/release/readiness.ts +842 -0
  80. package/packages/control/src/rubric/loader.ts +326 -0
  81. package/packages/control/src/rubric/promotion.ts +54 -0
  82. package/packages/control/src/rubric/runner.ts +159 -0
  83. package/packages/control/src/rubric/types.ts +158 -0
  84. package/packages/control/src/seat/owner-card.ts +388 -0
  85. package/packages/control/src/seat/readiness.ts +834 -0
  86. package/packages/control/src/session/runbook.ts +431 -0
  87. package/packages/control/src/shared/sanitize.ts +49 -0
  88. package/packages/control/src/supervision/action-classes.ts +192 -0
  89. package/packages/control/src/supervision/command-apply.ts +378 -0
  90. package/packages/control/src/supervision/errors.ts +14 -0
  91. package/packages/control/src/supervision/event-replay.ts +155 -0
  92. package/packages/control/src/supervision/events.ts +109 -0
  93. package/packages/control/src/supervision/index.ts +16 -0
  94. package/packages/control/src/supervision/manifest.ts +127 -0
  95. package/packages/control/src/supervision/paths.ts +49 -0
  96. package/packages/control/src/supervision/projection-adapter.ts +274 -0
  97. package/packages/control/src/supervision/projection.ts +75 -0
  98. package/packages/control/src/supervision/rebuild.ts +99 -0
  99. package/packages/control/src/supervision/session-open.ts +131 -0
  100. package/packages/control/src/supervision/session-read.ts +99 -0
  101. package/packages/control/src/supervision/sqlite-impl.ts +71 -0
  102. package/packages/control/src/supervision/sqlite.ts +121 -0
  103. package/packages/control/src/supervision/store-rows.ts +371 -0
  104. package/packages/control/src/supervision/turn-close.ts +154 -0
  105. package/packages/control/src/supervision/turn-open.ts +284 -0
  106. package/packages/control/src/sync/event-log-merge-driver.ts +263 -0
  107. package/packages/control/src/sync/join-plan.ts +375 -0
  108. package/packages/control/src/sync/outbox.ts +492 -0
  109. package/packages/control/src/workflow/evaluator.ts +140 -0
  110. package/packages/control/src/workflow/loader.ts +200 -0
  111. package/packages/control/src/workflow/types.ts +90 -0
  112. package/packages/control/src/workspace/authority.ts +499 -0
  113. package/packages/protocol/src/guards.ts +119 -0
  114. package/packages/protocol/src/huddle-board.ts +198 -0
  115. package/packages/protocol/src/huddle.ts +295 -0
  116. package/packages/protocol/src/incident.ts +251 -0
  117. package/packages/protocol/src/index.ts +8 -0
  118. package/packages/protocol/src/interfaces.ts +107 -0
  119. package/packages/protocol/src/packet-profile.ts +195 -0
  120. package/packages/protocol/src/state.ts +81 -0
  121. package/packages/protocol/src/types.ts +434 -0
  122. package/release/lineage.v0.json +15 -0
  123. package/scripts/release-candidate-verify.sh +175 -0
  124. package/scripts/release-checksum.sh +25 -0
  125. package/scripts/release-pack-canary.sh +97 -0
  126. package/scripts/release-scan.sh +249 -0
  127. package/scripts/release-sign.sh +34 -0
  128. package/templates/etiquette-vanilla-v0/README.md +2 -3
  129. package/templates/etiquette-vanilla-v0/source/control-seat/README.md +0 -6
  130. package/templates/etiquette-vanilla-v0/source/control-seat/bin/seat-doctor +0 -5
  131. package/templates/etiquette-vanilla-v0/validate-vanilla.sh +0 -5
  132. package/templates/seat-packs-v0/README.md +3 -2
  133. package/templates/seat-packs-v0/source/claude-code-seat/README.md +3 -29
  134. package/templates/seat-packs-v0/source/codex-seat/README.md +3 -17
  135. package/templates/seat-packs-v0/source/gemini-seat/README.md +3 -23
  136. package/templates/seat-packs-v0/source/ollama-seat/README.md +3 -3
  137. package/templates/seat-packs-v0/source/openrouter-seat/README.md +3 -3
  138. package/docs/AGENT_SPAWNING.md +0 -78
  139. package/docs/INTEGRATION_UI.md +0 -215
  140. package/docs/OPERATOR_PLAYBOOK.md +0 -77
  141. package/docs/TAG_ROUTE.md +0 -95
  142. package/lib/etiquette-core.js +0 -315
  143. package/lib/etiquette.js +0 -1160
  144. package/templates/DISPATCH_PREMISES.md +0 -39
  145. package/templates/etiquette-vanilla-v0/source/control-seat/bin/access-assurance-check +0 -55
  146. package/templates/etiquette-vanilla-v0/source/control-seat/docs/work/access/ACCESS-ASSURANCE.md +0 -39
  147. package/templates/etiquette-vanilla-v0/source/control-seat/docs/work/access/workspace-secure-profile.v0.json +0 -53
  148. package/templates/hosted-receiver/README.md +0 -41
  149. package/templates/hosted-receiver/w1-github-webhook-receiver.mjs +0 -129
@@ -34,6 +34,7 @@ docs_default:
34
34
  - docs/ARCHITECTURE.md
35
35
  - docs/CODEX_CLIENT_COMPATIBILITY.md
36
36
  - docs/CONCEPTS.md
37
+ - docs/CONCEPT_STATUS.md
37
38
  - docs/CORE_PROFILE.md
38
39
  - docs/LANE_PROVISIONING.md
39
40
  - docs/SEAT_DISCIPLINE.md
@@ -90,10 +91,10 @@ internal_templates:
90
91
  posture: excluded from new-seat onboarding
91
92
 
92
93
  package_surface:
93
- npm_pack_entries: 182
94
+ npm_pack_entries: 183
94
95
  max_budget: 190
95
96
  posture: local devkit package plus signed user-local installer
96
- distribution_origin: https://etiquette.example.com
97
+ distribution_origin: https://etiquekit.com
97
98
  excludes: workspace package metadata, workspace fixtures, internal, conformance, apps, site, dist, hosted parity docs, portal docs, root kernel manuals
98
99
  ```
99
100
 
@@ -112,7 +113,7 @@ required:
112
113
  ## What Is Not Necessary For All Developers
113
114
 
114
115
  Runtime seat packs, sample-product rehearsals, v3 workflow helper docs, satellite
115
- operator docs, supervision phase docs, advisory-signal experiments, and internal
116
+ operator docs, advisory-signal experiments, and internal
116
117
  templates may remain in the repo for maintainers. The default onboarding path
117
118
  must not require them.
118
119
 
@@ -125,7 +126,7 @@ blocked:
125
126
  - personal absolute paths
126
127
  - local username markers
127
128
  - old repo name
128
- - shop-persona markers in the release rollout package
129
+ - shop identity markers in the release rollout package
129
130
  - prior-run markers in all-developer docs
130
131
  - extra files under docs/
131
132
  - unexpected public template directories
@@ -141,7 +142,7 @@ npm run release:scan
141
142
 
142
143
  ## Package Readiness Check
143
144
 
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.
145
+ Use `etiquette release readiness --json` before changing distribution settings. It also binds the canonical package identity, version floor, source-shipping mode, required bins, source ancestry, public distribution repository, and candidate verifier to `release/lineage.v0.json`; the source-of-record and public package home remain separate, explicit lineage fields. `release:candidate` preserves the exact verified tarball and checksum under ignored `dist/` for later signing without rebuilding.
145
146
  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/`.
146
147
 
147
148
  ## Local-Thin Purge (v0.2.1)
@@ -150,6 +151,6 @@ Codex-backed remote-runtime, plugin-MCP, and hook/action-auth canaries require C
150
151
  excluded_cli_commands: [remote, agent-plane, mcp, parity, linear, integration] # guarded stubs explain absence
151
152
  excluded_source_dirs: [agent-plane/, integration/, linear/, mcp/] # parity/ ships (console dependency)
152
153
  excluded_templates: [hosted-receiver/]
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
154
+ removed_from_templates: [etiquette-seat-rebind etiquette-seat-lifecycle etiquette-monitor-pull] # use CLI-native preflight and `etiquette notify poll`
155
+ doctrine: local feature parity ships in the devkit; remote/hosted/EKS surfaces ship outside this devkit; zero coordination-bus coupling ships
155
156
  ```
@@ -1,79 +1,19 @@
1
1
  # Seat Discipline
2
2
 
3
3
  Seat discipline keeps agent work useful, attributable, and portable across
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.
4
+ runtimes.
71
5
 
72
- ## When Blocked
6
+ ## Operating Rules
73
7
 
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.
8
+ - Read the repo state before forming a plan.
9
+ - Use a task envelope before product edits.
10
+ - Keep each session bounded.
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.
77
17
 
78
18
  ## Identity Split
79
19
 
@@ -87,30 +27,54 @@ repo_substrate: source, ledger, receipts, validation, commits
87
27
 
88
28
  ## Work Boundaries
89
29
 
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.
30
+ A seat should know:
31
+
32
+ - allowed writes;
33
+ - forbidden writes;
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.
94
65
 
95
66
  ## Tool Discipline
96
67
 
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.
68
+ Use chat for conversation, planning tools for intent, code review tools for
69
+ diffs and CI, incident tools for runtime evidence, and identity providers for
70
+ authentication.
71
+
72
+ Do not let any of them become acceptance.
100
73
 
101
74
  ## Failure Signals
102
75
 
103
76
  Open a follow-up or stop the run when a seat edits outside allowed writes,
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.
77
+ validation repeatedly fails, the runbook grows without a receipt, a task spans
78
+ unrelated repos, a runtime claims success without evidence, a projection
79
+ disagrees with git, a grant owner is unclear, or an integration tries to close
80
+ or promote work.
@@ -1,29 +1,29 @@
1
1
  # Seat Provisioning
2
2
 
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.
3
+ Start with one project owner. Add review, QA, or 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
 
7
7
  1. Install project-local agent guidance with `setup`.
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
- 4. After resume or runner/model swaps, run `resume check`; otherwise run `whereami`, `doctor`, and `status`.
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.
10
+ 4. Run `whereami`, `doctor`, and `status`.
11
+ 5. Confirm the lead seat.
12
+ 6. After interrupted sessions, cwd/worktree ambiguity, role changes, or vendor swaps, rerun `whereami`, `doctor`, and `notify poll`.
13
+ 7. Treat lifecycle/readiness checks as evidence only; they do not authorize work.
14
+ 8. Have the lead seat `join` and `pickup` the first generated task.
15
+ 9. Add extra sessions only when starter sessions are not enough.
16
+ 10. Give each seat its allowed writes and validation.
17
+ 11. Record a receipt before asking for promotion.
17
18
 
18
19
  ```sh
19
20
  etiquette setup --target codex --project "$PWD"
20
- etiquette bootstrap local --project "$PWD" --profile codex-cc-gemini --task-prefix APP
21
- etiquette resume check --project "$PWD" --seat codex-seat --task APP-001 --json
22
- etiquette whereami --project "$PWD" --seat codex-seat --task APP-001
21
+ etiquette bootstrap local --project "$PWD" --task-prefix APP
22
+ etiquette whereami --project "$PWD" --seat impl-seat --task APP-001
23
23
  etiquette doctor --project "$PWD"
24
24
  etiquette status --project "$PWD"
25
- etiquette join --project "$PWD" --seat codex-seat
26
- etiquette pickup --project "$PWD" --seat codex-seat --task APP-001 --text
25
+ etiquette join --project "$PWD" --seat impl-seat
26
+ etiquette pickup --project "$PWD" --seat impl-seat --task APP-001 --text
27
27
  etiquette console board --project "$PWD" --text
28
28
  ```
29
29
 
@@ -34,8 +34,8 @@ Use `control_seat` for local workflow ownership, `execution_seat` for bounded im
34
34
  ## Greenfield Setup
35
35
 
36
36
  ```sh
37
- etiquette bootstrap local --project "$PWD" --profile codex-cc-gemini --task-prefix FOOD \
38
- --lead-seat impl-seat --lead-principal developer-1 --review-seat review-seat --review-principal reviewer-1
37
+ etiquette bootstrap local --project "$PWD" --task-prefix FOOD \
38
+ --lead-seat impl-seat --lead-principal developer-1
39
39
  ```
40
40
 
41
41
  ```sh
@@ -44,11 +44,7 @@ etiquette join --project "$PWD" --seat impl-seat
44
44
  etiquette pickup --project "$PWD" --seat impl-seat --task FOOD-001 --text
45
45
  ```
46
46
 
47
- The starter runbook is enough for normal pickup. Use `session create` only when an extra ad hoc session needs a different scope.
48
-
49
- The lead seat coordinates. The review seat pressure-tests. Neither gets merge or promotion authority unless policy grants it.
50
-
51
- Hooks, readiness, and lifecycle preflight are evidence only. The task envelope and allowed writes remain the active work authority.
47
+ The starter runbook is enough for normal pickup. Use `session create` only when an extra ad hoc session needs a different scope. The lead seat coordinates and implements. Add a review seat with `--profile lead-review` only when someone will actually pressure-test. Neither gets merge or promotion authority unless policy grants it. Hooks, readiness, rebind, and lifecycle preflight are evidence only; the task envelope and allowed writes remain the active work authority.
52
48
 
53
49
  ## Child Runners
54
50
 
@@ -78,7 +74,7 @@ For bounded, cursor-based wake checks on any seat, use the portable core command
78
74
  ```sh
79
75
  etiquette seat readiness \
80
76
  --project "$PWD" \
81
- --seat codex-seat \
77
+ --seat impl-seat \
82
78
  --seat-type execution_seat \
83
79
  --execution-surface codex \
84
80
  --capability-source local_validation \
@@ -97,4 +93,5 @@ Remote execution is a later layer. Plane provisioning is infra-admin scoped. Wor
97
93
  - Start with the smallest useful topology.
98
94
  - Add seats because work requires them.
99
95
  - Product-write authority requires a task, allowed writes, validation, and the right promotion gate.
100
- - Chat is not canonical record; runtime packs are adapters, not doctrine.
96
+ - Chat is not canonical record.
97
+ - Runtime packs are adapters, not doctrine.
@@ -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, review seat, and first task prefix.
20
+ name, lead seat, and first task prefix. Provide review or QA seats only when
21
+ the first assignment needs them.
21
22
 
22
- Default starter profile: lead `codex-seat`, review `cc-seat`, bootstrap
23
- `manager-seat`, task prefix `APP`.
23
+ Default starter profile: solo lead `impl-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" --profile codex-cc-gemini --task-prefix APP
104
- etiquette bootstrap local --project "$PWD" --profile codex-cc-gemini --task-prefix APP
103
+ etiquette handoff --project "$PWD" --task-prefix APP
104
+ etiquette bootstrap local --project "$PWD" --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 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
126
+ etiquette whereami --project "$PWD" --seat impl-seat --task APP-001
127
+ etiquette join --project "$PWD" --seat impl-seat
128
+ etiquette pickup --project "$PWD" --seat impl-seat --task APP-001 --text
129
129
  ```
130
130
 
131
- Review seat:
131
+ Optional review seat after bootstrapping with `--profile lead-review`:
132
132
 
133
133
  ```sh
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
134
+ etiquette whereami --project "$PWD" --seat review-seat --task APP-002
135
+ etiquette join --project "$PWD" --seat review-seat
136
+ etiquette pickup --project "$PWD" --seat review-seat --task APP-002 --text
137
137
  ```
138
138
 
139
- Inside Codex sessions that have the pickup skill installed:
139
+ If your runtime has an Etiquette pickup skill installed, it should do the same
140
+ read-only sequence as the CLI. The portable form is:
140
141
 
141
142
  ```sh
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)"
143
+ etiquette whereami --project "$PWD" --seat impl-seat --task APP-001
144
+ etiquette doctor --project "$PWD"
145
+ etiquette notify poll --project "$PWD" --seat impl-seat --text
146
+ etiquette pickup --project "$PWD" --seat impl-seat --task APP-001 --text
147
147
  ```
148
148
 
149
- The wrapper prints board, feed, inbox, task envelope, and session runbook. It is
150
- a convenience reader, not authority.
149
+ These are readers, not authority. Interrupted or swapped seats should rerun the
150
+ preflight before pickup; see `docs/WORKTREE_QOL.md`.
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 codex-seat --text
157
+ etiquette notify poll --project "$PWD" --seat impl-seat --text
158
158
  ```
159
159
 
160
160
  The queue is a local pointer cache over `.etiquette/events/local.ndjson`. It is
@@ -33,22 +33,23 @@ Agent resume restores conversation context. It does not prove repo context.
33
33
  After any resume, run:
34
34
 
35
35
  ```sh
36
- etiquette resume check --project "$PWD" --seat <seat> --task <task> --json
37
36
  etiquette whereami --project "$PWD" --seat <seat> --task <task>
38
37
  git status -sb
39
38
  git branch --show-current
40
39
  ```
41
40
 
42
- `resume check` is read-only and fail-closed. It treats the runner resume hash as
43
- conversation context only, then verifies project, seat, task, lifecycle, and
44
- session bindings before pickup. If it reports `rebind_required`, use the seat
45
- rebind and lifecycle skills before reading old session runbooks as assignment.
46
-
47
41
  If the runner asks whether to resume in the old session directory or the
48
42
  current directory, choose the current directory only when it is the intended
49
43
  project worktree for the task. Do not resume a repo-local task inside a global
50
44
  coordination repo or unrelated workspace.
51
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
+
52
53
  ## If A Worktree Is Gone
53
54
 
54
55
  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 journal first:
4
- typed ledger entries that later working-loop queries can read without guessing.
3
+ This contract keeps the ledger-query-mode work narrow. It hardens the spine first:
4
+ typed ledger entries that later reflex 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 `spine_eligible` metadata
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
- The working loop routes the present.
21
+ Reflex routes the present.
22
22
  Sabbatical understands the arc.
23
- Capsules compress the arc back into working-loop context.
23
+ Capsules compress the arc back into reflex context.
24
24
  ```
25
25
 
26
- The planner may recommend. The journal may route. Grants authorize. Execution
26
+ The brain may recommend. The spine 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 planner posture; it
69
- cannot write the working journal directly.
70
- - `capsule-to-journal-feedback` — unlock only when reviewed capsules have a human
68
+ - `sabbatical-ledger-query` — reserved as the deliberate brain posture; it
69
+ cannot write the reflex spine directly.
70
+ - `capsule-to-spine-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 planner cannot write the journal directly. It may produce a capsule or
77
+ - The brain cannot write the spine directly. It may produce a capsule or
78
78
  dossier that an operator later promotes.
79
- - `spine_eligible: true` is explicit; working-loop indexes do not infer eligibility
79
+ - `spine_eligible: true` is explicit; reflex 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 journal, it is reconciled with a late
12
+ backdated. If work was done off the spine, 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 journal entries. Rules, enforced by
54
+ that was executed without contemporaneous spine entries. Rules, enforced by
55
55
  the validator:
56
56
 
57
57
  - requires schema `ledger-entry.v0.2` (rejected on v0/v0.1);
@@ -59,7 +59,7 @@ the validator:
59
59
  - must carry at least one contemporaneous evidence ref among
60
60
  `refs.commits`, `refs.receipts`, or `refs.artifacts` — evidence that
61
61
  carries its own independent timestamps (git commits are the canonical
62
- evidence anchor);
62
+ witness);
63
63
  - authority class must be `advisory` or `audit` — a late entry never mints
64
64
  grants or execution authority;
65
65
  - one reconciliation entry covering a span with an index artifact is
@@ -1,6 +1,6 @@
1
1
  # ledger-entry.v0
2
2
 
3
- `ledger-entry.v0` is the typed local ledger record used by the working journal.
3
+ `ledger-entry.v0` is the typed local ledger record used by the reflex spine.
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 working-loop index must not infer it from
61
+ `spine_eligible` is explicit. A reflex 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
- ## Journal And Planner Boundary
95
+ ## Spine And Brain Boundary
96
96
 
97
97
  ```text
98
- The working loop routes the present.
98
+ Reflex routes the present.
99
99
  Sabbatical understands the arc.
100
- Capsules compress the arc back into working-loop context.
100
+ Capsules compress the arc back into reflex context.
101
101
  ```
102
102
 
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.
103
+ The reflex spine reads typed ledger entries. The sabbatical brain may produce a
104
+ capsule or dossier, but it cannot write back into the spine directly. Promotion
105
+ from capsule to spine requires an explicit operator gate.
106
106
 
107
107
  ## Authority Boundary
108
108
 
package/package.json CHANGED
@@ -1,7 +1,6 @@
1
1
  {
2
2
  "name": "@etiquekit/etq",
3
- "version": "1.0.12",
4
- "license": "Apache-2.0",
3
+ "version": "1.0.14",
5
4
  "description": "Governance and evidence CLI for AI-assisted engineering seats.",
6
5
  "private": false,
7
6
  "type": "module",
@@ -16,15 +15,16 @@
16
15
  },
17
16
  "files": [
18
17
  "LICENSE",
19
- "NOTICE",
20
18
  "AGENTS.md",
19
+ "NOTICE",
21
20
  "QuickStart.md",
22
21
  "README.md",
23
22
  "bin/",
24
- "lib/",
25
23
  "docs/",
26
- "scripts/install.sh",
27
- "scripts/uninstall.sh",
24
+ "packages/control/src/",
25
+ "packages/protocol/src/",
26
+ "release/lineage.v0.json",
27
+ "scripts/",
28
28
  "templates/",
29
29
  "!docs/work/"
30
30
  ],
@@ -35,10 +35,9 @@
35
35
  "core:cli": "bun packages/control/src/core-cli.ts",
36
36
  "release:scan": "sh scripts/release-scan.sh",
37
37
  "release:pack": "sh scripts/release-pack-canary.sh",
38
+ "release:candidate": "sh scripts/release-candidate-verify.sh",
38
39
  "release:checksum": "sh scripts/release-checksum.sh",
39
- "release:sign": "sh scripts/release-sign.sh",
40
- "release:build": "sh scripts/release-build.sh",
41
- "prepack": "sh scripts/release-build.sh"
40
+ "release:sign": "sh scripts/release-sign.sh"
42
41
  },
43
42
  "devDependencies": {
44
43
  "@types/bun": "^1.2.17",
@@ -48,6 +47,7 @@
48
47
  "yaml": "2.8.3",
49
48
  "zod": "4.3.6"
50
49
  },
50
+ "license": "Apache-2.0",
51
51
  "homepage": "https://etiquekit.com",
52
52
  "repository": {
53
53
  "type": "git",