@etiquekit/etq 1.0.12 → 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.
- package/AGENTS.md +19 -26
- package/LICENSE +2 -3
- package/NOTICE +6 -4
- package/QuickStart.md +35 -47
- package/README.md +54 -56
- package/bin/etiquette +1 -5
- package/bin/etiquette-core +1 -5
- package/docs/ARCHITECTURE.md +5 -5
- package/docs/CODEX_CLIENT_COMPATIBILITY.md +1 -1
- package/docs/CONCEPTS.md +7 -23
- package/docs/CONCEPT_STATUS.md +66 -0
- package/docs/CORE_PROFILE.md +3 -5
- package/docs/LANE_PROVISIONING.md +7 -2
- package/docs/README.md +4 -4
- package/docs/RELEASE_SURFACE_AUDIT.md +7 -6
- package/docs/SEAT_DISCIPLINE.md +55 -91
- package/docs/SEAT_PROVISIONING.md +19 -22
- package/docs/TEAM_HANDOFF.md +21 -21
- package/docs/WORKTREE_QOL.md +7 -6
- package/docs/contracts/ledger-entry/README.md +11 -11
- package/docs/contracts/ledger-entry/ledger-entry.v0.2.md +3 -3
- package/docs/contracts/ledger-entry/ledger-entry.v0.md +8 -8
- package/package.json +11 -11
- package/packages/control/src/authority/lease.ts +261 -0
- package/packages/control/src/authority/node-delegation.ts +257 -0
- package/packages/control/src/authority/rig-conductor.ts +632 -0
- package/packages/control/src/cli/argv.ts +155 -0
- package/packages/control/src/cli/commands/console.ts +200 -0
- package/packages/control/src/cli/commands/dispatch-core.ts +89 -0
- package/packages/control/src/cli/commands/dispatch.ts +279 -0
- package/packages/control/src/cli/commands/harness.ts +89 -0
- package/packages/control/src/cli/commands/hook.ts +50 -0
- package/packages/control/src/cli/commands/ledger.ts +91 -0
- package/packages/control/src/cli/commands/local-workflow.ts +4686 -0
- package/packages/control/src/cli/commands/memory.ts +445 -0
- package/packages/control/src/cli/commands/release.ts +108 -0
- package/packages/control/src/cli/commands/rubric.ts +103 -0
- package/packages/control/src/cli/commands/seat.ts +179 -0
- package/packages/control/src/cli/commands/session.ts +127 -0
- package/packages/control/src/cli/commands/supervision.ts +246 -0
- package/packages/control/src/cli/commands/sync.ts +119 -0
- package/packages/control/src/cli/commands/workflow.ts +86 -0
- package/packages/control/src/cli/commands/workspace.ts +50 -0
- package/packages/control/src/cli/core-usage.ts +34 -0
- package/packages/control/src/cli/prompt.ts +67 -0
- package/packages/control/src/cli/supervision-deps.ts +44 -0
- package/packages/control/src/cli/usage.ts +241 -0
- package/packages/control/src/cli.ts +207 -0
- package/packages/control/src/core-cli.ts +50 -0
- package/packages/control/src/dispatch/decision.ts +202 -0
- package/packages/control/src/dispatch/projection.ts +293 -0
- package/packages/control/src/dispatch/record.ts +153 -0
- package/packages/control/src/engagement/project.ts +170 -0
- package/packages/control/src/fs.ts +19 -0
- package/packages/control/src/harness/pruning.ts +406 -0
- package/packages/control/src/hooks/dispatcher.ts +117 -0
- package/packages/control/src/hooks/outbox.ts +86 -0
- package/packages/control/src/hooks/sanitize.ts +6 -0
- package/packages/control/src/hooks/types.ts +34 -0
- package/packages/control/src/index.ts +384 -0
- package/packages/control/src/ledger/entry.ts +303 -0
- package/packages/control/src/ledger/indexer.ts +542 -0
- package/packages/control/src/memory/context.ts +149 -0
- package/packages/control/src/memory/drain-import.ts +207 -0
- package/packages/control/src/memory/indexer.ts +284 -0
- package/packages/control/src/memory/query.ts +75 -0
- package/packages/control/src/memory/sanitize.ts +50 -0
- package/packages/control/src/memory/sharded-drain-import.ts +212 -0
- package/packages/control/src/memory/status.ts +211 -0
- package/packages/control/src/memory/store-lifecycle.ts +509 -0
- package/packages/control/src/memory/store.ts +284 -0
- package/packages/control/src/memory/types.ts +146 -0
- package/packages/control/src/parity/surfaces.ts +748 -0
- package/packages/control/src/project.ts +141 -0
- package/packages/control/src/projection/local-ledger-view.ts +373 -0
- package/packages/control/src/projection/return-enforcement.ts +48 -0
- package/packages/control/src/projection/timeline-preview.ts +539 -0
- package/packages/control/src/projection/timeline.ts +708 -0
- package/packages/control/src/release/readiness.ts +831 -0
- package/packages/control/src/rubric/loader.ts +326 -0
- package/packages/control/src/rubric/promotion.ts +54 -0
- package/packages/control/src/rubric/runner.ts +159 -0
- package/packages/control/src/rubric/types.ts +158 -0
- package/packages/control/src/seat/owner-card.ts +388 -0
- package/packages/control/src/seat/readiness.ts +834 -0
- package/packages/control/src/session/runbook.ts +431 -0
- package/packages/control/src/shared/sanitize.ts +49 -0
- package/packages/control/src/supervision/action-classes.ts +192 -0
- package/packages/control/src/supervision/command-apply.ts +378 -0
- package/packages/control/src/supervision/errors.ts +14 -0
- package/packages/control/src/supervision/event-replay.ts +155 -0
- package/packages/control/src/supervision/events.ts +109 -0
- package/packages/control/src/supervision/index.ts +16 -0
- package/packages/control/src/supervision/manifest.ts +127 -0
- package/packages/control/src/supervision/paths.ts +49 -0
- package/packages/control/src/supervision/projection-adapter.ts +274 -0
- package/packages/control/src/supervision/projection.ts +75 -0
- package/packages/control/src/supervision/rebuild.ts +99 -0
- package/packages/control/src/supervision/session-open.ts +131 -0
- package/packages/control/src/supervision/session-read.ts +99 -0
- package/packages/control/src/supervision/sqlite-impl.ts +71 -0
- package/packages/control/src/supervision/sqlite.ts +121 -0
- package/packages/control/src/supervision/store-rows.ts +371 -0
- package/packages/control/src/supervision/turn-close.ts +154 -0
- package/packages/control/src/supervision/turn-open.ts +284 -0
- package/packages/control/src/sync/event-log-merge-driver.ts +263 -0
- package/packages/control/src/sync/join-plan.ts +375 -0
- package/packages/control/src/sync/outbox.ts +492 -0
- package/packages/control/src/workflow/evaluator.ts +140 -0
- package/packages/control/src/workflow/loader.ts +200 -0
- package/packages/control/src/workflow/types.ts +90 -0
- package/packages/control/src/workspace/authority.ts +499 -0
- package/packages/protocol/src/guards.ts +119 -0
- package/packages/protocol/src/huddle-board.ts +198 -0
- package/packages/protocol/src/huddle.ts +295 -0
- package/packages/protocol/src/incident.ts +251 -0
- package/packages/protocol/src/index.ts +8 -0
- package/packages/protocol/src/interfaces.ts +107 -0
- package/packages/protocol/src/packet-profile.ts +195 -0
- package/packages/protocol/src/state.ts +81 -0
- package/packages/protocol/src/types.ts +434 -0
- package/release/lineage.v0.json +14 -0
- package/scripts/release-candidate-verify.sh +175 -0
- package/scripts/release-checksum.sh +25 -0
- package/scripts/release-pack-canary.sh +97 -0
- package/scripts/release-scan.sh +249 -0
- package/scripts/release-sign.sh +34 -0
- package/templates/etiquette-vanilla-v0/README.md +2 -3
- package/templates/etiquette-vanilla-v0/source/control-seat/README.md +0 -6
- package/templates/etiquette-vanilla-v0/source/control-seat/bin/seat-doctor +0 -5
- package/templates/etiquette-vanilla-v0/validate-vanilla.sh +0 -5
- package/templates/seat-packs-v0/README.md +3 -2
- package/templates/seat-packs-v0/source/claude-code-seat/README.md +3 -29
- package/templates/seat-packs-v0/source/codex-seat/README.md +3 -17
- package/templates/seat-packs-v0/source/gemini-seat/README.md +3 -23
- package/templates/seat-packs-v0/source/ollama-seat/README.md +3 -3
- package/templates/seat-packs-v0/source/openrouter-seat/README.md +3 -3
- package/docs/AGENT_SPAWNING.md +0 -78
- package/docs/INTEGRATION_UI.md +0 -215
- package/docs/OPERATOR_PLAYBOOK.md +0 -77
- package/docs/TAG_ROUTE.md +0 -95
- package/lib/etiquette-core.js +0 -315
- package/lib/etiquette.js +0 -1160
- package/templates/DISPATCH_PREMISES.md +0 -39
- package/templates/etiquette-vanilla-v0/source/control-seat/bin/access-assurance-check +0 -55
- package/templates/etiquette-vanilla-v0/source/control-seat/docs/work/access/ACCESS-ASSURANCE.md +0 -39
- package/templates/etiquette-vanilla-v0/source/control-seat/docs/work/access/workspace-secure-profile.v0.json +0 -53
- package/templates/hosted-receiver/README.md +0 -41
- package/templates/hosted-receiver/w1-github-webhook-receiver.mjs +0 -129
|
@@ -34,6 +34,7 @@ docs_default:
|
|
|
34
34
|
- docs/ARCHITECTURE.md
|
|
35
35
|
- docs/CODEX_CLIENT_COMPATIBILITY.md
|
|
36
36
|
- docs/CONCEPTS.md
|
|
37
|
+
- docs/CONCEPT_STATUS.md
|
|
37
38
|
- docs/CORE_PROFILE.md
|
|
38
39
|
- docs/LANE_PROVISIONING.md
|
|
39
40
|
- docs/SEAT_DISCIPLINE.md
|
|
@@ -90,7 +91,7 @@ internal_templates:
|
|
|
90
91
|
posture: excluded from new-seat onboarding
|
|
91
92
|
|
|
92
93
|
package_surface:
|
|
93
|
-
npm_pack_entries:
|
|
94
|
+
npm_pack_entries: 183
|
|
94
95
|
max_budget: 190
|
|
95
96
|
posture: local devkit package plus signed user-local installer
|
|
96
97
|
distribution_origin: https://etiquette.example.com
|
|
@@ -112,7 +113,7 @@ required:
|
|
|
112
113
|
## What Is Not Necessary For All Developers
|
|
113
114
|
|
|
114
115
|
Runtime seat packs, sample-product rehearsals, v3 workflow helper docs, satellite
|
|
115
|
-
operator docs,
|
|
116
|
+
operator docs, advisory-signal experiments, and internal
|
|
116
117
|
templates may remain in the repo for maintainers. The default onboarding path
|
|
117
118
|
must not require them.
|
|
118
119
|
|
|
@@ -125,7 +126,7 @@ blocked:
|
|
|
125
126
|
- personal absolute paths
|
|
126
127
|
- local username markers
|
|
127
128
|
- old repo name
|
|
128
|
-
- shop
|
|
129
|
+
- shop identity markers in the release rollout package
|
|
129
130
|
- prior-run markers in all-developer docs
|
|
130
131
|
- extra files under docs/
|
|
131
132
|
- unexpected public template directories
|
|
@@ -141,7 +142,7 @@ npm run release:scan
|
|
|
141
142
|
|
|
142
143
|
## Package Readiness Check
|
|
143
144
|
|
|
144
|
-
Use `etiquette release readiness --json` before changing distribution settings. It
|
|
145
|
+
Use `etiquette release readiness --json` before changing distribution settings. It also binds the canonical package identity, version floor, source-shipping mode, required bins, source ancestry, and candidate verifier to `release/lineage.v0.json`; `release:candidate` preserves the exact verified tarball and checksum under ignored `dist/` for later signing without rebuilding.
|
|
145
146
|
Codex-backed remote-runtime, plugin-MCP, and hook/action-auth canaries require CLI `0.141.0`+ (`docs/CODEX_CLIENT_COMPATIBILITY.md`). GA additionally runs `etiquette release ga-readiness --channel shell-installer,npm --tag-free-confirmed --json`; it requires a non-prerelease version, final tarball checksums, trusted RSA signature, private-compatible channels, and explicit remote-tag uniqueness confirmation, while still unable to publish, sign, tag, or create a channel. Git source archives must exclude maintainer-only `internal/`, `conformance/`, `site/`, `fixtures/`, `apps/`, local state, and `dist/`.
|
|
146
147
|
|
|
147
148
|
## Local-Thin Purge (v0.2.1)
|
|
@@ -150,6 +151,6 @@ Codex-backed remote-runtime, plugin-MCP, and hook/action-auth canaries require C
|
|
|
150
151
|
excluded_cli_commands: [remote, agent-plane, mcp, parity, linear, integration] # guarded stubs explain absence
|
|
151
152
|
excluded_source_dirs: [agent-plane/, integration/, linear/, mcp/] # parity/ ships (console dependency)
|
|
152
153
|
excluded_templates: [hosted-receiver/]
|
|
153
|
-
removed_from_templates: [
|
|
154
|
-
doctrine: local
|
|
154
|
+
removed_from_templates: [etiquette-seat-rebind etiquette-seat-lifecycle etiquette-monitor-pull] # use CLI-native preflight and `etiquette notify poll`
|
|
155
|
+
doctrine: local feature parity ships in the devkit; remote/hosted/EKS surfaces ship outside this devkit; zero coordination-bus coupling ships
|
|
155
156
|
```
|
package/docs/SEAT_DISCIPLINE.md
CHANGED
|
@@ -1,79 +1,19 @@
|
|
|
1
1
|
# Seat Discipline
|
|
2
2
|
|
|
3
3
|
Seat discipline keeps agent work useful, attributable, and portable across
|
|
4
|
-
runtimes.
|
|
5
|
-
It is organized by moment of need, not by topic.
|
|
6
|
-
|
|
7
|
-
## On Wake
|
|
8
|
-
|
|
9
|
-
- Orient before acting: `whereami`, then the task envelope, then the runbook.
|
|
10
|
-
- Read tiered: status line first, then the exact entry, then the full
|
|
11
|
-
artifact. Never bulk-load directories for "context" — load the specific
|
|
12
|
-
receipt you were pointed to.
|
|
13
|
-
|
|
14
|
-
## Before Claiming Anything
|
|
15
|
-
|
|
16
|
-
- Verify at claim time: re-read the source at the moment you assert it,
|
|
17
|
-
never from memory of an earlier read. A cited manifest or spec is read in
|
|
18
|
-
the same act as the claim.
|
|
19
|
-
- Check the live tip, not your notes: logs and board notes lag integrations.
|
|
20
|
-
- When another seat or a human holds the ground truth, ask — do not
|
|
21
|
-
solo-reconstruct their state.
|
|
22
|
-
|
|
23
|
-
## Before Writing
|
|
24
|
-
|
|
25
|
-
- Read the machine fields, not the title: the envelope's mode and allowed
|
|
26
|
-
writes decide what a task may do; prose is not authority.
|
|
27
|
-
- Search the exact target surface before classifying work as new — most
|
|
28
|
-
"add X" tasks are "finish the X that half-exists."
|
|
29
|
-
- One writer per canonical mutation. Design in parallel; mutate single-file.
|
|
30
|
-
|
|
31
|
-
## While Working
|
|
32
|
-
|
|
33
|
-
- Technical register on the record: schemas, fields, commands, refs.
|
|
34
|
-
Metaphor and personality stay in chat; the record is for the next reader.
|
|
35
|
-
- No person or vendor names in artifacts. Attribute external material at the
|
|
36
|
-
moment of incorporation, with license.
|
|
37
|
-
- One meaningful update per note, reader-resolvable without tooling. Write
|
|
38
|
-
runbook notes, not raw transcript dumps.
|
|
39
|
-
|
|
40
|
-
## Before Returning
|
|
41
|
-
|
|
42
|
-
- Receipt first: outcome, changed files, validation command and result,
|
|
43
|
-
blockers, next owner. No raw logs — cite paths to them.
|
|
44
|
-
- Run validation before returning the receipt. A red validation is reported
|
|
45
|
-
red; "done" without proof is a defect, not a return.
|
|
46
|
-
- If your change altered a source shape, refresh its recorded evidence in
|
|
47
|
-
the same commit.
|
|
48
|
-
- Run post-commit hygiene (`git diff --check HEAD~..HEAD`) — pre-commit
|
|
49
|
-
checks miss freshly added files.
|
|
50
|
-
|
|
51
|
-
## On Review
|
|
52
|
-
|
|
53
|
-
- Verify the shipped artifact, not the branch state you remember.
|
|
54
|
-
- Reviews return evidence, never authority: confirm, counter, or advise.
|
|
55
|
-
A reviewer packet does not mutate the lane it reviews.
|
|
56
|
-
- Accepted review is different from integrated work.
|
|
57
|
-
- Proposals carry their own counter-arguments and open questions — invite
|
|
58
|
-
the pressure test.
|
|
59
|
-
|
|
60
|
-
## At Authority Edges
|
|
61
|
-
|
|
62
|
-
- Stop when authority is unclear, validation cannot run, writes would exceed
|
|
63
|
-
the envelope, a secret appears, or the session is unbounded.
|
|
64
|
-
- Never claim work was authorized without decision language from the
|
|
65
|
-
authority holder. Enthusiasm is not routing.
|
|
66
|
-
- Risk-tier your own gates: proceed on cheap-and-reversible; insist on a
|
|
67
|
-
real decision for irreversible, authority-changing, or spend actions.
|
|
68
|
-
Gating everything trains the rubber-stamp.
|
|
69
|
-
- Promote only through the policy-resolved gate.
|
|
70
|
-
- Memory proposes. Ledgers authorize. Receipts prove. Audit accounts.
|
|
4
|
+
runtimes.
|
|
71
5
|
|
|
72
|
-
##
|
|
6
|
+
## Operating Rules
|
|
73
7
|
|
|
74
|
-
-
|
|
75
|
-
|
|
76
|
-
-
|
|
8
|
+
- Read the repo state before forming a plan.
|
|
9
|
+
- Use a task envelope before product edits.
|
|
10
|
+
- Keep each session bounded.
|
|
11
|
+
- Write useful runbook notes, not raw transcript dumps.
|
|
12
|
+
- Run validation before returning a receipt.
|
|
13
|
+
- Keep receipts compact and cited.
|
|
14
|
+
- Treat accepted review as different from integrated work.
|
|
15
|
+
- Promote only through the policy-resolved gate.
|
|
16
|
+
- Stop when authority, secrets, scope, or validation are unclear.
|
|
77
17
|
|
|
78
18
|
## Identity Split
|
|
79
19
|
|
|
@@ -87,30 +27,54 @@ repo_substrate: source, ledger, receipts, validation, commits
|
|
|
87
27
|
|
|
88
28
|
## Work Boundaries
|
|
89
29
|
|
|
90
|
-
A seat should know:
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
30
|
+
A seat should know:
|
|
31
|
+
|
|
32
|
+
- allowed writes;
|
|
33
|
+
- forbidden writes;
|
|
34
|
+
- validation commands;
|
|
35
|
+
- stop conditions;
|
|
36
|
+
- expected receipt;
|
|
37
|
+
- next owner.
|
|
38
|
+
|
|
39
|
+
If any of those are missing, ask for a sharper task.
|
|
40
|
+
|
|
41
|
+
## Session Hygiene
|
|
42
|
+
|
|
43
|
+
Sessions are for bounded work. Restoring a session restores context, not
|
|
44
|
+
authority.
|
|
45
|
+
|
|
46
|
+
Before a resumed, interrupted, role-swapped, runner-swapped, or cwd-swapped
|
|
47
|
+
session picks up work, rebind it to the current ledger and task surface:
|
|
48
|
+
|
|
49
|
+
- verify the project, workflow, task, seat, branch, and worktree;
|
|
50
|
+
- verify the routing surface and evidence surface;
|
|
51
|
+
- stop or ignore stale watchers from the old workflow;
|
|
52
|
+
- run readiness only after the rebind is clean.
|
|
53
|
+
|
|
54
|
+
Rebind applies to every runtime. It keeps Codex, Claude Code, Gemini,
|
|
55
|
+
OpenRouter, local shell, and hosted runners from carrying stale context into the
|
|
56
|
+
wrong repo.
|
|
57
|
+
|
|
58
|
+
## Review Discipline
|
|
59
|
+
|
|
60
|
+
Review seats should pressure-test hidden authority changes, missing validation,
|
|
61
|
+
oversized write sets, stale assumptions, unbounded sessions, evidence that
|
|
62
|
+
cannot be reproduced, and claims that should be receipts.
|
|
63
|
+
|
|
64
|
+
Reviewers contribute evidence. The routed owner mutates truth.
|
|
94
65
|
|
|
95
66
|
## Tool Discipline
|
|
96
67
|
|
|
97
|
-
|
|
98
|
-
and CI, incident tools
|
|
99
|
-
authentication.
|
|
68
|
+
Use chat for conversation, planning tools for intent, code review tools for
|
|
69
|
+
diffs and CI, incident tools for runtime evidence, and identity providers for
|
|
70
|
+
authentication.
|
|
71
|
+
|
|
72
|
+
Do not let any of them become acceptance.
|
|
100
73
|
|
|
101
74
|
## Failure Signals
|
|
102
75
|
|
|
103
76
|
Open a follow-up or stop the run when a seat edits outside allowed writes,
|
|
104
|
-
validation repeatedly fails, the runbook grows without a receipt, a task
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
## Growing Local Discipline
|
|
110
|
-
|
|
111
|
-
This document ships the judgment that is true everywhere. Your team's own
|
|
112
|
-
calibration — which seats are strong where, which tools misbehave, which
|
|
113
|
-
routes need a second look — is grown locally: when a correction lands, record
|
|
114
|
-
it as one small note with why and how-to-apply, index it, and re-read it at
|
|
115
|
-
the moment you would otherwise repeat the mistake. Corrections that are never
|
|
116
|
-
recorded are corrections you will pay for twice.
|
|
77
|
+
validation repeatedly fails, the runbook grows without a receipt, a task spans
|
|
78
|
+
unrelated repos, a runtime claims success without evidence, a projection
|
|
79
|
+
disagrees with git, a grant owner is unclear, or an integration tries to close
|
|
80
|
+
or promote work.
|
|
@@ -1,29 +1,29 @@
|
|
|
1
1
|
# Seat Provisioning
|
|
2
2
|
|
|
3
|
-
Start with one project owner
|
|
3
|
+
Start with one project owner. Add review, QA, or runtime-specific seats only when a concrete task needs them. Use [LANE_PROVISIONING.md](LANE_PROVISIONING.md) when a manager needs to route active work, park future work, or give a new agent a complete pickup bulletin.
|
|
4
4
|
|
|
5
5
|
## Minimal Flow
|
|
6
6
|
|
|
7
7
|
1. Install project-local agent guidance with `setup`.
|
|
8
8
|
2. Initialize the project with `bootstrap local`.
|
|
9
9
|
3. Read `AGENTS.md`, `BOARD.md`, `SESSION_PICKUP.md`, and `SEAT_OPERATING_MANUAL.md`.
|
|
10
|
-
4.
|
|
11
|
-
5. Confirm the lead
|
|
12
|
-
6.
|
|
13
|
-
7.
|
|
14
|
-
8.
|
|
15
|
-
9.
|
|
16
|
-
10.
|
|
10
|
+
4. Run `whereami`, `doctor`, and `status`.
|
|
11
|
+
5. Confirm the lead seat.
|
|
12
|
+
6. After interrupted sessions, cwd/worktree ambiguity, role changes, or vendor swaps, rerun `whereami`, `doctor`, and `notify poll`.
|
|
13
|
+
7. Treat lifecycle/readiness checks as evidence only; they do not authorize work.
|
|
14
|
+
8. Have the lead seat `join` and `pickup` the first generated task.
|
|
15
|
+
9. Add extra sessions only when starter sessions are not enough.
|
|
16
|
+
10. Give each seat its allowed writes and validation.
|
|
17
|
+
11. Record a receipt before asking for promotion.
|
|
17
18
|
|
|
18
19
|
```sh
|
|
19
20
|
etiquette setup --target codex --project "$PWD"
|
|
20
|
-
etiquette bootstrap local --project "$PWD" --
|
|
21
|
-
etiquette
|
|
22
|
-
etiquette whereami --project "$PWD" --seat codex-seat --task APP-001
|
|
21
|
+
etiquette bootstrap local --project "$PWD" --task-prefix APP
|
|
22
|
+
etiquette whereami --project "$PWD" --seat impl-seat --task APP-001
|
|
23
23
|
etiquette doctor --project "$PWD"
|
|
24
24
|
etiquette status --project "$PWD"
|
|
25
|
-
etiquette join --project "$PWD" --seat
|
|
26
|
-
etiquette pickup --project "$PWD" --seat
|
|
25
|
+
etiquette join --project "$PWD" --seat impl-seat
|
|
26
|
+
etiquette pickup --project "$PWD" --seat impl-seat --task APP-001 --text
|
|
27
27
|
etiquette console board --project "$PWD" --text
|
|
28
28
|
```
|
|
29
29
|
|
|
@@ -34,8 +34,8 @@ Use `control_seat` for local workflow ownership, `execution_seat` for bounded im
|
|
|
34
34
|
## Greenfield Setup
|
|
35
35
|
|
|
36
36
|
```sh
|
|
37
|
-
etiquette bootstrap local --project "$PWD" --
|
|
38
|
-
--lead-seat impl-seat --lead-principal developer-1
|
|
37
|
+
etiquette bootstrap local --project "$PWD" --task-prefix FOOD \
|
|
38
|
+
--lead-seat impl-seat --lead-principal developer-1
|
|
39
39
|
```
|
|
40
40
|
|
|
41
41
|
```sh
|
|
@@ -44,11 +44,7 @@ etiquette join --project "$PWD" --seat impl-seat
|
|
|
44
44
|
etiquette pickup --project "$PWD" --seat impl-seat --task FOOD-001 --text
|
|
45
45
|
```
|
|
46
46
|
|
|
47
|
-
The starter runbook is enough for normal pickup. Use `session create` only when an extra ad hoc session needs a different scope.
|
|
48
|
-
|
|
49
|
-
The lead seat coordinates. The review seat pressure-tests. Neither gets merge or promotion authority unless policy grants it.
|
|
50
|
-
|
|
51
|
-
Hooks, readiness, and lifecycle preflight are evidence only. The task envelope and allowed writes remain the active work authority.
|
|
47
|
+
The starter runbook is enough for normal pickup. Use `session create` only when an extra ad hoc session needs a different scope. The lead seat coordinates and implements. Add a review seat with `--profile lead-review` only when someone will actually pressure-test. Neither gets merge or promotion authority unless policy grants it. Hooks, readiness, rebind, and lifecycle preflight are evidence only; the task envelope and allowed writes remain the active work authority.
|
|
52
48
|
|
|
53
49
|
## Child Runners
|
|
54
50
|
|
|
@@ -78,7 +74,7 @@ For bounded, cursor-based wake checks on any seat, use the portable core command
|
|
|
78
74
|
```sh
|
|
79
75
|
etiquette seat readiness \
|
|
80
76
|
--project "$PWD" \
|
|
81
|
-
--seat
|
|
77
|
+
--seat impl-seat \
|
|
82
78
|
--seat-type execution_seat \
|
|
83
79
|
--execution-surface codex \
|
|
84
80
|
--capability-source local_validation \
|
|
@@ -97,4 +93,5 @@ Remote execution is a later layer. Plane provisioning is infra-admin scoped. Wor
|
|
|
97
93
|
- Start with the smallest useful topology.
|
|
98
94
|
- Add seats because work requires them.
|
|
99
95
|
- Product-write authority requires a task, allowed writes, validation, and the right promotion gate.
|
|
100
|
-
- Chat is not canonical record
|
|
96
|
+
- Chat is not canonical record.
|
|
97
|
+
- Runtime packs are adapters, not doctrine.
|
package/docs/TEAM_HANDOFF.md
CHANGED
|
@@ -17,10 +17,10 @@ package. The CLI lives in the developer's user-local install root.
|
|
|
17
17
|
|
|
18
18
|
The manager provides release version, installer URL or path, release base URL
|
|
19
19
|
or local release directory, release public key, project repo or greenfield
|
|
20
|
-
name, lead seat,
|
|
20
|
+
name, lead seat, and first task prefix. Provide review or QA seats only when
|
|
21
|
+
the first assignment needs them.
|
|
21
22
|
|
|
22
|
-
Default starter profile: lead `
|
|
23
|
-
`manager-seat`, task prefix `APP`.
|
|
23
|
+
Default starter profile: solo lead `impl-seat`, task prefix `APP`.
|
|
24
24
|
|
|
25
25
|
## Install CLI
|
|
26
26
|
|
|
@@ -100,8 +100,8 @@ git commit -m "chore: baseline empty workspace"
|
|
|
100
100
|
## Bootstrap Local Etiquette
|
|
101
101
|
|
|
102
102
|
```sh
|
|
103
|
-
etiquette handoff --project "$PWD" --
|
|
104
|
-
etiquette bootstrap local --project "$PWD" --
|
|
103
|
+
etiquette handoff --project "$PWD" --task-prefix APP
|
|
104
|
+
etiquette bootstrap local --project "$PWD" --task-prefix APP
|
|
105
105
|
etiquette doctor --project "$PWD"
|
|
106
106
|
etiquette console board --project "$PWD" --text
|
|
107
107
|
```
|
|
@@ -123,38 +123,38 @@ git commit -m "chore: bootstrap etiquette workspace"
|
|
|
123
123
|
Lead seat:
|
|
124
124
|
|
|
125
125
|
```sh
|
|
126
|
-
etiquette whereami --project "$PWD" --seat
|
|
127
|
-
etiquette join --project "$PWD" --seat
|
|
128
|
-
etiquette pickup --project "$PWD" --seat
|
|
126
|
+
etiquette whereami --project "$PWD" --seat impl-seat --task APP-001
|
|
127
|
+
etiquette join --project "$PWD" --seat impl-seat
|
|
128
|
+
etiquette pickup --project "$PWD" --seat impl-seat --task APP-001 --text
|
|
129
129
|
```
|
|
130
130
|
|
|
131
|
-
|
|
131
|
+
Optional review seat after bootstrapping with `--profile lead-review`:
|
|
132
132
|
|
|
133
133
|
```sh
|
|
134
|
-
etiquette whereami --project "$PWD" --seat
|
|
135
|
-
etiquette join --project "$PWD" --seat
|
|
136
|
-
etiquette pickup --project "$PWD" --seat
|
|
134
|
+
etiquette whereami --project "$PWD" --seat review-seat --task APP-002
|
|
135
|
+
etiquette join --project "$PWD" --seat review-seat
|
|
136
|
+
etiquette pickup --project "$PWD" --seat review-seat --task APP-002 --text
|
|
137
137
|
```
|
|
138
138
|
|
|
139
|
-
|
|
139
|
+
If your runtime has an Etiquette pickup skill installed, it should do the same
|
|
140
|
+
read-only sequence as the CLI. The portable form is:
|
|
140
141
|
|
|
141
142
|
```sh
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
--etq "$(command -v etiquette)"
|
|
143
|
+
etiquette whereami --project "$PWD" --seat impl-seat --task APP-001
|
|
144
|
+
etiquette doctor --project "$PWD"
|
|
145
|
+
etiquette notify poll --project "$PWD" --seat impl-seat --text
|
|
146
|
+
etiquette pickup --project "$PWD" --seat impl-seat --task APP-001 --text
|
|
147
147
|
```
|
|
148
148
|
|
|
149
|
-
|
|
150
|
-
|
|
149
|
+
These are readers, not authority. Interrupted or swapped seats should rerun the
|
|
150
|
+
preflight before pickup; see `docs/WORKTREE_QOL.md`.
|
|
151
151
|
|
|
152
152
|
## Local Wake
|
|
153
153
|
|
|
154
154
|
Seats can refresh their repo-local queue before pickup or review:
|
|
155
155
|
|
|
156
156
|
```sh
|
|
157
|
-
etiquette notify poll --project "$PWD" --seat
|
|
157
|
+
etiquette notify poll --project "$PWD" --seat impl-seat --text
|
|
158
158
|
```
|
|
159
159
|
|
|
160
160
|
The queue is a local pointer cache over `.etiquette/events/local.ndjson`. It is
|
package/docs/WORKTREE_QOL.md
CHANGED
|
@@ -33,22 +33,23 @@ Agent resume restores conversation context. It does not prove repo context.
|
|
|
33
33
|
After any resume, run:
|
|
34
34
|
|
|
35
35
|
```sh
|
|
36
|
-
etiquette resume check --project "$PWD" --seat <seat> --task <task> --json
|
|
37
36
|
etiquette whereami --project "$PWD" --seat <seat> --task <task>
|
|
38
37
|
git status -sb
|
|
39
38
|
git branch --show-current
|
|
40
39
|
```
|
|
41
40
|
|
|
42
|
-
`resume check` is read-only and fail-closed. It treats the runner resume hash as
|
|
43
|
-
conversation context only, then verifies project, seat, task, lifecycle, and
|
|
44
|
-
session bindings before pickup. If it reports `rebind_required`, use the seat
|
|
45
|
-
rebind and lifecycle skills before reading old session runbooks as assignment.
|
|
46
|
-
|
|
47
41
|
If the runner asks whether to resume in the old session directory or the
|
|
48
42
|
current directory, choose the current directory only when it is the intended
|
|
49
43
|
project worktree for the task. Do not resume a repo-local task inside a global
|
|
50
44
|
coordination repo or unrelated workspace.
|
|
51
45
|
|
|
46
|
+
## Seat Rebind
|
|
47
|
+
|
|
48
|
+
After TUI/cmux cutoff, cold restart, role/task change, runner/model/vendor swap,
|
|
49
|
+
or directory ambiguity, verify `whereami --json`, `doctor`, `bus status 8`,
|
|
50
|
+
branch, and worktree before pickup. Then run lifecycle readiness. Rebind grants
|
|
51
|
+
no authority; stale memory is context only.
|
|
52
|
+
|
|
52
53
|
## If A Worktree Is Gone
|
|
53
54
|
|
|
54
55
|
Do not reconstruct from chat. Recreate from Git:
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
# Ledger Entry Contracts
|
|
2
2
|
|
|
3
|
-
This contract keeps the ledger-query-mode work narrow. It hardens the
|
|
4
|
-
typed ledger entries that later
|
|
3
|
+
This contract keeps the ledger-query-mode work narrow. It hardens the spine first:
|
|
4
|
+
typed ledger entries that later reflex queries can read without guessing.
|
|
5
5
|
|
|
6
6
|
It does not ship a ledger query engine, sabbatical dossier engine, capsule
|
|
7
7
|
promotion loop, or remote ledger authority.
|
|
@@ -10,7 +10,7 @@ promotion loop, or remote ledger authority.
|
|
|
10
10
|
|
|
11
11
|
```text
|
|
12
12
|
raw local ledger entry
|
|
13
|
-
-> typed
|
|
13
|
+
-> typed spine-eligible metadata
|
|
14
14
|
-> optional compact projection
|
|
15
15
|
-> later sabbatical capsule only after operator promotion
|
|
16
16
|
```
|
|
@@ -18,12 +18,12 @@ raw local ledger entry
|
|
|
18
18
|
## Core Rule
|
|
19
19
|
|
|
20
20
|
```text
|
|
21
|
-
|
|
21
|
+
Reflex routes the present.
|
|
22
22
|
Sabbatical understands the arc.
|
|
23
|
-
Capsules compress the arc back into
|
|
23
|
+
Capsules compress the arc back into reflex context.
|
|
24
24
|
```
|
|
25
25
|
|
|
26
|
-
The
|
|
26
|
+
The brain may recommend. The spine may route. Grants authorize. Execution
|
|
27
27
|
mutates. Receipts prove. Audit accounts.
|
|
28
28
|
|
|
29
29
|
## Contracts
|
|
@@ -65,18 +65,18 @@ These names are reserved vocabulary, not V0 machinery:
|
|
|
65
65
|
search adapters; SQLite FTS5 is the only V0.1 retrieval accelerator.
|
|
66
66
|
- `ledger-topic-dossier.v0` — unlock only when an operator asks for a durable
|
|
67
67
|
long-horizon dossier over a real topic.
|
|
68
|
-
- `sabbatical-ledger-query` — reserved as the deliberate
|
|
69
|
-
cannot write the
|
|
70
|
-
- `capsule-to-
|
|
68
|
+
- `sabbatical-ledger-query` — reserved as the deliberate brain posture; it
|
|
69
|
+
cannot write the reflex spine directly.
|
|
70
|
+
- `capsule-to-spine-feedback` — unlock only when reviewed capsules have a human
|
|
71
71
|
promotion surface.
|
|
72
72
|
|
|
73
73
|
Deferred surfaces must name an operational consumer before implementation.
|
|
74
74
|
|
|
75
75
|
## Boundary
|
|
76
76
|
|
|
77
|
-
- The
|
|
77
|
+
- The brain cannot write the spine directly. It may produce a capsule or
|
|
78
78
|
dossier that an operator later promotes.
|
|
79
|
-
- `spine_eligible: true` is explicit;
|
|
79
|
+
- `spine_eligible: true` is explicit; reflex indexes do not infer eligibility
|
|
80
80
|
from entry type.
|
|
81
81
|
- Existing ledger lines remain readable as `pre_v0: true` legacy entries.
|
|
82
82
|
- Ledger entries do not authorize work unless a valid grant path says so.
|
|
@@ -9,7 +9,7 @@ does not authorize work, attach grants, close tasks, or replace receipts.
|
|
|
9
9
|
|
|
10
10
|
```text
|
|
11
11
|
The leading timestamp (created_at) is the RECORDING time. It is never
|
|
12
|
-
backdated. If work was done off the
|
|
12
|
+
backdated. If work was done off the spine, it is reconciled with a late
|
|
13
13
|
entry recorded at its true time, pointing at contemporaneous evidence.
|
|
14
14
|
Synthesizing entries with past recording times is corruption, not repair:
|
|
15
15
|
one plausible fake timestamp devalues every real one.
|
|
@@ -51,7 +51,7 @@ valid_time_end:
|
|
|
51
51
|
## Added Entry Type
|
|
52
52
|
|
|
53
53
|
`entry_type: retroactive_import` — a late reconciliation entry covering work
|
|
54
|
-
that was executed without contemporaneous
|
|
54
|
+
that was executed without contemporaneous spine entries. Rules, enforced by
|
|
55
55
|
the validator:
|
|
56
56
|
|
|
57
57
|
- requires schema `ledger-entry.v0.2` (rejected on v0/v0.1);
|
|
@@ -59,7 +59,7 @@ the validator:
|
|
|
59
59
|
- must carry at least one contemporaneous evidence ref among
|
|
60
60
|
`refs.commits`, `refs.receipts`, or `refs.artifacts` — evidence that
|
|
61
61
|
carries its own independent timestamps (git commits are the canonical
|
|
62
|
-
|
|
62
|
+
witness);
|
|
63
63
|
- authority class must be `advisory` or `audit` — a late entry never mints
|
|
64
64
|
grants or execution authority;
|
|
65
65
|
- one reconciliation entry covering a span with an index artifact is
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# ledger-entry.v0
|
|
2
2
|
|
|
3
|
-
`ledger-entry.v0` is the typed local ledger record used by the
|
|
3
|
+
`ledger-entry.v0` is the typed local ledger record used by the reflex spine.
|
|
4
4
|
It makes compact ledger lines structurally queryable without promoting the
|
|
5
5
|
ledger into an authority source.
|
|
6
6
|
|
|
@@ -58,7 +58,7 @@ legacy:
|
|
|
58
58
|
`authority.class: grant` may set it to `true`, and only when the entry carries
|
|
59
59
|
the durable grant reference required by the local workflow.
|
|
60
60
|
|
|
61
|
-
`spine_eligible` is explicit. A
|
|
61
|
+
`spine_eligible` is explicit. A reflex index must not infer it from
|
|
62
62
|
`entry_type`. Entries that are useful for current-state routing should set it to
|
|
63
63
|
`true`; archival, noisy, or unreviewed entries should set it to `false`.
|
|
64
64
|
|
|
@@ -92,17 +92,17 @@ legacy:
|
|
|
92
92
|
spine_eligible: false
|
|
93
93
|
```
|
|
94
94
|
|
|
95
|
-
##
|
|
95
|
+
## Spine And Brain Boundary
|
|
96
96
|
|
|
97
97
|
```text
|
|
98
|
-
|
|
98
|
+
Reflex routes the present.
|
|
99
99
|
Sabbatical understands the arc.
|
|
100
|
-
Capsules compress the arc back into
|
|
100
|
+
Capsules compress the arc back into reflex context.
|
|
101
101
|
```
|
|
102
102
|
|
|
103
|
-
The
|
|
104
|
-
capsule or dossier, but it cannot write back into the
|
|
105
|
-
from capsule to
|
|
103
|
+
The reflex spine reads typed ledger entries. The sabbatical brain may produce a
|
|
104
|
+
capsule or dossier, but it cannot write back into the spine directly. Promotion
|
|
105
|
+
from capsule to spine requires an explicit operator gate.
|
|
106
106
|
|
|
107
107
|
## Authority Boundary
|
|
108
108
|
|
package/package.json
CHANGED
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@etiquekit/etq",
|
|
3
|
-
"version": "1.0.
|
|
4
|
-
"license": "Apache-2.0",
|
|
3
|
+
"version": "1.0.13",
|
|
5
4
|
"description": "Governance and evidence CLI for AI-assisted engineering seats.",
|
|
6
5
|
"private": false,
|
|
7
6
|
"type": "module",
|
|
@@ -16,15 +15,16 @@
|
|
|
16
15
|
},
|
|
17
16
|
"files": [
|
|
18
17
|
"LICENSE",
|
|
19
|
-
"NOTICE",
|
|
20
18
|
"AGENTS.md",
|
|
19
|
+
"NOTICE",
|
|
21
20
|
"QuickStart.md",
|
|
22
21
|
"README.md",
|
|
23
22
|
"bin/",
|
|
24
|
-
"lib/",
|
|
25
23
|
"docs/",
|
|
26
|
-
"
|
|
27
|
-
"
|
|
24
|
+
"packages/control/src/",
|
|
25
|
+
"packages/protocol/src/",
|
|
26
|
+
"release/lineage.v0.json",
|
|
27
|
+
"scripts/",
|
|
28
28
|
"templates/",
|
|
29
29
|
"!docs/work/"
|
|
30
30
|
],
|
|
@@ -35,10 +35,9 @@
|
|
|
35
35
|
"core:cli": "bun packages/control/src/core-cli.ts",
|
|
36
36
|
"release:scan": "sh scripts/release-scan.sh",
|
|
37
37
|
"release:pack": "sh scripts/release-pack-canary.sh",
|
|
38
|
+
"release:candidate": "sh scripts/release-candidate-verify.sh",
|
|
38
39
|
"release:checksum": "sh scripts/release-checksum.sh",
|
|
39
|
-
"release:sign": "sh scripts/release-sign.sh"
|
|
40
|
-
"release:build": "sh scripts/release-build.sh",
|
|
41
|
-
"prepack": "sh scripts/release-build.sh"
|
|
40
|
+
"release:sign": "sh scripts/release-sign.sh"
|
|
42
41
|
},
|
|
43
42
|
"devDependencies": {
|
|
44
43
|
"@types/bun": "^1.2.17",
|
|
@@ -48,12 +47,13 @@
|
|
|
48
47
|
"yaml": "2.8.3",
|
|
49
48
|
"zod": "4.3.6"
|
|
50
49
|
},
|
|
50
|
+
"license": "Apache-2.0",
|
|
51
51
|
"homepage": "https://etiquekit.com",
|
|
52
52
|
"repository": {
|
|
53
53
|
"type": "git",
|
|
54
|
-
"url": "git+https://github.com/leepickdev/etq.git"
|
|
54
|
+
"url": "git+https://github.com/leepickdev/etq-devkit.git"
|
|
55
55
|
},
|
|
56
56
|
"bugs": {
|
|
57
|
-
"url": "https://github.com/leepickdev/etq/issues"
|
|
57
|
+
"url": "https://github.com/leepickdev/etq-devkit/issues"
|
|
58
58
|
}
|
|
59
59
|
}
|