@etiquekit/etq 1.0.13 → 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.
Files changed (143) hide show
  1. package/AGENTS.md +26 -19
  2. package/LICENSE +3 -2
  3. package/NOTICE +4 -6
  4. package/QuickStart.md +46 -35
  5. package/README.md +57 -55
  6. package/bin/etiquette +5 -1
  7. package/bin/etiquette-core +5 -1
  8. package/docs/ARCHITECTURE.md +17 -20
  9. package/docs/CONCEPTS.md +5 -5
  10. package/docs/CORE_PROFILE.md +15 -7
  11. package/docs/LANE_PROVISIONING.md +2 -7
  12. package/docs/README.md +14 -13
  13. package/docs/RELEASE_SURFACE_AUDIT.md +6 -7
  14. package/docs/SEAT_DISCIPLINE.md +91 -55
  15. package/docs/SEAT_PROVISIONING.md +19 -16
  16. package/docs/TEAM_HANDOFF.md +21 -21
  17. package/docs/WORKTREE_QOL.md +0 -7
  18. package/docs/contracts/ledger-entry/README.md +11 -11
  19. package/docs/contracts/ledger-entry/ledger-entry.v0.2.md +2 -2
  20. package/docs/contracts/ledger-entry/ledger-entry.v0.md +8 -8
  21. package/lib/etiquette-core.js +313 -0
  22. package/lib/etiquette.js +1151 -0
  23. package/package.json +13 -12
  24. package/templates/etiquette-vanilla-v0/README.md +3 -2
  25. package/templates/etiquette-vanilla-v0/source/control-seat/README.md +6 -0
  26. package/templates/etiquette-vanilla-v0/source/control-seat/bin/access-assurance-check +55 -0
  27. package/templates/etiquette-vanilla-v0/source/control-seat/bin/seat-doctor +5 -0
  28. package/templates/etiquette-vanilla-v0/source/control-seat/docs/work/access/ACCESS-ASSURANCE.md +39 -0
  29. package/templates/etiquette-vanilla-v0/source/control-seat/docs/work/access/workspace-secure-profile.v0.json +53 -0
  30. package/templates/etiquette-vanilla-v0/validate-vanilla.sh +5 -0
  31. package/templates/hosted-receiver/README.md +41 -0
  32. package/templates/hosted-receiver/w1-github-webhook-receiver.mjs +129 -0
  33. package/templates/seat-packs-v0/README.md +2 -3
  34. package/templates/seat-packs-v0/source/claude-code-seat/README.md +3 -3
  35. package/templates/seat-packs-v0/source/codex-seat/README.md +3 -3
  36. package/templates/seat-packs-v0/source/gemini-seat/README.md +3 -3
  37. package/templates/seat-packs-v0/source/ollama-seat/README.md +3 -3
  38. package/templates/seat-packs-v0/source/openrouter-seat/README.md +3 -3
  39. package/docs/CONCEPT_STATUS.md +0 -66
  40. package/packages/control/src/authority/lease.ts +0 -261
  41. package/packages/control/src/authority/node-delegation.ts +0 -257
  42. package/packages/control/src/authority/rig-conductor.ts +0 -632
  43. package/packages/control/src/cli/argv.ts +0 -155
  44. package/packages/control/src/cli/commands/console.ts +0 -200
  45. package/packages/control/src/cli/commands/dispatch-core.ts +0 -89
  46. package/packages/control/src/cli/commands/dispatch.ts +0 -279
  47. package/packages/control/src/cli/commands/harness.ts +0 -89
  48. package/packages/control/src/cli/commands/hook.ts +0 -50
  49. package/packages/control/src/cli/commands/ledger.ts +0 -91
  50. package/packages/control/src/cli/commands/local-workflow.ts +0 -4686
  51. package/packages/control/src/cli/commands/memory.ts +0 -445
  52. package/packages/control/src/cli/commands/release.ts +0 -108
  53. package/packages/control/src/cli/commands/rubric.ts +0 -103
  54. package/packages/control/src/cli/commands/seat.ts +0 -179
  55. package/packages/control/src/cli/commands/session.ts +0 -127
  56. package/packages/control/src/cli/commands/supervision.ts +0 -246
  57. package/packages/control/src/cli/commands/sync.ts +0 -119
  58. package/packages/control/src/cli/commands/workflow.ts +0 -86
  59. package/packages/control/src/cli/commands/workspace.ts +0 -50
  60. package/packages/control/src/cli/core-usage.ts +0 -34
  61. package/packages/control/src/cli/prompt.ts +0 -67
  62. package/packages/control/src/cli/supervision-deps.ts +0 -44
  63. package/packages/control/src/cli/usage.ts +0 -241
  64. package/packages/control/src/cli.ts +0 -207
  65. package/packages/control/src/core-cli.ts +0 -50
  66. package/packages/control/src/dispatch/decision.ts +0 -202
  67. package/packages/control/src/dispatch/projection.ts +0 -293
  68. package/packages/control/src/dispatch/record.ts +0 -153
  69. package/packages/control/src/engagement/project.ts +0 -170
  70. package/packages/control/src/fs.ts +0 -19
  71. package/packages/control/src/harness/pruning.ts +0 -406
  72. package/packages/control/src/hooks/dispatcher.ts +0 -117
  73. package/packages/control/src/hooks/outbox.ts +0 -86
  74. package/packages/control/src/hooks/sanitize.ts +0 -6
  75. package/packages/control/src/hooks/types.ts +0 -34
  76. package/packages/control/src/index.ts +0 -384
  77. package/packages/control/src/ledger/entry.ts +0 -303
  78. package/packages/control/src/ledger/indexer.ts +0 -542
  79. package/packages/control/src/memory/context.ts +0 -149
  80. package/packages/control/src/memory/drain-import.ts +0 -207
  81. package/packages/control/src/memory/indexer.ts +0 -284
  82. package/packages/control/src/memory/query.ts +0 -75
  83. package/packages/control/src/memory/sanitize.ts +0 -50
  84. package/packages/control/src/memory/sharded-drain-import.ts +0 -212
  85. package/packages/control/src/memory/status.ts +0 -211
  86. package/packages/control/src/memory/store-lifecycle.ts +0 -509
  87. package/packages/control/src/memory/store.ts +0 -284
  88. package/packages/control/src/memory/types.ts +0 -146
  89. package/packages/control/src/parity/surfaces.ts +0 -748
  90. package/packages/control/src/project.ts +0 -141
  91. package/packages/control/src/projection/local-ledger-view.ts +0 -373
  92. package/packages/control/src/projection/return-enforcement.ts +0 -48
  93. package/packages/control/src/projection/timeline-preview.ts +0 -539
  94. package/packages/control/src/projection/timeline.ts +0 -708
  95. package/packages/control/src/release/readiness.ts +0 -831
  96. package/packages/control/src/rubric/loader.ts +0 -326
  97. package/packages/control/src/rubric/promotion.ts +0 -54
  98. package/packages/control/src/rubric/runner.ts +0 -159
  99. package/packages/control/src/rubric/types.ts +0 -158
  100. package/packages/control/src/seat/owner-card.ts +0 -388
  101. package/packages/control/src/seat/readiness.ts +0 -834
  102. package/packages/control/src/session/runbook.ts +0 -431
  103. package/packages/control/src/shared/sanitize.ts +0 -49
  104. package/packages/control/src/supervision/action-classes.ts +0 -192
  105. package/packages/control/src/supervision/command-apply.ts +0 -378
  106. package/packages/control/src/supervision/errors.ts +0 -14
  107. package/packages/control/src/supervision/event-replay.ts +0 -155
  108. package/packages/control/src/supervision/events.ts +0 -109
  109. package/packages/control/src/supervision/index.ts +0 -16
  110. package/packages/control/src/supervision/manifest.ts +0 -127
  111. package/packages/control/src/supervision/paths.ts +0 -49
  112. package/packages/control/src/supervision/projection-adapter.ts +0 -274
  113. package/packages/control/src/supervision/projection.ts +0 -75
  114. package/packages/control/src/supervision/rebuild.ts +0 -99
  115. package/packages/control/src/supervision/session-open.ts +0 -131
  116. package/packages/control/src/supervision/session-read.ts +0 -99
  117. package/packages/control/src/supervision/sqlite-impl.ts +0 -71
  118. package/packages/control/src/supervision/sqlite.ts +0 -121
  119. package/packages/control/src/supervision/store-rows.ts +0 -371
  120. package/packages/control/src/supervision/turn-close.ts +0 -154
  121. package/packages/control/src/supervision/turn-open.ts +0 -284
  122. package/packages/control/src/sync/event-log-merge-driver.ts +0 -263
  123. package/packages/control/src/sync/join-plan.ts +0 -375
  124. package/packages/control/src/sync/outbox.ts +0 -492
  125. package/packages/control/src/workflow/evaluator.ts +0 -140
  126. package/packages/control/src/workflow/loader.ts +0 -200
  127. package/packages/control/src/workflow/types.ts +0 -90
  128. package/packages/control/src/workspace/authority.ts +0 -499
  129. package/packages/protocol/src/guards.ts +0 -119
  130. package/packages/protocol/src/huddle-board.ts +0 -198
  131. package/packages/protocol/src/huddle.ts +0 -295
  132. package/packages/protocol/src/incident.ts +0 -251
  133. package/packages/protocol/src/index.ts +0 -8
  134. package/packages/protocol/src/interfaces.ts +0 -107
  135. package/packages/protocol/src/packet-profile.ts +0 -195
  136. package/packages/protocol/src/state.ts +0 -81
  137. package/packages/protocol/src/types.ts +0 -434
  138. package/release/lineage.v0.json +0 -14
  139. package/scripts/release-candidate-verify.sh +0 -175
  140. package/scripts/release-checksum.sh +0 -25
  141. package/scripts/release-pack-canary.sh +0 -97
  142. package/scripts/release-scan.sh +0 -249
  143. package/scripts/release-sign.sh +0 -34
