@etiquekit/etq 0.0.1 → 1.0.4

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 (83) hide show
  1. package/AGENTS.md +28 -0
  2. package/QuickStart.md +86 -0
  3. package/README.md +77 -9
  4. package/bin/etiquette +1150 -0
  5. package/bin/etiquette-core +313 -0
  6. package/docs/ARCHITECTURE.md +100 -0
  7. package/docs/CODEX_CLIENT_COMPATIBILITY.md +83 -0
  8. package/docs/CONCEPTS.md +128 -0
  9. package/docs/CONCEPT_STATUS.md +67 -0
  10. package/docs/CORE_PROFILE.md +70 -0
  11. package/docs/LANE_PROVISIONING.md +157 -0
  12. package/docs/README.md +29 -0
  13. package/docs/RELEASE_SURFACE_AUDIT.md +156 -0
  14. package/docs/SEAT_DISCIPLINE.md +116 -0
  15. package/docs/SEAT_PROVISIONING.md +100 -0
  16. package/docs/TEAM_HANDOFF.md +190 -0
  17. package/docs/WORKTREE_QOL.md +92 -0
  18. package/docs/contracts/ledger-entry/README.md +83 -0
  19. package/docs/contracts/ledger-entry/ledger-entry.v0.1.md +116 -0
  20. package/docs/contracts/ledger-entry/ledger-entry.v0.2.md +90 -0
  21. package/docs/contracts/ledger-entry/ledger-entry.v0.md +123 -0
  22. package/docs/contracts/ledger-entry/ledger-query-cli.v0.1.md +64 -0
  23. package/package.json +42 -11
  24. package/scripts/install.sh +144 -0
  25. package/scripts/uninstall.sh +58 -0
  26. package/templates/etiquette-vanilla-v0/README.md +69 -0
  27. package/templates/etiquette-vanilla-v0/bin/stamp-vanilla +33 -0
  28. package/templates/etiquette-vanilla-v0/source/control-seat/.llm-substrate/HANDOFF.md +22 -0
  29. package/templates/etiquette-vanilla-v0/source/control-seat/README.md +16 -0
  30. package/templates/etiquette-vanilla-v0/source/control-seat/bin/_lib/http.sh +121 -0
  31. package/templates/etiquette-vanilla-v0/source/control-seat/bin/_lib/sanitize.sh +191 -0
  32. package/templates/etiquette-vanilla-v0/source/control-seat/bin/_lib/state.sh +67 -0
  33. package/templates/etiquette-vanilla-v0/source/control-seat/bin/access-assurance-check +55 -0
  34. package/templates/etiquette-vanilla-v0/source/control-seat/bin/compact-local-events +71 -0
  35. package/templates/etiquette-vanilla-v0/source/control-seat/bin/hooks/post-tool-use +64 -0
  36. package/templates/etiquette-vanilla-v0/source/control-seat/bin/hooks/session-end +64 -0
  37. package/templates/etiquette-vanilla-v0/source/control-seat/bin/hooks/session-start +64 -0
  38. package/templates/etiquette-vanilla-v0/source/control-seat/bin/hooks/stop +64 -0
  39. package/templates/etiquette-vanilla-v0/source/control-seat/bin/hooks/user-prompt-submit +64 -0
  40. package/templates/etiquette-vanilla-v0/source/control-seat/bin/local-event +53 -0
  41. package/templates/etiquette-vanilla-v0/source/control-seat/bin/post-receipt +143 -0
  42. package/templates/etiquette-vanilla-v0/source/control-seat/bin/post-telemetry +112 -0
  43. package/templates/etiquette-vanilla-v0/source/control-seat/bin/seat-consume-pass +115 -0
  44. package/templates/etiquette-vanilla-v0/source/control-seat/bin/seat-doctor +20 -0
  45. package/templates/etiquette-vanilla-v0/source/control-seat/bin/seat-init +86 -0
  46. package/templates/etiquette-vanilla-v0/source/control-seat/bin/seat-post-readiness +171 -0
  47. package/templates/etiquette-vanilla-v0/source/control-seat/bin/session-init +132 -0
  48. package/templates/etiquette-vanilla-v0/source/control-seat/docs/work/access/ACCESS-ASSURANCE.md +39 -0
  49. package/templates/etiquette-vanilla-v0/source/control-seat/docs/work/access/workspace-secure-profile.v0.json +53 -0
  50. package/templates/etiquette-vanilla-v0/source/control-seat/docs/work/ledger/LEDGER.md +7 -0
  51. package/templates/etiquette-vanilla-v0/source/control-seat/docs/work/playbacks/PLAYBACK_TEMPLATE.md +31 -0
  52. package/templates/etiquette-vanilla-v0/source/control-seat/docs/work/receipts/.gitkeep +1 -0
  53. package/templates/etiquette-vanilla-v0/source/control-seat/docs/work/tasks/CONTROL-001.yaml +13 -0
  54. package/templates/etiquette-vanilla-v0/source/etiquette-kernel/README.md +6 -0
  55. package/templates/etiquette-vanilla-v0/source/etiquette-kernel/bin/kernel-doctor +11 -0
  56. package/templates/etiquette-vanilla-v0/source/etiquette-kernel/contracts/playback.v0.md +37 -0
  57. package/templates/etiquette-vanilla-v0/source/etiquette-kernel/contracts/receipt.v0.md +25 -0
  58. package/templates/etiquette-vanilla-v0/source/etiquette-kernel/contracts/seat-readiness.v0.md +22 -0
  59. package/templates/etiquette-vanilla-v0/source/etiquette-kernel/contracts/task.v0.md +18 -0
  60. package/templates/etiquette-vanilla-v0/validate-vanilla.sh +43 -0
  61. package/templates/github-actions/README.md +30 -0
  62. package/templates/github-actions/w1-webhook-wake-canary.yml +111 -0
  63. package/templates/hosted-receiver/README.md +41 -0
  64. package/templates/hosted-receiver/w1-github-webhook-receiver.mjs +129 -0
  65. package/templates/seat-packs-v0/README.md +72 -0
  66. package/templates/seat-packs-v0/bin/provision-seat +70 -0
  67. package/templates/seat-packs-v0/source/claude-code-seat/.llm-substrate/HANDOFF.md +24 -0
  68. package/templates/seat-packs-v0/source/claude-code-seat/README.md +19 -0
  69. package/templates/seat-packs-v0/source/claude-code-seat/bin/seat-doctor +8 -0
  70. package/templates/seat-packs-v0/source/codex-seat/.llm-substrate/HANDOFF.md +25 -0
  71. package/templates/seat-packs-v0/source/codex-seat/README.md +22 -0
  72. package/templates/seat-packs-v0/source/codex-seat/bin/seat-doctor +8 -0
  73. package/templates/seat-packs-v0/source/gemini-seat/.llm-substrate/HANDOFF.md +23 -0
  74. package/templates/seat-packs-v0/source/gemini-seat/README.md +19 -0
  75. package/templates/seat-packs-v0/source/gemini-seat/bin/seat-doctor +8 -0
  76. package/templates/seat-packs-v0/source/ollama-seat/.llm-substrate/HANDOFF.md +24 -0
  77. package/templates/seat-packs-v0/source/ollama-seat/README.md +19 -0
  78. package/templates/seat-packs-v0/source/ollama-seat/bin/seat-doctor +8 -0
  79. package/templates/seat-packs-v0/source/openrouter-seat/.llm-substrate/HANDOFF.md +24 -0
  80. package/templates/seat-packs-v0/source/openrouter-seat/README.md +19 -0
  81. package/templates/seat-packs-v0/source/openrouter-seat/bin/seat-doctor +8 -0
  82. package/templates/seat-packs-v0/validate-seat-packs.sh +27 -0
  83. package/bin/etq +0 -4
