@etiquekit/etq 1.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.
- package/QuickStart.md +37 -45
- package/README.md +55 -55
- package/bin/etiquette +188 -187
- package/docs/SEAT_DISCIPLINE.md +91 -43
- package/package.json +1 -1
package/QuickStart.md
CHANGED
|
@@ -1,42 +1,28 @@
|
|
|
1
1
|
# Quick Start
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
For a clean repo, a team canary, or a new Etiquette developer.
|
|
4
4
|
|
|
5
|
-
Prereqs:
|
|
6
|
-
The public hosted installer is parked until approval and signing complete.
|
|
5
|
+
Prereqs: `git >= 2.40` and `bun >= 1.3` on `PATH`. macOS and Linux.
|
|
7
6
|
|
|
8
7
|
## 1. Get The CLI
|
|
9
8
|
|
|
10
|
-
Preferred private path is the signed native installer:
|
|
11
|
-
|
|
12
9
|
```sh
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
export PATH="$HOME/.etiquette/bin:$PATH"
|
|
10
|
+
npm install -g @etiquekit/etq # etq + etiquette on PATH
|
|
11
|
+
curl -fsSL https://etiquekit.com/install.sh | sh # or: native installer
|
|
16
12
|
```
|
|
17
13
|
|
|
18
|
-
|
|
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
19
|
|
|
20
20
|
```sh
|
|
21
|
-
|
|
22
|
-
ETQ_LIB
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
(cd "$ETQ_LIB" && bun install --production)
|
|
27
|
-
ln -sfn "$ETQ_LIB/bin/etiquette" "$ETQ_ROOT/bin/etiquette"
|
|
28
|
-
ln -sfn "$ETQ_LIB/bin/etiquette-core" "$ETQ_ROOT/bin/etiquette-core"
|
|
29
|
-
export PATH="$ETQ_ROOT/bin:$PATH"
|
|
30
|
-
```
|
|
31
|
-
|
|
32
|
-
Source checkout fallback; replace `<company-etiquette-git-url>` with the
|
|
33
|
-
internal private repo URL supplied by your manager:
|
|
34
|
-
|
|
35
|
-
```sh
|
|
36
|
-
git clone <company-etiquette-git-url> etiquette
|
|
37
|
-
cd etiquette
|
|
38
|
-
./bin/etiquette help
|
|
39
|
-
./bin/etiquette-core help
|
|
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"
|
|
40
26
|
```
|
|
41
27
|
|
|
42
28
|
## 2. Initialize A Project
|
|
@@ -44,19 +30,20 @@ cd etiquette
|
|
|
44
30
|
From the project repo:
|
|
45
31
|
|
|
46
32
|
```sh
|
|
47
|
-
|
|
48
|
-
"$
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
"$ETQ" console board --project "$PWD" --text
|
|
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
|
|
56
41
|
```
|
|
57
42
|
|
|
58
43
|
`bootstrap local` creates repo-local state, seats, task envelopes, pickup docs,
|
|
59
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.
|
|
60
47
|
|
|
61
48
|
## 3. Orient The Live Seat
|
|
62
49
|
|
|
@@ -64,21 +51,20 @@ Run `whereami` whenever a developer or agent resumes, changes directories, or
|
|
|
64
51
|
inherits a worktree:
|
|
65
52
|
|
|
66
53
|
```sh
|
|
67
|
-
|
|
68
|
-
|
|
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
|
|
69
56
|
```
|
|
70
57
|
|
|
71
58
|
Runner resume recovers chat context; `whereami` confirms the repo, branch, task
|
|
72
59
|
envelope, and runbook. For branch hygiene, read [docs/WORKTREE_QOL.md](docs/WORKTREE_QOL.md).
|
|
73
|
-
For in-session pickup UX, use the `seat-session-bootstrap` skill.
|
|
74
60
|
|
|
75
61
|
## 4. Check And Record Evidence
|
|
76
62
|
|
|
77
63
|
Create checkable dispatch examples, then run the generated command:
|
|
78
64
|
|
|
79
65
|
```sh
|
|
80
|
-
|
|
81
|
-
|
|
66
|
+
etq dispatch scaffold --project "$PWD" --task-id APP-001 --seat codex-seat
|
|
67
|
+
etq dispatch check --project "$PWD" \
|
|
82
68
|
--mode docs/work/dispatch/APP-001/mode.yaml \
|
|
83
69
|
--task docs/work/dispatch/APP-001/task.yaml \
|
|
84
70
|
--sandbox-receipt docs/work/dispatch/APP-001/receipt.yaml \
|
|
@@ -88,7 +74,13 @@ Create checkable dispatch examples, then run the generated command:
|
|
|
88
74
|
`dispatch record` writes local metadata and receipt refs; it does not merge,
|
|
89
75
|
close, publish, or grant.
|
|
90
76
|
|
|
91
|
-
## 5. Stop Conditions
|
|
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.
|
|
92
85
|
|
|
93
|
-
|
|
94
|
-
Stop when authority is unclear, validation cannot run, writes exceed the envelope, a secret appears, or the session is unbounded.
|
|
86
|
+
Docs: https://etiquekit.com/docs/ · Agents start at: https://etiquekit.com/llms.txt
|
package/README.md
CHANGED
|
@@ -1,80 +1,80 @@
|
|
|
1
1
|
# Etiquette
|
|
2
2
|
|
|
3
|
-
|
|
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
|
-
|
|
6
|
-
|
|
7
|
-
|
|
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
|
-
|
|
13
|
+
Docs: https://etiquekit.com/docs/ · Agents start at: https://etiquekit.com/llms.txt
|
|
10
14
|
|
|
11
|
-
|
|
15
|
+
## Install
|
|
12
16
|
|
|
13
|
-
|
|
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.
|
|
14
24
|
|
|
15
|
-
|
|
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:
|
|
25
|
+
## Sixty seconds to a governed workspace
|
|
17
26
|
|
|
18
27
|
```sh
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
./bin/etiquette pickup --project /tmp/etiquette-start --seat codex-seat --task APP-001 --allow-current-project --text
|
|
27
|
-
./bin/etiquette console board --project /tmp/etiquette-start --text
|
|
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
|
|
28
35
|
```
|
|
29
36
|
|
|
30
|
-
|
|
37
|
+
Per-runtime seat packs: `provision-seat claude-code` · `provision-seat codex`
|
|
38
|
+
· `provision-seat gemini` · `provision-seat ollama` · `provision-seat openrouter`.
|
|
31
39
|
|
|
32
|
-
|
|
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
|
-
For the bare-bones Core surface:
|
|
40
|
+
The daily loop is three verbs:
|
|
39
41
|
|
|
40
42
|
```sh
|
|
41
|
-
|
|
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
|
|
42
46
|
```
|
|
43
47
|
|
|
44
|
-
|
|
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.
|
|
45
50
|
|
|
46
|
-
##
|
|
51
|
+
## Concepts in one breath
|
|
47
52
|
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
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? |
|
|
53
60
|
|
|
54
|
-
|
|
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.
|
|
55
64
|
|
|
56
|
-
|
|
65
|
+
## Verify releases
|
|
57
66
|
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
sh templates/seat-packs-v0/bin/provision-seat gemini /tmp/dev-gemini-seat
|
|
62
|
-
sh templates/seat-packs-v0/bin/provision-seat ollama /tmp/dev-ollama-seat
|
|
63
|
-
sh templates/seat-packs-v0/bin/provision-seat openrouter /tmp/dev-openrouter-seat
|
|
64
|
-
```
|
|
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:
|
|
65
70
|
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
```sh
|
|
69
|
-
npm run release:scan
|
|
70
|
-
bun test
|
|
71
|
-
npm run typecheck
|
|
71
|
+
```
|
|
72
|
+
917fbced1d6a82897ec3441a1d12947803ca4d42a6bc63d3412dee8bf8c3ce31
|
|
72
73
|
```
|
|
73
74
|
|
|
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.
|
|
75
77
|
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
public_installer: held
|
|
80
|
-
```
|
|
78
|
+
## License
|
|
79
|
+
|
|
80
|
+
Proprietary; distributed as compiled bundles for convenience.
|