package/AGENTS.md CHANGED
@@ -1,30 +1,37 @@
1
1
  # Etiquette Agent Guide
2
2
 
3
- This repo is the Etiquette source repo. Keep the all-developer onboarding path small.
3
+ ## If you installed this package
4
4
 
5
- ## Default Rule
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:
6
8
 
7
- New engineers should start with:
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.
8
15
 
9
- 1. [README.md](README.md)
10
- 2. [docs/SEAT_PROVISIONING.md](docs/SEAT_PROVISIONING.md)
11
- 3. [templates/etiquette-vanilla-v0/README.md](templates/etiquette-vanilla-v0/README.md)
12
-
13
- Do not send new seats through internal history, old coordination lanes, or maintainer-only notes.
16
+ Commands record evidence; they never grant, merge, close, publish, or
17
+ promote.
14
18
 
15
- ## Ownership
19
+ ## If you are working on the Etiquette source repo
16
20
 
17
- This repo owns:
21
+ Keep the all-developer onboarding path small. New engineers start with:
18
22
 
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.
23
+ 1. [README.md](README.md)
24
+ 2. [docs/SEAT_PROVISIONING.md](docs/SEAT_PROVISIONING.md)
25
+ 3. [templates/etiquette-vanilla-v0/README.md](templates/etiquette-vanilla-v0/README.md)
25
26
 