package/AGENTS.md ADDED
@@ -0,0 +1,28 @@
1
+ # Etiquette Agent Guide
2
+
3
+ This repo is the Etiquette source repo. Keep the all-developer onboarding path small.
4
+
5
+ ## Default Rule
6
+
7
+ New engineers should start with:
8
+
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.
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
+ - validation scripts for release hygiene.
23
+
24
+ This repo does not own product repos, product lane state, secrets, hosted services, or runtime vendor setup.
25
+
26
+ ## Editing Rule
27
+
28
+ 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/QuickStart.md ADDED
@@ -0,0 +1,86 @@
1
+ # Quick Start
2
+
3
+ For a clean repo, a team canary, or a new Etiquette developer.
4
+
5
+ Prereqs: `git >= 2.40` and `bun >= 1.3` on `PATH`. macOS and Linux.
6
+
7
+ ## 1. Get The CLI
8
+
9
+ ```sh
10
+ npm install -g @etiquekit/etq # etq + etiquette on PATH
11
+ curl -fsSL https://etiquekit.com/install.sh | sh # or: native installer
12
+ ```
13
+
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:
19
+
20
+ ```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"
26
+ ```
27
+
28
+ ## 2. Initialize A Project
29
+
30
+ From the project repo:
31
+
32
+ ```sh
33
+ etq setup --target auto --project "$PWD"
34
+ etq handoff --project "$PWD" --profile codex-cc-gemini --task-prefix APP
35
+ etq bootstrap local --project "$PWD" --profile codex-cc-gemini --task-prefix APP
36
+ etq whereami --project "$PWD" --seat codex-seat --task APP-001
37
+ etq doctor --project "$PWD"
38
+ etq join --project "$PWD" --seat codex-seat
39
+ etq pickup --project "$PWD" --seat codex-seat --task APP-001 --allow-current-project --text
40
+ etq console board --project "$PWD" --text
41
+ ```
42
+
43
+ `bootstrap local` creates repo-local state, seats, task envelopes, pickup docs,
44
+ events, and runbooks. It does not grant, publish, merge, close, or promote.
45
+ `handoff` is a read-only guide: it prints install, bootstrap, and pickup
46
+ commands without changing anything.
47
+
48
+ ## 3. Orient The Live Seat
49
+
50
+ Run `whereami` whenever a developer or agent resumes, changes directories, or
51
+ inherits a worktree:
52
+
53
+ ```sh
54
+ etq whereami --project "$PWD" --seat codex-seat --task APP-001
55
+ etq pickup --project "$PWD" --seat codex-seat --task APP-001 --allow-current-project --text
56
+ ```
57
+
58
+ Runner resume recovers chat context; `whereami` confirms the repo, branch, task
59
+ envelope, and runbook. For branch hygiene, read [docs/WORKTREE_QOL.md](docs/WORKTREE_QOL.md).
60
+
61
+ ## 4. Check And Record Evidence
62
+
63
+ Create checkable dispatch examples, then run the generated command:
64
+
65
+ ```sh
66
+ etq dispatch scaffold --project "$PWD" --task-id APP-001 --seat codex-seat
67
+ etq dispatch check --project "$PWD" \
68
+ --mode docs/work/dispatch/APP-001/mode.yaml \
69
+ --task docs/work/dispatch/APP-001/task.yaml \
70
+ --sandbox-receipt docs/work/dispatch/APP-001/receipt.yaml \
71
+ --state docs/work/dispatch/APP-001/seat-readiness.json
72
+ ```
73
+
74
+ `dispatch record` writes local metadata and receipt refs; it does not merge,
75
+ close, publish, or grant.
76
+
77
+ ## 5. Seat Packs And Stop Conditions
78
+
79
+ Per-runtime integrations are explicit, never automatic: `provision-seat claude-code`,
80
+ `provision-seat codex`, `provision-seat gemini`, `provision-seat ollama`,
81
+ `provision-seat openrouter`.
82
+
83
+ Stop when authority is unclear, validation cannot run, writes exceed the
84
+ envelope, a secret appears, or the session is unbounded.
85
+
86
+ Docs: https://etiquekit.com/docs/ · Agents start at: https://etiquekit.com/llms.txt
package/README.md CHANGED
@@ -1,12 +1,80 @@
1
- # etq (reserved)
1
+ # Etiquette
2
2
 
