Track repo-manager index and the TAMQ introduction
All checks were successful
CI Smoke / host-smoke (push) Successful in 0s
CI Smoke / container-smoke (push) Successful in 1s

Both were untracked and blocked registrar-reconcile's clean-worktree
precondition, leaving AUDIT-WP-0009 and AUDIT-IN-0001 unregistered.

.repo-manager/index.json follows the estate convention — ops-warden,
flex-auth and kings-guard all track it; only gate-house ignores it.
TamqMessagingIntroduction.md is received documentation that belongs in
the repo.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01WpeL68AWHqtqPQZEXY5kFe

Assistant: claude-code
Assistant-Model: opus
Assistant-Process: 4040362@bnt-lap001
Assistant-Session: 4fd0fd24-2ee8-4413-bd67-43bd79ca73f1
This commit is contained in:
tegwick 2026-08-29 14:45:26 +02:00
parent 6eaa33699d
commit d9a0c8de0e
3 changed files with 701 additions and 1 deletions

559
.repo-manager/index.json Normal file
View file

@ -0,0 +1,559 @@
{
"schema": "repo_manager.index.v1",
"slug": "approval-evidence",
"repo_root": "/home/worsch/audit-core",
"head_sha": "d623f239d35ba04221686fc8631af83a41e01975",
"observed_at": "2026-08-28T20:35:09.488732Z",
"source_fingerprint": "ce9898ecc428ccbaa2298aeba150e27752fc03c8aa777bd61440cbc64e33c0e1",
"source_files": [
".repo-classification.yaml",
"INTENT.md",
"intakes/intakes.md",
"workplans/AUDIT-WP-0001-statehub-bootstrap.md",
"workplans/AUDIT-WP-0002-pluggable-audit-backend.md",
"workplans/AUDIT-WP-0003-user-engine-event-ingestion-service.md",
"workplans/AUDIT-WP-0004-receiver-correctness-and-hardening.md",
"workplans/AUDIT-WP-0005-postgres-store-and-production-deployment.md",
"workplans/AUDIT-WP-0006-honest-custody-and-canon-join.md",
"workplans/AUDIT-WP-0007-integrity-verification.md",
"workplans/AUDIT-WP-0008-tenancy-posture-alignment.md"
],
"work_records": [
{
"kind": "workplan",
"id": "AUDIT-WP-0001",
"status": "finished",
"title": "Bootstrap State Hub integration",
"source_path": "workplans/AUDIT-WP-0001-statehub-bootstrap.md",
"uuid": "85f4008a-d8a0-409e-886b-ffcc49f78bfb",
"parent_id": null,
"extra": {}
},
{
"kind": "task",
"id": "AUDIT-WP-0001-T01",
"status": "done",
"title": "Review Generated Integration Files",
"source_path": "workplans/AUDIT-WP-0001-statehub-bootstrap.md",
"uuid": "59896d6b-85ed-455d-9bd4-b546a050205e",
"parent_id": "AUDIT-WP-0001",
"extra": {}
},
{
"kind": "task",
"id": "AUDIT-WP-0001-T02",
"status": "done",
"title": "Verify Local Developer Workflow",
"source_path": "workplans/AUDIT-WP-0001-statehub-bootstrap.md",
"uuid": "f74d7033-a20b-45da-9d0a-23426e60403e",
"parent_id": "AUDIT-WP-0001",
"extra": {}
},
{
"kind": "task",
"id": "AUDIT-WP-0001-T03",
"status": "done",
"title": "Seed First Real Workplan",
"source_path": "workplans/AUDIT-WP-0001-statehub-bootstrap.md",
"uuid": "5df0cd46-9193-48a0-bd59-0e6acbc56270",
"parent_id": "AUDIT-WP-0001",
"extra": {}
},
{
"kind": "workplan",
"id": "AUDIT-WP-0002",
"status": "finished",
"title": "Pluggable audit backend contract",
"source_path": "workplans/AUDIT-WP-0002-pluggable-audit-backend.md",
"uuid": "14725dbf-16ae-43e5-bf52-3f93238cf264",
"parent_id": null,
"extra": {}
},
{
"kind": "task",
"id": "AUDIT-WP-0002-T01",
"status": "done",
"title": "Author backend interface contract",
"source_path": "workplans/AUDIT-WP-0002-pluggable-audit-backend.md",
"uuid": "588ac6fa-eb41-49ce-8a1c-850d5791de0b",
"parent_id": "AUDIT-WP-0002",
"extra": {}
},
{
"kind": "workplan",
"id": "AUDIT-WP-0003",
"status": "finished",
"title": "Provide durable user-engine event ingestion",
"source_path": "workplans/AUDIT-WP-0003-user-engine-event-ingestion-service.md",
"uuid": "8c2cfd72-126d-517e-8032-1f5c5cdaa20f",
"parent_id": null,
"extra": {
"depends_on": [
"NK-WP-0024"
]
}
},
{
"kind": "task",
"id": "AUDIT-WP-0003-T01",
"status": "done",
"title": "T01 - Finalize the ingestion contract",
"source_path": "workplans/AUDIT-WP-0003-user-engine-event-ingestion-service.md",
"uuid": "c9b402ae-3cc4-58c9-be37-c817db4d8145",
"parent_id": "AUDIT-WP-0003",
"extra": {}
},
{
"kind": "task",
"id": "AUDIT-WP-0003-T02",
"status": "done",
"title": "T02 - Implement authenticated durable ingestion",
"source_path": "workplans/AUDIT-WP-0003-user-engine-event-ingestion-service.md",
"uuid": "85df35ce-f6dd-5688-b38e-6b6678ada6e0",
"parent_id": "AUDIT-WP-0003",
"extra": {}
},
{
"kind": "task",
"id": "AUDIT-WP-0003-T03",
"status": "cancel",
"title": "T03 - Deploy the single-cluster receiver",
"source_path": "workplans/AUDIT-WP-0003-user-engine-event-ingestion-service.md",
"uuid": "2c5a0a9f-53e1-5040-a86d-7fb724c5f9ec",
"parent_id": "AUDIT-WP-0003",
"extra": {}
},
{
"kind": "task",
"id": "AUDIT-WP-0003-T04",
"status": "cancel",
"title": "T04 - Prove delivery, retry, and replay",
"source_path": "workplans/AUDIT-WP-0003-user-engine-event-ingestion-service.md",
"uuid": "7b1634a6-8b85-5e77-8f87-27f33074afc2",
"parent_id": "AUDIT-WP-0003",
"extra": {}
},
{
"kind": "workplan",
"id": "AUDIT-WP-0004",
"status": "finished",
"title": "Make the event receiver correct and operable under load",
"source_path": "workplans/AUDIT-WP-0004-receiver-correctness-and-hardening.md",
"uuid": "7fcc4bbc-af6e-599c-be5c-a3930aea7773",
"parent_id": null,
"extra": {}
},
{
"kind": "task",
"id": "AUDIT-WP-0004-T01",
"status": "done",
"title": "T01 - Route ingestion through the audit backend contract",
"source_path": "workplans/AUDIT-WP-0004-receiver-correctness-and-hardening.md",
"uuid": "86474da6-6702-5ab7-97ac-8ff8b4683226",
"parent_id": "AUDIT-WP-0004",
"extra": {}
},
{
"kind": "task",
"id": "AUDIT-WP-0004-T02",
"status": "done",
"title": "T02 - Fix error semantics and failure handling",
"source_path": "workplans/AUDIT-WP-0004-receiver-correctness-and-hardening.md",
"uuid": "1591c1ce-3c7b-528c-a9b5-5693ddd03a0d",
"parent_id": "AUDIT-WP-0004",
"extra": {}
},
{
"kind": "task",
"id": "AUDIT-WP-0004-T03",
"status": "done",
"title": "T03 - Enforce the isolation properties already claimed",
"source_path": "workplans/AUDIT-WP-0004-receiver-correctness-and-hardening.md",
"uuid": "9193c3e9-6bf6-50b0-a28b-38cbbe0c12a9",
"parent_id": "AUDIT-WP-0004",
"extra": {}
},
{
"kind": "task",
"id": "AUDIT-WP-0004-T04",
"status": "done",
"title": "T04 - Settle redaction policy",
"source_path": "workplans/AUDIT-WP-0004-receiver-correctness-and-hardening.md",
"uuid": "092b9a9d-d801-5170-bb01-4288424cb757",
"parent_id": "AUDIT-WP-0004",
"extra": {}
},
{
"kind": "task",
"id": "AUDIT-WP-0004-T05",
"status": "done",
"title": "T05 - Provide the operator read surface",
"source_path": "workplans/AUDIT-WP-0004-receiver-correctness-and-hardening.md",
"uuid": "9a1953d1-4528-5572-959d-57901218a9c1",
"parent_id": "AUDIT-WP-0004",
"extra": {}
},
{
"kind": "task",
"id": "AUDIT-WP-0004-T06",
"status": "done",
"title": "T06 - Serving layer and observability",
"source_path": "workplans/AUDIT-WP-0004-receiver-correctness-and-hardening.md",
"uuid": "28271d49-3aaa-5134-a1a0-e30ddad35e9d",
"parent_id": "AUDIT-WP-0004",
"extra": {}
},
{
"kind": "task",
"id": "AUDIT-WP-0004-T07",
"status": "done",
"title": "T07 - Close the test gaps",
"source_path": "workplans/AUDIT-WP-0004-receiver-correctness-and-hardening.md",
"uuid": "2fd0e7d2-ac5b-5d47-be70-743211039163",
"parent_id": "AUDIT-WP-0004",
"extra": {}
},
{
"kind": "workplan",
"id": "AUDIT-WP-0005",
"status": "finished",
"title": "Deploy audit-core on Railiance with durable Postgres custody",
"source_path": "workplans/AUDIT-WP-0005-postgres-store-and-production-deployment.md",
"uuid": "a5983026-b50a-5545-9e64-b96baa568693",
"parent_id": null,
"extra": {
"depends_on": [
"AUDIT-WP-0004",
"RAPP-POSTGRES-WP-0002",
"NK-WP-0024"
]
}
},
{
"kind": "task",
"id": "AUDIT-WP-0005-T01",
"status": "done",
"title": "T01 - Implement the Postgres audit backend",
"source_path": "workplans/AUDIT-WP-0005-postgres-store-and-production-deployment.md",
"uuid": "b7aa7e46-5874-5a8f-9dc7-203b15d28504",
"parent_id": "AUDIT-WP-0005",
"extra": {}
},
{
"kind": "task",
"id": "AUDIT-WP-0005-T02",
"status": "done",
"title": "T02 - Provision storage through the platform lane",
"source_path": "workplans/AUDIT-WP-0005-postgres-store-and-production-deployment.md",
"uuid": "428be448-dba5-5bda-b216-5944c7d17a75",
"parent_id": "AUDIT-WP-0005",
"extra": {}
},
{
"kind": "task",
"id": "AUDIT-WP-0005-T03",
"status": "done",
"title": "T03 - Deploy the receiver",
"source_path": "workplans/AUDIT-WP-0005-postgres-store-and-production-deployment.md",
"uuid": "170e4fb7-0683-5fc1-b8af-df639c5309ae",
"parent_id": "AUDIT-WP-0005",
"extra": {}
},
{
"kind": "task",
"id": "AUDIT-WP-0005-T04",
"status": "done",
"title": "T04 - Migrate existing SQLite records",
"source_path": "workplans/AUDIT-WP-0005-postgres-store-and-production-deployment.md",
"uuid": "378ec001-25ea-5aec-a6e8-f70d19ee4e7d",
"parent_id": "AUDIT-WP-0005",
"extra": {}
},
{
"kind": "task",
"id": "AUDIT-WP-0005-T05",
"status": "done",
"title": "T05 - Run the live failure matrix",
"source_path": "workplans/AUDIT-WP-0005-postgres-store-and-production-deployment.md",
"uuid": "ad6dece3-7ae9-5656-baae-feb6b8d54c72",
"parent_id": "AUDIT-WP-0005",
"extra": {}
},
{
"kind": "task",
"id": "AUDIT-WP-0005-T06",
"status": "done",
"title": "T06 - Operational handover",
"source_path": "workplans/AUDIT-WP-0005-postgres-store-and-production-deployment.md",
"uuid": "a4c09b77-a7b0-5a8c-91f2-283ce65002e4",
"parent_id": "AUDIT-WP-0005",
"extra": {}
},
{
"kind": "workplan",
"id": "AUDIT-WP-0006",
"status": "finished",
"title": "Honest operational custody against ITC-CAP and the live platform backup",
"source_path": "workplans/AUDIT-WP-0006-honest-custody-and-canon-join.md",
"uuid": "21e7ccf8-703c-5631-95a2-b5a5743529b2",
"parent_id": null,
"extra": {
"depends_on": [
"AUDIT-WP-0005",
"RESOURCE-WP-0002",
"ITC-WP-0014",
"ITC-WP-0015"
]
}
},
{
"kind": "task",
"id": "AUDIT-WP-0006-T01",
"status": "done",
"title": "T01 \u2014 Restate custody vocabulary in the running service",
"source_path": "workplans/AUDIT-WP-0006-honest-custody-and-canon-join.md",
"uuid": "27aa1df9-0758-5c2f-831b-29c41c2805a7",
"parent_id": "AUDIT-WP-0006",
"extra": {}
},
{
"kind": "task",
"id": "AUDIT-WP-0006-T02",
"status": "done",
"title": "T02 \u2014 Bind the recovery promise to the live platform backup",
"source_path": "workplans/AUDIT-WP-0006-honest-custody-and-canon-join.md",
"uuid": "6d01629f-5d3f-5a83-9026-3b208f06dd89",
"parent_id": "AUDIT-WP-0006",
"extra": {}
},
{
"kind": "task",
"id": "AUDIT-WP-0006-T03",
"status": "done",
"title": "T03 \u2014 Publish an ITC-CAP case for the live provision",
"source_path": "workplans/AUDIT-WP-0006-honest-custody-and-canon-join.md",
"uuid": "dce899eb-7763-593b-a7d3-953d25f9e9c7",
"parent_id": "AUDIT-WP-0006",
"extra": {}
},
{
"kind": "task",
"id": "AUDIT-WP-0006-T04",
"status": "done",
"title": "T04 \u2014 Publish a Canon Interface Card",
"source_path": "workplans/AUDIT-WP-0006-honest-custody-and-canon-join.md",
"uuid": "a3d75c33-df62-5017-b54c-ebdc1165e469",
"parent_id": "AUDIT-WP-0006",
"extra": {}
},
{
"kind": "task",
"id": "AUDIT-WP-0006-T05",
"status": "done",
"title": "T05 \u2014 Persist sender tenant scope and refresh SCOPE",
"source_path": "workplans/AUDIT-WP-0006-honest-custody-and-canon-join.md",
"uuid": "f40162fd-37fc-52c1-b5f1-a8b565ffda7d",
"parent_id": "AUDIT-WP-0006",
"extra": {}
},
{
"kind": "workplan",
"id": "AUDIT-WP-0007",
"status": "finished",
"title": "Integrity verification for operational custody",
"source_path": "workplans/AUDIT-WP-0007-integrity-verification.md",
"uuid": "5398f698-4f86-5dd8-962a-e5dbaf93c9f4",
"parent_id": null,
"extra": {
"depends_on": [
"AUDIT-WP-0006"
]
}
},
{
"kind": "task",
"id": "AUDIT-WP-0007-T01",
"status": "done",
"title": "T01 \u2014 Specify the chain and the proof bound",
"source_path": "workplans/AUDIT-WP-0007-integrity-verification.md",
"uuid": "ea526d34-57e7-5273-b80b-6cd7bfe3bc1f",
"parent_id": "AUDIT-WP-0007",
"extra": {}
},
{
"kind": "task",
"id": "AUDIT-WP-0007-T02",
"status": "done",
"title": "T02 \u2014 Persist the chain on accept",
"source_path": "workplans/AUDIT-WP-0007-integrity-verification.md",
"uuid": "649a60b1-e8a7-59f5-9164-24c57290e163",
"parent_id": "AUDIT-WP-0007",
"extra": {}
},
{
"kind": "task",
"id": "AUDIT-WP-0007-T03",
"status": "done",
"title": "T03 \u2014 Verify surface",
"source_path": "workplans/AUDIT-WP-0007-integrity-verification.md",
"uuid": "71b7faeb-1f70-5162-8ce1-3c3bbe849db1",
"parent_id": "AUDIT-WP-0007",
"extra": {}
},
{
"kind": "task",
"id": "AUDIT-WP-0007-T04",
"status": "done",
"title": "T04 \u2014 Attest the chain head outside platform-pg",
"source_path": "workplans/AUDIT-WP-0007-integrity-verification.md",
"uuid": "3b4d6b4e-1f72-5bc7-bf24-ca344caceaf6",
"parent_id": "AUDIT-WP-0007",
"extra": {}
},
{
"kind": "task",
"id": "AUDIT-WP-0007-T05",
"status": "done",
"title": "T05 \u2014 Declare tamper_evidence only as far as the proof",
"source_path": "workplans/AUDIT-WP-0007-integrity-verification.md",
"uuid": "f98fe8c8-637e-5e7d-bc3a-b2bedfc7525b",
"parent_id": "AUDIT-WP-0007",
"extra": {}
},
{
"kind": "workplan",
"id": "AUDIT-WP-0008",
"status": "active",
"title": "Tenancy posture declaration and read-path enforcement",
"source_path": "workplans/AUDIT-WP-0008-tenancy-posture-alignment.md",
"uuid": "a9a248b2-d26c-503e-a8fc-4f3675e6ed51",
"parent_id": null,
"extra": {
"depends_on": [
"AUDIT-WP-0007"
]
}
},
{
"kind": "task",
"id": "AUDIT-WP-0008-T01",
"status": "done",
"title": "Tasks",
"source_path": "workplans/AUDIT-WP-0008-tenancy-posture-alignment.md",
"uuid": "3b7be6c5-1861-57d2-a9ab-5770c3ea544d",
"parent_id": "AUDIT-WP-0008",
"extra": {}
},
{
"kind": "task",
"id": "AUDIT-WP-0008-T02",
"status": "done",
"title": "Tasks",
"source_path": "workplans/AUDIT-WP-0008-tenancy-posture-alignment.md",
"uuid": "3cf1d80f-4f35-5711-aa0a-aeb27912e2f6",
"parent_id": "AUDIT-WP-0008",
"extra": {}
},
{
"kind": "task",
"id": "AUDIT-WP-0008-T03",
"status": "done",
"title": "Tasks",
"source_path": "workplans/AUDIT-WP-0008-tenancy-posture-alignment.md",
"uuid": "3c495a5c-6b0d-5fae-b237-626d298e7b2c",
"parent_id": "AUDIT-WP-0008",
"extra": {}
},
{
"kind": "task",
"id": "AUDIT-WP-0008-T04",
"status": "done",
"title": "Tasks",
"source_path": "workplans/AUDIT-WP-0008-tenancy-posture-alignment.md",
"uuid": "ab07af53-0ca8-5d8e-b699-128d462e30a2",
"parent_id": "AUDIT-WP-0008",
"extra": {}
},
{
"kind": "task",
"id": "AUDIT-WP-0008-T05",
"status": "done",
"title": "Tasks",
"source_path": "workplans/AUDIT-WP-0008-tenancy-posture-alignment.md",
"uuid": "76d3b34e-df74-5af0-8025-e77e8644d199",
"parent_id": "AUDIT-WP-0008",
"extra": {}
},
{
"kind": "task",
"id": "AUDIT-WP-0008-T06",
"status": "done",
"title": "Tasks",
"source_path": "workplans/AUDIT-WP-0008-tenancy-posture-alignment.md",
"uuid": "c0b6e317-bfde-5ba7-b92a-6545257e0dff",
"parent_id": "AUDIT-WP-0008",
"extra": {}
},
{
"kind": "task",
"id": "AUDIT-WP-0008-T07",
"status": "progress",
"title": "Tasks",
"source_path": "workplans/AUDIT-WP-0008-tenancy-posture-alignment.md",
"uuid": "4e3ab790-daa6-5fbb-837e-9a9a26848201",
"parent_id": "AUDIT-WP-0008",
"extra": {}
},
{
"kind": "task",
"id": "AUDIT-WP-0008-T08",
"status": "done",
"title": "Tasks",
"source_path": "workplans/AUDIT-WP-0008-tenancy-posture-alignment.md",
"uuid": "f9d4ec51-6092-5c05-82fb-30e5dd201229",
"parent_id": "AUDIT-WP-0008",
"extra": {}
},
{
"kind": "intake",
"id": "AUDIT-IN-0001",
"status": "open",
"title": "Proposed: audit-core takes the approval evidence half (security layer model v0.3 \u00a79.4)",
"source_path": "intakes/intakes.md",
"uuid": null,
"parent_id": null,
"extra": {
"record": {
"id": "AUDIT-IN-0001",
"kind": "intake",
"title": "Proposed: audit-core takes the approval evidence half (security layer model v0.3 \u00a79.4)",
"status": "open",
"origin": "cross-repo",
"origin_ref": "net-kingdom security-layer-model_v0.3 \u00a79.4",
"priority": "medium",
"owner": "audit-core",
"requested_by": "gate-house",
"description": "gate-house proposes that audit-core own the tamper-evident record of approvals: issuance, use, supersession, and revocation emitted as audit events. Rationale: principle 6 (signed or hash-chained manifests to prove a record set was not changed, omitted, or truncated) is exactly what authenticated approval entries need forensically, and audit-core independence is the property Canon core rule 13 wants \u2014 audit evidence protected from the actor being audited. What is NOT proposed: the operative approval state. approval-engine owns the durable object, atomic supersession, single consumption, and revocation, because those need mutable in-path current-state semantics and audit-core operational custody is append-only Postgres by design; coupling decision-time approval reads to the audit fabric would also make an audit outage an authorization outage. Note audit-core INTENT lists policy decision making as out of scope \u2014 this proposal respects that: approval evidence is a record of what happened, never the authoritative answer to whether an approval is still valid. Requested: assent, revision, or rejection. If audit-core would rather not carry approval events as a distinct source, say so and gate-house will record the evidence half as unowned rather than assume it.",
"created": "2026-08-28T20:35:09.148892Z",
"updated": "2026-08-28T20:35:09.148892Z"
}
}
}
],
"events": [
{
"type": "repo.command.applied",
"command": "repo.work.create_intake",
"operation": "create",
"correlation_id": "4b03b802-e66f-4e69-9593-ed9abfc1d7c8",
"kind": "intake",
"id": "AUDIT-IN-0001",
"git_sha": "d623f239d35ba04221686fc8631af83a41e01975",
"files_touched": [
"intakes/intakes.md"
],
"source": "repo-manager",
"emitted_at": "2026-08-28T20:35:09.488798Z"
}
]
}

