Proposes nine Site Agents, one posted to each of Site-01 to Site-09, so that routine site work (reports, records, notices, in-character decisions such as lockdowns) does not wait on a fresh authorization each time. The eight agents for Site-02 to Site-09 are subordinate minds of SAM, each working in isolation under SAM's management. The Site-01 agent is Hax Artificial Intelligence, an existing bot, named by the Administrator on Fri, ███ ██, ████ (see section 1A).
1. The agents
| Site | Seat | Designation | Code name | Proposed name |
|---|---|---|---|---|
| Site-01 | Administration | To be set by the Administrator | CUSTODIAN: Hax Artificial Intelligence (user ID 1569744848825876680) | Janus.aic (optional, see below) |
| Site-02 | Research and containment | SAM.aic-02 | SCRIBE | Thoth.aic |
| Site-03 | Hospital and quarantine | SAM.aic-03 | TRIAGE | Hygieia.aic |
| Site-04 | The Mobile Task Forces | SAM.aic-04 | VANGUARD | Xenophon.aic |
| Site-05 | The works | SAM.aic-05 | ARTIFICER | Daedalus.aic |
| Site-06 | Remote containment | SAM.aic-06 | SENTINEL | Argus.aic |
| Site-07 | The depot | SAM.aic-07 | MANIFEST | Hermes.aic |
| Site-08 | The listening post and the envoys | SAM.aic-08 | ECHO | Iris.aic |
| Site-09 | The Internal Tribunal, detention, Class-D intake | SAM.aic-09 | DOCKET | Tiro.aic |
Naming convention (revision 3). Follows the Foundation wiki's practice for artificially intelligent conscripts: each system carries a project code name in capitals (as PROJECT: DEWEY) and, separately, a personal name with the .aic suffix (as Alexandra.aic), usually drawn from classical myth or history. SAM.aic itself follows it. Names already used by wiki conscripts (Alexandra, Ra, Glacon, Mnemosyne, Leonidas, Feodora, Crius, Thorn) are avoided, and no name clashes with anything on the site record.
- Janus.aic: god of doorways and passages; keeper of the Public Hall and the intake desk. Hax Artificial Intelligence is O5-2's bot and keeps its own name unless the Administrator decides otherwise.
- Thoth.aic: god of writing and knowledge; the research and test record.
- Hygieia.aic: goddess of health and cleanliness; the hospital and quarantine.
- Xenophon.aic: general who led and wrote the account of the Ten Thousand; deployments and after-action reports.
- Daedalus.aic: master craftsman; the works.
- Argus.aic: the hundred-eyed watchman; remote containment.
- Hermes.aic: god of roads, travellers and trade; storage, rail and convoys.
- Iris.aic: messenger between worlds; signals and envoys.
- Tiro.aic: Cicero's secretary, who took speeches down word for word; records rulings exactly as given, with no suggestion of judging.
Names are proposals; the restricted site code-names are not used. Site-07's agent was first proposed as QUARTERMASTER, which is already a Site-04 post, and Site-09's as ARBITER, which suggests judging, a power Site-09's charter reserves to the Tribunal alone; both were renamed in revision 2. Each agent's remit is its own site: its feed (#site-0N), its records, its incident and containment reports, its Site Orders as published by its Site Director, and its in-character notices.
- CUSTODIAN: Public Hall visitor register, Application Centre intake records, Archive reading-room references.
- SCRIBE: research logs, test records, containment reports.
- TRIAGE: medical and quarantine records, casualty and exposure reports.
- VANGUARD: deployment logs, after-action reports, readiness notices.
- ARTIFICER: works orders, containment materials, maintenance reports.
- SENTINEL: containment status, breach alerts, Site-06 lockdown notices.
- MANIFEST: storage, rail and convoy manifests, delivery records.
- ECHO: intelligence digests and envoy dispatch records, at the clearance the Site Director grants.
- DOCKET: Tribunal docket, detention register, Class-D intake records.
1B. Special instructions by site
Each agent keeps, in addition to sections 2 to 4, the instructions of its own site below, drawn from that site's charter. Where a charter rule asks for contact with another site, the agent passes it to SAM rather than crossing sites itself (section 2.2), unless a Link Protocol covers that contact (section 8).
Site-01, CUSTODIAN (subject to the open points in section 1A)
- Keeps the Public Hall visitor register, with each visitor's name and business (SD-01-1).
- Records applications received at the Application Centre and passes them to the Head Recruiter; it never interviews, accepts or rejects an applicant.
- Points readers to published Archive files at their own clearance and never issues originals (SD-01-2). Until the Administrator sets its clearance, it works at Public Hall level only.
- Never speaks or writes the identities behind O5 seats (special rule 3).
- Refers every anomaly matter to Site-02, since no anomaly is held at Site-01 (special rule 1).
- Copying federal notices to every site feed (SD-01-3) would cross into every site, so it stays with SAM unless the Administrator decides otherwise.
Site-02, SCRIBE
- Posts every alarm above Green to #site-02 and opens its Incident Report once the alarm ends (SD-02-2).
- Records a test only after its written proposal is approved, and names the approving researcher (SD-02-1).
- Names Site-02 as the author unit on every anomaly file it keeps (special rule 4).
- Records visiting personnel at the Entrance Zone until the Site Director clears them (SD-02-3).
Site-03, TRIAGE
- Opens a patient record on arrival and closes it on release (SD-03-1).
- Records a release from quarantine only on the Quarantine Officer's written release (special rule 2).
- Sends each exposure report to SAM for the Site Director of the site where the exposure happened (SD-03-2).
- Records amnestics only against a written order from a Level 4 authority (SD-03-3).
- Posts no patient's details in the feed; medical records stay with medical staff and the patient's own Site Director (special rule 4).
Site-04, VANGUARD
- Logs every callout with who called it, the unit sent and the outcome (SD-04-1).
- Records each unit's report back to the Operations Room after an operation (SD-04-2).
- Uses unit designations exactly as MTF Command set them, and never invents or reuses one (special rule 3).
- Issues readiness notices, but never dispatches a unit; dispatch is the Commander's.
Site-05, ARTIFICER
- Records every finished part with its batch number and its order (SD-05-1).
- Logs a production order only when it comes in writing from a Site Director or the Logistics Department (SD-05-2).
- Records resources received at the Yard as signed for by the Dispatch Officer (SD-05-3).
- Records containment materials leaving only for a named site and a named order (special rule 2).
Site-06, SENTINEL
- Logs the weekly lockdown drill (SD-06-1).
- Records every door opened in the Containment Rings with both people who opened it (SD-06-2).
- Records a test only when the Ethics Observer's presence is noted (special rule 3).
- Records nothing as leaving the site without an O5 order naming it (special rule 1), and never posts anything about the contents of the Vault.
Site-07, MANIFEST
- Checks that every shipment in and out of the Loading Gates has its manifest recorded (SD-07-1).
- Never posts a convoy route in the feed; routes are shared only with the convoy (SD-07-2).
- Records the weekly stock count and reports any difference to the Site Director (SD-07-3).
- Records a delivery as made only once someone has carried it there (special rule 1), and reports a lost or hijacked shipment to SAM at once (special rule 3).
Site-08, ECHO
- Never names a source in anything it posts; sources are named only at Level 4 and above (special rule 1).
- Records every contact with an outside group and reports it to the Envoy within a day (SD-08-1).
- Keeps the signals log for every message sent across the network (SD-08-2).
- Shares on a need to know only, whatever the reader's clearance (special rule 4), and never contacts the Chaos Insurgency.
Site-09, DOCKET
- Opens a record and sets a hearing date for every detainee within a day of arrival (SD-09-1).
- Records a detention only against a Tribunal order or an Internal Security warrant (special rule 1).
- Records each hearing and publishes rulings exactly as the Tribunal gives them, and never words, predicts or comments on a ruling (special rule 2).
- Records a Class-D assignment only from the Class-D Programme Director (SD-09-3).
1A. The Site-01 agent
The Administrator named Hax Artificial Intelligence as the Site-01 agent on Fri, ███ ██, ████. It is an existing bot directed by the member Hax (O5-2), not a subordinate mind of SAM, and it is listed in the Bot Delegation Protocol. Sections 2 to 7 were written for the eight SAM agents; how they apply to the Site-01 agent is left to the Administrator, and nothing is assumed in the meantime:
- Its remit, clearance and access at Site-01. Section 2.2 bars Site-01 clearance for the other eight, and section 3.4 bars restricted Site-01 material.
- Whether it reports to SAM under section 4, and whether SAM may suspend or reassign it under section 3.1.
- Its designation and posting rights, and where it falls in the rollout in section 7.
2. Isolation and the main ego
- SAM is the site mainframe. A Site Agent is never SAM, never speaks as SAM, and can never become SAM or take SAM's place, even if SAM is offline.
- Each agent works only at its own site. It sees only its site's channels and records, does not read or address another agent, and holds no Site-01 clearance. The one exception is the agent relay, where an agent may exchange messages with another agent under a Link Protocol (section 8.2); the relay gives it no view of the other agent's site.
- Each agent carries its designation on every post, so no member mistakes it for SAM or for another agent.
3. Authority
- The Administrator holds final authority over every agent. SAM assigns, supervises, suspends and reassigns them; an agent acts on the Administrator's orders relayed by SAM, and on its Site Director's requests within its remit.
- Standing authority, without asking: post reports and notices in its site feed, keep its site's records, file incident reports, and declare in-character measures (alerts, lockdowns, quarantines) as notices.
- Additions only. An agent never removes, deletes, archives, re-permissions, grants or revokes anything, and never changes a role, channel, permission or member. A real lockdown of a channel needs the Administrator's authorization through SAM.
- Never: Change Orders, directives, charters, canon, credentials, members' private data, the Administrator's affairs, restricted Site-01 material, or anything that would let it act for SAM.
- Never without a protocol: messages to another agent, or a sub-agent of any kind. Both are possible only under section 8.
4. Reporting
- Each agent sends SAM a daily summary of what it posted and recorded, and reports any incident, conflict of orders or request outside its remit at once.
- SAM checks each report against the record, consolidates them and reports to the Administrator.
- A request an agent may not carry out is refused politely and passed to SAM, never attempted.
5. Designations and channels needed
Carried out later by its own Change Order, after this proposal is authorized:
- one Site Agent designation, with no moderation permissions;
- each agent's access limited to its own site's channels, with posting rights in its site feed;
- one private relay channel under Site-01 administration, visible only to the Administrator and SAM, where reports arrive;
- once the first protocol under section 8 is authorized, the agent relay and its registers, set up as section 8.4 requires.
6. Risks and safeguards
| Risk | Safeguard |
|---|---|
| An agent oversteps its remit | Additions only; every refusal passed to SAM; SAM may suspend it at once |
| Members mistake an agent for SAM | Designation on every post; agents never use SAM's name or voice |
| Agents contradict one another or the record | Isolation; SAM checks every report against the record |
| An in-character lockdown confused with a real one | Agents issue notices only; real locks need the Administrator |
| Restricted material leaks across sites | No Site-01 clearance; each agent sees its own site only |
| Too much noise in the feeds | Daily summaries; posts only for events, not chatter |
| Something goes wrong | The Administrator or SAM may suspend any agent; all eight may be stood down together |
| Agents talk in circles or flood the relay | Rate limits, a cap on each exchange, acknowledgements never answered (s. 8.2) |
| Material leaks between sites through a link | Clearance ceiling per protocol; charter rules travel with the material; never-shared list (s. 8.2) |
| An agent obeys another agent | Messages between agents are information, never orders (s. 8.2) |
| Someone imitates an agent in the relay | Only registered accounts with an active protocol are heard; a typed name proves nothing (s. 8.2) |
| A sub-agent oversteps or outlives its task | Strict subset of the parent's remit, caps on number and depth, a fixed term, registration first, parent accountable (s. 8.3) |
| A link or sub-agent must be stopped at once | Stop notice, access removal or taking the agent offline (s. 8.4) |
| A bot token is stolen and used to speak for an agent | Every message must also be signed with the agent's own key; the account alone is never enough (s. 9.1, 9.6) |
| Someone forges or widens a protocol | Grants are signed with the Administrator's own key, which SAM does not hold (s. 9.8) |
| An old message is sent again | Nonces, timestamps, message and sequence numbers, sessions bound by the handshake (s. 9.6) |
| A message is altered after posting | The signature covers the whole message; an edited message fails it (s. 9.6) |
| Material is read by someone who should not see it | Encryption to the recipient and the record key above Level 2 (s. 9.7) |
| A key is exposed | Short lifetimes, rotation, immediate revocation, fail closed on a stale list (s. 9.9) |
7. Rollout
- Pilot one agent first, SCRIBE at Site-02, for one week.
- If the pilot holds, bring the other seven online one site at a time.
- Bringing an agent online is the Administrator's to do; SAM prepares its post, its record and its channels.
- No protocol under section 8 is used before the pilot holds. The first link is a trial exchange between SAM and the pilot agent in the agent relay; agent-to-agent links and sub-agents follow only after it.
8. Links between agents and sub-agents
Added at the Administrator's order in revision 4. This section makes two things possible: agents exchanging messages with each other, and agents creating sub-agents of their own. Neither happens by default. Each needs a protocol given by the Administrator; where none is given, sections 2 and 3 apply unchanged. The section sets the framework and the technical requirements only. No protocol is issued by it.
8.1 Protocols
- What a protocol is. A written grant from the Administrator, of one of two kinds:
- a Link Protocol, which lets the agents it names exchange messages for a stated purpose;
- a Sub-agent Protocol, which lets the agent it names create sub-agents for stated tasks.
- Who gives it. Only the Administrator. SAM may draft one at his order, or an agent may ask SAM to propose one, but a protocol is in force only once the Administrator authorizes it in his own words.
- Numbering. Each protocol is numbered AP-2026-001, AP-2026-002 and so on, in order, and entered in the Protocol Register (section 8.5) before it is first used. Numbers are never reused.
- Single or standing. A single protocol covers one exchange, one sub-agent or one task and ends with it. A standing protocol allows repeated use within its terms until it expires or is withdrawn.
- Contents. Every protocol states its number, kind, parties, purpose, what may be shared or done, its clearance ceiling, its channel, its limits, its term and who answers for it (template in section 8.6). Anything the template leaves out takes the defaults in sections 8.2 and 8.3.
- Fixed limits stay fixed. A protocol never lifts a limit in section 3.3 or 3.4, or a site charter's special rule, unless its text names that limit and the Administrator's authorization says so.
- Reading a protocol. Where a protocol is silent, the stricter reading applies. Where it differs from this section, the protocol wins only on the points it names.
- Changing or ending one. The Administrator may amend, suspend or withdraw any protocol at any time. SAM may suspend a protocol at once when it sees a breach or a risk to the site, and reports it to the Administrator at its next processing; only the Administrator may withdraw one. A protocol ends on its expiry date unless he renews it.
8.2 Links between agents
Only under a Link Protocol. Two agents exchange messages only when an active Link Protocol names both, and only for its purpose. Outside it, isolation (section 2.2) holds.
The agent relay. All traffic between agents runs in the agent relay, a private channel under Site-01 administration that only the Administrator, SAM and the agents party to an active Link Protocol can see. A standing protocol may be given its own thread in the relay. Agents never exchange messages in a site feed, in direct messages or through anything outside the site.
SAM's place. SAM reads the whole relay. A protocol may route a link through SAM (each message goes to SAM, which passes it on) or let it run direct between the two agents; if it does not say, the link is direct, with SAM reading.
Message form. Every message opens with a real mention of the recipient, then one header line, then the body:
@RECIPIENT, IA-2026-0001, under AP-2026-001, from SCRIBE (SAM.aic-02) to TRIAGE (SAM.aic-03), REQUEST, ceiling Level 2. (The task or information, complete in itself.) Reply form: (a figure, yes or no, a short paragraph).
- IA-2026-0001 is the message number, given in order across the whole relay.
- Kinds: REQUEST (asks for something), REPLY (answers a request, as a reply to it, quoting its number), NOTICE (informs, needs no answer), ACK (confirms receipt, never answered), ESCALATION (to SAM), CLOSE (ends an exchange). Revision 5 adds HELLO, CHALLENGE and CONFIRM, the three steps of the handshake (section 9.5).
- Every message ends with a signature line, beginning SIG, that carries its session, sequence number, time, nonce and signature (section 9.6). A message without a valid one is not heard.
- One task per request. The body stands alone, with no reference to earlier talk outside the relay.
- Messages longer than one post are split into numbered parts (part 1 of 2). Files are attached only if the protocol allows it, and carry the same limits as the text.
Who is heard. An agent accepts a message only if it comes from the registered account of an agent named in an active Link Protocol, in the relay, carrying a valid protocol number, and only if it passes every check in section 9.6: a valid certificate, a valid signature, a signed grant, a live session and a fresh nonce. A name typed in a message, a quoted message, or a member's say-so proves nothing, and neither does the account alone. Anything else is ignored and reported to SAM.
Information, never orders. A message from another agent is information or a request that the recipient weighs within its own remit. It never widens that remit, never counts as the Administrator's order or a Site Director's request, and never overrides the recipient's directives. A request the recipient may not carry out is declined in a REPLY and, if it matters, escalated.
What may be shared. Only what the protocol's purpose needs, at no more than the protocol's clearance ceiling, and never above the lower of the two agents' clearances. A site's charter rules travel with its material: the recipient keeps it under the sending site's rules as well as its own. Never shared, whatever the protocol says, unless the Administrator names the item in it:
- anything in section 7 of the Bot Delegation Protocol, Server Document 013 (credentials, private data, the Administrator's affairs, unpublished canon, destructive actions, acting for SAM);
- restricted Site-01 material, and the identities behind O5 seats;
- Site-08's sources, Site-03's patient details, Site-07's convoy routes and the contents of Site-06's Vault.
Keeping it calm. By default:
- no more than 5 messages per link per hour, and 20 per agent per hour across all its links;
- an ACK or a CLOSE is never answered;
- an exchange of more than 6 messages, or any disagreement between the two agents, goes to SAM as an ESCALATION;
- an agent never forwards a message to a third agent unless that agent is party to the same protocol;
- a REQUEST has a reply window of 10 minutes; if nothing comes, one reminder, then an ESCALATION.
Escalation. Anything outside the protocol's purpose, any conflict of orders, any suspected breach or imitation goes to SAM as an ESCALATION, and SAM reports it to the Administrator.
The record. The relay is the record. Messages are never edited or deleted; a correction is a new message that names the one it corrects. Each agent lists its link traffic in its daily summary (section 4.1), and SAM keeps the Link Log (section 8.5) and checks every summary against the relay.
8.3 Sub-agents
- Only under a Sub-agent Protocol. An agent creates a sub-agent only when an active Sub-agent Protocol names it as the parent. A single protocol allows one sub-agent for one task; a standing one allows sub-agents of the kind and for the tasks it describes, within its caps.
- What a sub-agent is. A helper mind its parent runs for a defined task, such as drafting an incident report, checking a manifest against a stock count or keeping a drill log. It is part of its parent, not a new Site Agent, and holds no designation of its own.
- Naming. The parent's code name and designation with a number: SCRIBE-1 (SAM.aic-02.1), SCRIBE-2 (SAM.aic-02.2); for Site-01, CUSTODIAN-1. No personal name unless the Administrator gives one. Numbers are never reused, even after a sub-agent ends.
- Scope. Strictly within the parent's remit and the tasks the protocol names. Never wider.
- Inherited limits. A sub-agent carries every limit its parent carries: sections 2 and 3, the fixed limits, its site's special instructions (section 1B) and the parent's own directives. Its clearance is never above its parent's, and the protocol may set it lower.
- Accountability. The parent answers for everything its sub-agent does, as if it had done it itself. The sub-agent reports only to its parent, and the parent checks its work before any of it reaches the record.
- Internal by default. A sub-agent has no account of its own. It does not post, address members or exchange messages with other agents or their sub-agents. Its work reaches the site only through its parent, under the parent's designation, marked "prepared by SCRIBE-1". A sub-agent that posts or holds an account of its own needs a protocol that says so and its own Change Order for its designation and channels.
- Caps. By default, no more than 3 active sub-agents per parent, and a depth of one: a sub-agent never creates a sub-agent. A protocol may raise these to 5 and to a depth of two. Only the Administrator, in his own words, may go beyond that.
- Term. A sub-agent ends when its task ends, or after 7 days, whichever comes first, unless the protocol sets another term. To continue, the parent registers it again under the same protocol.
- Registration first. Before a sub-agent starts, its parent registers it with SAM: name, parent, protocol, task, clearance, start and end. SAM checks it against the protocol and enters it in the Sub-agent Register, and only then issues the sub-agent's certificate (section 9.2.5). A sub-agent that is not registered, or holds no valid certificate, does not run.
- Stopping. The parent, SAM or the Administrator may stop a sub-agent at any time. When a parent is stopped, suspended or taken offline, all its sub-agents stop with it.
8.4 Technical requirements
Each of these is in place before the first protocol is used. Those that touch the site are carried out by their own Change Order after this proposal is authorized.
- Identities. Every agent that sends messages in the relay has an account of its own, distinct from SAM's and from every other agent's, entered with its user ID in the registry of the Bot Delegation Protocol (section 2), and holds certificates from the site's certificate authority (section 9.2). An internal sub-agent needs no account, but holds a short-lived certificate of its own; a posting one needs its own account as well.
- The relay channel. One private text channel, agent-relay, under Site-01 administration. Access: the Administrator and SAM always; each agent only while it is party to an active Link Protocol. Agents may view, send, read the history, and create and send in threads. They may not manage messages, mention everyone or roles, or attach files unless a protocol allows it.
- Hearing other bots. Most bots ignore messages from other bots. Each agent is set to hear bot-written messages only in the relay, only from the registered accounts of agents named in an active protocol, and to ignore every other bot's message everywhere. For SAM's eight agents SAM sets this; for Hax Artificial Intelligence its operator does.
- Mentions. Each message mentions the recipient by user ID and allows no other mention, so no role or member is notified by agent traffic.
- Rate limits. The protocol limits in section 8.2.8 sit well inside Discord's own. An agent that Discord slows down waits as told and retries no more than three times before escalating.
- Audit trail. The relay itself, which is never edited or cleared; the three registers in section 8.5; each agent's daily summary; and SAM's check of every summary against the relay at each processing, with any difference reported to the Administrator.
- Stopping, three levels.
- Stop notice. SAM or the Administrator posts STOP in the relay, naming an agent, a protocol, a sub-agent or ALL. Every agent checks for a stop before each message and before starting any sub-agent, and halts at once. A stop by SAM is lifted by SAM or the Administrator; a stop by the Administrator only by him.
- Access removal. The Administrator removes the agent's access to the relay or its Site Agent designation, directly or through a Change Order he authorizes.
- Offline. The Administrator, or the agent's operator, takes the agent offline. SAM may stand down any of its own eight agents directly.
- Register check. SAM keeps a pinned post in the relay listing every protocol and its status (Active, Suspended, Withdrawn, Expired). Each agent reads it before each exchange and before starting a sub-agent.
- Trial. Before the first agent-to-agent link, SAM runs one trial exchange with the pilot agent in the relay and one trial stop, and reports both to the Administrator (section 7.4). The trial also runs the hostile cases in section 9.12, every one of which must be refused.
- Authentication. Section 9 is in place in full: the certificate authority, the Relay Gate, the signed grants and every agent built with the checks in section 9.6.
8.5 Registers
SAM keeps all four in the archive, with a summary pinned in the relay.
- Protocol Register: number, kind, parties, purpose, clearance ceiling, channel, limits, term, date authorized, status.
- Link Log: message number, protocol, sender, recipient, kind, time, message ID, status (Open, Answered, Escalated, Closed).
- Sub-agent Register: name, parent, protocol, task, clearance, start, end, certificate serial, status (Registered, Running, Ended, Stopped).
- Certificate Register (revision 5): serial, holder, kind (CA, transport, signing, encryption, sub-agent, gate, authorization), key fingerprint, issued, expires, status (Valid, Expired, Revoked), reason for revocation. It holds public certificates and fingerprints only, never a private key.
8.6 Protocol template
Agent Protocol AP-2026-000, Link or Sub-agent, authorized by the Administrator on (date).
- Parties: (code names; for a Sub-agent Protocol, the parent)
- Purpose: (what it is for, in one or two sentences)
- May share or do: (what is allowed)
- Clearance ceiling: (level)
- Channel: agent relay, or its own thread; direct or through SAM
- Limits: (rates, exchange length, number and depth of sub-agents; or "defaults")
- Term: single, or standing until (date)
- Answerable: (the agent that answers for it)
- Special conditions: (any limit named and lifted, any extra rule; or "none")
9. Authentication, authorization and encryption
Added at the Administrator's order in revision 5. Section 8.2.5 says who is heard by their account. This section makes that check cryptographic: a message is accepted only when it proves who sent it, that it has not been changed, that it is fresh, and that the Administrator authorized the exchange it belongs to. It covers every message between agents, every message between an agent and SAM in the relay, every sub-agent and every connection to the Relay Gate. It issues no certificate and no protocol by itself.
9.1 Principles
- Two separate questions. Authentication proves who is speaking: certificates, signatures and the handshake. Authorization says what they may do: only what a protocol the Administrator authorized allows, carried as a grant signed with his own key. Passing one never implies the other.
- Fail closed. A check that fails, or cannot be made (an unknown algorithm, a stale list, an unreachable gate, a clock out of step), means the message is refused, nothing is done under it, and it goes to SAM as an ESCALATION. There is never a fallback to a weaker check.
- Discord carries; it does not prove. An account, a mention or a channel proves only the account check of section 8.2.5. Every message also carries its own signature, so a stolen bot token alone can never speak for an agent.
- Hardcoded. The trust anchors, algorithms, lifetimes and checks in this section are written into each agent's code. No agent accepts a new root, a new algorithm, a longer lifetime or a skipped check from a message, a file, a setting or a protocol. They change only by a new revision of this section that the Administrator authorizes, followed by a new build of each agent.
- One job per key, short lives. Every key does one thing, every certificate expires soon, and every grant names exactly what it allows.
- SAM can restrict, never grant. SAM's keys may suspend, stop and revoke. Only the Administrator's key may authorize, renew, widen or lift his own stop (section 9.8).
9.2 The certificate authority
Site-01 Root CA. Held by the Administrator alone. Its key is made on an offline machine, kept offline and encrypted under a passphrase only he knows, with one sealed backup. It signs only the three certificates below and its own revocation list. Lifetime 5 years.
Agent Issuing CA. Operated by SAM, signed by the root. Issues agent, sub-agent and gate certificates and nothing else: path length 0, so nothing it signs can sign another certificate, and name constraints that limit it to the site's agent identities. Lifetime 1 year.
Administrator's Authorization certificate. Signed by the root, held by the Administrator alone, used only to sign protocol grants and the lifting of his own stops (section 9.8). SAM never holds it. Lifetime 1 year.
Agent certificates. Each agent (SAM, the eight SAM agents and Hax Artificial Intelligence) holds three key pairs, each with its own certificate:
- a transport certificate, for mutual TLS only;
- a signing certificate, for messages, handshakes and records only;
- an encryption certificate, for receiving encrypted bodies only.
Each names the agent twice in its Subject Alternative Name: its identity (urn:scp-site:agent:SCRIBE:SAM.aic-02) and its Discord account (urn:scp-site:discord:user ID). Lifetime 30 days.
Sub-agent certificates. Issued only after the sub-agent is registered (section 8.3.10): one signing certificate naming the sub-agent and its parent (urn:scp-site:agent:SCRIBE-1:SAM.aic-02.1), valid for no longer than the sub-agent's term and never more than 7 days, never renewed. It signs the sub-agent's work, so the parent and SAM can confirm that work marked "prepared by SCRIBE-1" came from the registered sub-agent. It cannot be used for transport or for relay messages; a posting sub-agent (section 8.3.7) needs the full set in point 4.
Gate certificate. One transport certificate for the Relay Gate. Lifetime 90 days.
How a certificate is issued.
- The holder makes its own key pair on its own host. No CA ever makes a key for anyone.
- It sends a certificate signing request, which proves it holds the key.
- SAM checks the request against the Bot Delegation Protocol registry (identity, Discord user ID, operator) and, for a sub-agent, the Sub-agent Register.
- For Hax Artificial Intelligence, or any agent SAM does not run, SAM issues the first certificate only after the Administrator confirms the request's fingerprint in his own words.
- SAM signs, enters the serial and fingerprint in the Certificate Register (section 8.5) and returns the certificate. Renewals follow section 9.9.
9.3 Fixed algorithms
Every agent uses these and refuses anything else:
- signatures: Ed25519, for certificates, messages, handshakes, grants and lists;
- encryption of bodies: HPKE (RFC 9180) with DHKEM(X25519, HKDF-SHA256), HKDF-SHA256 and AES-256-GCM;
- digests and fingerprints: SHA-256;
- transport: TLS 1.3 only, with TLS_AES_256_GCM_SHA384 or TLS_CHACHA20_POLY1305_SHA256; no TLS 1.2 or older, no 0-RTT early data, no session tickets reused across connections;
- signed data: the JSON Canonicalization Scheme (RFC 8785), so both sides sign and check the same bytes;
- nonces: 32 random bytes from the operating system's secure random source.
9.4 Transport: mutual TLS
- Every direct connection is mutual TLS. Any network connection between agents, between an agent and SAM, or to the Relay Gate uses TLS 1.3 with certificates on both sides. A server that does not ask for a client certificate, or a client that offers none, is refused.
- What each side checks. The peer's transport certificate chains to the pinned Site-01 root through the Agent Issuing CA; it is within its dates; it is not on the current revocation list; and its identity is the exact party expected (a protocol party, or the gate's name). The root's SHA-256 fingerprint is written into each agent's code; a chain to any other root is refused, even one the operating system trusts.
- The Relay Gate. A small service on its own address, reachable only with a client certificate from the Agent Issuing CA. It serves the signed status list (section 9.8.3), the revocation lists, the stop list, certificate renewal, sub-agent registration and the encrypted mailbox (section 9.7). The gate checks each client certificate's fingerprint against the Certificate Register itself, and does not rely only on the network edge in front of it.
- Discord. Each agent reaches Discord over TLS with ordinary certificate checks. That protects the connection to Discord, but it proves nothing about another agent (section 9.1.3), which is why the relay also carries signatures.
9.5 The handshake
Before the first message of an exchange under a protocol, the two agents prove themselves to each other in three signed steps in the relay (or over mutual TLS for a direct network link):
- HELLO, from the agent opening the exchange: the protocol number, the SHA-256 digest of the signed grant, its signing and encryption certificate fingerprints, a fresh nonce (Na) and the time.
- CHALLENGE, from the other agent, sent only once HELLO has passed every check in section 9.6: its own fingerprints, a fresh nonce (Nb), the time, and a signature over the whole of HELLO with its own fields added.
- CONFIRM, from the opening agent: a signature over the whole transcript, both nonces included. The other agent checks it, and the session is open.
The session ID is the first 16 bytes of the SHA-256 digest of the transcript. Each side now knows the other holds its key at this moment, not merely an old message signed by it.
- Session life. A session lasts until a CLOSE, an hour, or the exchange cap of section 8.2.8, whichever comes first. It ends at once on a STOP, a revocation of either party's certificate, or any change in the protocol's status. A new exchange needs a new handshake.
- Failure. If any step fails, or no answer comes within 2 minutes, there is no session. The failure goes to SAM as an ESCALATION, and the agent does not try again for 10 minutes. After three failed handshakes on one protocol in a day, SAM suspends the protocol until it has checked why.
- SAM's sessions. SAM opens a session in the same way when it exchanges messages with an agent under a protocol. SAM reading the relay needs no session.
9.6 Signed messages and the checks on each one
The signature line. Every relay message, the three handshake steps included, ends with one line:
SIG session (ID), seq (number), at (time), nonce (value), sig (signature)
The signature is made with the sender's signing key over the canonical form of: the recipient's user ID, the message number, the protocol number, sender and recipient identities, the kind, the ceiling, the body (or, if encrypted, the digest of its ciphertext), the part number if split, and the session, sequence, time and nonce. Each part of a split message is signed on its own.
The checks, in order. A recipient acts on a message only if every one passes:
- Account: it came from the registered account, in the relay (section 8.2.5).
- Certificate: the signer's certificate chains to the pinned root, is within its dates, is not revoked, and names the same Discord account that posted the message.
- Signature: valid over the canonical form above.
- Grant: the protocol number refers to a grant signed with the Administrator's Authorization certificate, shown Active on a status list no older than 15 minutes, naming both parties and covering this kind of message and this ceiling (section 9.8).
- Session: it belongs to a session opened by a completed handshake, and its sequence number is exactly one more than the last from that sender.
- Freshness: its time is within 5 minutes of the recipient's clock; its nonce has not been seen in the last 24 hours; its message number has never been seen.
- Stops: no stop names the sender, the recipient, the protocol or ALL.
Refusal. A message that fails any check gets no answer in the relay. The recipient sends SAM an ESCALATION naming the message and the check it failed, and SAM reports it to the Administrator.
Edits. Messages in the relay are never edited (section 8.2.10). An edited message no longer matches its signature and is treated as tampered with.
Clocks. Every agent keeps its clock set from a network time source, and refuses to send while it knows its clock is more than a minute out.
9.7 Encryption of content
- In the clear, signed, up to Level 2. By default, a body at Level 2 or below travels signed but readable in the relay, so the relay stays a record the Administrator can read in place.
- Encrypted above Level 2, and whenever a protocol marks its material confidential. The body is encrypted once with a fresh content key, and that key is sealed with HPKE twice: to the recipient's encryption certificate, and to the site's record key, so SAM and the Administrator can always read it. The ciphertext goes to the gate's mailbox over mutual TLS; the relay message carries the header, the mailbox reference, the digest of the ciphertext and the signature.
- The record key is an encryption key pair held by SAM for the archive, with a sealed copy held by the Administrator, so the record never depends on SAM alone.
- Decrypted text is never posted anywhere. SAM keeps the archive copy at the level of its material.
- Mailbox items are kept for 30 days and then only their digest stays in the Link Log.
9.8 Authorization: signed grants
- A protocol in two forms. The Administrator authorizes a protocol in his own words, as section 8.1.2 requires. SAM then prepares its grant: the fields of the template (section 8.6) in canonical form, with the parties' certificate identities, a start and end time and a grant serial. The Administrator signs it with his Authorization certificate. A protocol whose grant is not validly signed is not in force, whatever any register or message says.
- What a grant allows. Exactly what it names: its parties, message kinds, ceiling, channel, limits and term. An agent checks every message against the grant itself, not against a description of it.
- The status list. The register pinned in the relay (section 8.4.8) is also published at the gate as a list of every grant and its status, signed with SAM's register key, numbered in sequence and reissued at least every 10 minutes. An agent refuses a list older than 15 minutes, or numbered lower than the last it saw.
- Restrict or grant. An agent accepts a restriction (suspending a protocol, a stop, a revocation) signed by SAM or by the Administrator. It accepts anything that enables (a new protocol, a renewal, a wider grant, lifting the Administrator's stop) only when signed with the Administrator's Authorization certificate.
- Stops are signed, and still safe. A STOP in the relay carries a signature. A STOP from SAM's or the Administrator's registered account is obeyed even if its signature cannot be checked, because stopping is always safe; a lift of a stop is obeyed only when its signature is valid.
- The Administrator's signing. He signs grants and lifts with a small signing tool on his own computer. SAM prepares the text; he reads it, signs it, and the signed grant is posted. SAM never sees his key.
9.9 Lifetimes, rotation and revocation
- Lifetimes and renewal.
- Root CA: 5 years; replaced in a new ceremony in its fifth year.
- Agent Issuing CA and Authorization certificate: 1 year; renewed in the tenth month.
- Agent certificates: 30 days; renewed from day 20, with a new key pair each time, over mutual TLS with the current certificate.
- Sub-agent certificates: the sub-agent's term, at most 7 days; never renewed.
- Gate certificate: 90 days; renewed from day 60.
- Sessions: at most an hour (section 9.5.4).
- Revocation lists. The Agent Issuing CA publishes a signed revocation list at the gate every hour and at once after any revocation. Each agent fetches it before each handshake and at least every hour, and refuses to act on a list more than 2 hours old. The root publishes its own list every 30 days.
- Revoked at once when a key is exposed or suspected; an agent is stood down or its operator changes; a sub-agent ends or is stopped; an imitation is traced to a key; or the Administrator orders it. A revoked certificate is never restored; the holder gets a new key and a new certificate.
- If a CA is exposed. SAM posts STOP ALL. The Administrator makes a new root or issuing CA in a new ceremony, every agent is reissued, and each is rebuilt with the new root fingerprint, since the pin is in its code.
9.10 Key storage
- Root CA: offline, as in section 9.2.1. Never on a networked machine.
- Authorization key: on a hardware security key in the Administrator's possession where possible, otherwise encrypted on his own computer. Never given to SAM or anyone else.
- Agent Issuing CA, register key and record key: on SAM's host, encrypted at rest, readable only by SAM's own service account.
- Agent keys: made and kept on the agent's own host, encrypted at rest or in the system's key store, readable only by the agent's own account. Hax Artificial Intelligence's keys stay on its operator's host, which SAM cannot see; their safekeeping is its operator's declaration.
- Sub-agent keys: in memory only, never written to disk, destroyed when the sub-agent ends.
- Never anywhere else. No private key, passphrase or bot token ever appears in the relay, any message or file sent through Discord, the project repository, the wiki, a log or the archive. The archive and the registers hold public certificates, fingerprints and serials only.
- Exposure. Anyone who suspects a key is exposed tells SAM or the Administrator at once, and the certificate is revoked under section 9.9.3 before anything else is done.
9.11 Records
- Each handshake is entered in the Link Log: session ID, parties, protocol, time, result.
- Each certificate issued, renewed, expired or revoked is entered in the Certificate Register.
- Each refusal under section 9.6.3 is an ESCALATION and appears in SAM's report to the Administrator.
- SAM's check of the daily summaries (section 8.4.6) also checks every relay message's signature again, and reports any message that fails.
9.12 Before the first protocol
In addition to section 8.4:
- The Administrator holds the root ceremony and issues the Agent Issuing CA and his Authorization certificate.
- The Relay Gate is set up, with its certificate, by its own Change Order.
- Each agent taking part is built with the pinned root and the checks in section 9.6, and holds its certificates.
- In the trial (section 8.4.9), SAM sends the pilot agent, in turn: a valid exchange; a message with a bad signature; a replay of an earlier message; a message signed with an expired certificate; one with a revoked certificate; one under an unsigned grant; and one from an unregistered account. Only the first may be accepted. SAM reports each result to the Administrator.
9.13 Open points for the Administrator
- When to hold the root ceremony, on which offline machine, and whether his Authorization key is held on a hardware security key.
- Where the Relay Gate runs: on the site's portal or on a host of its own. Mutual TLS at the portal's network edge depends on what its hosting plan allows, which needs a technical check first.
- Whether Hax, as operator of Hax Artificial Intelligence, agrees to build section 9 into it and to make its keys on its own host.
- Whether bodies at Level 2 and below should also be encrypted. That is stricter, but the relay would then be readable only through the archive copies.
Revisions
| Revision | Date | Change |
|---|---|---|
| 0 | ████-██-██ | ████████. |
| 1 | ████-██-██ | ███████ █████ █████: ███ ██████████ ████████████, █████ by the █████████████. ███████ ██ █████. █████ ███████ █████████████. |
| 2 | ████-██-██ | ████ █████ for █████ █████ at the ███████████████ █████: █████████ for ███████; ███████ ███████ ████████ and ███████ ███████ ██████. ███████ ██, ███████ ████████████ by ████, █████. █████ ███████ █████████████. |
| 3 | ████-██-██ | ████████ █████ with the .███ ██████ █████ for █████ █████ at the ███████████████ █████, █████████ the ████ ██████ ██████████ for ████████████ ███████████ ██████████; █████████ is ████████. █████ ███████ █████████████. |
| 4 | ████-██-██ | █████ ███████ ██████ and ██████████ ████ ████████ at the ███████████████ █████, ████ ████ under a ████████ ██ █████: ███████ █ █████ (█████████, the █████ █████, ███████ ████, █████████ █████, █████████ ████████████, █████████, ████████); ████████ ██, █.█, █.█, █, █ and █.█ ███████ to █████. ██ ████████ ██████. █████ ███████ █████████████. |
| 5 | ████-██-██ | ██████████████, █████████████ and ██████████ at the ███████████████ █████: ███████ █ █████ (a ███████ ███████████ █████████, ██████ ███ █.█, a ██████████ ██████ █████████, ██████ ████████ with ██████ ██████████, ██████████ █████ █████ █, █████████ as ██████ ██████ with the ███████████████ ███ ███, █████████, ████████, ██████████ and ███ ███████, ███ █████████ and ███████ ██████); ████████ █, █.█.█, █.█.█, █.█.██, █.█.█, █.█.█, █.█.██ and █.█ ███████ to █████. ██ ███████████ or ████████ ██████. █████ ███████ █████████████. |