3
- This package name is reserved for **Etiquette** a local-first CLI that
4
- governs agent-assisted engineering work with seats, evidence, and promotion
5
- gates. Your repo is the ledger, receipts are the proof, and no server ever
6
- sees your code.
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.
7
6
 
8
- Releases begin at **https://etiquekit.com** including a signed installer
9
- that requires neither npm nor this package.
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.
10
12
 
11
- Until a `1.x` version appears here, this package intentionally does nothing
12
- beyond printing a pointer.
13
+ Docs: https://etiquekit.com/docs/ · Agents start at: https://etiquekit.com/llms.txt
14
+
15
+ ## Install
16
+
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 public key before anything executes.
24
+
25
+ ## Sixty seconds to a governed workspace
26
+
27
+ ```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 dev-a --project .
34
+ etq console board --project . --text # the live task board
35
+ ```
36
+
37
+ Per-runtime seat packs: `provision-seat claude-code` · `provision-seat codex`
38
+ · `provision-seat gemini` · `provision-seat ollama` · `provision-seat openrouter`.
39
+
40
+ The daily loop is three verbs:
41
+
42
+ ```sh
43
+ etq pickup --seat dev-a --task APP-001 --expect-project-id <id> --text
44
+ # ... do the work (you, or your agent) ...
45
+ etq return check --task APP-001 --seat dev-a # the evidence gate
46
+ ```
47
+
48
+ Every step appends to the workspace journal — an append-only event log inside
49
+ your repo. Nothing leaves your machine: no backend, no telemetry, no account.
50
+
51
+ ## Concepts in one breath
52
+
53
+ | Concept | Answers |
54
+ | --- | --- |
55
+ | Seat | What durable work role is acting? |
56
+ | Task envelope | What writes, validation, and stop conditions are allowed? |
57
+ | Session | Which bounded run produced the evidence? |
58
+ | Receipt | What proves the work happened? |
59
+ | Promotion gate | Where does candidate work become accepted truth? |
60
+
61
+ Commands can initialize, check, record evidence, and project read models.
62
+ They **do not** grant authority, merge, close work, publish, or promote truth.
63
+ Execution returns evidence; it never mints authority.
64
+
65
+ ## Verify releases
66
+
67
+ The release signing public key has this SHA-256 fingerprint — cross-check it
68
+ against the copy at https://etiquekit.com/docs/ before trusting a downloaded
69
+ key:
70
+
71
+ ```
72
+ 917fbced1d6a82897ec3441a1d12947803ca4d42a6bc63d3412dee8bf8c3ce31
73
+ ```
74
+
75
+ Then `openssl dgst -sha256 -verify <key> -signature SHA256SUMS.sig SHA256SUMS`
76
+ and `shasum -a 256 -c SHA256SUMS`. If any step fails: stop, do not install.
77
+
78
+ ## License
79
+
80
+ Proprietary; distributed as compiled bundles for convenience.