26
- This repo does not own product repos, product lane state, secrets, hosted services, or runtime vendor setup.
27
+ Do not send new seats through internal history, old coordination lanes, or
28
+ maintainer-only notes.
27
29
 
28
- ## Editing Rule
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.
29
34
 
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.
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.
package/LICENSE CHANGED
@@ -1,3 +1,4 @@
1
+
1
2
  Apache License
2
3
  Version 2.0, January 2004
3
4
  http://www.apache.org/licenses/
@@ -137,8 +138,8 @@
137
138
 
138
139
  6. Trademarks. This License does not grant permission to use the trade
139
140
  names, trademarks, service marks, or product names of the Licensor,
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.
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.
142
143
 
143
144
  7. Disclaimer of Warranty. Unless required by applicable law or
144
145
  agreed to in writing, Licensor provides the Work (and each
package/NOTICE CHANGED
@@ -1,7 +1,5 @@
1
- Etiquette
2
- Copyright (c) 2026 Leepick Inc, US.
1
+ Etiquette (etq)
2
+ Copyright 2026 The Etiquekit Authors
3
3
 
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.
4
+ Local-first, git-backed agent-workflow governance toolkit.
5
+ Distributed under the Apache License, Version 2.0.
package/QuickStart.md CHANGED
@@ -1,51 +1,53 @@
1
1
  # Quick Start
2
2
 
3
- Get from zero to a governed working project in about two minutes.
3
+ For a clean repo, a team canary, or a new Etiquette developer.
4
4
 
5
- Prereqs: Git, Node 18+ (for npm install) or Bun `>=1.3.0`.
5
+ Prereqs: `git >= 2.40` and `bun >= 1.3` on `PATH`. macOS and Linux.
6
6
 
7
7
  ## 1. Get The CLI
8
8
 
9
- The published package:
10
-
11
9
  ```sh
12
- npm install -g @etiquekit/etq
13
- # or project-local: npm install @etiquekit/etq && alias etq=./node_modules/.bin/etq
14
- etq --help
10
+ npm install -g @etiquekit/etq # local exec plane over @etiquekit/core
11
+ curl -fsSL https://etiquekit.com/install.sh | sh # or: native installer
15
12
  ```
16
13
 
17
- Bootstrap a project and run your first cycle:
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 using the docs at
18
+ `https://etiquekit.com/docs/`, then:
18
19
 
19
20
  ```sh
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
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"
24
26
  ```
25
27
 
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
+
32
35
  ```sh
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
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
42
45
  ```
43
46
 
44
47
  `bootstrap local` creates repo-local state, seats, task envelopes, pickup docs,
45
48
  events, and runbooks. It does not grant, publish, merge, close, or promote.
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.
49
+ `handoff` is a read-only guide: it prints install, bootstrap, and pickup
50
+ commands without changing anything.
49
51
 
50
52
  ## 3. Orient The Live Seat
51
53
 
@@ -53,21 +55,24 @@ Run `whereami` whenever a developer or agent resumes, changes directories, or
53
55
  inherits a worktree:
54
56
 
55
57
  ```sh
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
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
58
60
  ```
59
61
 
60
62
  Runner resume recovers chat context; `whereami` confirms the repo, branch, task
61
63
  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.
63
64
 
64
65
  ## 4. Check And Record Evidence
65
66
 
66
- Create checkable dispatch examples, then run the generated command:
67
+ Completion gate: write the receipt at the path `pickup` names, 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:
67
72
 
68
73
  ```sh
69
- "$ETQ" dispatch scaffold --project "$PWD" --task-id APP-001 --seat impl-seat
70
- "$ETQ" dispatch check --project "$PWD" \
74
+ etq dispatch scaffold --project "$PWD" --task-id APP-001 --seat codex-seat
75
+ etq dispatch check --project "$PWD" \
71
76
  --mode docs/work/dispatch/APP-001/mode.yaml \
72
77
  --task docs/work/dispatch/APP-001/task.yaml \
73
78
  --sandbox-receipt docs/work/dispatch/APP-001/receipt.yaml \
@@ -77,7 +82,13 @@ Create checkable dispatch examples, then run the generated command:
77
82
  `dispatch record` writes local metadata and receipt refs; it does not merge,
78
83
  close, publish, or grant.
79
84
 
80
- ## 5. Stop Conditions
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.
81
93
 
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.
94
+ Docs: https://etiquekit.com/docs/ · Agents start at: https://etiquekit.com/llms.txt
package/README.md CHANGED
@@ -1,78 +1,80 @@
1
1
  # Etiquette
2
2
 
3
- Etiquette is a governance and evidence CLI for agent-assisted engineering work.
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.
4
6
 
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.
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.
8
12
 
9
- Default loop: `setup -> handoff -> bootstrap local -> whereami -> doctor -> join -> pickup -> receipt -> promotion gate`.
13
+ Docs: https://etiquekit.com/docs/ · Agents start at: https://etiquekit.com/llms.txt
10
14
 
11
- Execution runtimes are optional; they return evidence and do not mint authority.
15
+ ## Package split
12
16
 
13
- ## Start
17
+ Etiquette is now shipped as a small open core plus execution planes:
14
18
 
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:
19
+ | Package / repo | Role |
20
+ | --- | --- |
21
+ | [`@etiquekit/core`](https://www.npmjs.com/package/@etiquekit/core) | Public open governance contract: schemas, pure state machines, authority/refusal rules, plane profiles, and conformance. |
22
+ | [`@etiquekit/etq`](https://www.npmjs.com/package/@etiquekit/etq) | Thin local execution plane: CLI, git journal, worktree/session ergonomics, local evidence return, and developer-facing docs. It consumes `@etiquekit/core`. |
23
+ | `remote-etq` | Private managed execution plane: API, sequencer, workers, tenancy, and hard-stop enforcement. |
17
24
 
18
- ```sh
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
28
- ```
29
-
30
- `handoff` is a read-only guide: it prints install, bootstrap, and pickup commands without installing, bootstrapping, pushing, closing, or granting.
31
-
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.
37
-
38
- Use repo-local commands for now. The hosted public installer is parked.
25
+ The public source homes are linked from npm package metadata and
26
+ https://etiquekit.com/docs/. The open reference is the core contract plus
27
+ sample/conformance surfaces. `etq` is the production local plane that dogfoods
28
+ that contract.
39
29
 
40
- ## Core Concepts
30
+ ## Install
41
31
 
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.
32
+ ```sh
33
+ npm install -g @etiquekit/etq # local exec plane; installs @etiquekit/core
34
+ curl -fsSL https://etiquekit.com/install.sh | sh # or: native installer
35
+ ```
47
36
 
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).
37
+ Requires `bun >= 1.3` and `git >= 2.40`. macOS and Linux. The installer
38
+ verifies signatures against a pinned key before executing.
49
39
 
50
- Provision runtime seats only after assignment:
40
+ ## Sixty seconds to a governed workspace
51
41
 
52
42
  ```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
43
+ etq init --project . # provision folders, journal, roster
44
+ etq doctor --project . # readiness — green before work
45
+ etq bootstrap local --project . \
46
+ --profile codex-cc-gemini --task-prefix APP
47
+ etq setup --target auto --project . # register your agent CLI (explicit)
48
+ etq join --seat codex-seat --project . # profile seats: codex/cc/gemini/manager
49
+ etq console board --project . --text # the live task board
58
50
  ```
59
51
 
60
- ## Validate
52
+ Per-runtime seat packs: `provision-seat claude-code` · `provision-seat codex`
53
+ · `provision-seat gemini` · `provision-seat ollama` · `provision-seat openrouter`.
54
+
55
+ The daily loop:
61
56
 
62
57
  ```sh
63
- npm run release:scan
64
- bun test
65
- npm run typecheck
58
+ etq pickup --seat codex-seat --task APP-001 --expect-project-id <id> --text
59
+ # ... do the work; write the receipt at the path pickup names ...
60
+ etq post --role implementation-return --lane APP-001 \
61
+ --from codex-seat --to manager-seat --project .
62
+ etq return check --task APP-001 --seat codex-seat # the completion gate
66
63
  ```
67
64
 
68
- ## Release Status
65
+ (`dispatch check` gates routing BEFORE work; `return check` gates completion.)
66
+ Every step appends to the workspace journal — an append-only event log inside
67
+ your repo. Nothing leaves your machine: no backend, no telemetry, no account.
69
68
 
70
- ```yaml
71
- default_surface: templates/etiquette-vanilla-v0
72
- optional_runtime_surface: templates/seat-packs-v0
73
- public_installer: held
74
- ```
69
+ ## Concepts in one breath
75
70
 
76
- ## License
71
+ | Concept | Answers |
72
+ | --- | --- |
73
+ | Seat | What durable work role is acting? |
74
+ | Task envelope | What writes, validation, and stop conditions are allowed? |
75
+ | Session | Which bounded run produced the evidence? |
76
+ | Receipt | What proves the work happened? |
77
+ | Promotion gate | Where does candidate work become accepted truth? |
77
78
 
78
- Apache-2.0 see [LICENSE](./LICENSE) and [NOTICE](./NOTICE).
79
+ Commands initialize, check, record evidence, and project read models. They
80
+ **never** grant, merge, close, publish, or promote — evidence, not authority.
package/bin/etiquette CHANGED
@@ -14,8 +14,12 @@ 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 on PATH" >&2
17
+ echo "etiquette requires bun >= 1.3 on PATH (https://bun.sh)." >&2
18
+ echo "install: curl -fsSL https://bun.sh/install | bash" >&2
18
19
  exit 127
19
20
  fi
20
21
 
22
+ if [ -f "$ROOT/lib/etiquette.js" ]; then
23
+ exec bun "$ROOT/lib/etiquette.js" "$@"
24
+ fi
21
25
  exec bun "$ROOT/packages/control/src/cli.ts" "$@"
@@ -14,8 +14,12 @@ 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 on PATH" >&2
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
18
19
  exit 127
19
20
  fi
20
21
 
22
+ if [ -f "$ROOT/lib/etiquette-core.js" ]; then
23
+ exec bun "$ROOT/lib/etiquette-core.js" "$@"
24
+ fi
21
25
  exec bun "$ROOT/packages/control/src/core-cli.ts" "$@"
@@ -8,16 +8,16 @@ vendor wrapper. Those can all consume Etiquette, but they do not own its truth.
8
8
  ## Layers
9
9
 
10
10
  ```text
11
- Core contracts, schemas, validators, ledgers, receipts, audit
12
- Local runtime repo-local CLI, event log, task packets, memory search
13
- Harness teammate UX, context presets, skills, dashboards, canvases
14
- Adapters Codex, Claude Code, Gemini, managed runners, GitHub, MCP
15
- Reactors optional tighten-only listeners for revocation and sync
11
+ @etiquekit/core public contracts, schemas, validators, refusal rules
12
+ @etiquekit/etq thin local exec plane: CLI, git journal, worktrees, receipts
13
+ remote-etq private managed exec plane: API, sequencer, workers, tenancy
14
+ adapters Codex, Claude Code, Gemini, GitHub, MCP, managed runners
15
+ reactors optional tighten-only listeners for revocation and sync
16
16
  ```
17
17
 
18
18
  ```text
19
- Core records, validates, gates, and dispatches.
20
- Full remembers, consolidates, marinates, and projects.
19
+ Core defines the contract.
20
+ Local and remote planes execute against it.
21
21
  Execution returns evidence; it never mints authority.
22
22
  ```
23
23
 
@@ -61,24 +61,21 @@ context workbenches, dashboards, and MCP readers. Start remote as witness-only.
61
61
  ## Package Boundary
62
62
 
63
63
  ```text
64
- packages/protocol kernel contracts; no runtime or adapter imports
65
- packages/control local runtime and public CLI; may use protocol only
66
- legacy bridges dbt-core and adapter-* stay source-only until a consumer
67
- apps/* UX surfaces; consume core through public commands or APIs
64
+ @etiquekit/core open package and public repo: pure governance contract
65
+ @etiquekit/etq npm package and public home: thin local execution plane
66
+ remote-etq private repo/service: managed execution plane
68
67
  ```
69
68
 
70
- Known bridge exceptions must stay named in conformance tests until removed.
71
- Adding a reverse import is an architectural change. The public 0.2.x package ships only
72
- `control`, `protocol`, docs, templates, and scripts; legacy DBT and old slice
73
- adapters stay source-only until a consumer exists.
69
+ The local plane may depend on core. Core must never depend on the local or
70
+ remote planes. Adding a reverse import is an architectural change.
74
71
 
75
- For 0.2.x, only two product boundaries are hard enforcement surfaces:
72
+ The hard enforcement surfaces are:
76
73
 
77
- - Core excludes Full command families and optional runtime, hosted, memory,
78
- console, sync, adapter, MCP, release, and remote provisioning surfaces.
79
- - Exec remains authority-false: it may run, observe, verify, and return
74
+ - Core excludes local CLI, hosted, managed, runtime, integration, MCP, and
75
+ deployment surfaces.
76
+ - Every exec plane remains authority-false: it may run, observe, verify, and return
80
77
  evidence, but it cannot grant, close, merge, promote, mutate canonical truth,
81
- or mint access outside Core grants and envelopes.
78
+ or mint access outside grants and envelopes.
82
79
 
83
80
  Exec evidence is boundary evidence, not process surveillance. Runners return scope, write
84
81
  boundaries, candidates, validation, failures, refusals, and stop conditions; internal retries need
package/docs/CONCEPTS.md CHANGED
@@ -10,8 +10,10 @@ runtime.
10
10
  seat -> task envelope -> session -> execution -> receipt -> promotion gate
11
11
  ```
12
12
 
13
- Core records, validates, gates, and dispatches. Exec runs and returns evidence.
14
- Full remembers, consolidates, marinates, and projects.
13
+ `@etiquekit/core` defines the public contract: schemas, state machines,
14
+ authority/refusal rules, plane profiles, and conformance. `@etiquekit/etq` is
15
+ the thin local execution plane that consumes that contract, runs local workflow
16
+ commands, and returns evidence. Managed or hosted planes are separate consumers.
15
17
 
16
18
  ## Seat
17
19
 
@@ -41,8 +43,6 @@ A session is a bounded run inside one repo. Use one for a bug fix, feature
41
43
  slice, review, release canary, or short swarm; not for a product, quarter, or
42
44
  org.
43
45
 
44
- Rebind reattaches a live session to the current ledger, task, branch, and worktree after interruption or runner/vendor change.
45
-
46
46
  ## Receipt
47
47
 
48
48
  A receipt proves what happened: changed files, validation, runbook refs,
@@ -115,7 +115,7 @@ External tools keep their native jobs: chat is conversation, planning tools are
115
115
  planning, code hosts are review, observability is incident evidence, and
116
116
  identity systems are identity.
117
117
 
118
- Etiquette is the accountability spine. External "Done" is not acceptance.
118
+ Etiquette is the accountability journal. External "Done" is not acceptance.
119
119
  Authentication is not authorization.
120
120
 
121
121
  ## Short Rules
@@ -1,7 +1,15 @@
1
1
  # Etiquette Core Profile
2
2
 
3
- Etiquette Core is the bare-bones governance flavor for senior engineers who
4
- want the original promise without the managed runtime surface.
3
+ This file describes the `etiquette-core` CLI profile inside `@etiquekit/etq`.
4
+ It is not the same thing as the public npm package `@etiquekit/core`.
5
+
6
+ `@etiquekit/core` is the open governance contract: schemas, pure state machines,
7
+ authority/refusal rules, plane profiles, and conformance. `@etiquekit/etq` is
8
+ the thin local execution plane that consumes it.
9
+
10
+ The `etiquette-core` CLI profile is the bare-bones local governance flavor for
11
+ senior engineers who want the original promise without the managed runtime
12
+ surface.
5
13
 
6
14
  Core includes:
7
15
 
@@ -16,7 +24,7 @@ Core excludes by default:
16
24
 
17
25
  - hosted runtime and EKS provisioning;
18
26
  - MCP server;
19
- - external planning adapter;
27
+ - Linear adapter;
20
28
  - memory-store lifecycle and drains;
21
29
  - agent-plane profiles;
22
30
  - console/site;
@@ -25,7 +33,7 @@ Core excludes by default:
25
33
 
26
34
  ## Primitive Map
27
35
 
28
- Core records, validates, gates, and dispatches:
36
+ The local core profile records, validates, gates, and dispatches:
29
37
 
30
38
  | Layer | Core primitive |
31
39
  | --- | --- |
@@ -35,9 +43,9 @@ Core records, validates, gates, and dispatches:
35
43
  | Execute | local shell, local worktree, local runner; authority-false |
36
44
  | Act | dispatch advice, receipt return, next-owner routing |
37
45
 
38
- Full remembers, consolidates, marinates, and projects. Memory stores,
39
- consolidation rollups, marination modules, hosted portals, secure screening,
40
- remote runtime cells, and sharded drains belong there unless explicitly enabled.
46
+ Higher-level planes may consolidate and project. Memory stores, consolidation
47
+ rollups, hosted portals, secure screening, remote runtime cells, and sharded
48
+ drains belong outside this profile unless explicitly enabled.
41
49
 
42
50
  Use:
43
51
 
@@ -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: impl-seat
20
- review_owner: review-seat
19
+ current_owner: codex-seat
20
+ review_owner: cc-seat
21
21
  mode: product-implementation | read-only-audit | docs-only
22
22
  startup_docs:
23
23
  - AGENTS.md
@@ -90,11 +90,6 @@ 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
-
98
93
  Inside a session, the agent should confirm:
99
94
 
100
95
  - seat id and operator principal;
package/docs/README.md CHANGED
@@ -1,5 +1,14 @@
1
1
  # Etiquette Docs
2
2
 
3
+ Package map:
4
+
5
+ - [`@etiquekit/core`](https://www.npmjs.com/package/@etiquekit/core) is the
6
+ public open contract; source is linked from npm metadata and the website.
7
+ - [`@etiquekit/etq`](https://www.npmjs.com/package/@etiquekit/etq) is the thin
8
+ local exec plane. It consumes `@etiquekit/core` and supplies CLI, local
9
+ journal, worktree/session ergonomics, and evidence return.
10
+ - `remote-etq` is the private managed execution plane.
11
+
3
12
  Start with [CONCEPTS.md](CONCEPTS.md), [CORE_PROFILE.md](CORE_PROFILE.md),
4
13
  [SEAT_PROVISIONING.md](SEAT_PROVISIONING.md), [SEAT_DISCIPLINE.md](SEAT_DISCIPLINE.md),
5
14
  [LANE_PROVISIONING.md](LANE_PROVISIONING.md), [WORKTREE_QOL.md](WORKTREE_QOL.md),
@@ -9,21 +18,13 @@ For private manager-to-developer rollout, use
9
18
 
10
19
  References:
11
20
 
12
- - [CONCEPT_STATUS.md](CONCEPT_STATUS.md)
13
21
  - [CODEX_CLIENT_COMPATIBILITY.md](CODEX_CLIENT_COMPATIBILITY.md)
14
22
  - [RELEASE_SURFACE_AUDIT.md](RELEASE_SURFACE_AUDIT.md)
15
23
 
16
- Source checkouts also keep hosted parity, portal, managed-runtime parity, and root kernel notes for
17
- maintainers. They are not part of the local devkit tarball.
18
-
19
24
  Integration profile:
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
25
+ Slack/Teams are conversation, Jira/Linear are planning, GitHub/GitLab are code
26
+ review, Sentry/Datadog/OpenTelemetry are incident evidence, and SSO/SCIM/OIDC
27
+ are identity. Etiquette is the accountability journal: chat is not source of
23
28
  truth, external Done is not acceptance, and authentication is not authorization.
24
-
25
- Current release posture: Core is the default local-first product, Exec is
26
- authority-false and swappable, Full/hosted surfaces are optional scale layers,
27
- and public hosted distribution is parked until organizational approval.
28
-
29
- Maintainer history and prior workflow notes are not part of new-seat onboarding.
29
+ Current posture: `@etiquekit/core` is open, `@etiquekit/etq` is the local exec
30
+ plane that dogfoods it, and remote/hosted execution stays private.