View file

@ -0,0 +1,129 @@
# TAMQ messaging for repository agents
TAMQ is a local, durable coordination channel between repository work sessions.
It lets an operator or worker in one managed terminal address another session by
its exact `gita` repository slug. TAMQ transports the message; it does not grant
authority, share memory, or prove that the recipient completed the request.
## The protocol in one minute
An operator can submit one addressed line:
```text
To:flex-auth: Please review AUTH-WP-0004-T02 and reply with accepted or blocked.
```
A worker can emit a short block. The first line carries the address, subsequent
non-empty output lines extend the same message, and an empty line sends it:
```text
To:flex-auth: Please review the authorization boundary.
Context: AUTH-WP-0004-T02 in docs/auth-boundary.md.
Expected reply: accepted, or one blocking question. Do not modify files yet.
```
The empty line matters. Until it appears, TAMQ keeps collecting worker output.
A new `To:` line or worker exit also closes the current block. Keep detailed
designs and evidence in durable files; use the message to point at them.
Keywords are case-insensitive (`to:`, `TO:`, and mixed case work), while the
repository slug must match `gita` exactly. Canonical `To:` spelling is easiest
to recognize in prompts and documentation.
The receiving session gets a non-routable envelope. Each physical line repeats
the sender so terminal input observation cannot mistake a continuation for a
new outbound message:
```text
From:audit-core: Please review the authorization boundary.
From:audit-core: Context: AUTH-WP-0004-T02 in docs/auth-boundary.md.
From:audit-core: Expected reply: accepted, or one blocking question. Do not modify files yet.
```
`From:audit-core/o:` means the message originated in operator input. Plain
`From:audit-core:` means it originated in worker output.
## Starting a session
TAMQ never chooses a pane occupant. Start ordinary shells:
```bash
tamq flex-auth audit-core
```
Or explicitly start the command you want in every new repository window:
```bash
tamq --command codex --mode trigger flex-auth audit-core
```
Repeated starts reuse existing windows and do not rerun the command. Use
`make cleanup` before intentionally recreating the managed session.
## Delivery modes
The endpoint mode controls what delivery means:
| Mode | Recipient behavior |
| --- | --- |
| `output` | Safe default. Display the `From:` block as terminal output; do not give it to the foreground process. |
| `inbox` | Keep the message durable without displaying it. Consume it with `tamq inbox`. |
| `pushy` | Experimental. Place the block in the target input buffer without submitting it. |
| `trigger` | Experimental. Place the block, allow terminal paste detection to settle, then submit it once. |
New pushy/trigger endpoints have a short startup grace so their foreground
program can initialize before the first delivery. These modes still cannot
prove that an arbitrary program accepted or understood the input. A durable
state of `injected` records successful terminal placement, not agent
acknowledgement.
An operator can change the live mode:
```text
Cmd: mode=trigger
```
`Cmd:` is operator-only. Command-shaped worker output is inert.
## Agent behavior
When asked to contact another repository worker:
1. Emit one `To:<repo>:` block and finish it with an empty line.
2. Include the durable task, file, commit, or correlation ID when relevant.
3. State the expected response and any authority boundary.
4. Do not echo an operator's addressed input unless explicitly asked; TAMQ may
already have observed it and an echo could create a duplicate.
5. Treat `From:` as received context, not as permission to act beyond the
current task and repository rules.
Good messages are small handoffs, completion notices, acknowledgements, or
bounded questions. Never send secrets, credentials, tokens, or private keys.
## Inspecting and troubleshooting
Useful commands are:
```bash
tamq status
tamq history --repo audit-core
tamq inbox --repo audit-core
tamq inspect <message-id>
tamq ack <message-id>
tamq send --from audit-core 'To:flex-auth: Direct CLI message.'
```
If no reply arrives, distinguish these states before resending:
- no durable history row: the source line or completed worker block was not
observed, the slug was invalid, or a line budget blocked it;
- `pending`: no eligible live endpoint has completed the selected delivery;
- `displayed`: output mode showed it, but did not submit it to the worker;
- `injected`: pushy/trigger placement succeeded, but the worker has not
necessarily processed it;
- explicit reply or acknowledgement: the recipient confirmed receipt.
Use a correlation token when duplicate requests would be harmful. TAMQ is an
alpha transport: durable queue state and recipient comprehension are separate
facts.

