Gating
Purpose
The platform's value is the autonomous stretch between two gates. A write is where that autonomy turns into consequence, so a write is the one action the platform never improvises: it is classified before it is planned, checked by an agent that did not write it, and confirmed by a gate whose kind follows from the classification.
§ 1 defines the gate set and when a gate may confirm itself. Trust and Data § 2 defines the grant that permits an operation at all. §§ 2–9 are the layer between them: which writes exist, which gate each one fires, which gates a person always answers, and how a write becomes approvable so that later instances of it confirm under policy (decision Vladimir, 03.09.2026 — D72).
P Gated write operations are allowed on every system the platform reaches. What decides the gate is not the system and not the module — it is the write's class.
1. The gate set — the human decision points
A gate is a persisted decision requirement. A person answers unless an explicitly approved policy is eligible for it. This table is the canonical, complete gate-kind list: H1–H7, Hd, HW-approve, HW-instance, HW-shared, HW-irreversible, HW-ddl, H5-SIM, H5-send, CG-11 and publish. The set is platform-wide; each module declares where in its stage set each gate fires (Requirements Register G-6). Between gates the agents work alone.
| Gate | The decision | Where it fires |
|---|---|---|
| H1 | The agreed scope is correct and complete enough to build on | Configuration S1 (the normalized specification) · Support S1 (classification, severity, SLA) · Development module (id source) S1 (reproduction + branch set) |
| H2 | A stage's plan — steps, assertions, open questions — before it writes anything | every Configuration stage (protocol phase 3) · Development S2 (the approval brief: why this placement, blast radius, test plan) · Support (root) · Data and information S3 (the solution take — the route: waiting, a handover, or the working stages, D147) |
| H3 | The stage's result is acceptable; the iterate loop ends | Configuration protocol phase 6 · Development S5 corrections · Support (root) · Data and information S4 confirmation |
| H4 | The emitted deployment script set and its teardown | Configuration protocol phase 8 · Development S6 |
| H5 | Execution against a customer-facing environment (environments.<env>.customer_facing) — production, and STAGING/TEST where the customer works there — on the named target |
Configuration protocol phase 8b (phase 9 is the deploy itself) · Development S7 · Support (root) · Data and information S5 application |
| H6 | An unresolved blocker or dead end | any stage of any module |
| H7 | Executing a teardown or revert | Configuration · Development S9 · Support (root) · Data and information S7 |
| Hd | Recruiting another module as a sub-case | the four directions of Agents § 5: Support → Configuration · Support → Development · Configuration → Development · Development → Configuration |
Properties of every gate P:
- Parent-agent confirmation never substitutes for a gate (CR-2); a gate is answered by its authorised person or an eligible recorded policy.
- Each gate decision is an audit record carrying its scope — what was approved, against which plan revision and which artifact. A material change to payload, environment, or preconditions invalidates the approval and re-opens the gate.
- Approval is a permission, not a second person: whoever answers a gate must hold the role for that gate and that target (Trust and Data § 3). An operator who holds it approves their own case; one who does not sees the gate become a task for those who do.
P The gate plan per module, and where auto-confirm is allowed (decision Vladimir, 02.09.2026 — D70). Every gate below is defined; the last column is where a human is always required versus where the platform may confirm by policy:
| Gate | Configuration | Support (root) · Data and information | Development | Human always? |
|---|---|---|---|---|
| H1 scope | S1 specification — human confirms | S1 classification — auto by design (SG-11: always classifies, the operator corrects in one action) | S1 reproduction + branch set — human confirms | Config + Development; Support auto with correction |
| H2 plan | every stage — human; auto-confirm candidate (below) | S3 solution take — the route (D147) — human; auto-confirm candidate on a published skill + known shape | S2 placement brief — human always (placement is the expensive, years-long decision) | Development |
| H3 result | per-stage iteration loop — human satisfaction | S4 confirmation — human | S5 = the merge-request verdict (DG-7) | all, first runs; candidate when the stage skill and the verifier agree and no question is open |
| H4 scripts | protocol phase 8 — human | — | S6 — human | candidate when the reviewer verdict and the pipeline are green and no target is customer-facing |
| H5 execution on a customer-facing environment | phase 8b | S5 application | S7 deploy | human by default; policy only after the exact target/risk class is accepted (§ 9) |
| H5-SIM production simulation | — | — | — | always human, two roles — the Ablera support lead and the Bulstrad system owner per system (D107) |
| H6 dead end | any stage | any stage | any stage | n/a — it is the escalation to the human |
| H7 reversal | yes | yes | yes | always human |
| Hd module handover | yes | yes | yes | always human (prior confirmation) |
| HW-approve write-shape approval | write shapes | write shapes | write shapes | always human |
| HW-instance scoped write instance | W1/W2 working writes | W1/W2 working writes | W1/W2 working writes | candidate after shape approval and § 9.4 |
| HW-shared shared-row write | W3 | W3 | W3 | human by default; matching risk acceptance required for policy |
| HW-irreversible irreversible step | W4 | W4 | W4 | human by default; matching risk acceptance required for policy |
| HW-ddl schema change | W5 | W5 | W5 | human by default; matching risk acceptance required for policy — the write executor applies with the current D65 stage identity (D104) |
| H5-send customer-visible send | W7 | W7 | W7 | human by default; matching risk acceptance required for policy |
| CG-11 customer acceptance | the Customer representative | — | — | always the customer |
| publish | the prompt-publisher role per stage (Agent Framework § 6.3) | same | same | always the role holder |
P Writes have their own gate protocol on top of this table (decision Vladimir, 03.09.2026 — D72): every write is classified by effect class × target class into one of seven write classes; the two scoped-and-working classes are the initial candidates for auto-confirm, and then only as an instance of a write shape a person approved at the new HW-approve gate; the shared-row, irreversible, DDL, customer-facing and customer-visible classes are the always-human gate set at the current stage, and that set shrinks only when the organisation accepts a named risk class in a recorded decision — never by a policy widening itself (D76). A deploy to QA is H4 plus the write auditor because QA is not customer-facing; STAGING/TEST and PROD stay H4 plus H5 (D114). An isolated write auditor checks every packet for exactness, boundedness, reversibility and scope before any gate sees it (D73). One revert suspends the shape for every case type.
P Auto-confirm is configured per case type × gate × target class (gates.auto_confirm, Whitelabel Catalogue) and fires only when the nine conditions of § 9.4 pass in order. An auto-confirmed gate writes the same GATE_DECISIONS record with the policy id as the actor — indistinguishable in kind, attributable in fact. The metric is the correction/rollback rate on auto-confirmed gates; one revert on an auto-confirmed decision suspends the shape pending review.
1b. Diagram states
P Every stage diagram of the wiki draws a step in one of four states, defined here and nowhere else (decision Vladimir, 04.09.2026 — D148):
- A person decides — a gate of the table above. Drawn amber; a diamond where the node is the gate itself.
- A signed result — a step whose result is proven by the stage's own test or verification and recorded as evidence: a plan step matched against the write log with its assertion re-run green and the stage skill passing (Configuration Module § 7.4 items 1–2); green gates per repository with the pipeline result as S4 evidence (Stage Test and Corrections); the runtime verification of which commit serves (Stage Deploy and Reversal, D114); the customer's symptom re-checked on the customer's surface (Stage Application and Verification § 2). Drawn green.
- A person decides on a signed result — the tests are green and a person confirms what they prove: H3 on every sign-out, signed by the operator and, where the phase is the one they accept, by the Customer representative (Configuration Module § 1b); CG-11 on the joint proof. Drawn in the two colours.
- After the workflow, asynchronous — a step the customer-facing working flow does not wait for: precipitation, which runs when the working stages end and does not wait for the customer's closure (Stage Precipitation, D49), with its consolidation pass on schedule (Agents Memory and Skills); the platform's learn step. The requested delivery outcome excludes only this ancillary consolidation, not a requested deployment. Drawn violet and dashed, reached by a dotted edge labelled after the workflow; the gates it carries are named in its label.
| State | Drawn as | mermaid class |
|---|---|---|
| a person decides | amber; a diamond where the node is the gate | human |
| a signed result | green | signed |
| a person decides on a signed result | two-tone; the label ends H3 · signed or CG-11 · signed |
both |
| after the workflow, asynchronous | violet, dashed; a dotted edge labelled after the workflow | after |
The four classDef lines are pasted verbatim into every module diagram, and no other class name is used for a state:
classDef human fill:#e8a33d,stroke:#7a5210,color:#1a1a1a
classDef signed fill:#d9f2e6,stroke:#b7e2cb,color:#047857
classDef both fill:#f1ecd6,stroke:#d6cfa8,color:#b45309
classDef after fill:#f4f1fc,stroke:#5b3fa8,color:#5b3fa8,stroke-dasharray:5 3
2. A write is classified before it is planned
P Every plan step that writes carries two labels. Neither is a judgement made at execution time; both are set when the plan is written and are shown in the gate packet.
Effect class — what undoes it (Failure and Recovery § 2): transactional (rollback undoes it) · compensable (a teardown action undoes it) · irreversible (nothing undoes it) · DDL (auto-committed; undone by re-applying the pre-apply snapshot).
Target class — who else can see it:
| Target class | Means | Examples |
|---|---|---|
| working | an environment no customer uses, and rows scoped to this case's own object | the case's product rows on the working environment; a rating version deployed on the working environment only, in no deployment set (D113) |
| shared | a row read by more than one product, or by more than one customer, on any environment | lookup-code tables, message keys, global factor values, the engine cache, impact-key rows (Whitelabel Catalogue § 4 impact_keys.shared_rows) |
| customer-facing | production, and the environment the customer works on (Configuration CG-12) | any row on those environments |
| external | an effect that leaves the platform's transaction boundary | a consumed policy number or blank, an external registration, a generated document, a queue message, a process instance |
| customer-visible | something a customer reads | a public comment, an e-mail, a status transition |
P A step whose target class cannot be established is not writable. "I believe this row is only used by this product" is not an establishment; the shared-row check is a query, and the estate prober answers it with counts (Components — Configuration § 3).
3. The write classes and the gate each one fires
P Effect and target traits produce a set of requirements. W1–W7 are stable reporting labels, not mutually exclusive permissions. The stored WRITE_CLASS is the primary label; every applicable gate is enforced.
| # | Write class | Effect × target | Gate kind | May auto-confirm |
|---|---|---|---|---|
| W1 | scoped transactional write | transactional × working | HW-instance |
yes, once the shape is approved |
| W2 | scoped compensable write | compensable × working | HW-instance |
yes, once the shape is approved, and only with its teardown recorded |
| W3 | shared-row write | any × shared | HW-shared |
human by default; accepted-risk exception only |
| W4 | irreversible step | irreversible × any | HW-irreversible |
human by default; accepted-risk exception only |
| W5 | schema change | DDL × any | HW-ddl |
human by default; accepted-risk exception only |
| W6 | customer-facing execution | any × customer-facing | H5 (unchanged) |
human by default; accepted-risk exception only |
| W7 | customer-visible send | any × customer-visible | H5-send |
human by default; accepted-risk exception only |
P The five never rows are the always-human gate set at the current stage. Together with H5-SIM (production simulation), H7 (reversal), Hd (module handover), CG-11 (the customer's acceptance) and publish, they are the list of decisions no policy takes today.
P The set shrinks only by an accepted risk class, never by drift (decision Vladimir, 03.09.2026 — D76). Autonomous production self-service is the target state, and it is reached one write class at a time: the organisation accepts a named risk class, per case type and per target, in a recorded decision; that class then moves from never to auto-confirmable under an approved shape, with every other condition of § 5 still required and the suspension rule of § 7 unchanged. The platform never moves a class itself, and no ordinary configuration value can: a human records the organisational decision in RISK_ACCEPTANCES with its decision reference; no acceptance is seeded. The runtime rechecks it at dispatch.
Why W3 is on the list and W1 is not. The blast radius of a scoped write is one object the case already owns; the blast radius of a shared row is every product that reads it, and the case cannot see them. F The estate makes this concrete: a message key with no product prefix lets a new product silently inherit another product's wording, and one shared rate file feeds every version that consumes it (Product Configurator Requirements § 03, § 04).
3.1 Checkpoints and effect requirements compose
P Checkpoints concern a workflow decision: H1 scope, H2 route/plan, H3 result, H4 script set, H6 dead end, Hd handover, CG-11 acceptance and publish. Effect requirements concern what an operation does: HW-instance, HW-shared, HW-irreversible, HW-ddl, H5, H5-send and H5-SIM. H7 decides compensation; its operation still carries the applicable effect requirements. These are two dimensions, not new gate ids.
P Derive requirements from capability and preflight. Add HW-ddl for DDL, HW-irreversible for an irreversible effect, HW-shared for shared targets, H5 for a customer-facing environment, and H5-send for a customer-visible send. Add HW-instance for scoped transactional/compensable working operations. Multiple flags produce multiple requirements. Shared DDL on PROD requires HW-ddl + HW-shared + H5; H4 substitutes for none of them.
P The legacy primary WRITE_CLASS precedence is W5 (DDL), W4 (irreversible), W7 (send), W3 (shared), W6 (customer-facing), W2 (compensable working), W1 (transactional working). Keep every target trait in the packet. A compensable external operation must additionally declare whether its target is scoped working, shared or customer-facing; external alone is not a bounded target and fails closed.
P One packet may carry several GATES rows. A single click can answer their complete set only when the caller holds all roles; append one decision per requirement. Otherwise show the remaining role's task. All decisions bind the same revision/hash; a change invalidates the dependent set. Splitting a decision the same person can make once need not create another queue.
| Gate group | Role by default |
|---|---|
| H1, H2, H3, H6 | Operator by default; client-led Configuration may assign H1 business scope and H3 business results to Customer representative in CASE_TYPES.GATE_PLAN. Support H1 classification has the system-policy path below. |
| H4, H5, H7, HW-approve, HW-instance, HW-shared, HW-irreversible, HW-ddl, H5-send | Approver scoped to target/system |
| Hd | controlling Operator's handover right; target writes separately gated |
| H5-SIM | configured pair of simulation approver roles |
| CG-11 | Customer representative for the exact acceptance scope |
| publish | Prompt publisher for the subject's stage/module |
P Roles and accepted risk are permissions, not staffing assumptions. Development placement, publication, acceptance and production simulation retain their separately declared human authority; write-shape graduation does not lift them.
4. Shape approval — the gate that makes auto-confirm possible
P The new gate kind is HW-approve, and it approves a write shape, never a single statement. It is answered by a holder of the Approver role for the target class, and it executes nothing.
A write shape is a versioned row in SRD_SUPPORT carrying:
| Field | Content |
|---|---|
operation |
the connector operation it runs on (Failure and Recovery § 4) |
template |
the statement or call with its parameters declared — every value bound at run time from the plan, none interpolated free-hand |
target_class, effect_class |
the classification of § 2, fixed for the shape |
expected_counts |
the row counts as a function of the plan's own numbers, not a constant |
assertions |
what must hold after, evaluated by a tool without judgement (Configuration Module § 7.3) |
teardown |
the compensating operation, derived from the shape and not written later |
case_types |
where the shape may be used at all |
state |
draft · approved · suspended · retired |
expires_on, extended_until |
set at approval to now + writes.shape_expiry_default (P90D); the approver may extend an approved shape once, by at most writes.shape_extension_max (P1D) — anything longer is a re-approval (D133) |
P Approving a shape makes future instances of it auto-confirmable in the classes where § 3 permits it. It does not approve any instance. It does not widen a grant. An instance still needs a grant that covers its environment, system and target (Trust and Data § 2).
P A shape is versioned and immutable once approved; a changed template is a new shape needing its own approval — the rule the estate already applies to published prompts (Agent Framework § 6.4).
P A shape expires (decision Vladimir, 04.09.2026 — D133, closing A-9). Approval stamps a default expiry from policy (writes.shape_expiry_default, P90D); an expired shape is treated as suspended: its instances fall back to instance confirmation (§ 5) and the auditor refuses auto-confirm. The approver who holds the role for the target class may extend once, by at most one day (writes.shape_extension_max, P1D — enforced by the WRITE_SHAPES guard, Data Model § 3); a shape that needs longer is re-approved as a new version, which is the moment its template, counts and teardown are read again. The extension is a ledger record (SHAPE_STATE with action: extended) naming who extended and until when, so the one-day grace never becomes a silent renewal.
5. Instance confirmation
P An instance of an approved shape auto-confirms when all of the following hold. Any one failing makes it an ordinary gate in the inbox of the role holders.
- The shape is
approved, not suspended, and its version is the one that was approved. - Every applicable effect requirement is covered by an unwithdrawn risk acceptance for this customer, case type, gate and target. No production acceptance is implied.
- The nine conditions of § 9.4 hold, in order — among them the write auditor's pass (§ 6) and the preflight immediately before execution, which runs at application time and not at approval time wherever stale state could change the effect (Trust and Data § 2).
P An auto-confirmed instance writes the same GATE_DECISIONS record with the policy identifier as the actor, plus the shape id and version — indistinguishable in kind from a person's decision, attributable in fact (Architecture § 3.2).
6. The write auditor — the agent that says a write may proceed
P A dedicated, isolated platform profile whose only job is to confirm that a write packet is exact, bounded and revertable (decision Vladimir, 03.09.2026 — D73). It is the counterpart of the mechanism verifier: that one checks whether the reasoning is right, this one checks whether the operation is safe to execute. Neither may be skipped by the agent that wrote the thing it checks.
Profile: platform.write_auditor — a sub-agent, catalogued in Agents § 1.
Denied context. The author's transcript, reasoning and identity. Evidence source, environment and object provenance remain present. It receives only: the write packet, the approved shape and its version, the case's grants, and read access to the target under those grants. It cannot write anything, cannot spawn, and cannot widen its own scope (Agents § 0.2).
P The four checks. Each returns pass or refuse, and a refusal names the check, the item that failed and the evidence for it.
| # | Check | Refuses when |
|---|---|---|
| 1 · Exactness | every value is bound and every quantity is a number | a parameter is unbound, a target is named by description rather than identity, an expected count is a range or an adjective, a statement carries an open predicate ("and similar rows", an unbounded LIKE, a WHERE clause the plan does not pin), or a step's wording admits two readings |
| 2 · Boundedness | the affected set, re-derived from the target, equals what the packet claims | the re-derived count differs from expected_counts; the statement can touch a row outside the case's own object; the target class is working but the query returns rows belonging to another product or customer |
| 3 · Reversibility | the teardown exists, is derived, and would restore exactly what the write changed | the teardown is absent, is described rather than written, was authored after the write, removes more or less than the write adds, or the step is irreversible and is nevertheless in an auto-confirmable class |
| 4 · Scope | every statement lies inside the grant and inside the approved shape's template | a statement is outside the grant's environment, system, target or mode; a statement does not instantiate the approved template; the shape is suspended or its version differs |
P The exactness check is the one that exists because of vagueness, and it is deliberately unforgiving. A packet that is almost precise is refused, not repaired: the auditor does not correct the author's work, because a checker that fixes what it checks stops being a check. It returns the failing item to the stage agent, which re-plans.
P Tiering. The auditor is mandatory for every W1–W5 instance and for every packet that reaches an H5 or H5-send gate — that is, for every write the platform makes. Unlike the mechanism verifier it is not sampled: its cost is a bounded set of queries and a template comparison, not a re-derivation, so the argument for sampling does not apply.
P Its verdict is part of the gate packet, and a person answering a gate sees it. A pass does not authorize anything on its own; a refusal blocks the instance whatever the gate would have said.
Why an agent and not a rule in the executor. Checks 1 and 3 are judgements about language and derivation — whether a step is stated exactly, and whether a teardown really inverts a write — and no schema expresses them. Checks 2 and 4 are mechanical and are additionally enforced in the connector, which refuses out-of-scope operations before contact (Trust and Data § 2); the auditor runs them earlier so that the refusal arrives as a planning result rather than a failed call.
7. Suspension
P One revert on an auto-confirmed instance suspends the shape, not merely the policy row that permitted it: every case type loses auto-confirm for that shape until a person re-approves it at HW-approve. The suspension is a ledger event, an entry in the exception queue and one of the platform's minimum alerts (Software Architecture § 10.5).
P A refusal on a malformed draft is a planning failure. A refusal on an instance claiming to match an approved shape suspends that shape and resets its clean-instance count (§ 9.3). An unrelated business refusal does not pretend to disprove the template. The metric that watches this page is the pair: auditor refusals per hundred instances, and reverts per hundred auto-confirmed instances (Metrics).
8. What this settles per module
| Module | What is now writable, and under which class |
|---|---|
| Configuration | The stages write their own product's rows on the working environment as W1/W2 under approved shapes — this is what makes the module execute rather than describe. Shared rows are W3 and human by default; only a matching accepted-risk decision makes that requirement policy-eligible. The rating surface's own safety property is used as well: a new version is deployed on the working environment only, in no deployment set; the S2 test asserts the version_id, and deployment to customer-facing targets is a separate decision that names every version consuming a changed file F (Product Configurator Product design § 05, D113). Scripts for customer-facing targets stay H4 plus H5, unchanged. |
| Support (root) · Data and information | A data correction is an instance of an approved shape; the packet's statement, expected counts, teardown and replay are the shape's fields. Production is customer-facing, so W6 applies and a person answers unless the exact production risk class and shape have been accepted. |
Development (id source) |
Applying stored code is W5 — human by default — and additionally carries the content-signature precondition (Stage Planning § 3b). A worktree commit is not a write in this sense: it publishes nothing until the merge request, which is its own gate (Development DG-7). |
P The staged write-identity path is unchanged and now has a matching gate protocol: stage 1 executes under the existing privileged identity with a person in the loop; stage 2 under a least-privilege platform identity per environment; stage 3 lets only explicitly risk-accepted shape instances confirm by policy (Trust and Data § 3, D65).
9. The architecture of gating
P The sections above say which writes are gated and who may answer. This one says how gating is built — what the agent must produce, what the service stores and binds, how a write shape earns the right to confirm without a person, and what the runtime evaluates on every instance.
9.1 On the agent side — what must exist before a gate may be asked
P A stage agent cannot ask a human anything. It produces a packet and hands it upward; only the module root reaches a person (Agents). The packet is closed-form, and the auditor (§ 6) rejects it otherwise:
| The packet carries | Refused when |
|---|---|
| the operation and its draft or approved shape id | no draft shape, or a shape suspended for this case type |
| every external parameter bound; intra-operation returned-id bindings declared in the reviewed template | an undeclared value or binding is invented at execution time |
| the expected counts as numbers, per statement | a count is "some rows" or a function nobody can evaluate |
| the effect class per step — transactional, compensable, irreversible, DDL | a step's class is unstated |
| the revert descriptor, derived from the template and captured pre-image/returned ids, or an explicit irreversible outcome | a promised undo is prose or exceeds the changed set; an irreversible effect lacks its decision |
| the assertions and the replay that will prove the write landed | the proof is "check it looks right" |
| the requested grant scope — environment × system × target × mode; no grant id is required to propose | the grant is wider than the statements need |
| the proposal hash over semantic content; grant ids and volatile evidence are excluded | — |
P The agent is denied the means to skip the gate, not merely instructed not to: it holds no write connector. The platform.write_executor holds it, and the executor refuses any packet without a draft or approved shape and an auditor pass — so an agent that "decides" to write simply has nothing to write with (Agents § 0.2).
P An agent may not widen its own ask. Changing anything in the packet changes its hash, and a changed hash re-opens the gate instead of reusing the decision. P What the agent is told back is the decision, its scope and the grant — never who decided it, so no route and no retry depends on a person's identity.
9.2 On the backend side — where a gate lives and what binds it
P A gate is a row, not a message. The service owns it; the interface renders it; the agent waits on it.
| Object | What it holds | Why it is a row and not a call |
|---|---|---|
GATES |
kind (H1–H7, Hd, HW-approve, HW-instance, HW-shared, HW-irreversible, HW-ddl, H5-SIM, H5-send, CG-11, publish), case, target class, environment, artefact hash, the role required, state, age | a worker can die between the ask and the answer; the case survives because the ask is state (Agent Runtime § 11) |
GATE_DECISIONS |
actor — a person or a policy id — the scope approved, the plan revision, the artefact hash, the timestamp | append-only and hash-chained into the ledger, so a decision can be re-read years later with what it applied to |
GRANTS |
environment × system × target × mode, an expiry, and the artefact hash it is bound to | the connector checks the binding before contact; a grant cannot outlive the artefact it was issued for (Trust and Data § 2) |
HELD_BATCHES |
approved-but-unapplied writes, with their age | the 12-week HDesk plateau was invisible work (Baseline § 5); a held batch is a case so that its age is on the first screen |
WRITE_SHAPES |
the template, its effect class, its permitted case types, its state — draft, approved, suspended | suspension belongs to the shape, so one revert reaches every case that would have used it |
P Escalation is a timer on the row, configured per SLA class: notify the holders of the role, then the administrator, and draft the customer-facing status meanwhile — a gate with no available holder is a defined state, not a stall (PG-12).
9.3 How a shape earns auto-confirm — the training path
P A write shape is not born trusted; it is observed, then approved, then accepted, and any one of five events sends it back to the beginning.
| Stage | What is true | What moves it on |
|---|---|---|
| 1 · training | every instance is answered by a person; the ledger records the predicted counts beside the actual ones | at least three consecutive clean, person-confirmed instances — predicted equals actual, no correction, no revert; declared boundary and negative cases pass |
| 2 · shape-approved | a person has approved the template at HW-approve, naming the case types and target classes it covers; instances still reach a human | the organisation accepts the named risk class for that case type and target, in a recorded decision (N-12, D76) |
| 3 · policy-confirmed | a matching instance may confirm without a person, and writes the same decision record with the policy id as actor | nothing — this is the target state (D81) |
P What returns a shape to stage 1, immediately and without discussion: one revert on an instance of it; one auditor refusal on a matching instance; a red eval set on any profile in its path; a change to the template; or the withdrawal of the accepted risk class. P The platform never promotes a shape itself and no configuration value can — promotion is a recorded human decision, which is the whole content of N-12.
P The measure is the correction and rollback rate on auto-confirmed instances, reported per module beside the count of instances that took the auto path (Metrics). A shape whose rate is not zero is suspended, not tuned.
9.4 Auto-confirm at runtime — the ordered check
P For a write, evaluate these in order. Failure returns the named condition to the role holder; it never weakens a requirement.
- Every applicable requirement has an unwithdrawn RISK_ACCEPTANCES record for customer × module × case type × gate × target, with the organisation's decision reference.
- The exact shape version is approved, not suspended, and inside its expiry/extension.
- All target traits, including customer-facing and shared, are covered by those acceptances. There is no unconditional production exclusion and no implicit production approval.
- Every effect, including irreversible and DDL, is covered; standing human-only checkpoints still need their person.
- The packet is complete and its semantic hash matches the decisions.
- Relevant profiles, skills and handlers have passing evaluations for their pinned versions.
- The task is within its active-execution budget and technical limits.
- The isolated auditor passed this packet; it cannot override deterministic validation.
- Fresh preflight, current grant authority, impact-key claims and the task fence permit dispatch.
P An auto-confirmed write records the policy version, shape id/version and matching risk-acceptance references in the decision scope. The connector still needs a bound, expiring grant. Ordinary policy editing cannot manufacture risk acceptance.
P Non-write checkpoints have their own predicate. Support H1 classification is automatic by design and records its classification-policy version; an operator correction creates a revision. It is not a write shape and does not wait for three database writes. Other non-write checkpoints remain human until an approved gate-policy version names the schema, case types, evaluation criteria and no-open-question condition. Their decision names that policy without inventing a SHAPE_ID. Development placement, CG-11, publish and H5-SIM retain their separately declared authority. An H1/H3 assigned to the customer is answered on the existing client confirmation card; the assignment comes from trusted case policy, not the model.
P Agent Runtime § 5 is the execution procedure and proposal-hash definition. The proposed schema makes these decisions representable; it seeds no accepted risk and grants no live authority.
Challenges
- C The first shape catalogue: which write shapes the five largest support families and the five configuration stages need, and how many of them a single template covers. Built on the first ten cases of each module.
- C Whether check 2 can always re-derive the affected set cheaply — for a statement over a large table the re-derivation is a count query, but for a multi-statement block it is a set of them; the budget for the auditor is a per-profile ceiling (Agents § 0.1).
- P Whether an approved shape should expire on a schedule the way a grant does, or only on suspension and re-approval — answered 04.09.2026 (D133, A-9): on a schedule, default P90D from approval, extendable once by the approver by at most one day; the write-shape contract carries the two timestamps (Contracts § 1 row 5). Open in its place: whether P90D is the right default — measured on the first shape catalogue by how many shapes are re-approved unchanged.