Skip to content

[design gate] Architecture Stabilization — bridge current M.I.O. to the series-wide Active Cyber Defense program before implementation #68

Description

@01rabbit

Parent doctrine: #64
System program: #66
Final hostile gate: #67
Edge differentiation: 01rabbit/Azazel-Edge#391
Implementation baseline: 01rabbit/Azazel-Edge#400

Purpose

Insert the missing Architecture Stabilization / Detailed Design gate between the already-implemented M.I.O. Cognitive Plane and the much broader series-wide Active Cyber Defense research program.

The next-generation program is intentionally ambitious. It must not be implemented by directly coding #392–#399 in sequence while interfaces, state ownership, migration, and failure semantics are still only conceptual.

This gate answers one question first:

Can the current working Azazel/M.I.O. architecture be evolved into the target architecture through small reversible vertical slices without replacing the existing deterministic decision/execution path?

Terminology correction

For new design and implementation work, use Deception / Azazel-Deception as the component name. Do not use AZ-06 as the primary architecture term in new contracts/docs/issues. Historical issues/docs may retain the old designation as provenance until explicitly migrated.

Current implementation anchors

M.I.O. foundation

Current Edge code already has bounded contracts/runtime for:

  • MioSituationFrame;
  • MioHypothesis;
  • MioEvidenceGap;
  • typed Capability Broker;
  • deterministic Grounding Validator;
  • bounded ReasoningState / BoundedReasoningLoop;
  • Reasoning Playbooks/context compiler;
  • reasoning trace/replay/evaluation helpers.

Deterministic authority/runtime reality

Current repository contains both:

  • py/azazel_edge/arbiter/action.py::ActionArbiter, a deterministic decision implementation; and
  • executable Rust decide_defense() -> maybe_enforce() -> EnforcementOutcome logic in rust/azazel-edge-core/src/main.rs.

Therefore no design may call the Python ActionArbiter the sole live execution truth until wiring/unification is proven. #400 consumes existing Rust execution facts without introducing a second executor or authority.

Existing execution/evidence substrates

  • current Rust throttle/redirect/isolate enforcement plans and EnforcementOutcome;
  • redirect/OpenCanary/Deception integration work;
  • Edge decision/audit/provenance;
  • Edge -> Knowledge reaction/outcome export work;
  • Knowledge Behavioral CTI/reaction history;
  • Deception package/lifecycle/isolation/reset foundation.

Non-negotiable migration rule

Do not replace the existing hot decision loop. Wrap and observe it first.

Canonical observational chain is now locked by Edge #400:

ActionDecision / DefensiveDecision
        -> ActionExecutionReceipt
        -> AppliedMechanism
        -> OutcomeRecord
        -> TacticalEffectAssessment

These are different facts. Action != Mechanism != Outcome != Tactical Effect.

Target migration pattern:

CURRENT
Evidence -> current decision path -> concrete execution -> audit/log

STEP 1: shadow execution/mechanism evidence
same current path
 -> normalize provider execution facts into ActionExecutionReceipt
 -> independently represent AppliedMechanism
 -> no live authority change

STEP 2: outcome evidence
same current path
 -> bounded before/after observations
 -> OutcomeRecord with telemetry coverage/confounders/causal support
 -> optional Knowledge export outside hot path

STEP 3: tactical effect assessment
verified mechanism + policy-owned objective + outcome evidence
 -> deterministic TacticalEffectAssessment
 -> no `throttle=DELAY` or `redirect=DIVERSION` shortcut

STEP 4: shadow strategy
proven facts / deterministic eligible candidates
 -> M.I.O. comparison/counterfactual in shadow
 -> no live influence

STEP 5: bounded advisory influence only after gates
M.I.O. recommendation
 -> deterministic validation/policy
 -> existing authoritative decision path

At every step, feature-off behavior must remain decision-equivalent to the pre-migration baseline.

Detailed-design packages

DD0 — Current-to-target traceability

Owner: Edge #400

Produce an exact matrix:

  • current module/type/API;
  • current authority;
  • target concept;
  • reuse/extend/replace decision;
  • migration adapter;
  • compatibility lifetime;
  • rollback behavior;
  • owning repo.

No concept may proceed if its current implementation anchor is unknown.

DD1 — Identity, authority, and lifecycle model

Define canonical non-confusable identities/relationships for:

  • incident/trace;
  • M.I.O. reasoning cycle/frame/hypothesis;
  • authoritative/local decision;
  • action/execution receipt;
  • applied mechanism;
  • policy-owned effect objective;
  • reaction/outcome observation;
  • tactical effect assessment;
  • Deception presentation/lifecycle;
  • Knowledge trajectory;
  • replay/experiment run.

For each type define:

  • who creates it;
  • who may mutate it;
  • whether it is fact/advisory/authority;
  • freshness/expiry;
  • persistence/retention;
  • invalid/stale behavior.

DD2 — Vertical Slice A: prove DELAY without AI

First executable proof. Do not require Belief, Council, Terrain adaptation, or multi-model reasoning.

recorded/live test evidence
 -> current deterministic Edge decision (`throttle` where current policy selects it)
 -> existing execution provider
 -> ActionExecutionReceipt
 -> independently verified TRAFFIC_SHAPING AppliedMechanism
 -> bounded pre/post OutcomeRecord
 -> TacticalEffectAssessment(DELAY) only if objective, mechanism, correlation, causal evidence and guardrails support it
 -> optional Knowledge fact export
 -> replay identical evidence bundle

throttle itself is not DELAY evidence. Current Rust throttle is an interface-root qdisc and must be represented truthfully as TRAFFIC_SHAPING with interface scope. If an independently verified postcondition and outcome do not support DELAY, the result remains inconclusive/unsupported.