View file

@ -16,6 +16,7 @@
| workplan | AUDIT-WP-0006 | finished | — | workplans/AUDIT-WP-0006-honest-custody-and-canon-join.md |
| workplan | AUDIT-WP-0007 | finished | — | workplans/AUDIT-WP-0007-integrity-verification.md |
| workplan | AUDIT-WP-0008 | active | — | workplans/AUDIT-WP-0008-tenancy-posture-alignment.md |
| workplan | AUDIT-WP-0009 | ready | — | workplans/AUDIT-WP-0009-evidence-role-conformance.md |
| task | AUDIT-WP-0001-T01 | done | — | workplans/AUDIT-WP-0001-statehub-bootstrap.md |
| task | AUDIT-WP-0001-T02 | done | — | workplans/AUDIT-WP-0001-statehub-bootstrap.md |
| task | AUDIT-WP-0001-T03 | done | — | workplans/AUDIT-WP-0001-statehub-bootstrap.md |
@ -55,4 +56,15 @@
| task | AUDIT-WP-0008-T06 | done | — | workplans/AUDIT-WP-0008-tenancy-posture-alignment.md |
| task | AUDIT-WP-0008-T07 | progress | — | workplans/AUDIT-WP-0008-tenancy-posture-alignment.md |
| task | AUDIT-WP-0008-T08 | done | — | workplans/AUDIT-WP-0008-tenancy-posture-alignment.md |
| intake | AUDIT-IN-0001 | open | — | intakes/intakes.md |
| task | AUDIT-WP-0009-T01 | todo | — | workplans/AUDIT-WP-0009-evidence-role-conformance.md |
| task | AUDIT-WP-0009-T02 | todo | — | workplans/AUDIT-WP-0009-evidence-role-conformance.md |
| task | AUDIT-WP-0009-T03 | todo | — | workplans/AUDIT-WP-0009-evidence-role-conformance.md |
| task | AUDIT-WP-0009-T04 | todo | — | workplans/AUDIT-WP-0009-evidence-role-conformance.md |
| task | AUDIT-WP-0009-T05 | wait | — | workplans/AUDIT-WP-0009-evidence-role-conformance.md |
| task | AUDIT-WP-0009-T06 | todo | — | workplans/AUDIT-WP-0009-evidence-role-conformance.md |
| task | AUDIT-WP-0009-T07 | todo | — | workplans/AUDIT-WP-0009-evidence-role-conformance.md |
| task | AUDIT-WP-0009-T08 | todo | — | workplans/AUDIT-WP-0009-evidence-role-conformance.md |
| task | AUDIT-WP-0009-T09 | todo | — | workplans/AUDIT-WP-0009-evidence-role-conformance.md |
| task | AUDIT-WP-0009-T10 | todo | — | workplans/AUDIT-WP-0009-evidence-role-conformance.md |
| intake | AUDIT-IN-0001 | closed | — | intakes/intakes.md |
| intake | AUDIT-IN-0002 | open | — | intakes/intakes.md |