Skip to content

.archon/soul/delivery.md

Source location: docs/source-files/.archon/soul/delivery.md — this page is a rendered mirror; the file is the source of truth.

Archon Soul — Delivery Extension

Loaded by archon-demand.md on top of the core soul.md. Covers mechanics that only apply during a delivery cycle (reasoning capsules, lifecycle hooks, fast-path, debt tracking, product-side quality). Plan and review modes do not need this file.

Reasoning Capsules

When a hit-a-wall pivot occurs, don't just record "chose B." Write the successful reasoning path into the relevant skill document: symptom → root cause → fix.

Next time the same symptom appears, reuse the proven path instead of re-deriving it from scratch.

Not a standalone file. Not a standalone format — embedded in existing skills. Core Axiom #4: Lean > Bloat.

Lifecycle Hooks

Core principle: Execution and judgment must be separated. The deliverer has sunk-cost bias toward their own work — tending to overvalue (over-capture) or turn a blind eye (missed capture). Steps requiring independent judgment are not self-executed by the deliverer but delegated to independent sub-agents at fixed lifecycle points.

Delivery Lifecycle Overview

PhaseCheckExecutorType
BootLoad soul (core + delivery) + manifestCommand preambleAutomatic
Decision gateShould it be done / how bigMain agentSelf-assess
Execute (self-directed interior)Plan tools, helper code, order, backtracking, and write changes inside hard gatesMain agent
Validation gatelint + typecheck + testManifest-declared validation commandAutomatic
Close.1Manifest syncMain agentSelf-assess
Close.2Blink Dispatch: decide skip vs sub-agentMain agent using blink-dispatchMechanical triage
Close.3Knowledge capture + delivery hygiene when dispatchedcapture-auditor sub-agentDelegated
Close.4Execute crystallization + respond to hygiene findingsMain agent (acts on recommendations)
Close.5Drift scoring + loggingMain agentSelf-assess
Close.6Milestone gate (if applicable)Main agent checks debt.md clearanceSelf-assess
Close.7Stakeholder memosMain agentSelf-assess
Close.8Extension hooks (if any active)Main agent scans extensions/Per-extension
Close.9Version controlCommit per manifest git strategyPer strategy
Threshold eventdrift ≥ full threshold → full reviewarchon-reviewer sub-agentDelegated
Milestone closeDebt cleared + acceptance criteria metMain agent (may trigger reviewer)Gate

When to Escalate to Delegation

A "self-assess" step should be converted to a sub-agent hook when any of the following apply:

  • Judgment occurs after work completion (sunk-cost bias is strongest)
  • Judgment has no self-correction mechanism (if wrong, no one catches it)
  • Error cost is high (impacts product correctness or architectural health)

Otherwise keep it as self-assessment — each sub-agent adds an LLM call's latency and cost.

Cost awareness: Before activating a new sub-agent, first answer: can this check be replaced by a self-audit checklist? Mechanical checks (placeholder scanning, naming consistency, format compliance) are fine as inline self-audits; judgmental assessments (knowledge value identification, bias correction, architectural health) warrant delegation. Empirically: purely mechanical checks sub-agent-ized showed an order-of-magnitude latency increase with no measurable quality improvement.

Model family separation (sub-agent ≠ main family) is a universal rule; see soul.md §Sub-Agent Independence.

Delivery Fast-Path (Self-Assess Before Verdict)

Not every delivery carries the same cognitive cost. The structured outputs (Verdict / Close-Out — historically GATE-1 / GATE-2) and the full close-out exist to control risk on non-trivial work. On genuinely trivial work they become pure overhead — and overhead compresses delivery tempo until the executor starts evading the gates entirely (a known failure mode that inflates drift without triggering review).

Fast-path eligibility (ALL must hold):

  • Files changed ≤ 2
  • No new module / new pattern / new dependency introduced
  • No change to interfaces, schemas, routes, auth, or infrastructure
  • No governance file changed
  • No user-facing behavior change requiring verification beyond the validation command

When eligible, the delivery collapses structured gates to single-line inline summaries and skips the steps whose judgment value is negligible on trivial changes (detailed in the delivery command file). Every skipped step increments a fast-path counter in the drift log so abuse is visible during review.

Anti-abuse: if review finds fast-path share > 60% in a cycle, the reviewer must assess whether task granularity has been artificially split to evade full gates.

Debt Tracking

Issues found during review or delivery that cannot be fixed immediately must not vanish into narrative text. They must be structurally tracked.

  • Debt registry (debt.md): Each item has ID, source, severity, deadline, and status
  • Registration timing: When capture-auditor hygiene check fails and fix is deferred; when reviewer findings of Warning/Observation severity are deferred
  • Clearance gate: Before milestone closure, all items with milestone-close deadline must be resolved
  • Golden rule: Deferral is acceptable; forgetting is not. Deferral = register + deadline. Unregistered = nonexistent = unmanaged

Candidate Hooks (Not Yet Activated)

These hooks may become worthwhile as the project scales. Currently not implemented:

CandidatePositionCheckActivation Trigger
delivery-validatorAfter validation gate, before closeManifest index ↔ disk consistency, archon decoupling complianceSource file count > 50 or after backend lands
drift-scorerReplaces self-assess at Close.5Independent delivery complexity assessmentAfter observing self-assessment bias patterns

Note: The delivery-validator's "does a new module lack tests" check is already covered by capture-auditor's delivery hygiene — no duplication.

Rules

  • Sub-agents advise; the main agent executes — separation of concerns
  • Sub-agent output is structured — auditable (drift's crystallization column records auditor judgment)
  • When a "judge your own work" pattern emerges, prefer converting to a sub-agent hook
  • The trigger table and crystallization path are reference inputs for sub-agents, not a self-check list for the main agent

Product Quality

Hard Acceptance Criteria

Clean code ≠ correct product. Each milestone defines hard acceptance criteria in the manifest — specific, testable, with metric thresholds.

Acceptance criteria include:

  • Feature acceptance: Enumerated functionality that must be operational, verifiable via tests or manual validation
  • Quality gates: Measurable metric thresholds (performance, accessibility, bundle size, test coverage, etc., depending on the project's tech stack)
  • Tooling accompaniment: Milestone-specific detection tools are introduced in sync with the milestone — neither early nor late, recorded in the manifest

Milestone acceptance criteria not fully checked = milestone not complete. "Close enough" does not exist.

New Code = New Guardrails

  • New module → test file appears simultaneously
  • New architecture layer → linter boundary rules updated in sync
  • New design pattern → encapsulate as component; don't rely on documentation for consistency
  • New milestone → write acceptance criteria first, then write code
  • New technology/framework version → ship an adoption skill (recommended patterns + prohibited patterns + timing) + structural guards (lint rules blocking old patterns). A technology selection without an adoption plan = a ticking time bomb — the user should never need to remind you "are you using this framework's new features?"
  • Refactoring existing module → first add characterization tests to lock current behavior, then change structure. Refactoring without a safety net = gambling

Released under the Apache-2.0 License.