Success criteria:

  • same existing action behavior;
  • no new authority;
  • complete provenance chain;
  • measurable outcome/confounders;
  • uncalibrated confidence remains null rather than invented;
  • M.I.O. completely removable;
  • Knowledge completely removable from hot path.

If this cannot be made robust, stop the larger architecture.

DD3 — Vertical Slice B: REDIRECTION + Deception Presented Terrain

Only after Slice A works.

existing deterministic redirect decision
 -> current execution provider
 -> REDIRECTION AppliedMechanism only when postcondition is independently verified
 -> valid Deception materialization / PresentedTerrainRef
 -> interaction/reaction facts
 -> termination/reset proof
 -> OutcomeRecord
 -> tactical DIVERSION assessment only when effect-specific evidence rules exist
 -> Knowledge fact export
 -> replay

No adaptive terrain transition in the first slice. Static coherent Deception is the baseline. A redirect command or decoy interaction alone is not proof that the adversary believed the deception or that diversion succeeded.

DD4 — M.I.O. strategic overlay

Only after DD2/DD3 data contracts are proven.

M.I.O. consumes:

  • SituationFrame;
  • current deterministic eligible effect candidates;
  • Tempo/Outcome history;
  • Real/Presented Terrain facts;
  • Belief hypotheses.

M.I.O. outputs only:

  • comparative assessment;
  • assumptions/uncertainty;
  • expected observations;
  • preferred eligible effect ref(s);
  • dissent/limitations.

It does not create target scope, provider commands, Deception transitions, canonical execution/outcome facts, or authority tokens.

DD5 — Council/co-adaptation

Council and Asurada-style team memory are deliberately last. They cannot be required to prove the core Active Defense loop.

Required sequence diagrams

Detailed design must include at least:

  1. current deterministic action/execution path;
  2. Slice A execution/mechanism/outcome/DELAY assessment path;
  3. Slice B REDIRECTION/Deception outcome path;
  4. M.I.O. shadow comparison path;
  5. Knowledge unavailable path;
  6. Deception unavailable path;
  7. M.I.O./model unavailable path;
  8. stale/superseded trace path;
  9. rollback/release/termination path;
  10. replay/evaluation path.

Failure semantics

Every cross-series call must define:

  • timeout;
  • retry/no-retry;
  • idempotency key;
  • queue bound;
  • stale cutoff;
  • cancellation/supersession;
  • partial-write behavior;
  • reboot recovery;
  • clock uncertainty;
  • duplicate/replay handling;
  • feature-disabled behavior.

Unknown/missing optional data is never a reason to strengthen a live action or promote an outcome/effect claim.

Data ownership rules

  • Edge/Gadget: authoritative local decisions and actual local execution observations.
  • Deception: actual materialization/lifecycle/reset/isolation facts.
  • Knowledge: durable fact/derived/advisory storage and retrieval, never live authority.
  • Fabric: shared type language only where at least two products exchange the type.
  • M.I.O.: advisory cognition state; no authoritative environment/execution/outcome truth.

Architecture review / hostile review

Before code for new adaptive features:

Normal review

  • current modules really support the proposed adapter points;
  • no duplicate state machine;
  • no unnecessary shared contract;
  • bounded hardware/resource behavior;
  • schema/version migration plan exists.

Hostile review

Try to prove:

  • this is unnecessary complexity around the current decision path;
  • raw Outcome Memory/RAG is enough;
  • static Deception is enough;
  • DELAY metric can be gamed;
  • IDs can be confused across advisory/authority;
  • optional dependency outage changes the hot path;
  • command success is mistaken for mechanism postcondition;
  • old action and tactical effect semantics diverge;
  • M.I.O. recommendation accidentally becomes authority;
  • Deception presentation state is mistaken for attacker belief;
  • policy guardrails can be bypassed by missing evidence;
  • uncalibrated numeric confidence creates false precision;
  • a better external model makes the new layer irrelevant.

Correct all high/medium findings before progressing to the next vertical slice.

Current locked implementation status

Edge #400 / PR #401 implement the first shadow layer on feat/outcome-as-evidence-v1:

  • canonical execution/mechanism/outcome/effect contracts;
  • Rust EnforcementOutcome adapter;
  • truthful current throttle scope;
  • passive bounded observer;
  • fail-closed replay execution boundary;
  • conservative DELAY rule requiring explicit evidence;
  • strict correlation joins;
  • fail-closed policy guardrails;
  • no invented numeric tactical confidence.

The PR must pass current CI/review before merge. Automatic release lifecycle observation, independently verified live mechanism postconditions, real pre/post metric collectors, end-to-end replay golden, and Pi/HIL remain gates.

Exit criteria

  • Exact current runtime execution source for v1 is identified.
  • Action/Execution/Mechanism/Outcome/Tactical Effect semantics are non-confusable.
  • Slice A implementation baseline reaches module/schema/test-file granularity in Edge #400.
  • Slice A passes repository CI and PR review.
  • Independently verify disruptive mechanism postconditions.
  • Bind policy-owned EffectObjective to real pre/post telemetry collectors.
  • Add end-to-end golden replay.
  • Pi/HIL proves no deterministic-path regression.
  • Slice B reaches equivalent grounded implementation detail without adaptive Deception.
  • Feature-off path remains decision-equivalent baseline by design.
  • M.I.O. is layered after proven execution/outcome facts, not woven into authority.
  • Deception is the new architecture term; historical AZ-06 naming is not propagated into new contracts.
  • [program] Post-BHUSA Azazel Series research program — system-wide co-adaptive Active Cyber Defense #66 does not start adaptive Terrain/Belief/Council field work until the G1-G6 gates from Edge #400 are complete or explicitly reviewed as waived.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions