@etiquekit/etq 1.0.11 → 1.0.13

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 -56
  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 +7 -6
  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 +11 -11
  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 +4686 -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 +831 -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 +14 -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
package/AGENTS.md CHANGED
@@ -1,37 +1,30 @@
1
1
  # Etiquette Agent Guide
2
2
 
3
- ## If you installed this package
3
+ This repo is the Etiquette source repo. Keep the all-developer onboarding path small.
4
4
 
5
- You are reading the INSTALLED copy of the Etiquette CLI (npm or tarball) —
6
- "this repo" below refers to Etiquette's source repository, not your project.
7
- As an agent working in a project governed by Etiquette:
5
+ ## Default Rule
8
6
 
9
- 1. Read [README.md](README.md), then [QuickStart.md](QuickStart.md).
10
- 2. Orient with `etq whereami`; join your assigned seat; read the task
11
- envelope and the project's `docs/work/runbooks/WORKING_DISCIPLINE.md`.
12
- 3. Respect allowed writes, run the named validation, write the receipt at
13
- the path `pickup` names, post it, and pass `etq return check` before
14
- claiming completion.
15
-
16
- Commands record evidence; they never grant, merge, close, publish, or
17
- promote.
18
-
19
- ## If you are working on the Etiquette source repo
20
-
21
- Keep the all-developer onboarding path small. New engineers start with:
7
+ New engineers should start with:
22
8
 
23
9
  1. [README.md](README.md)
24
10
  2. [docs/SEAT_PROVISIONING.md](docs/SEAT_PROVISIONING.md)
25
11
  3. [templates/etiquette-vanilla-v0/README.md](templates/etiquette-vanilla-v0/README.md)
26
12
 
27
- Do not send new seats through internal history, old coordination lanes, or
28
- maintainer-only notes.
13
+ Do not send new seats through internal history, old coordination lanes, or maintainer-only notes.
14
+
15
+ ## Ownership
16
+
17
+ This repo owns:
18
+
19
+ - the minimal vanilla seat scaffold;
20
+ - optional runtime seat-pack scaffolds;
21
+ - shared task, readiness, and receipt contracts;
22
+ - vendor-neutral seat rebind guidance for interrupted, resumed, swapped, or
23
+ migrated sessions;
24
+ - validation scripts for release hygiene.
25
+
26
+ This repo does not own product repos, product lane state, secrets, hosted services, or runtime vendor setup.
29
27
 
30
- This repo owns: the minimal vanilla seat scaffold; optional runtime seat-pack
31
- scaffolds; shared task, readiness, and receipt contracts; validation scripts
32
- for release hygiene. It does not own product repos, product lane state,
33
- secrets, hosted services, or runtime vendor setup.
28
+ ## Editing Rule
34
29
 
35
- Release-facing docs must stay role-based and portable. Do not introduce
36
- person names, local machine paths, historical bus references, or
37
- project-specific lane IDs into the default onboarding surface.
30
+ Release-facing docs must stay role-based and portable. Do not introduce person names, local machine paths, historical bus references, or project-specific lane IDs into the default onboarding surface.
package/LICENSE CHANGED
@@ -1,4 +1,3 @@
1
-
2
1
  Apache License
3
2
  Version 2.0, January 2004
4
3
  http://www.apache.org/licenses/
@@ -138,8 +137,8 @@
138
137
 
139
138
  6. Trademarks. This License does not grant permission to use the trade
140
139
  names, trademarks, service marks, or product names of the Licensor,
141
- except as required for reasonable and customary use in describing the
142
- origin of the Work and reproducing the content of the NOTICE file.
140
+ except as required for reasonable and customary use in describing
141
+ the origin of the Work and reproducing the content of the NOTICE file.
143
142
 
144
143
  7. Disclaimer of Warranty. Unless required by applicable law or
145
144
  agreed to in writing, Licensor provides the Work (and each
package/NOTICE CHANGED
@@ -1,5 +1,7 @@
1
- Etiquette (etq)
2
- Copyright 2026 The Etiquekit Authors
1
+ Etiquette
2
+ Copyright (c) 2026 Leepick Inc, US.
3
3
 
4
- Local-first, git-backed agent-workflow governance toolkit.
5
- Distributed under the Apache License, Version 2.0.
4
+ This product includes software developed by Leepick Inc.
5
+
6
+ Etiquette, Etq, and the Etiquette name are trademarks of Leepick Inc.
7
+ Use of these names does not grant trademark rights.
package/QuickStart.md CHANGED
@@ -1,53 +1,51 @@
1
1
  # Quick Start
2
2
 
3
- For a clean repo, a team canary, or a new Etiquette developer.
3
+ Get from zero to a governed working project in about two minutes.
4
4
 
5
- Prereqs: `git >= 2.40` and `bun >= 1.3` on `PATH`. macOS and Linux.
5
+ Prereqs: Git, Node 18+ (for npm install) or Bun `>=1.3.0`.
6
6
 
7
7
  ## 1. Get The CLI
8
8
 
9
+ The published package:
10
+
9
11
  ```sh
10
- npm install -g @etiquekit/etq # etq + etiquette on PATH
11
- curl -fsSL https://etiquekit.com/install.sh | sh # or: native installer
12
+ npm install -g @etiquekit/etq
13
+ # or project-local: npm install @etiquekit/etq && alias etq=./node_modules/.bin/etq
14
+ etq --help
12
15
  ```
13
16
 
14
- The installer verifies every artifact against a pinned public key before
15
- anything executes and installs under `~/.etiquette`. Offline or air-gapped:
16
- download `etiquette-<version>.tgz` plus `SHA256SUMS` and `SHA256SUMS.sig`
17
- from `https://etiquekit.com/releases/`, verify them (see the README's
18
- "Verify releases"), then:
17
+ Bootstrap a project and run your first cycle:
19
18
 
20
19
  ```sh
21
- ETQ_LIB="$HOME/.etiquette/lib/etiquette-<version>"
22
- mkdir -p "$ETQ_LIB" "$HOME/.etiquette/bin"
23
- tar -xzf etiquette-<version>.tgz --strip-components=1 -C "$ETQ_LIB"
24
- ln -sfn "$ETQ_LIB/bin/etiquette" "$HOME/.etiquette/bin/etiquette"
25
- export PATH="$HOME/.etiquette/bin:$PATH"
20
+ cd your-repo
21
+ etq bootstrap local --project . --task-prefix DEMO --ask
22
+ etq doctor --project . # expect: rig_doctor: pass
23
+ # then follow the printed join/pickup commands
26
24
  ```
27
25
 
26
+ Private or air-gapped rollout: use [docs/TEAM_HANDOFF.md](docs/TEAM_HANDOFF.md).
27
+
28
28
  ## 2. Initialize A Project
29
29
 
30
30
  From the project repo:
31
31
 
32
- Same core order as the README quickstart; `handoff`/`whereami` are optional
33
- orientation verbs. `bootstrap local` does not replace `init`.
34
-
35
32
  ```sh
36
- etq init --project "$PWD"
37
- etq doctor --project "$PWD"
38
- etq bootstrap local --project "$PWD" --profile codex-cc-gemini --task-prefix APP
39
- etq setup --target auto --project "$PWD"
40
- etq handoff --project "$PWD" --profile codex-cc-gemini --task-prefix APP
41
- etq whereami --project "$PWD" --seat codex-seat --task APP-001
42
- etq join --project "$PWD" --seat codex-seat
43
- etq pickup --project "$PWD" --seat codex-seat --task APP-001 --allow-current-project --text
44
- etq console board --project "$PWD" --text
33
+ ETQ=${ETQ:-etiquette}
34
+ "$ETQ" setup --target codex --project "$PWD"
35
+ "$ETQ" handoff --project "$PWD" --task-prefix APP
36
+ "$ETQ" bootstrap local --project "$PWD" --task-prefix APP --ask
37
+ "$ETQ" whereami --project "$PWD" --seat impl-seat --task APP-001
38
+ "$ETQ" doctor --project "$PWD"
39
+ "$ETQ" join --project "$PWD" --seat impl-seat
40
+ "$ETQ" pickup --project "$PWD" --seat impl-seat --task APP-001 --allow-current-project --text
41
+ "$ETQ" console board --project "$PWD" --text
45
42
  ```
46
43
 
47
44
  `bootstrap local` creates repo-local state, seats, task envelopes, pickup docs,
48
45
  events, and runbooks. It does not grant, publish, merge, close, or promote.
49
- `handoff` is a read-only guide: it prints install, bootstrap, and pickup
50
- commands without changing anything.
46
+ With `--ask`, it asks for the first-run shape, explains that seats are roles and
47
+ runtimes are temporary occupants, confirms the default write boundary, and stays
48
+ non-blocking in CI or scripted runs.
51
49
 
52
50
  ## 3. Orient The Live Seat
53
51
 
@@ -55,24 +53,21 @@ Run `whereami` whenever a developer or agent resumes, changes directories, or
55
53
  inherits a worktree:
56
54
 
57
55
  ```sh
58
- etq whereami --project "$PWD" --seat codex-seat --task APP-001
59
- etq pickup --project "$PWD" --seat codex-seat --task APP-001 --allow-current-project --text
56
+ "$ETQ" whereami --project "$PWD" --seat impl-seat --task APP-001
57
+ "$ETQ" pickup --project "$PWD" --seat impl-seat --task APP-001 --allow-current-project --text
60
58
  ```
61
59
 
62
60
  Runner resume recovers chat context; `whereami` confirms the repo, branch, task
63
61
  envelope, and runbook. For branch hygiene, read [docs/WORKTREE_QOL.md](docs/WORKTREE_QOL.md).
62
+ For in-session pickup UX, use the `seat-session-bootstrap` skill.
64
63
 
65
64
  ## 4. Check And Record Evidence
66
65
 
67
- Completion gate: write the receipt at the path `pickup` names (`etq receipt scaffold --task <ref> --seat <id>` writes a starter stub), post it
68
- (`etq post --role implementation-return --lane <task> --from <seat> --to <seat>`),
69
- then `etq return check`. Separately, `dispatch check` gates ROUTING before
70
- work begins — create checkable dispatch examples, then run the generated
71
- command:
66
+ Create checkable dispatch examples, then run the generated command:
72
67
 
73
68
  ```sh
74
- etq dispatch scaffold --project "$PWD" --task-id APP-001 --seat codex-seat
75
- etq dispatch check --project "$PWD" \
69
+ "$ETQ" dispatch scaffold --project "$PWD" --task-id APP-001 --seat impl-seat
70
+ "$ETQ" dispatch check --project "$PWD" \
76
71
  --mode docs/work/dispatch/APP-001/mode.yaml \
77
72
  --task docs/work/dispatch/APP-001/task.yaml \
78
73
  --sandbox-receipt docs/work/dispatch/APP-001/receipt.yaml \
@@ -82,14 +77,7 @@ etq dispatch check --project "$PWD" \
82
77
  `dispatch record` writes local metadata and receipt refs; it does not merge,
83
78
  close, publish, or grant.
84
79
 
85
- ## 5. Seat Packs And Stop Conditions
86
-
87
- Per-runtime integrations are explicit, never automatic: `provision-seat claude-code`,
88
- `provision-seat codex`, `provision-seat gemini`, `provision-seat ollama`,
89
- `provision-seat openrouter`.
90
-
91
- Stop when authority is unclear, validation cannot run, writes exceed the
92
- envelope, a secret appears, or the session is unbounded.
80
+ ## 5. Stop Conditions
93
81
 
94
- Going further: `etq help advanced` catalogs the advanced subsystems the memory journal, supervision sessions, release gates, sync outbox, and webhooks.
95
- Docs: https://etiquekit.com/docs/ · Agents start at: https://etiquekit.com/llms.txt
82
+ Seat packs: `provision-seat claude-code`, `provision-seat codex`, `provision-seat gemini`, `provision-seat ollama`, `provision-seat openrouter`.
83
+ Stop when authority is unclear, validation cannot run, writes exceed the envelope, a secret appears, or the session is unbounded.
package/README.md CHANGED
@@ -1,80 +1,78 @@
1
1
  # Etiquette
2
2
 
3
- **Govern agent-assisted engineering work with seats, evidence, and promotion
4
- gates.** Local-first: your repo is the ledger, receipts are the proof, and no
5
- server ever sees your code.
3
+ Etiquette is a governance and evidence CLI for agent-assisted engineering work.
6
4
 
7
- When several coding agents (and humans) work the same repository, the hard
8
- part isn't running them it's knowing **who did what, on whose authority,
9
- and what proved it worked**. Etiquette gives each participant a *seat*, each
10
- unit of work a *task envelope*, each completion a *receipt*, and each merge a
11
- *promotion gate* — recorded as plain files and git history you can audit.
5
+ It answers the questions that matter when agents help write code: who acted,
6
+ under which seat, inside what scope, with what evidence, and who accepted the
7
+ result.
12
8
 
13
- Docs: https://etiquekit.com/docs/ · Agents start at: https://etiquekit.com/llms.txt · Going further (memory journal, supervision, release gates): `etq help advanced`
9
+ Default loop: `setup -> handoff -> bootstrap local -> whereami -> doctor -> join -> pickup -> receipt -> promotion gate`.
14
10
 
15
- ## Install
11
+ Execution runtimes are optional; they return evidence and do not mint authority.
16
12
 
17
- ```sh
18
- npm install -g @etiquekit/etq # etq, etiquette, etiquette-core on PATH
19
- curl -fsSL https://etiquekit.com/install.sh | sh # or: native installer
20
- ```
21
-
22
- Requires `bun >= 1.3` and `git >= 2.40`. macOS and Linux. The installer
23
- verifies signatures against a pinned key before executing.
13
+ ## Start
24
14
 
25
- ## Sixty seconds to a governed workspace
15
+ Prereqs: Git and Bun `>=1.3.0`; the CLI shims require `bun` on `PATH`.
16
+ For a clean repo or a new seat, read [QuickStart.md](QuickStart.md). For private team rollout, use [docs/TEAM_HANDOFF.md](docs/TEAM_HANDOFF.md), then:
26
17
 
27
18
  ```sh
28
- etq init --project . # provision folders, journal, roster
29
- etq doctor --project . # readiness — green before work
30
- etq bootstrap local --project . \
31
- --profile codex-cc-gemini --task-prefix APP
32
- etq setup --target auto --project . # register your agent CLI (explicit)
33
- etq join --seat codex-seat --project . # profile seats: codex/cc/gemini/manager
34
- etq console board --project . --text # the live task board
19
+ ./bin/etiquette setup --target codex --project /tmp/etiquette-start
20
+ ./bin/etiquette handoff --project /tmp/etiquette-start --task-prefix APP
21
+ ./bin/etiquette bootstrap local --project /tmp/etiquette-start --task-prefix APP
22
+ ./bin/etiquette whereami --project /tmp/etiquette-start --seat impl-seat --task APP-001
23
+ ./bin/etiquette doctor --project /tmp/etiquette-start
24
+ ./bin/etiquette status --project /tmp/etiquette-start
25
+ ./bin/etiquette join --project /tmp/etiquette-start --seat impl-seat
26
+ ./bin/etiquette pickup --project /tmp/etiquette-start --seat impl-seat --task APP-001 --allow-current-project --text
27
+ ./bin/etiquette console board --project /tmp/etiquette-start --text
35
28
  ```
36
29
 
37
- Per-runtime seat packs: `provision-seat claude-code` · `provision-seat codex`
38
- · `provision-seat gemini` · `provision-seat ollama` · `provision-seat openrouter`.
30
+ `handoff` is a read-only guide: it prints install, bootstrap, and pickup commands without installing, bootstrapping, pushing, closing, or granting.
39
31
 
40
- The daily loop:
32
+ `bootstrap local` creates repo-local seats, task envelopes, bounded runbooks,
33
+ local packet events, and pickup docs without global bus writes or authority.
34
+ `whereami` is the context readback: runner resume restores conversation
35
+ history; `whereami` tells the seat which project, worktree, task, and runbook it
36
+ is actually operating in.
41
37
 
42
- ```sh
43
- etq pickup --seat codex-seat --task APP-001 --expect-project-id <id> --text
44
- # ... do the work; write the receipt at the path pickup names ...
45
- etq post --role implementation-return --lane APP-001 \
46
- --from codex-seat --to manager-seat --project .
47
- etq return check --task APP-001 --seat codex-seat # the completion gate
48
- ```
38
+ Use repo-local commands for now. The hosted public installer is parked.
49
39
 
50
- (`dispatch check` gates routing BEFORE work; `return check` gates completion.)
51
- Every step appends to the workspace journal — an append-only event log inside
52
- your repo. Nothing leaves your machine: no backend, no telemetry, no account.
40
+ ## Core Concepts
53
41
 
54
- ## Concepts in one breath
42
+ - Seat: durable work identity; the occupant or model can change.
43
+ - Task envelope: scope, allowed writes, validation, and stop conditions.
44
+ - Receipt: evidence of what happened; it proves but does not authorize.
45
+ - Promotion gate: the human/Git gate where candidate work becomes truth.
46
+ - Ledger: durable local record of sessions, receipts, and decisions.
55
47
 
56
- | Concept | Answers |
57
- | --- | --- |
58
- | Seat | What durable work role is acting? |
59
- | Task envelope | What writes, validation, and stop conditions are allowed? |
60
- | Session | Which bounded run produced the evidence? |
61
- | Receipt | What proves the work happened? |
62
- | Promotion gate | Where does candidate work become accepted truth? |
48
+ Read next: [docs/README.md](docs/README.md), [docs/CONCEPTS.md](docs/CONCEPTS.md), [docs/CORE_PROFILE.md](docs/CORE_PROFILE.md), [docs/SEAT_PROVISIONING.md](docs/SEAT_PROVISIONING.md), and [docs/WORKTREE_QOL.md](docs/WORKTREE_QOL.md).
63
49
 
64
- Commands initialize, check, record evidence, and project read models. They
65
- **never** grant, merge, close, publish, or promote — evidence, not authority.
50
+ Provision runtime seats only after assignment:
66
51
 
67
- ## Verify releases
52
+ ```sh
53
+ sh templates/seat-packs-v0/bin/provision-seat codex /tmp/dev-codex-seat
54
+ sh templates/seat-packs-v0/bin/provision-seat claude-code /tmp/dev-claude-code-seat
55
+ sh templates/seat-packs-v0/bin/provision-seat gemini /tmp/dev-gemini-seat
56
+ sh templates/seat-packs-v0/bin/provision-seat ollama /tmp/dev-ollama-seat
57
+ sh templates/seat-packs-v0/bin/provision-seat openrouter /tmp/dev-openrouter-seat
58
+ ```
68
59
 
69
- The signing key's SHA-256 fingerprint — cross-check against the copy at
70
- https://etiquekit.com/docs/ before trusting a downloaded key:
60
+ ## Validate
71
61
 
72
- ```
73
- 917fbced1d6a82897ec3441a1d12947803ca4d42a6bc63d3412dee8bf8c3ce31
62
+ ```sh
63
+ npm run release:scan
64
+ bun test
65
+ npm run typecheck
74
66
  ```
75
67
 
76
- Then `openssl dgst -sha256 -verify <key> -signature SHA256SUMS.sig SHA256SUMS`
77
- and `shasum -a 256 -c SHA256SUMS`. If any step fails: stop, do not install.
68
+ ## Release Status
69
+
70
+ ```yaml
71
+ default_surface: templates/etiquette-vanilla-v0
72
+ optional_runtime_surface: templates/seat-packs-v0
73
+ public_installer: held
74
+ ```
78
75
 
79
76
  ## License
80
- Proprietary; distributed as compiled bundles for convenience.
77
+
78
+ Apache-2.0 — see [LICENSE](./LICENSE) and [NOTICE](./NOTICE).
package/bin/etiquette CHANGED
@@ -14,12 +14,8 @@ done
14
14
  ROOT=$(CDPATH= cd -- "$(dirname -- "$SELF")/.." && pwd)
15
15
 
16
16
  if ! command -v bun >/dev/null 2>&1; then
17
- echo "etiquette requires bun >= 1.3 on PATH (https://bun.sh)." >&2
18
- echo "install: curl -fsSL https://bun.sh/install | bash" >&2
17
+ echo "etiquette requires bun on PATH" >&2
19
18
  exit 127
20
19
  fi
21
20
 
22
- if [ -f "$ROOT/lib/etiquette.js" ]; then
23
- exec bun "$ROOT/lib/etiquette.js" "$@"
24
- fi
25
21
  exec bun "$ROOT/packages/control/src/cli.ts" "$@"
@@ -14,12 +14,8 @@ done
14
14
  ROOT=$(CDPATH= cd -- "$(dirname -- "$SELF")/.." && pwd)
15
15
 
16
16
  if ! command -v bun >/dev/null 2>&1; then
17
- echo "etiquette-core requires bun >= 1.3 on PATH (https://bun.sh)." >&2
18
- echo "install: curl -fsSL https://bun.sh/install | bash" >&2
17
+ echo "etiquette-core requires bun on PATH" >&2
19
18
  exit 127
20
19
  fi
21
20
 
22
- if [ -f "$ROOT/lib/etiquette-core.js" ]; then
23
- exec bun "$ROOT/lib/etiquette-core.js" "$@"
24
- fi
25
21
  exec bun "$ROOT/packages/control/src/core-cli.ts" "$@"
@@ -22,9 +22,9 @@ Execution returns evidence; it never mints authority.
22
22
  ```
23
23
 
24
24
  Execution is a substrate, not an authority layer. In Core it is the local shell,
25
- worktree, or runner. In Full it may be a managed execution container,
26
- EKS/kind sandbox, or managed runner. In every profile, execution remains
27
- authority-false until the promotion gate accepts evidence.
25
+ worktree, or runner. In Full it may be a runtime cell, EKS/kind sandbox, or
26
+ managed runner. In every profile, execution remains authority-false until the
27
+ promotion gate accepts evidence.
28
28
 
29
29
  ## Authority
30
30
 
@@ -52,11 +52,11 @@ role occupants or composite gates and fails closed.
52
52
 
53
53
  ## Consumers
54
54
 
55
- Consumers may read, render, route bounded work, start bounded runners, and return
55
+ Consumers may read, render, route bounded work, spawn bounded runners, and return
56
56
  receipts. They must not grant, close, merge, rewrite ledgers, or become the bus.
57
57
 
58
58
  Good first consumers are verification-first managed runners, local coding seats,
59
- context workbenches, dashboards, and MCP readers. Start remote as evidence-only.
59
+ context workbenches, dashboards, and MCP readers. Start remote as witness-only.
60
60
 
61
61
  ## Package Boundary
62
62
 
@@ -23,7 +23,7 @@ Source: https://developers.openai.com/codex/changelog
23
23
  | Remote-runtime app-server/exec-server canaries | `0.141.0` required | Block that canary until upgraded. |
24
24
  | Plugin-scoped MCP adapter canaries | `0.141.0` required | Block that canary until upgraded. |
25
25
  | Hook/action-auth resume canaries | `0.141.0` required | Block that canary until upgraded. |
26
- | Usage-budget hygiene before long multi-runner windows | `0.140.0` minimum for `/usage` | Advisory only. |
26
+ | Usage-budget hygiene before long swarms | `0.140.0` minimum for `/usage` | Advisory only. |
27
27
 
28
28
  ## Operator Check
29
29
 
package/docs/CONCEPTS.md CHANGED
@@ -38,8 +38,10 @@ autonomous execution.
38
38
  ## Session
39
39
 
40
40
  A session is a bounded run inside one repo. Use one for a bug fix, feature
41
- slice, review, release canary, or short parallel review window; not for a
42
- product, quarter, or org.
41
+ slice, review, release canary, or short swarm; not for a product, quarter, or
42
+ org.
43
+
44
+ Rebind reattaches a live session to the current ledger, task, branch, and worktree after interruption or runner/vendor change.
43
45
 
44
46
  ## Receipt
45
47
 
@@ -52,23 +54,6 @@ A ledger is the durable work record for a repo or workspace: decisions,
52
54
  receipts, state changes, and refs. Raw execution chatter belongs in session
53
55
  runbooks and scratch space.
54
56
 
55
- ### Durable Record vs Query Index
56
-
57
- Two surfaces share the ledger name. They are different systems:
58
-
59
- | Surface | Path | When it populates |
60
- | --- | --- | --- |
61
- | Durable record | `docs/work/ledger/LEDGER.md` | Automatically, as the workflow appends event lines |
62
- | Query index | `.etiquette/state/ledger/index.db` | Only when you run `etiquette ledger index` |
63
-
64
- The durable record is canonical and append-only. The query index is a
65
- generated, regenerable SQLite cache read by `ledger search` and `ledger show`.
66
- It ingests typed `schema=ledger-entry.v0*` lines and scanned documents, not
67
- routine workflow event lines. `ledger_entries: 0` after a full workflow cycle
68
- means no typed entries exist yet; the durable record is intact. Deleting the
69
- index loses nothing. See
70
- `docs/contracts/ledger-entry/ledger-query-cli.v0.1.md`.
71
-
72
57
  ## Promotion Gate
73
58
 
74
59
  The promotion gate is where candidate work becomes accepted truth.
@@ -99,8 +84,7 @@ runner only through an explicit lease.
99
84
 
100
85
  A child lease must be a strict subset of the parent lease. The subset covers
101
86
  shorter or equal TTL, narrower or equal authority scope, subset write paths,
102
- subset tools, inherited prohibitions, reduced child-runner budget, and reduced
103
- depth.
87
+ subset tools, inherited prohibitions, reduced spawn budget, and reduced depth.
104
88
 
105
89
  Children return to their immediate parent. The parent synthesizes one upstream
106
90
  receipt and remains accountable for child cleanup. A child or headless node is
@@ -109,7 +93,7 @@ not a durable seat unless it is separately enrolled and passes readiness.
109
93
  ## Exec
110
94
 
111
95
  Exec is any runtime that does work: a local shell, Codex, Claude Code, Gemini,
112
- Ollama, a script, a container, or a managed execution container.
96
+ Ollama, a script, a container, or a remote runtime cell.
113
97
 
114
98
  Exec may run, observe, retry safe work, and return evidence. Exec must not
115
99
  grant, merge, close, promote, or mutate canonical truth.
@@ -131,7 +115,7 @@ External tools keep their native jobs: chat is conversation, planning tools are
131
115
  planning, code hosts are review, observability is incident evidence, and
132
116
  identity systems are identity.
133
117
 
134
- Etiquette is the accountability journal. External "Done" is not acceptance.
118
+ Etiquette is the accountability spine. External "Done" is not acceptance.
135
119
  Authentication is not authorization.
136
120
 
137
121
  ## Short Rules
@@ -0,0 +1,66 @@
1
+ # Concept Status Matrix
2
+
3
+ Etiquette uses a few strong workflow concepts. Some are core behavior today,
4
+ some belong to the optional secure plane, and some are still operating patterns
5
+ that need a concrete consumer before they become default workflow.
6
+
7
+ Use this page when writing portal copy, onboarding material, release notes, or
8
+ manager runbooks. Do not promote a concept beyond the status shown here.
9
+
10
+ ## Edition Boundary
11
+
12
+ | Surface | Purpose | Authority Posture |
13
+ | --- | --- | --- |
14
+ | Etiquette Core | Repo-local coordination, task envelopes, receipts, allowed writes, read models, manuals, and canaries. | Transparent by default; authority comes from tracked task/grant records and receipts. |
15
+ | Etiquette Secure | Restricted-seat admission, external assurance claims, revocation, policy state, and optional tightening reactor. | Tightens standing and eligibility; it must not grant workflow authority by itself. |
16
+ | Hosted/portal plane | Setup passes, workspace visibility, onboarding, board/read-model display, and operational observability. | Portal RBAC authorizes portal operations only. Workflow authority stays local and grant-backed. |
17
+
18
+ ## Concept Matrix
19
+
20
+ | Concept | Core Status | Secure Status | Portal Surface | Caveat |
21
+ | --- | --- | --- | --- | --- |
22
+ | Ledger | Shipped. Repo-local task records, events, and receipts carry durable workflow truth. | May receive signed or protected replication later. | Board and console render ledger-derived read models. | Git-backed truth is durable and auditable; call it cryptographic only when signing/protected append-only is actually configured. |
23
+ | Receipts | Shipped. Work returns must cite changed files, validation, blockers, and next owner. | May include action authorization stamps and external verifier receipts. | Evidence drawers and manager views point to receipts. | A receipt proves evidence; it does not grant, merge, close, or promote by itself. |
24
+ | Seats and agents | Shipped. A seat is a stable responsibility; an occupant/runtime can change. Owner cards derive accountability, diet, boundaries, review cadence, and failure modes from source contracts plus live readiness. | Secure posture is parked; seats use local readiness and explicit task routing. | Roster and owner cards show lifecycle, readiness, ownership, and posture. | Model cards, owner cards, and roster posture help routing but do not authorize work or transfer ownership. |
25
+ | Task envelopes | Shipped. Tasks declare owner, mode, allowed writes, forbidden writes, validation, stop conditions, and receipt expectations. | Secure admission is parked; task routing remains explicit. | Manager manuals and pickup surfaces show the envelope. | Allowed writes are a cooperative boundary unless paired with OS/container enforcement or audit gates. |
26
+ | Rubrics and validation | Shipped as acceptance criteria and conformance gates. | Can be bound to restricted workflows and verifier receipts. | Manager/operator docs list required validation and stop conditions. | Do not claim every runtime is hard-blocked from returning unless the specific flow enforces that gate. |
27
+ | Authorization | Shipped as grant-backed workflow discipline: authentication seats an actor; authorization gates consequential action. | Secure posture is parked; grant leases, kill-switch state, and action stamps remain the admission-time authority model. | Hosted pass docs and workspace authority contracts describe the boundary. | A verified occupant has standing, not blanket authority. Grants are effective only while standing is current. |
28
+ | Portal / management console | Core read model, docs site, screenshots, and read-only `console serve` are shipped. | Secure portal may manage policy state and revocation signals. | Console and board are read-only by default. | Portal RBAC is not workflow authority. Browser actions remain out of scope in Core. |
29
+ | Distribution and plugins | Core CLI, docs, templates, MCP resources/prompts, and outbox-backed proposal staging are portable. | Secure can ship as an optional add-on. | Codex and Claude Code plugins may launch workflows and portal views. | Plugins are convenience packaging, not authority. MCP proposal tools must not mutate the ledger directly. |
30
+ | Remote execution | Supported as evidence-first design. | Secure runtimes may require admission, revocation, and verifier identity before execution. Org-remote workspaces use session outboxes, sharded drains, candidate imports, and authority promotion gates. | Manager docs should treat remote receipts as evidence. | Start remote as witness, not worker. Remote receipts and drain imports do not authorize promotion. |
31
+ | Managed-agent parity | Parity map exists for agents, environments, sessions, events, tools, MCP, memory, outcomes, and scheduling. | Secure runtime admission is parked. | Docs site and portal docs may expose the map. | Compatibility is not dependency. The runner executes; Etiquette governs and records. |
32
+ | Architecture boundary | Core, runtime, harness, adapter, and reactor roles are documented and import-boundary tested. | Secure adds admission policy without forking doctrine. | Hosted consumes projected views without becoming authority. | New reverse imports are architectural changes, not convenience edits. |
33
+ | Memory | Shipped as cited context, filesystem-shaped candidate stores, SQLite FTS recall, and `memory status` capability reporting. Evidence consolidation/rollup is the memory compaction lifecycle; it is not doctrine marination. | Secure deployments may restrict what crosses org/workspace boundaries. | Docs may surface references, summaries, archive pointers, and shipped/reserved memory status. | Memory proposes; ledger authorizes. Do not claim full semantic/vector memory parity until the adapter ships. Do not rewrite shared truth through background consolidation. |
34
+ | Marination | Operating pattern. Use for doctrine sabbaticals: scheduled fresh-attention review of rules, errata, and proposed revisions. | Can be run under Secure as an advisory process with cited evidence. | Not yet a default portal workflow. | Deltas only. It produces proposals, not silent lane mutations. |
35
+ | Sabbaticals / parking | Partially reflected as `park`, `held`, and deferred dispositions. | Secure deployments may freeze standing or grants while work is parked. | Manager cadence can show parked/held work. | Do not promise automatic stash/cleanup unless the workspace implements that runbook. |
36
+ | Tightening reactor | Not part of default Core. | Optional off-by-default listener that writes only fail-closed signals such as revocation or kill-switch state. | Secure operations may show reactor health. | It may tighten, never loosen. If it stops, local admission still fails or proceeds from last known policy according to the configured gate. |
37
+
38
+ ## Primitive Loop
39
+
40
+ Core records, validates, gates, and dispatches. Full remembers, consolidates,
41
+ marinates, and projects. Execution is not the gate: Core execution is the local
42
+ shell/worktree, Full execution is a runtime cell or managed runner, and both
43
+ remain authority-false until the promotion gate accepts evidence.
44
+
45
+ | Layer | Core | Full |
46
+ | --- | --- | --- |
47
+ | Record | identity, seats, task envelopes, session runbooks, ledger, receipts | memory stores, recall capsules, org/workspace projections |
48
+ | Reflect | rubrics, local validation, reconciliation by review | consolidation rollups, marination, drift and failure trend review |
49
+ | Gate | human/Git promotion gate over receipts and grants | same gate, enriched by secure admission and policy checks |
50
+ | Execute | local shell, local worktree, local runner | runtime cells, EKS/kind sandboxes, managed runners |
51
+ | Act | dispatch, receipt return, next-owner routing | hosted portal views, observability, adapter projections |
52
+
53
+ ## Writing Rule
54
+
55
+ Use shipped language for shipped behavior, design language for parked behavior,
56
+ and edition language for Secure behavior:
57
+
58
+ ```text
59
+ Core records, validates, gates, and dispatches.
60
+ Full remembers, consolidates, marinates, and projects.
61
+ Secure admits and revokes restricted standing.
62
+ Portals display and coordinate.
63
+ Grants authorize consequential actions.
64
+ Receipts prove what happened.
65
+ Execution returns evidence; it never mints authority.
66
+ ```
@@ -16,7 +16,7 @@ Core excludes by default:
16
16
 
17
17
  - hosted runtime and EKS provisioning;
18
18
  - MCP server;
19
- - Linear adapter;
19
+ - external planning adapter;
20
20
  - memory-store lifecycle and drains;
21
21
  - agent-plane profiles;
22
22
  - console/site;
@@ -37,8 +37,7 @@ Core records, validates, gates, and dispatches:
37
37
 
38
38
  Full remembers, consolidates, marinates, and projects. Memory stores,
39
39
  consolidation rollups, marination modules, hosted portals, secure screening,
40
- managed execution containers, and sharded drains belong there unless explicitly
41
- enabled.
40
+ remote runtime cells, and sharded drains belong there unless explicitly enabled.
42
41
 
43
42
  Use:
44
43
 
@@ -64,8 +63,7 @@ The Core promotion path is:
64
63
  5. The ledger records the promoted result.
65
64
 
66
65
  At Core scale, Git is the promotion mechanism. Drains, sharded import, hosted
67
- planes, and managed execution containers belong to the Full profile unless
68
- explicitly enabled.
66
+ planes, and runtime cells belong to the Full profile unless explicitly enabled.
69
67
 
70
68
  Core commands may advise, check, and record evidence. They do not authorize
71
69
  work, attach grants, merge, close lanes, or promote candidates without the
@@ -16,8 +16,8 @@ lane: APP-001-domain-foundation
16
16
  task_id: APP-001
17
17
  repo: github.com/org/app
18
18
  project_ref: .
19
- current_owner: codex-seat
20
- review_owner: cc-seat
19
+ current_owner: impl-seat
20
+ review_owner: review-seat
21
21
  mode: product-implementation | read-only-audit | docs-only
22
22
  startup_docs:
23
23
  - AGENTS.md
@@ -90,6 +90,11 @@ etiquette pickup --project . --seat <seat> --task <task> --text
90
90
  Then read only the startup docs named by the bulletin. Do not scrape old chat
91
91
  or a global bus to infer project state.
92
92
 
93
+ If the seat is resuming, changing role, changing runner/model/vendor, or moving
94
+ between worktrees, perform seat rebind before `join`/`pickup`: verify the live
95
+ project, task, branch, worktree, routing surface, and evidence surface from the
96
+ ledger. Rebind is context proof only; it is not readiness or authority.
97
+
93
98
  Inside a session, the agent should confirm:
94
99
 
95
100
  - seat id and operator principal;
package/docs/README.md CHANGED
@@ -9,17 +9,17 @@ For private manager-to-developer rollout, use
9
9
 
10
10
  References:
11
11
 
12
+ - [CONCEPT_STATUS.md](CONCEPT_STATUS.md)
12
13
  - [CODEX_CLIENT_COMPATIBILITY.md](CODEX_CLIENT_COMPATIBILITY.md)
13
14
  - [RELEASE_SURFACE_AUDIT.md](RELEASE_SURFACE_AUDIT.md)
14
- - [INTEGRATION_UI.md](INTEGRATION_UI.md) — building a UI/consumer over the event log and packets
15
15
 
16
16
  Source checkouts also keep hosted parity, portal, managed-runtime parity, and root kernel notes for
17
17
  maintainers. They are not part of the local devkit tarball.
18
18
 
19
19
  Integration profile:
20
- Slack/Teams are conversation, Jira/Linear are planning, GitHub/GitLab are code
21
- review, Sentry/Datadog/OpenTelemetry are incident evidence, and SSO/SCIM/OIDC
22
- are identity. Etiquette is the accountability journal: chat is not source of
20
+ Conversation systems carry discussion, planning systems track backlog, code review
21
+ systems review changes, incident systems carry evidence, and identity systems
22
+ authenticate users. Etiquette is the accountability spine: chat is not source of
23
23
  truth, external Done is not acceptance, and authentication is not authorization.
24
24
 
25
25
  Current release posture: Core is the default local-first product, Exec is