From 27ddcc4596ab44191995c6e5733d3731c9192ced Mon Sep 17 00:00:00 2001 From: Moon-Young Date: Wed, 24 Jun 2026 03:21:10 +0000 Subject: [PATCH] Add Agent Fabric adapter smoke CLI --- README.md | 4 +- depone/__main__.py | 25 ++++ depone/agent_fabric/adapter_smoke.py | 123 +++++++++++++++++++ depone/cli/agent_fabric_adapter_smoke.py | 71 +++++++++++ docs/automation-roadmap.md | 14 ++- docs/command-reference.md | 1 + docs/release-history.md | 6 + docs/spec.md | 12 +- docs/v118-agent-fabric-adapter-smoke-spec.md | 51 ++++++++ docs/v118-decision.md | 21 ++++ docs/v88-decision.md | 2 +- docs/v88-roadmap-reconciliation-spec.md | 6 +- docs/v90-decision.md | 2 +- fixtures/v88/manifest.json | 22 ++-- fixtures/v90/manifest.json | 6 +- fixtures/v92/canonical-claims.json | 4 +- fixtures/v93/manifest.json | 18 +-- scripts/check_contract.py | 6 +- scripts/dwm_roadmap_reconciliation.py | 16 +-- scripts/dwm_workflow_activation.py | 4 +- scripts/dwm_workflow_narrative.py | 14 +-- tests/test_agent_fabric_adapter_smoke.py | 98 +++++++++++++++ 22 files changed, 464 insertions(+), 62 deletions(-) create mode 100644 depone/agent_fabric/adapter_smoke.py create mode 100644 depone/cli/agent_fabric_adapter_smoke.py create mode 100644 docs/v118-agent-fabric-adapter-smoke-spec.md create mode 100644 docs/v118-decision.md create mode 100644 tests/test_agent_fabric_adapter_smoke.py diff --git a/README.md b/README.md index 1f60a39..14c1ba7 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,5 @@ # Depone - > Workflow designer + cross-platform evidence verifier for multi-agent AI systems. - [![License: MIT](https://img.shields.io/badge/License-MIT-4F46E5.svg)](LICENSE) [![Agent skill](https://img.shields.io/badge/agent%20skill-Codex-4F46E5.svg)](SKILL.md) [![Release](https://img.shields.io/github/v/release/Moonweave-Systems/depone?color=4F46E5)](https://github.com/Moonweave-Systems/depone/releases) @@ -61,6 +59,7 @@ evidence gates. | `depone validate-contracts` | Validate Agent Fabric contracts and fixtures | | `depone agent-fabric-smoke` | Export the source-only Agent Fabric lifecycle smoke summary | | `depone agent-fabric-harness-snapshot` | Export source-only harness capability snapshots | +| `depone agent-fabric-adapter-smoke` | Export source-only adapter smoke reports | | `depone demo` | Run a complete design → compile → verify cycle | ### Verify: 4-Check Engine @@ -158,6 +157,7 @@ python3 -m depone verify --self-test # 7/7 passed python3 -m depone validate-contracts --self-test # 22/22 passed python3 -m depone agent-fabric-smoke --self-test # source-only smoke export passed python3 -m depone agent-fabric-harness-snapshot --self-test # harness snapshot export passed +python3 -m depone agent-fabric-adapter-smoke --self-test # adapter smoke export passed python3 -m depone demo --self-test # full cycle passed ``` diff --git a/depone/__main__.py b/depone/__main__.py index e1630fc..0c7aba2 100644 --- a/depone/__main__.py +++ b/depone/__main__.py @@ -6,6 +6,7 @@ import sys from depone.cli import ( + agent_fabric_adapter_smoke, agent_fabric_harness_snapshot, agent_fabric_smoke, demo, @@ -186,6 +187,28 @@ def main() -> None: "--self-test", action="store_true", help="Run self-test and exit" ) + # agent-fabric-adapter-smoke + adapter_smoke_parser = sub.add_parser( + "agent-fabric-adapter-smoke", + help="Export source-only Agent Fabric adapter smoke reports", + ) + adapter_smoke_parser.add_argument( + "--adapter-fixture", help="Reference adapter fixture JSON path" + ) + adapter_smoke_parser.add_argument( + "--harness-snapshot", + default=None, + help="Optional harness snapshot JSON path; defaults to adapter harness", + ) + adapter_smoke_parser.add_argument( + "--out", + default="agent-fabric-adapter-smoke.json", + help="Output path for adapter smoke report JSON", + ) + adapter_smoke_parser.add_argument( + "--self-test", action="store_true", help="Run self-test and exit" + ) + # demo demo_parser = sub.add_parser( "demo", help="Run a complete design→compile→verify cycle" @@ -213,6 +236,8 @@ def main() -> None: agent_fabric_smoke.run(args) elif args.command == "agent-fabric-harness-snapshot": agent_fabric_harness_snapshot.run(args) + elif args.command == "agent-fabric-adapter-smoke": + agent_fabric_adapter_smoke.run(args) elif args.command == "demo": demo.run(args) else: diff --git a/depone/agent_fabric/adapter_smoke.py b/depone/agent_fabric/adapter_smoke.py new file mode 100644 index 0000000..7014a09 --- /dev/null +++ b/depone/agent_fabric/adapter_smoke.py @@ -0,0 +1,123 @@ +"""Source-only Agent Fabric adapter smoke report.""" + +from __future__ import annotations + +import hashlib +import json +from typing import Any + +from depone.agent_fabric.reference_adapter import validate_reference_adapter_fixture + +REPORT_KIND = "agent-fabric-adapter-smoke-report" +REPORT_SCHEMA_VERSION = "1.0" + + +def canonical_hash(value: Any) -> str: + """Return a stable SHA-256 hash for JSON-compatible values.""" + payload = json.dumps(value, sort_keys=True, separators=(",", ":")) + return hashlib.sha256(payload.encode("utf-8")).hexdigest() + + +def build_adapter_smoke_report( + adapter_fixture: dict[str, Any], harness_snapshot: dict[str, Any] +) -> dict[str, Any]: + """Bind a reference adapter fixture to a source-only harness snapshot.""" + adapter = ( + adapter_fixture.get("adapter") if isinstance(adapter_fixture, dict) else {} + ) + capture = ( + adapter_fixture.get("capture") if isinstance(adapter_fixture, dict) else {} + ) + harness = adapter.get("harness") if isinstance(adapter, dict) else None + adapter_mode = adapter.get("mode") if isinstance(adapter, dict) else None + executes_commands = ( + adapter.get("executes_commands") if isinstance(adapter, dict) else None + ) + trust_level = capture.get("trust_level") if isinstance(capture, dict) else None + + validation_errors = validate_reference_adapter_fixture(adapter_fixture) + blockers: list[dict[str, Any]] = [] + harness_entry = _find_harness_entry(harness_snapshot, harness) + + if validation_errors: + blockers.append( + { + "code": "ERR_ADAPTER_FIXTURE_INVALID", + "message": "adapter fixture failed validation", + } + ) + decision = "blocked-invalid-adapter-fixture" + elif harness_entry is None: + blockers.append( + { + "code": "ERR_ADAPTER_HARNESS_NOT_SNAPSHOTTED", + "message": "adapter harness is absent from the harness snapshot", + "harness": harness, + } + ) + decision = "blocked-harness-not-in-snapshot" + elif harness_entry.get("status") == "unsupported-critical": + blockers.append( + { + "code": "ERR_ADAPTER_HARNESS_UNSUPPORTED_CRITICAL", + "message": "adapter harness snapshot is unsupported-critical", + "harness": harness, + } + ) + decision = "blocked-unsupported-critical" + else: + decision = "ready-source-only" + + return { + "kind": REPORT_KIND, + "schema_version": REPORT_SCHEMA_VERSION, + "decision": decision, + "harness": harness, + "harness_status": harness_entry.get("status") if harness_entry else None, + "adapter_name": adapter.get("name") if isinstance(adapter, dict) else None, + "adapter_mode": adapter_mode, + "executes_commands": executes_commands, + "trust_level": trust_level, + "validation_errors": validation_errors, + "blockers": blockers, + "source_hashes": { + "adapter_fixture": canonical_hash(adapter_fixture), + "harness_snapshot": canonical_hash(harness_snapshot), + }, + "boundary": { + "executes_commands": False, + "calls_live_models": False, + "detects_installed_harness": False, + "inspects_mcp_runtime": False, + "trust_upgrade": False, + }, + } + + +def _find_harness_entry( + harness_snapshot: dict[str, Any], harness: Any +) -> dict[str, Any] | None: + if not isinstance(harness, str): + return None + entries = harness_snapshot.get("harnesses", []) + if not isinstance(entries, list): + return None + for entry in entries: + if isinstance(entry, dict) and entry.get("name") == harness: + return entry + return None + + +def _self_test() -> None: + from pathlib import Path + + from depone.agent_fabric.harness_snapshot import build_harness_snapshot + + fixture_path = Path("depone/fixtures/agent_fabric/reference_adapter_shell.json") + fixture = json.loads(fixture_path.read_text()) + report = build_adapter_smoke_report(fixture, build_harness_snapshot(["shell"])) + if report["decision"] != "ready-source-only": + raise AssertionError("expected shell reference fixture to be source-ready") + blocked = build_adapter_smoke_report(fixture, build_harness_snapshot(["codex"])) + if blocked["decision"] != "blocked-harness-not-in-snapshot": + raise AssertionError("expected missing harness to block") diff --git a/depone/cli/agent_fabric_adapter_smoke.py b/depone/cli/agent_fabric_adapter_smoke.py new file mode 100644 index 0000000..14b023d --- /dev/null +++ b/depone/cli/agent_fabric_adapter_smoke.py @@ -0,0 +1,71 @@ +"""depone agent-fabric-adapter-smoke — export source-only adapter smoke report.""" + +from __future__ import annotations + +import argparse +import json +import sys +import tempfile +from pathlib import Path + +from depone.agent_fabric.adapter_smoke import build_adapter_smoke_report +from depone.agent_fabric.harness_snapshot import build_harness_snapshot + + +def _read_object(path: Path, label: str) -> dict: + try: + value = json.loads(path.read_text()) + except (OSError, json.JSONDecodeError) as exc: + print(f"Error: cannot read {label} JSON {path}: {exc}", file=sys.stderr) + sys.exit(1) + if not isinstance(value, dict): + print(f"Error: {label} JSON root must be an object", file=sys.stderr) + sys.exit(1) + return value + + +def run(args: argparse.Namespace) -> None: + if getattr(args, "self_test", False): + _self_test() + return + + if not getattr(args, "adapter_fixture", None): + print( + "Usage: depone agent-fabric-adapter-smoke " + "--adapter-fixture [--harness-snapshot snapshot.json]", + file=sys.stderr, + ) + sys.exit(1) + + fixture = _read_object(Path(args.adapter_fixture), "adapter fixture") + if getattr(args, "harness_snapshot", None): + snapshot = _read_object(Path(args.harness_snapshot), "harness snapshot") + else: + snapshot = build_harness_snapshot([fixture.get("adapter", {}).get("harness")]) + + report = build_adapter_smoke_report(fixture, snapshot) + out_path = Path(getattr(args, "out", "agent-fabric-adapter-smoke.json")) + out_path.parent.mkdir(parents=True, exist_ok=True) + out_path.write_text(json.dumps(report, indent=2, sort_keys=True) + "\n") + print(f"Adapter smoke report written to {out_path}") + print(f" Decision: {report['decision']}") + print(f" Harness: {report['harness']}") + + +def _self_test() -> None: + print("depone agent-fabric-adapter-smoke --self-test") + with tempfile.TemporaryDirectory() as tmp: + root = Path(tmp) + out_path = root / "adapter-smoke.json" + args = argparse.Namespace( + self_test=False, + adapter_fixture="depone/fixtures/agent_fabric/reference_adapter_shell.json", + harness_snapshot=None, + out=str(out_path), + ) + run(args) + report = json.loads(out_path.read_text()) + if report.get("decision") != "ready-source-only": + print(" [FAIL] expected ready-source-only", file=sys.stderr) + sys.exit(1) + print(" [PASS] source-only adapter smoke report exported") diff --git a/docs/automation-roadmap.md b/docs/automation-roadmap.md index b35ac3c..6297850 100644 --- a/docs/automation-roadmap.md +++ b/docs/automation-roadmap.md @@ -1,6 +1,6 @@ # Depone Automation Roadmap -Status: V3 entry runtime implemented; V7.5 frontier result review implemented; V8 frontier review ingestion implemented; V9 human gate resolution implemented; V10 product CLI implemented; V11 operator guidance implemented; V12-V20 product roadmap implemented; V52-V87 product evidence, graph timing, activation, and brand boundary gates implemented; V88 roadmap reconciliation audit implemented; V89 command safety gate implemented; V90 activation v2 implemented; V91 contract tiering implemented; V92 evidence oracle implemented; V93 workflow narrative implemented; V94 control deck score implemented; V95 score history implemented; V96 metric ladder implemented; V97 benchmark readiness implemented; V98 wave operator implemented; V99 wave receipt implemented; V100 promotion evidence implemented; V101 promotion route implemented; V102 deterministic live-proof recorder implemented; V103 live-proof comparison schema implemented; V104 product direction implemented; V105 verify wedge implemented; V106 multi-wave validation implemented; V107 Agent Fabric contracts and compiler implemented; V108 Agent Fabric reference adapter fixture implemented; V109 Agent Fabric capture bridge implemented; V110 Agent Fabric report assurance implemented; V111 Agent Fabric operator view implemented; V112 Agent Fabric lifecycle smoke implemented; V116 Agent Fabric smoke CLI implemented; V117 Agent Fabric harness snapshot implemented; V94-V101 meta layer frozen; live proof n=1 completed +Status: V3 entry runtime implemented; V7.5 frontier result review implemented; V8 frontier review ingestion implemented; V9 human gate resolution implemented; V10 product CLI implemented; V11 operator guidance implemented; V12-V20 product roadmap implemented; V52-V87 product evidence, graph timing, activation, and brand boundary gates implemented; V88 roadmap reconciliation audit implemented; V89 command safety gate implemented; V90 activation v2 implemented; V91 contract tiering implemented; V92 evidence oracle implemented; V93 workflow narrative implemented; V94 control deck score implemented; V95 score history implemented; V96 metric ladder implemented; V97 benchmark readiness implemented; V98 wave operator implemented; V99 wave receipt implemented; V100 promotion evidence implemented; V101 promotion route implemented; V102 deterministic live-proof recorder implemented; V103 live-proof comparison schema implemented; V104 product direction implemented; V105 verify wedge implemented; V106 multi-wave validation implemented; V107 Agent Fabric contracts and compiler implemented; V108 Agent Fabric reference adapter fixture implemented; V109 Agent Fabric capture bridge implemented; V110 Agent Fabric report assurance implemented; V111 Agent Fabric operator view implemented; V112 Agent Fabric lifecycle smoke implemented; V116 Agent Fabric smoke CLI implemented; V117 Agent Fabric harness snapshot implemented; V118 Agent Fabric adapter smoke implemented; V94-V101 meta layer frozen; live proof n=1 completed Date: 2026-06-24 ## Purpose @@ -60,6 +60,7 @@ legacy/internal and intentionally deferred. | Agent Fabric lifecycle smoke | source-only compile-to-report smoke summary for V107-V111 regression coverage | planned V112, lifecycle smoke implemented | | Agent Fabric smoke CLI | operator-facing export of the source-only lifecycle smoke summary and optional Markdown view | planned V116, smoke CLI implemented | | Agent Fabric harness snapshot | source-only export of shipped harness capability fixtures plus tool mapping coverage | planned V117, harness snapshot implemented | +| Agent Fabric adapter smoke | source-only binding of reference adapter fixtures to harness snapshots | planned V118, adapter smoke implemented | | Harness benchmark | corpus and scoring gate for direct harness comparisons | planned V23, first benchmark gate implemented | | README public page | source-bound benchmark graph on the GitHub landing page | planned V37, first publish slice implemented | | Benchmark history | hash-bound report history ledger and trend graph artifacts | planned V38, first ledger slice implemented | @@ -858,9 +859,9 @@ First canonical demo done means: - unsafe and non-owned output paths are blocked; - `fixtures/v51/manifest.json` passes with `decision: "keep"`. -### V52-V117: Product Evidence, Control Deck, And Agent Fabric Guardrails +### V52-V118: Product Evidence, Control Deck, And Agent Fabric Guardrails -Status: implemented through V117 Agent Fabric harness snapshot; the V103 live +Status: implemented through V118 Agent Fabric adapter smoke; the V103 live two-arm comparison remains behind explicit approval; V94-V101 meta layer is frozen. @@ -959,6 +960,9 @@ Implemented continuation: shipped harness capability fixtures plus deterministic tool mapping coverage. It reports exact, approximated, and unsupported-critical harness states without probing installed tools or upgrading trust. +- V118 added `depone agent-fabric-adapter-smoke`, a source-only report that + binds the shell reference adapter fixture to a harness snapshot with source + hashes, validation errors, and explicit no-execution boundaries. Next roadmap direction: @@ -970,8 +974,8 @@ Next roadmap direction: migration gate proves compatibility. 4. Expand read-only or pre-isolated live execution only where V84/V85 and queue preflight evidence permit it. -5. Use harness snapshots as the adapter-design input, then require paired - dogfood or adapter-smoke evidence before any public benefit claim. +5. Use adapter smoke reports as the adapter-design input, then require + paired dogfood or live adapter-smoke evidence before any public benefit claim. ## Strategic Decisions diff --git a/docs/command-reference.md b/docs/command-reference.md index c785c56..a2ddb7e 100644 --- a/docs/command-reference.md +++ b/docs/command-reference.md @@ -13,6 +13,7 @@ python3 -m depone verify plan.json --evidence ./evidence --out report.json --ope python3 -m depone validate-contracts --all python3 -m depone agent-fabric-smoke --profile profile.json --roles role.json --plan plan.json --out agent-fabric-smoke.json --operator-view-out operator-view.md python3 -m depone agent-fabric-harness-snapshot --harness shell --harness codex --out agent-fabric-harness-snapshot.json +python3 -m depone agent-fabric-adapter-smoke --adapter-fixture depone/fixtures/agent_fabric/reference_adapter_shell.json --out agent-fabric-adapter-smoke.json python3 -m depone demo --out out/depone-quickstart python scripts/dwm.py plan "" --out out/v21/ diff --git a/docs/release-history.md b/docs/release-history.md index e93da4f..8dd0b4d 100644 --- a/docs/release-history.md +++ b/docs/release-history.md @@ -219,6 +219,9 @@ promotion requires real release history. - V117: `docs/v117-agent-fabric-harness-snapshot-spec.md` added the `depone agent-fabric-harness-snapshot` export command for shipped harness capability fixtures plus deterministic tool mapping coverage. +- V118: `docs/v118-agent-fabric-adapter-smoke-spec.md` added the + `depone agent-fabric-adapter-smoke` report that binds reference adapter + fixtures to harness snapshots without executing them. ## Current Public Boundaries @@ -279,3 +282,6 @@ promotion requires real release history. - V117 harness snapshots expose shipped capability and mapping coverage only; they do not probe installed harnesses, inspect MCP runtime state, or prove live permission enforcement. +- V118 adapter smoke reports bind fixtures to snapshots and validation errors; + they still do not execute commands, call models, or prove live adapter + enforcement. diff --git a/docs/spec.md b/docs/spec.md index 7debba2..02e33b6 100644 --- a/docs/spec.md +++ b/docs/spec.md @@ -1,6 +1,6 @@ # Depone / DWM Core Spec -Status: V1 implemented, V2 release candidate, V2.5 first loop implemented, V3 entry runtime implemented, V12-V20 product slices implemented, V87 brand boundary audit implemented, V88 roadmap reconciliation, V89 command safety, V90 activation v2, V91 contract tiering, V92 evidence oracle, V93 workflow narrative, V94 control deck score, V95 score history, V96 metric ladder, V97 benchmark readiness, V98 wave operator, V99 wave receipt, V100 promotion evidence, V101 promotion route, V102 deterministic live-proof recorder, V103 live-proof comparison schema, V104 product direction, V105 verify wedge, V106 multi-wave validation, V107 Agent Fabric compiler, V108 reference adapter fixture, V109 capture bridge, V110 report assurance, V111 operator view, V112 lifecycle smoke, V116 Agent Fabric smoke CLI, V117 Agent Fabric harness snapshot, Last updated: 2026-06-24 +Status: V1 implemented, V2 release candidate, V2.5 first loop implemented, V3 entry runtime implemented, V12-V20 product slices implemented, V87 brand boundary audit implemented, V88 roadmap reconciliation, V89 command safety, V90 activation v2, V91 contract tiering, V92 evidence oracle, V93 workflow narrative, V94 control deck score, V95 score history, V96 metric ladder, V97 benchmark readiness, V98 wave operator, V99 wave receipt, V100 promotion evidence, V101 promotion route, V102 deterministic live-proof recorder, V103 live-proof comparison schema, V104 product direction, V105 verify wedge, V106 multi-wave validation, V107 Agent Fabric compiler, V108 reference adapter fixture, V109 capture bridge, V110 report assurance, V111 operator view, V112 lifecycle smoke, V116 Agent Fabric smoke CLI, V117 Agent Fabric harness snapshot, V118 Agent Fabric adapter smoke, Last updated: 2026-06-24 ## Purpose @@ -333,9 +333,9 @@ when promotion evidence is not ready, or emits a human gate when README graph publication can enter review. It does not execute commands, publish assets, or approve public benchmark publication. -### V107-V117: Agent Fabric Compiler, Capture, Report, Operator View, Lifecycle Smoke, Smoke CLI, And Harness Snapshot +### V107-V118: Agent Fabric Compiler, Capture, Report, Operator View, Lifecycle Smoke, Smoke CLI, Harness Snapshot, And Adapter Smoke -V107-V117 add the first implemented Agent Fabric control-plane layer without +V107-V118 add the first implemented Agent Fabric control-plane layer without turning Depone into an agent runtime. V107 validates role, toolbelt, profile, harness, compile-report, invocation, and result contracts, then compiles profile roles into deterministic invocation packets and compile reports. V108 @@ -343,14 +343,14 @@ adds a fixture-only shell reference adapter shape. V109 bridges that shape into Depone capture manifests with `A0-claims-only` and `A1-local-observed` assurance labels. V110 surfaces capture checks in verification reports. V111 renders those report fields as a deterministic operator Markdown view. V112 -threads the V107-V111 path together as a source-only lifecycle smoke helper. V116 exposes that source-only smoke as `depone agent-fabric-smoke` so operators can export the JSON summary and optional Markdown view without writing Python. V117 exports static harness capability snapshots from shipped fixtures and tool mappings through `depone agent-fabric-harness-snapshot`. +threads the V107-V111 path together as a source-only lifecycle smoke helper. V116 exposes that source-only smoke as `depone agent-fabric-smoke` so operators can export the JSON summary and optional Markdown view without writing Python. V117 exports static harness capability snapshots from shipped fixtures and tool mappings through `depone agent-fabric-harness-snapshot`. V118 binds the shell reference adapter fixture to a harness snapshot through `depone agent-fabric-adapter-smoke` so adapter readiness is source-hash-bound before live adapter work. These slices do not call live models, execute arbitrary commands, hide harness permission limitations, or claim direct-agent superiority. Unsupported critical controls still block compilation, approximations stay visible in compile reports, and Depone verification remains evidence-contract based. The next -Agent Fabric product step should focus on paired dogfood evidence and adapter -smoke evidence before any live adapter or superiority claim. +Agent Fabric product step should focus on paired dogfood evidence and live +adapter smoke evidence before any live adapter or superiority claim. ### Harness Strategy diff --git a/docs/v118-agent-fabric-adapter-smoke-spec.md b/docs/v118-agent-fabric-adapter-smoke-spec.md new file mode 100644 index 0000000..67525c7 --- /dev/null +++ b/docs/v118-agent-fabric-adapter-smoke-spec.md @@ -0,0 +1,51 @@ +# V118 Agent Fabric Adapter Smoke Spec + +V118 adds a source-only adapter smoke report. It binds a V108 reference adapter +fixture to a V117 harness snapshot and records whether the adapter fixture is +ready for source-only review before any live adapter work. + +## Command + +```bash +python3 -m depone agent-fabric-adapter-smoke \ + --adapter-fixture depone/fixtures/agent_fabric/reference_adapter_shell.json \ + --harness-snapshot agent-fabric-harness-snapshot.json \ + --out agent-fabric-adapter-smoke.json +``` + +Inputs: + +- `--adapter-fixture`: reference adapter fixture JSON. +- `--harness-snapshot`: optional harness snapshot JSON. When omitted, Depone + builds a source-only snapshot for the adapter fixture harness. +- `--out`: report JSON output path, default `agent-fabric-adapter-smoke.json`. + +## Boundary + +The command does not execute commands, call live models, detect installed +harnesses, inspect MCP runtime state, create worktrees, or upgrade trust. It is +a deterministic binding of shipped/source JSON surfaces only. + +## Decisions + +- `ready-source-only`: adapter fixture validates and its harness is present in + the snapshot without unsupported-critical status. +- `blocked-invalid-adapter-fixture`: fixture validation fails. +- `blocked-harness-not-in-snapshot`: fixture harness is absent from the snapshot. +- `blocked-unsupported-critical`: fixture harness is present but its snapshot is + unsupported-critical. + +## Outputs + +The report contains `kind`, `decision`, adapter harness/mode/trust fields, +validation errors, blockers, source hashes for the fixture and snapshot, and an +explicit boundary object recording no execution, no model calls, no live harness +detection, no MCP runtime introspection, and no trust upgrade. + +## Verification + +```bash +python3 tests/test_agent_fabric_adapter_smoke.py +python3 -m depone agent-fabric-adapter-smoke --self-test +python3 -m depone agent-fabric-harness-snapshot --self-test +``` diff --git a/docs/v118-decision.md b/docs/v118-decision.md new file mode 100644 index 0000000..272ca44 --- /dev/null +++ b/docs/v118-decision.md @@ -0,0 +1,21 @@ +# V118 Decision + +Decision: keep adapter smoke source-only. + +Evidence: + +- `python3 tests/test_agent_fabric_adapter_smoke.py` covers ready shell fixture + binding, absent harness blocking, invalid fixture blocking, and CLI export. +- `python3 -m depone agent-fabric-adapter-smoke --self-test` exports a + deterministic source-only report for the shipped shell reference fixture. +- `python3 -m depone agent-fabric-harness-snapshot --self-test` preserves the + upstream snapshot input. + +Boundary: + +- no command execution; +- no live model calls; +- no installed harness detection; +- no MCP runtime introspection; +- no trust upgrade; +- no public direct-agent superiority claim. diff --git a/docs/v88-decision.md b/docs/v88-decision.md index a2a3865..5f9c308 100644 --- a/docs/v88-decision.md +++ b/docs/v88-decision.md @@ -13,7 +13,7 @@ Decision: keep. Canonical audit: - `decision`: `roadmap_reconciled` -- `latest_version`: `V117` +- `latest_version`: `V118` - `public_product_brand`: `Depone` - `internal_engine_name`: `DWM Core` diff --git a/docs/v88-roadmap-reconciliation-spec.md b/docs/v88-roadmap-reconciliation-spec.md index 87ba27c..949e808 100644 --- a/docs/v88-roadmap-reconciliation-spec.md +++ b/docs/v88-roadmap-reconciliation-spec.md @@ -11,13 +11,13 @@ half-implemented after V52-V87 added product evidence, dogfood measurement, graph timing, activation, and brand boundary gates. The audit now reconciles through V99 wave receipt, V100 promotion evidence, V101 promotion route, V102 deterministic live-proof recorder, V103 live-proof comparison schema, -V104 product direction, V105 verify wedge, V106 multi-wave validation, and V107-V117 Agent Fabric guardrails. +V104 product direction, V105 verify wedge, V106 multi-wave validation, and V107-V118 Agent Fabric guardrails. ## Product Boundary - Public product brand: `Depone`. - Internal engine name: `DWM Core`. -- Latest reconciled version: `V117`. +- Latest reconciled version: `V118`. - `docs/release-history.md` remains the implementation-history source. - `docs/automation-roadmap.md` remains the operator-facing roadmap. - `docs/spec.md` remains the product contract and safety boundary. @@ -37,7 +37,7 @@ It blocks when: status, or V96 metric ladder, V97 benchmark readiness status. - `docs/automation-roadmap.md` still says V12-V20 are planned but not implemented. -- `docs/automation-roadmap.md` lacks the V52-V117 continuation summary. +- `docs/automation-roadmap.md` lacks the V52-V118 continuation summary. - `docs/release-history.md` lacks the V88, V89, V90, or V91 entry. ## Execution Policy diff --git a/docs/v90-decision.md b/docs/v90-decision.md index a52538a..ffa46b0 100644 --- a/docs/v90-decision.md +++ b/docs/v90-decision.md @@ -21,7 +21,7 @@ Canonical activation v2: - `decision`: `ready_for_next_workflow_design` - `next_safe_action`: `design_next_workflow` - `brand_boundary_decision`: `brand_boundary_ready` -- `roadmap_latest_version`: `V117` +- `roadmap_latest_version`: `V118` - `command_safety_decision`: `keep` This does not execute commands, create worktrees, run live adapters, or bypass diff --git a/fixtures/v88/manifest.json b/fixtures/v88/manifest.json index fbecb64..868242b 100644 --- a/fixtures/v88/manifest.json +++ b/fixtures/v88/manifest.json @@ -5,9 +5,9 @@ "id": "ready-roadmap-reconciled", "required": true, "surfaces": { - "docs/spec.md": "# Depone / DWM Core Spec\n\nStatus: V87 brand boundary audit implemented, V88 roadmap reconciliation, V89 command safety, V90 activation v2, V91 contract tiering, V92 evidence oracle, V93 workflow narrative, V94 control deck score, V95 score history, V96 metric ladder, V97 benchmark readiness, V98 wave operator, V99 wave receipt, V100 promotion evidence, V101 promotion route, V102 deterministic live-proof recorder, V103 live-proof comparison schema, V104 product direction, V105 verify wedge, V106 multi-wave validation, V107 Agent Fabric compiler, V108 reference adapter fixture, V109 capture bridge, V110 report assurance, V111 operator view, V112 lifecycle smoke, V116 Agent Fabric smoke CLI, V117 Agent Fabric harness snapshot, Last updated: 2026-06-24\n", - "docs/automation-roadmap.md": "# Depone Automation Roadmap\n\nStatus: V88 roadmap reconciliation audit implemented. V89 command safety gate implemented. V90 activation v2 implemented. V91 contract tiering implemented. V92 evidence oracle implemented. V93 workflow narrative implemented. V94 control deck score implemented; V95 score history implemented; V96 metric ladder implemented; V97 benchmark readiness implemented; V98 wave operator implemented; V99 wave receipt implemented; V100 promotion evidence implemented; V101 promotion route implemented; V102 deterministic live-proof recorder implemented; V103 live-proof comparison schema implemented; V104 product direction implemented; V105 verify wedge implemented; V106 multi-wave validation implemented; V107 Agent Fabric contracts and compiler implemented; V108 Agent Fabric reference adapter fixture implemented; V109 Agent Fabric capture bridge implemented; V110 Agent Fabric report assurance implemented; V111 Agent Fabric operator view implemented; V112 Agent Fabric lifecycle smoke implemented; V116 Agent Fabric smoke CLI implemented; V117 Agent Fabric harness snapshot implemented.\n\n### V12-V20: Implemented Product Roadmap\n\n### V52-V117: Product Evidence, Control Deck, And Agent Fabric Guardrails\n", - "docs/release-history.md": "# Depone Release History\n\n- V87: docs/v87-brand-boundary-audit-spec.md\n- V88: docs/v88-roadmap-reconciliation-spec.md\n- V89: docs/v89-command-safety-spec.md\n- V90: docs/v90-workflow-activation-v2-spec.md\n- V91: docs/v91-contract-tiering-spec.md\n- V92: docs/v92-evidence-oracle-spec.md\n- V93: docs/v93-workflow-narrative-spec.md\n- V94: docs/v94-control-deck-score-spec.md\n- V95: docs/v95-control-deck-score-history-spec.md\n- V96: docs/v96-metric-ladder-spec.md\n- V97: docs/v97-benchmark-readiness-spec.md\n- V98: docs/v98-wave-operator-spec.md\n- V99: docs/v99-wave-receipt-spec.md\n- V100: docs/v100-promotion-evidence-spec.md\n- V101: docs/v101-promotion-route-spec.md\n- V102: docs/v102-live-proof-1-spec.md\n- V103: docs/v103-live-proof-2-spec.md\n- V104: docs/v104-product-direction-spec.md\n- V105: docs/v105-verify-wedge-spec.md\n- V106: docs/v106-multi-wave-spec.md\n- V107: docs/v107-agent-fabric-control-plane-spec.md\n- V108: docs/v108-agent-fabric-reference-adapter-spec.md\n- V109: docs/v109-agent-fabric-capture-bridge-spec.md\n- V110: docs/v110-agent-fabric-report-assurance-spec.md\n- V111: docs/v111-agent-fabric-operator-view-spec.md\n- V112: docs/v112-agent-fabric-lifecycle-smoke-spec.md\n- V116: docs/v116-agent-fabric-smoke-cli-spec.md\n- V117: docs/v117-agent-fabric-harness-snapshot-spec.md\n\nRoadmap reconciliation audits keep spec, roadmap, and release history aligned.\n" + "docs/spec.md": "# Depone / DWM Core Spec\n\nStatus: V87 brand boundary audit implemented, V88 roadmap reconciliation, V89 command safety, V90 activation v2, V91 contract tiering, V92 evidence oracle, V93 workflow narrative, V94 control deck score, V95 score history, V96 metric ladder, V97 benchmark readiness, V98 wave operator, V99 wave receipt, V100 promotion evidence, V101 promotion route, V102 deterministic live-proof recorder, V103 live-proof comparison schema, V104 product direction, V105 verify wedge, V106 multi-wave validation, V107 Agent Fabric compiler, V108 reference adapter fixture, V109 capture bridge, V110 report assurance, V111 operator view, V112 lifecycle smoke, V116 Agent Fabric smoke CLI, V117 Agent Fabric harness snapshot, V118 Agent Fabric adapter smoke, Last updated: 2026-06-24\n", + "docs/automation-roadmap.md": "# Depone Automation Roadmap\n\nStatus: V88 roadmap reconciliation audit implemented. V89 command safety gate implemented. V90 activation v2 implemented. V91 contract tiering implemented. V92 evidence oracle implemented. V93 workflow narrative implemented. V94 control deck score implemented; V95 score history implemented; V96 metric ladder implemented; V97 benchmark readiness implemented; V98 wave operator implemented; V99 wave receipt implemented; V100 promotion evidence implemented; V101 promotion route implemented; V102 deterministic live-proof recorder implemented; V103 live-proof comparison schema implemented; V104 product direction implemented; V105 verify wedge implemented; V106 multi-wave validation implemented; V107 Agent Fabric contracts and compiler implemented; V108 Agent Fabric reference adapter fixture implemented; V109 Agent Fabric capture bridge implemented; V110 Agent Fabric report assurance implemented; V111 Agent Fabric operator view implemented; V112 Agent Fabric lifecycle smoke implemented; V116 Agent Fabric smoke CLI implemented; V117 Agent Fabric harness snapshot implemented; V118 Agent Fabric adapter smoke implemented.\n\n### V12-V20: Implemented Product Roadmap\n\n### V52-V118: Product Evidence, Control Deck, And Agent Fabric Guardrails\n", + "docs/release-history.md": "# Depone Release History\n\n- V87: docs/v87-brand-boundary-audit-spec.md\n- V88: docs/v88-roadmap-reconciliation-spec.md\n- V89: docs/v89-command-safety-spec.md\n- V90: docs/v90-workflow-activation-v2-spec.md\n- V91: docs/v91-contract-tiering-spec.md\n- V92: docs/v92-evidence-oracle-spec.md\n- V93: docs/v93-workflow-narrative-spec.md\n- V94: docs/v94-control-deck-score-spec.md\n- V95: docs/v95-control-deck-score-history-spec.md\n- V96: docs/v96-metric-ladder-spec.md\n- V97: docs/v97-benchmark-readiness-spec.md\n- V98: docs/v98-wave-operator-spec.md\n- V99: docs/v99-wave-receipt-spec.md\n- V100: docs/v100-promotion-evidence-spec.md\n- V101: docs/v101-promotion-route-spec.md\n- V102: docs/v102-live-proof-1-spec.md\n- V103: docs/v103-live-proof-2-spec.md\n- V104: docs/v104-product-direction-spec.md\n- V105: docs/v105-verify-wedge-spec.md\n- V106: docs/v106-multi-wave-spec.md\n- V107: docs/v107-agent-fabric-control-plane-spec.md\n- V108: docs/v108-agent-fabric-reference-adapter-spec.md\n- V109: docs/v109-agent-fabric-capture-bridge-spec.md\n- V110: docs/v110-agent-fabric-report-assurance-spec.md\n- V111: docs/v111-agent-fabric-operator-view-spec.md\n- V112: docs/v112-agent-fabric-lifecycle-smoke-spec.md\n- V116: docs/v116-agent-fabric-smoke-cli-spec.md\n- V117: docs/v117-agent-fabric-harness-snapshot-spec.md\n- V118: docs/v118-agent-fabric-adapter-smoke-spec.md\n\nRoadmap reconciliation audits keep spec, roadmap, and release history aligned.\n" }, "expected_decision": "roadmap_reconciled" }, @@ -15,9 +15,9 @@ "id": "blocked-planned-stale-roadmap", "required": true, "surfaces": { - "docs/spec.md": "# Depone / DWM Core Spec\n\nStatus: V87 brand boundary audit implemented, V88 roadmap reconciliation, V89 command safety, V90 activation v2, V91 contract tiering, V92 evidence oracle, V93 workflow narrative, V94 control deck score, V95 score history, V96 metric ladder, V97 benchmark readiness, V98 wave operator, V99 wave receipt, V100 promotion evidence, V101 promotion route, V102 deterministic live-proof recorder, V103 live-proof comparison schema, V104 product direction, V105 verify wedge, V106 multi-wave validation, V107 Agent Fabric compiler, V108 reference adapter fixture, V109 capture bridge, V110 report assurance, V111 operator view, V112 lifecycle smoke, V116 Agent Fabric smoke CLI, V117 Agent Fabric harness snapshot, Last updated: 2026-06-24\n", - "docs/automation-roadmap.md": "# Depone Automation Roadmap\n\nStatus: planned; not implemented.\n\n### V12-V20: Implemented Product Roadmap\n\n### V52-V117: Product Evidence, Control Deck, And Agent Fabric Guardrails\n", - "docs/release-history.md": "# Depone Release History\n\n- V87: docs/v87-brand-boundary-audit-spec.md\n- V88: docs/v88-roadmap-reconciliation-spec.md\n- V89: docs/v89-command-safety-spec.md\n- V90: docs/v90-workflow-activation-v2-spec.md\n- V91: docs/v91-contract-tiering-spec.md\n- V92: docs/v92-evidence-oracle-spec.md\n- V93: docs/v93-workflow-narrative-spec.md\n- V94: docs/v94-control-deck-score-spec.md\n- V95: docs/v95-control-deck-score-history-spec.md\n- V96: docs/v96-metric-ladder-spec.md\n- V97: docs/v97-benchmark-readiness-spec.md\n- V98: docs/v98-wave-operator-spec.md\n- V99: docs/v99-wave-receipt-spec.md\n- V100: docs/v100-promotion-evidence-spec.md\n- V101: docs/v101-promotion-route-spec.md\n- V102: docs/v102-live-proof-1-spec.md\n- V103: docs/v103-live-proof-2-spec.md\n- V104: docs/v104-product-direction-spec.md\n- V105: docs/v105-verify-wedge-spec.md\n- V106: docs/v106-multi-wave-spec.md\n- V107: docs/v107-agent-fabric-control-plane-spec.md\n- V108: docs/v108-agent-fabric-reference-adapter-spec.md\n- V109: docs/v109-agent-fabric-capture-bridge-spec.md\n- V110: docs/v110-agent-fabric-report-assurance-spec.md\n- V111: docs/v111-agent-fabric-operator-view-spec.md\n- V112: docs/v112-agent-fabric-lifecycle-smoke-spec.md\n- V116: docs/v116-agent-fabric-smoke-cli-spec.md\n- V117: docs/v117-agent-fabric-harness-snapshot-spec.md\n\nRoadmap reconciliation audits keep spec, roadmap, and release history aligned.\n" + "docs/spec.md": "# Depone / DWM Core Spec\n\nStatus: V87 brand boundary audit implemented, V88 roadmap reconciliation, V89 command safety, V90 activation v2, V91 contract tiering, V92 evidence oracle, V93 workflow narrative, V94 control deck score, V95 score history, V96 metric ladder, V97 benchmark readiness, V98 wave operator, V99 wave receipt, V100 promotion evidence, V101 promotion route, V102 deterministic live-proof recorder, V103 live-proof comparison schema, V104 product direction, V105 verify wedge, V106 multi-wave validation, V107 Agent Fabric compiler, V108 reference adapter fixture, V109 capture bridge, V110 report assurance, V111 operator view, V112 lifecycle smoke, V116 Agent Fabric smoke CLI, V117 Agent Fabric harness snapshot, V118 Agent Fabric adapter smoke, Last updated: 2026-06-24\n", + "docs/automation-roadmap.md": "# Depone Automation Roadmap\n\nStatus: planned; not implemented.\n\n### V12-V20: Implemented Product Roadmap\n\n### V52-V118: Product Evidence, Control Deck, And Agent Fabric Guardrails\n", + "docs/release-history.md": "# Depone Release History\n\n- V87: docs/v87-brand-boundary-audit-spec.md\n- V88: docs/v88-roadmap-reconciliation-spec.md\n- V89: docs/v89-command-safety-spec.md\n- V90: docs/v90-workflow-activation-v2-spec.md\n- V91: docs/v91-contract-tiering-spec.md\n- V92: docs/v92-evidence-oracle-spec.md\n- V93: docs/v93-workflow-narrative-spec.md\n- V94: docs/v94-control-deck-score-spec.md\n- V95: docs/v95-control-deck-score-history-spec.md\n- V96: docs/v96-metric-ladder-spec.md\n- V97: docs/v97-benchmark-readiness-spec.md\n- V98: docs/v98-wave-operator-spec.md\n- V99: docs/v99-wave-receipt-spec.md\n- V100: docs/v100-promotion-evidence-spec.md\n- V101: docs/v101-promotion-route-spec.md\n- V102: docs/v102-live-proof-1-spec.md\n- V103: docs/v103-live-proof-2-spec.md\n- V104: docs/v104-product-direction-spec.md\n- V105: docs/v105-verify-wedge-spec.md\n- V106: docs/v106-multi-wave-spec.md\n- V107: docs/v107-agent-fabric-control-plane-spec.md\n- V108: docs/v108-agent-fabric-reference-adapter-spec.md\n- V109: docs/v109-agent-fabric-capture-bridge-spec.md\n- V110: docs/v110-agent-fabric-report-assurance-spec.md\n- V111: docs/v111-agent-fabric-operator-view-spec.md\n- V112: docs/v112-agent-fabric-lifecycle-smoke-spec.md\n- V116: docs/v116-agent-fabric-smoke-cli-spec.md\n- V117: docs/v117-agent-fabric-harness-snapshot-spec.md\n- V118: docs/v118-agent-fabric-adapter-smoke-spec.md\n\nRoadmap reconciliation audits keep spec, roadmap, and release history aligned.\n" }, "expected_decision": "blocked" }, @@ -25,8 +25,8 @@ "id": "blocked-missing-v88-release-history", "required": true, "surfaces": { - "docs/spec.md": "# Depone / DWM Core Spec\n\nStatus: V87 brand boundary audit implemented, V88 roadmap reconciliation, V89 command safety, V90 activation v2, V91 contract tiering, V92 evidence oracle, V93 workflow narrative, V94 control deck score, V95 score history, V96 metric ladder, V97 benchmark readiness, V98 wave operator, V99 wave receipt, V100 promotion evidence, V101 promotion route, V102 deterministic live-proof recorder, V103 live-proof comparison schema, V104 product direction, V105 verify wedge, V106 multi-wave validation, V107 Agent Fabric compiler, V108 reference adapter fixture, V109 capture bridge, V110 report assurance, V111 operator view, V112 lifecycle smoke, V116 Agent Fabric smoke CLI, V117 Agent Fabric harness snapshot, Last updated: 2026-06-24\n", - "docs/automation-roadmap.md": "# Depone Automation Roadmap\n\nStatus: V88 roadmap reconciliation audit implemented. V89 command safety gate implemented. V90 activation v2 implemented. V91 contract tiering implemented. V92 evidence oracle implemented. V93 workflow narrative implemented. V94 control deck score implemented; V95 score history implemented; V96 metric ladder implemented; V97 benchmark readiness implemented; V98 wave operator implemented; V99 wave receipt implemented; V100 promotion evidence implemented; V101 promotion route implemented; V102 deterministic live-proof recorder implemented; V103 live-proof comparison schema implemented; V104 product direction implemented; V105 verify wedge implemented; V106 multi-wave validation implemented; V107 Agent Fabric contracts and compiler implemented; V108 Agent Fabric reference adapter fixture implemented; V109 Agent Fabric capture bridge implemented; V110 Agent Fabric report assurance implemented; V111 Agent Fabric operator view implemented; V112 Agent Fabric lifecycle smoke implemented; V116 Agent Fabric smoke CLI implemented; V117 Agent Fabric harness snapshot implemented.\n\n### V12-V20: Implemented Product Roadmap\n\n### V52-V117: Product Evidence, Control Deck, And Agent Fabric Guardrails\n", + "docs/spec.md": "# Depone / DWM Core Spec\n\nStatus: V87 brand boundary audit implemented, V88 roadmap reconciliation, V89 command safety, V90 activation v2, V91 contract tiering, V92 evidence oracle, V93 workflow narrative, V94 control deck score, V95 score history, V96 metric ladder, V97 benchmark readiness, V98 wave operator, V99 wave receipt, V100 promotion evidence, V101 promotion route, V102 deterministic live-proof recorder, V103 live-proof comparison schema, V104 product direction, V105 verify wedge, V106 multi-wave validation, V107 Agent Fabric compiler, V108 reference adapter fixture, V109 capture bridge, V110 report assurance, V111 operator view, V112 lifecycle smoke, V116 Agent Fabric smoke CLI, V117 Agent Fabric harness snapshot, V118 Agent Fabric adapter smoke, Last updated: 2026-06-24\n", + "docs/automation-roadmap.md": "# Depone Automation Roadmap\n\nStatus: V88 roadmap reconciliation audit implemented. V89 command safety gate implemented. V90 activation v2 implemented. V91 contract tiering implemented. V92 evidence oracle implemented. V93 workflow narrative implemented. V94 control deck score implemented; V95 score history implemented; V96 metric ladder implemented; V97 benchmark readiness implemented; V98 wave operator implemented; V99 wave receipt implemented; V100 promotion evidence implemented; V101 promotion route implemented; V102 deterministic live-proof recorder implemented; V103 live-proof comparison schema implemented; V104 product direction implemented; V105 verify wedge implemented; V106 multi-wave validation implemented; V107 Agent Fabric contracts and compiler implemented; V108 Agent Fabric reference adapter fixture implemented; V109 Agent Fabric capture bridge implemented; V110 Agent Fabric report assurance implemented; V111 Agent Fabric operator view implemented; V112 Agent Fabric lifecycle smoke implemented; V116 Agent Fabric smoke CLI implemented; V117 Agent Fabric harness snapshot implemented; V118 Agent Fabric adapter smoke implemented.\n\n### V12-V20: Implemented Product Roadmap\n\n### V52-V118: Product Evidence, Control Deck, And Agent Fabric Guardrails\n", "docs/release-history.md": "# Depone Release History\n\n- V87: docs/v87-brand-boundary-audit-spec.md\n" }, "expected_decision": "blocked" @@ -35,9 +35,9 @@ "id": "blocked-stale-spec-heading", "required": true, "surfaces": { - "docs/spec.md": "# DWM Skill And Control-Plane Spec\n\nStatus: V87 brand boundary audit implemented, V88 roadmap reconciliation, V89 command safety, V90 activation v2, V91 contract tiering, V92 evidence oracle, V93 workflow narrative, V94 control deck score, V95 score history, V96 metric ladder, V97 benchmark readiness, V98 wave operator, V99 wave receipt, V100 promotion evidence, V101 promotion route, V102 deterministic live-proof recorder, V103 live-proof comparison schema, V104 product direction, V105 verify wedge, V106 multi-wave validation, V107 Agent Fabric compiler, V108 reference adapter fixture, V109 capture bridge, V110 report assurance, V111 operator view, V112 lifecycle smoke, V116 Agent Fabric smoke CLI, V117 Agent Fabric harness snapshot, Last updated: 2026-06-24\n", - "docs/automation-roadmap.md": "# Depone Automation Roadmap\n\nStatus: V88 roadmap reconciliation audit implemented. V89 command safety gate implemented. V90 activation v2 implemented. V91 contract tiering implemented. V92 evidence oracle implemented. V93 workflow narrative implemented. V94 control deck score implemented; V95 score history implemented; V96 metric ladder implemented; V97 benchmark readiness implemented; V98 wave operator implemented; V99 wave receipt implemented; V100 promotion evidence implemented; V101 promotion route implemented; V102 deterministic live-proof recorder implemented; V103 live-proof comparison schema implemented; V104 product direction implemented; V105 verify wedge implemented; V106 multi-wave validation implemented; V107 Agent Fabric contracts and compiler implemented; V108 Agent Fabric reference adapter fixture implemented; V109 Agent Fabric capture bridge implemented; V110 Agent Fabric report assurance implemented; V111 Agent Fabric operator view implemented; V112 Agent Fabric lifecycle smoke implemented; V116 Agent Fabric smoke CLI implemented; V117 Agent Fabric harness snapshot implemented.\n\n### V12-V20: Implemented Product Roadmap\n\n### V52-V117: Product Evidence, Control Deck, And Agent Fabric Guardrails\n", - "docs/release-history.md": "# Depone Release History\n\n- V87: docs/v87-brand-boundary-audit-spec.md\n- V88: docs/v88-roadmap-reconciliation-spec.md\n- V89: docs/v89-command-safety-spec.md\n- V90: docs/v90-workflow-activation-v2-spec.md\n- V91: docs/v91-contract-tiering-spec.md\n- V92: docs/v92-evidence-oracle-spec.md\n- V93: docs/v93-workflow-narrative-spec.md\n- V94: docs/v94-control-deck-score-spec.md\n- V95: docs/v95-control-deck-score-history-spec.md\n- V96: docs/v96-metric-ladder-spec.md\n- V97: docs/v97-benchmark-readiness-spec.md\n- V98: docs/v98-wave-operator-spec.md\n- V99: docs/v99-wave-receipt-spec.md\n- V100: docs/v100-promotion-evidence-spec.md\n- V101: docs/v101-promotion-route-spec.md\n- V102: docs/v102-live-proof-1-spec.md\n- V103: docs/v103-live-proof-2-spec.md\n- V104: docs/v104-product-direction-spec.md\n- V105: docs/v105-verify-wedge-spec.md\n- V106: docs/v106-multi-wave-spec.md\n- V107: docs/v107-agent-fabric-control-plane-spec.md\n- V108: docs/v108-agent-fabric-reference-adapter-spec.md\n- V109: docs/v109-agent-fabric-capture-bridge-spec.md\n- V110: docs/v110-agent-fabric-report-assurance-spec.md\n- V111: docs/v111-agent-fabric-operator-view-spec.md\n- V112: docs/v112-agent-fabric-lifecycle-smoke-spec.md\n- V116: docs/v116-agent-fabric-smoke-cli-spec.md\n- V117: docs/v117-agent-fabric-harness-snapshot-spec.md\n\nRoadmap reconciliation audits keep spec, roadmap, and release history aligned.\n" + "docs/spec.md": "# DWM Skill And Control-Plane Spec\n\nStatus: V87 brand boundary audit implemented, V88 roadmap reconciliation, V89 command safety, V90 activation v2, V91 contract tiering, V92 evidence oracle, V93 workflow narrative, V94 control deck score, V95 score history, V96 metric ladder, V97 benchmark readiness, V98 wave operator, V99 wave receipt, V100 promotion evidence, V101 promotion route, V102 deterministic live-proof recorder, V103 live-proof comparison schema, V104 product direction, V105 verify wedge, V106 multi-wave validation, V107 Agent Fabric compiler, V108 reference adapter fixture, V109 capture bridge, V110 report assurance, V111 operator view, V112 lifecycle smoke, V116 Agent Fabric smoke CLI, V117 Agent Fabric harness snapshot, V118 Agent Fabric adapter smoke, Last updated: 2026-06-24\n", + "docs/automation-roadmap.md": "# Depone Automation Roadmap\n\nStatus: V88 roadmap reconciliation audit implemented. V89 command safety gate implemented. V90 activation v2 implemented. V91 contract tiering implemented. V92 evidence oracle implemented. V93 workflow narrative implemented. V94 control deck score implemented; V95 score history implemented; V96 metric ladder implemented; V97 benchmark readiness implemented; V98 wave operator implemented; V99 wave receipt implemented; V100 promotion evidence implemented; V101 promotion route implemented; V102 deterministic live-proof recorder implemented; V103 live-proof comparison schema implemented; V104 product direction implemented; V105 verify wedge implemented; V106 multi-wave validation implemented; V107 Agent Fabric contracts and compiler implemented; V108 Agent Fabric reference adapter fixture implemented; V109 Agent Fabric capture bridge implemented; V110 Agent Fabric report assurance implemented; V111 Agent Fabric operator view implemented; V112 Agent Fabric lifecycle smoke implemented; V116 Agent Fabric smoke CLI implemented; V117 Agent Fabric harness snapshot implemented; V118 Agent Fabric adapter smoke implemented.\n\n### V12-V20: Implemented Product Roadmap\n\n### V52-V118: Product Evidence, Control Deck, And Agent Fabric Guardrails\n", + "docs/release-history.md": "# Depone Release History\n\n- V87: docs/v87-brand-boundary-audit-spec.md\n- V88: docs/v88-roadmap-reconciliation-spec.md\n- V89: docs/v89-command-safety-spec.md\n- V90: docs/v90-workflow-activation-v2-spec.md\n- V91: docs/v91-contract-tiering-spec.md\n- V92: docs/v92-evidence-oracle-spec.md\n- V93: docs/v93-workflow-narrative-spec.md\n- V94: docs/v94-control-deck-score-spec.md\n- V95: docs/v95-control-deck-score-history-spec.md\n- V96: docs/v96-metric-ladder-spec.md\n- V97: docs/v97-benchmark-readiness-spec.md\n- V98: docs/v98-wave-operator-spec.md\n- V99: docs/v99-wave-receipt-spec.md\n- V100: docs/v100-promotion-evidence-spec.md\n- V101: docs/v101-promotion-route-spec.md\n- V102: docs/v102-live-proof-1-spec.md\n- V103: docs/v103-live-proof-2-spec.md\n- V104: docs/v104-product-direction-spec.md\n- V105: docs/v105-verify-wedge-spec.md\n- V106: docs/v106-multi-wave-spec.md\n- V107: docs/v107-agent-fabric-control-plane-spec.md\n- V108: docs/v108-agent-fabric-reference-adapter-spec.md\n- V109: docs/v109-agent-fabric-capture-bridge-spec.md\n- V110: docs/v110-agent-fabric-report-assurance-spec.md\n- V111: docs/v111-agent-fabric-operator-view-spec.md\n- V112: docs/v112-agent-fabric-lifecycle-smoke-spec.md\n- V116: docs/v116-agent-fabric-smoke-cli-spec.md\n- V117: docs/v117-agent-fabric-harness-snapshot-spec.md\n- V118: docs/v118-agent-fabric-adapter-smoke-spec.md\n\nRoadmap reconciliation audits keep spec, roadmap, and release history aligned.\n" }, "expected_decision": "blocked" } diff --git a/fixtures/v90/manifest.json b/fixtures/v90/manifest.json index 8a7a20c..7a42bcc 100644 --- a/fixtures/v90/manifest.json +++ b/fixtures/v90/manifest.json @@ -27,7 +27,7 @@ "blocked_by": [], "decision": "roadmap_reconciled", "policy": { - "latest_version": "V117" + "latest_version": "V118" } }, "run_status": { @@ -68,7 +68,7 @@ "blocked_by": [], "decision": "roadmap_reconciled", "policy": { - "latest_version": "V117" + "latest_version": "V118" } }, "run_status": { @@ -142,7 +142,7 @@ "blocked_by": [], "decision": "roadmap_reconciled", "policy": { - "latest_version": "V117" + "latest_version": "V118" } }, "run_status": { diff --git a/fixtures/v92/canonical-claims.json b/fixtures/v92/canonical-claims.json index dbbd7be..899411c 100644 --- a/fixtures/v92/canonical-claims.json +++ b/fixtures/v92/canonical-claims.json @@ -9,7 +9,7 @@ }, { "artifact": "roadmap", - "equals": "V117", + "equals": "V118", "id": "roadmap-latest-version", "path": "policy.latest_version", "type": "json_equals" @@ -50,7 +50,7 @@ }, { "artifact": "activation", - "equals": "V117", + "equals": "V118", "id": "activation-roadmap-latest", "path": "inputs.roadmap_latest_version", "type": "json_equals" diff --git a/fixtures/v93/manifest.json b/fixtures/v93/manifest.json index bb1be5c..3bc13da 100644 --- a/fixtures/v93/manifest.json +++ b/fixtures/v93/manifest.json @@ -6,12 +6,12 @@ "blocked_by": [], "decision": "ready_for_next_workflow_design", "inputs": { - "roadmap_latest_version": "V117" + "roadmap_latest_version": "V118" }, "next_safe_action": "design_next_workflow", "source_hashes": { "command_safety": "698cd9875689fe329db21b71c23026165b03632f0be9727b25c440f298d93bd6", - "roadmap_reconciliation": "66613543dbb99b4ed39e09b6b730cc6210114b7dd4ba71f2a269934c8e2f2db6" + "roadmap_reconciliation": "2d03b25fd0a260e525996c27366c0542da6098edc46ef336bf2944acca6c60de" } }, "command_safety": { @@ -33,7 +33,7 @@ "blocked_by": [], "decision": "roadmap_reconciled", "policy": { - "latest_version": "V117" + "latest_version": "V118" } } }, @@ -90,12 +90,12 @@ "blocked_by": [], "decision": "ready_for_next_workflow_design", "inputs": { - "roadmap_latest_version": "V117" + "roadmap_latest_version": "V118" }, "next_safe_action": "design_next_workflow", "source_hashes": { "command_safety": "not-current-command-safety-hash", - "roadmap_reconciliation": "66613543dbb99b4ed39e09b6b730cc6210114b7dd4ba71f2a269934c8e2f2db6" + "roadmap_reconciliation": "2d03b25fd0a260e525996c27366c0542da6098edc46ef336bf2944acca6c60de" } }, "command_safety": { @@ -115,7 +115,7 @@ "blocked_by": [], "decision": "roadmap_reconciled", "policy": { - "latest_version": "V117" + "latest_version": "V118" } } }, @@ -132,12 +132,12 @@ "blocked_by": [], "decision": "ready_for_next_workflow_design", "inputs": { - "roadmap_latest_version": "V117" + "roadmap_latest_version": "V118" }, "next_safe_action": "design_next_workflow", "source_hashes": { "command_safety": "698cd9875689fe329db21b71c23026165b03632f0be9727b25c440f298d93bd6", - "roadmap_reconciliation": "66613543dbb99b4ed39e09b6b730cc6210114b7dd4ba71f2a269934c8e2f2db6" + "roadmap_reconciliation": "2d03b25fd0a260e525996c27366c0542da6098edc46ef336bf2944acca6c60de" } }, "command_safety": { @@ -161,7 +161,7 @@ "blocked_by": [], "decision": "roadmap_reconciled", "policy": { - "latest_version": "V117" + "latest_version": "V118" } } }, diff --git a/scripts/check_contract.py b/scripts/check_contract.py index b520796..205b129 100644 --- a/scripts/check_contract.py +++ b/scripts/check_contract.py @@ -4034,7 +4034,7 @@ def main() -> None: "`roadmap-reconciliation.md`", "public product brand: `depone`", "internal engine name: `dwm core`", - "latest reconciled version: `v117`", + "latest reconciled version: `v118`", "does not claim autonomous execution", ], ) @@ -4048,7 +4048,7 @@ def main() -> None: "`required_passed`: 4", "`decision`: `keep`", "`decision`: `roadmap_reconciled`", - "`latest_version`: `v117`", + "`latest_version`: `v118`", "does not execute queued commands", ], ) @@ -4100,7 +4100,7 @@ def main() -> None: "`fixture_count`: 4", "`required_passed`: 4", "`decision`: `keep`", - "`roadmap_latest_version`: `v117`", + "`roadmap_latest_version`: `v118`", "`command_safety_decision`: `keep`", ], ) diff --git a/scripts/dwm_roadmap_reconciliation.py b/scripts/dwm_roadmap_reconciliation.py index 73f7dd4..c9109b9 100644 --- a/scripts/dwm_roadmap_reconciliation.py +++ b/scripts/dwm_roadmap_reconciliation.py @@ -150,13 +150,13 @@ def audit_surfaces(surfaces: dict[str, str]) -> dict[str, Any]: require_term(blockers, surfaces, "docs/spec.md", "V93 workflow narrative") require_term(blockers, surfaces, "docs/spec.md", "V94 control deck score") require_term(blockers, surfaces, "docs/spec.md", "V95 score history") - require_term(blockers, surfaces, "docs/spec.md", "V96 metric ladder, V97 benchmark readiness, V98 wave operator, V99 wave receipt, V100 promotion evidence, V101 promotion route, V102 deterministic live-proof recorder, V103 live-proof comparison schema, V104 product direction, V105 verify wedge, V106 multi-wave validation, V107 Agent Fabric compiler, V108 reference adapter fixture, V109 capture bridge, V110 report assurance, V111 operator view, V112 lifecycle smoke, V116 Agent Fabric smoke CLI, V117 Agent Fabric harness snapshot") + require_term(blockers, surfaces, "docs/spec.md", "V96 metric ladder, V97 benchmark readiness, V98 wave operator, V99 wave receipt, V100 promotion evidence, V101 promotion route, V102 deterministic live-proof recorder, V103 live-proof comparison schema, V104 product direction, V105 verify wedge, V106 multi-wave validation, V107 Agent Fabric compiler, V108 reference adapter fixture, V109 capture bridge, V110 report assurance, V111 operator view, V112 lifecycle smoke, V116 Agent Fabric smoke CLI, V117 Agent Fabric harness snapshot, V118 Agent Fabric adapter smoke") if first_line(surfaces.get("docs/automation-roadmap.md", "")).lower() != "# depone automation roadmap": blockers.append({"code": "ERR_ROADMAP_RECONCILIATION_ROADMAP_HEADING_STALE", "path": "docs/automation-roadmap.md", "term": "# Depone Automation Roadmap", "message": "roadmap heading does not reflect current product brand"}) forbid_term(blockers, surfaces, "docs/automation-roadmap.md", "Status: planned; not implemented") require_term(blockers, surfaces, "docs/automation-roadmap.md", "V12-V20: Implemented Product Roadmap") - require_term(blockers, surfaces, "docs/automation-roadmap.md", "V52-V117: Product Evidence, Control Deck, And Agent Fabric Guardrails") + require_term(blockers, surfaces, "docs/automation-roadmap.md", "V52-V118: Product Evidence, Control Deck, And Agent Fabric Guardrails") require_term(blockers, surfaces, "docs/automation-roadmap.md", "V88 roadmap reconciliation audit") require_term(blockers, surfaces, "docs/automation-roadmap.md", "V89 command safety gate") require_term(blockers, surfaces, "docs/automation-roadmap.md", "V90 activation v2") @@ -184,6 +184,7 @@ def audit_surfaces(surfaces: dict[str, str]) -> dict[str, Any]: require_term(blockers, surfaces, "docs/automation-roadmap.md", "V112 Agent Fabric lifecycle smoke") require_term(blockers, surfaces, "docs/automation-roadmap.md", "V116 Agent Fabric smoke CLI") require_term(blockers, surfaces, "docs/automation-roadmap.md", "V117 Agent Fabric harness snapshot") + require_term(blockers, surfaces, "docs/automation-roadmap.md", "V118 Agent Fabric adapter smoke") if first_line(surfaces.get("docs/release-history.md", "")).lower() != "# depone release history": blockers.append({"code": "ERR_ROADMAP_RECONCILIATION_RELEASE_HEADING_STALE", "path": "docs/release-history.md", "term": "# Depone Release History", "message": "release history heading is stale"}) @@ -215,6 +216,7 @@ def audit_surfaces(surfaces: dict[str, str]) -> dict[str, Any]: require_term(blockers, surfaces, "docs/release-history.md", "docs/v112-agent-fabric-lifecycle-smoke-spec.md") require_term(blockers, surfaces, "docs/release-history.md", "docs/v116-agent-fabric-smoke-cli-spec.md") require_term(blockers, surfaces, "docs/release-history.md", "docs/v117-agent-fabric-harness-snapshot-spec.md") + require_term(blockers, surfaces, "docs/release-history.md", "docs/v118-agent-fabric-adapter-smoke-spec.md") require_term(blockers, surfaces, "docs/release-history.md", "Roadmap reconciliation audits keep spec, roadmap, and release history aligned") return { @@ -226,7 +228,7 @@ def audit_surfaces(surfaces: dict[str, str]) -> dict[str, Any]: "policy": { "public_product_brand": "Depone", "internal_engine_name": "DWM Core", - "latest_version": "V117", + "latest_version": "V118", "executes_commands": False, }, "source_hashes": {"surfaces": canonical_hash(surfaces)}, @@ -238,7 +240,7 @@ def render_markdown(audit: dict[str, Any]) -> str: "# Roadmap Reconciliation Audit", "", f"- Decision: `{audit['decision']}`", - "- Latest version: `V117`", + "- Latest version: `V118`", "- Public product brand: `Depone`", "- Internal engine name: `DWM Core`", f"- Executes commands: `{audit['policy']['executes_commands']}`", @@ -328,9 +330,9 @@ def run_manifest(manifest_path: Path, out_dir: Path) -> dict[str, Any]: def good_surfaces() -> dict[str, str]: return { - "docs/spec.md": "# Depone / DWM Core Spec\n\nStatus: V87 brand boundary audit implemented, V88 roadmap reconciliation, V89 command safety, V90 activation v2, V91 contract tiering, V92 evidence oracle, V93 workflow narrative, V94 control deck score, V95 score history, V96 metric ladder, V97 benchmark readiness, V98 wave operator, V99 wave receipt, V100 promotion evidence, V101 promotion route, V102 deterministic live-proof recorder, V103 live-proof comparison schema, V104 product direction, V105 verify wedge, V106 multi-wave validation, V107 Agent Fabric compiler, V108 reference adapter fixture, V109 capture bridge, V110 report assurance, V111 operator view, V112 lifecycle smoke, V116 Agent Fabric smoke CLI, V117 Agent Fabric harness snapshot, Last updated: 2026-06-24\n", - "docs/automation-roadmap.md": "# Depone Automation Roadmap\n\nStatus: V88 roadmap reconciliation audit implemented. V89 command safety gate implemented. V90 activation v2 implemented. V91 contract tiering implemented. V92 evidence oracle implemented. V93 workflow narrative implemented. V94 control deck score implemented; V95 score history implemented; V96 metric ladder implemented; V97 benchmark readiness implemented; V98 wave operator implemented; V99 wave receipt implemented; V100 promotion evidence implemented; V101 promotion route implemented; V102 deterministic live-proof recorder implemented; V103 live-proof comparison schema implemented; V104 product direction implemented; V105 verify wedge implemented; V106 multi-wave validation implemented; V107 Agent Fabric contracts and compiler implemented; V108 Agent Fabric reference adapter fixture implemented; V109 Agent Fabric capture bridge implemented; V110 Agent Fabric report assurance implemented; V111 Agent Fabric operator view implemented; V112 Agent Fabric lifecycle smoke implemented; V116 Agent Fabric smoke CLI implemented; V117 Agent Fabric harness snapshot implemented.\n\n### V12-V20: Implemented Product Roadmap\n\n### V52-V117: Product Evidence, Control Deck, And Agent Fabric Guardrails\n", - "docs/release-history.md": "# Depone Release History\n\n- V87: docs/v87-brand-boundary-audit-spec.md\n- V88: docs/v88-roadmap-reconciliation-spec.md\n- V89: docs/v89-command-safety-spec.md\n- V90: docs/v90-workflow-activation-v2-spec.md\n- V91: docs/v91-contract-tiering-spec.md\n- V92: docs/v92-evidence-oracle-spec.md\n- V93: docs/v93-workflow-narrative-spec.md\n- V94: docs/v94-control-deck-score-spec.md\n- V95: docs/v95-control-deck-score-history-spec.md\n- V96: docs/v96-metric-ladder-spec.md\n- V97: docs/v97-benchmark-readiness-spec.md\n- V98: docs/v98-wave-operator-spec.md\n- V99: docs/v99-wave-receipt-spec.md\n- V100: docs/v100-promotion-evidence-spec.md\n- V101: docs/v101-promotion-route-spec.md\n- V102: docs/v102-live-proof-1-spec.md\n- V103: docs/v103-live-proof-2-spec.md\n- V104: docs/v104-product-direction-spec.md\n- V105: docs/v105-verify-wedge-spec.md\n- V106: docs/v106-multi-wave-spec.md\n- V107: docs/v107-agent-fabric-control-plane-spec.md\n- V108: docs/v108-agent-fabric-reference-adapter-spec.md\n- V109: docs/v109-agent-fabric-capture-bridge-spec.md\n- V110: docs/v110-agent-fabric-report-assurance-spec.md\n- V111: docs/v111-agent-fabric-operator-view-spec.md\n- V112: docs/v112-agent-fabric-lifecycle-smoke-spec.md\n- V116: docs/v116-agent-fabric-smoke-cli-spec.md\n- V117: docs/v117-agent-fabric-harness-snapshot-spec.md\n\nRoadmap reconciliation audits keep spec, roadmap, and release history aligned.\n", + "docs/spec.md": "# Depone / DWM Core Spec\n\nStatus: V87 brand boundary audit implemented, V88 roadmap reconciliation, V89 command safety, V90 activation v2, V91 contract tiering, V92 evidence oracle, V93 workflow narrative, V94 control deck score, V95 score history, V96 metric ladder, V97 benchmark readiness, V98 wave operator, V99 wave receipt, V100 promotion evidence, V101 promotion route, V102 deterministic live-proof recorder, V103 live-proof comparison schema, V104 product direction, V105 verify wedge, V106 multi-wave validation, V107 Agent Fabric compiler, V108 reference adapter fixture, V109 capture bridge, V110 report assurance, V111 operator view, V112 lifecycle smoke, V116 Agent Fabric smoke CLI, V117 Agent Fabric harness snapshot, V118 Agent Fabric adapter smoke, Last updated: 2026-06-24\n", + "docs/automation-roadmap.md": "# Depone Automation Roadmap\n\nStatus: V88 roadmap reconciliation audit implemented. V89 command safety gate implemented. V90 activation v2 implemented. V91 contract tiering implemented. V92 evidence oracle implemented. V93 workflow narrative implemented. V94 control deck score implemented; V95 score history implemented; V96 metric ladder implemented; V97 benchmark readiness implemented; V98 wave operator implemented; V99 wave receipt implemented; V100 promotion evidence implemented; V101 promotion route implemented; V102 deterministic live-proof recorder implemented; V103 live-proof comparison schema implemented; V104 product direction implemented; V105 verify wedge implemented; V106 multi-wave validation implemented; V107 Agent Fabric contracts and compiler implemented; V108 Agent Fabric reference adapter fixture implemented; V109 Agent Fabric capture bridge implemented; V110 Agent Fabric report assurance implemented; V111 Agent Fabric operator view implemented; V112 Agent Fabric lifecycle smoke implemented; V116 Agent Fabric smoke CLI implemented; V117 Agent Fabric harness snapshot implemented; V118 Agent Fabric adapter smoke implemented.\n\n### V12-V20: Implemented Product Roadmap\n\n### V52-V118: Product Evidence, Control Deck, And Agent Fabric Guardrails\n", + "docs/release-history.md": "# Depone Release History\n\n- V87: docs/v87-brand-boundary-audit-spec.md\n- V88: docs/v88-roadmap-reconciliation-spec.md\n- V89: docs/v89-command-safety-spec.md\n- V90: docs/v90-workflow-activation-v2-spec.md\n- V91: docs/v91-contract-tiering-spec.md\n- V92: docs/v92-evidence-oracle-spec.md\n- V93: docs/v93-workflow-narrative-spec.md\n- V94: docs/v94-control-deck-score-spec.md\n- V95: docs/v95-control-deck-score-history-spec.md\n- V96: docs/v96-metric-ladder-spec.md\n- V97: docs/v97-benchmark-readiness-spec.md\n- V98: docs/v98-wave-operator-spec.md\n- V99: docs/v99-wave-receipt-spec.md\n- V100: docs/v100-promotion-evidence-spec.md\n- V101: docs/v101-promotion-route-spec.md\n- V102: docs/v102-live-proof-1-spec.md\n- V103: docs/v103-live-proof-2-spec.md\n- V104: docs/v104-product-direction-spec.md\n- V105: docs/v105-verify-wedge-spec.md\n- V106: docs/v106-multi-wave-spec.md\n- V107: docs/v107-agent-fabric-control-plane-spec.md\n- V108: docs/v108-agent-fabric-reference-adapter-spec.md\n- V109: docs/v109-agent-fabric-capture-bridge-spec.md\n- V110: docs/v110-agent-fabric-report-assurance-spec.md\n- V111: docs/v111-agent-fabric-operator-view-spec.md\n- V112: docs/v112-agent-fabric-lifecycle-smoke-spec.md\n- V116: docs/v116-agent-fabric-smoke-cli-spec.md\n- V117: docs/v117-agent-fabric-harness-snapshot-spec.md\n- V118: docs/v118-agent-fabric-adapter-smoke-spec.md\n\nRoadmap reconciliation audits keep spec, roadmap, and release history aligned.\n", } diff --git a/scripts/dwm_workflow_activation.py b/scripts/dwm_workflow_activation.py index e9f6481..77f7a41 100644 --- a/scripts/dwm_workflow_activation.py +++ b/scripts/dwm_workflow_activation.py @@ -186,7 +186,7 @@ def collect_blockers( if roadmap_reconciliation.get("blocked_by"): blockers.append({"code": "ERR_WORKFLOW_ACTIVATION_ROADMAP_BLOCKED", "message": "roadmap reconciliation contains blockers"}) latest_version = (roadmap_reconciliation.get("policy") or {}).get("latest_version") - if latest_version != "V117": + if latest_version != "V118": blockers.append({"code": "ERR_WORKFLOW_ACTIVATION_ROADMAP_VERSION_STALE", "message": "roadmap reconciliation latest version is stale", "latest_version": latest_version}) if command_safety is not None: if command_safety.get("decision") != "keep": @@ -400,7 +400,7 @@ def ready_brand_audit() -> dict[str, Any]: def ready_roadmap_reconciliation() -> dict[str, Any]: - return {"decision": "roadmap_reconciled", "blocked_by": [], "policy": {"latest_version": "V117"}} + return {"decision": "roadmap_reconciled", "blocked_by": [], "policy": {"latest_version": "V118"}} def ready_command_safety() -> dict[str, Any]: diff --git a/scripts/dwm_workflow_narrative.py b/scripts/dwm_workflow_narrative.py index d653261..aae5daf 100644 --- a/scripts/dwm_workflow_narrative.py +++ b/scripts/dwm_workflow_narrative.py @@ -181,8 +181,8 @@ def make_narrative( roadmap_latest = (roadmap.get("policy") or {}).get("latest_version") if roadmap.get("decision") != "roadmap_reconciled": add_blocker(blockers, "ERR_WORKFLOW_NARRATIVE_ROADMAP_NOT_READY", "roadmap is not reconciled", surface="roadmap", actual=roadmap.get("decision"), expected="roadmap_reconciled") - if roadmap_latest != "V117": - add_blocker(blockers, "ERR_WORKFLOW_NARRATIVE_ROADMAP_STALE", "roadmap latest version is stale", surface="roadmap", actual=roadmap_latest, expected="V117") + if roadmap_latest != "V118": + add_blocker(blockers, "ERR_WORKFLOW_NARRATIVE_ROADMAP_STALE", "roadmap latest version is stale", surface="roadmap", actual=roadmap_latest, expected="V118") if roadmap.get("blocked_by"): add_blocker(blockers, "ERR_WORKFLOW_NARRATIVE_ROADMAP_BLOCKED", "roadmap contains blockers", surface="roadmap") @@ -198,8 +198,8 @@ def make_narrative( if activation.get("blocked_by"): add_blocker(blockers, "ERR_WORKFLOW_NARRATIVE_ACTIVATION_BLOCKED", "workflow activation contains blockers", surface="activation") activation_inputs = activation.get("inputs") if isinstance(activation.get("inputs"), dict) else {} - if activation_inputs.get("roadmap_latest_version") != "V117": - add_blocker(blockers, "ERR_WORKFLOW_NARRATIVE_ACTIVATION_ROADMAP_STALE", "activation consumed a stale roadmap version", surface="activation", actual=activation_inputs.get("roadmap_latest_version"), expected="V117") + if activation_inputs.get("roadmap_latest_version") != "V118": + add_blocker(blockers, "ERR_WORKFLOW_NARRATIVE_ACTIVATION_ROADMAP_STALE", "activation consumed a stale roadmap version", surface="activation", actual=activation_inputs.get("roadmap_latest_version"), expected="V118") source_hashes = activation.get("source_hashes") if isinstance(activation.get("source_hashes"), dict) else {} if source_hashes.get("roadmap_reconciliation") != canonical_hash(roadmap): add_blocker(blockers, "ERR_WORKFLOW_NARRATIVE_ROADMAP_HASH_DRIFT", "activation roadmap hash does not match current roadmap artifact", surface="activation") @@ -217,7 +217,7 @@ def make_narrative( stage( "chart", "Chart", - "clear" if roadmap.get("decision") == "roadmap_reconciled" and roadmap_latest == "V117" and not roadmap.get("blocked_by") else "blocked", + "clear" if roadmap.get("decision") == "roadmap_reconciled" and roadmap_latest == "V118" and not roadmap.get("blocked_by") else "blocked", f"Chart: roadmap reconciled at {roadmap_latest or 'unknown'}", {"decision": roadmap.get("decision"), "latest_version": roadmap_latest}, ), @@ -396,12 +396,12 @@ def run_manifest(manifest_path: Path, out_dir: Path) -> dict[str, Any]: def ready_records() -> tuple[dict[str, Any], dict[str, Any], dict[str, Any], dict[str, Any]]: - roadmap = {"decision": "roadmap_reconciled", "blocked_by": [], "policy": {"latest_version": "V117"}} + roadmap = {"decision": "roadmap_reconciled", "blocked_by": [], "policy": {"latest_version": "V118"}} command_safety = {"decision": "keep", "failed": 0, "required_fixture_count": 4, "required_passed": 4} activation = { "decision": "ready_for_next_workflow_design", "blocked_by": [], - "inputs": {"roadmap_latest_version": "V117"}, + "inputs": {"roadmap_latest_version": "V118"}, "next_safe_action": "design_next_workflow", "source_hashes": { "roadmap_reconciliation": canonical_hash(roadmap), diff --git a/tests/test_agent_fabric_adapter_smoke.py b/tests/test_agent_fabric_adapter_smoke.py new file mode 100644 index 0000000..81577a2 --- /dev/null +++ b/tests/test_agent_fabric_adapter_smoke.py @@ -0,0 +1,98 @@ +"""Coverage for source-only Agent Fabric adapter smoke reports.""" + +from __future__ import annotations + +import json +import subprocess +import sys +import tempfile +import unittest +from pathlib import Path + +from depone.agent_fabric.harness_snapshot import build_harness_snapshot + + +FIXTURE_PATH = Path("depone/fixtures/agent_fabric/reference_adapter_shell.json") + + +class AgentFabricAdapterSmokeTests(unittest.TestCase): + def test_report_accepts_shell_fixture_when_snapshot_contains_harness(self) -> None: + from depone.agent_fabric.adapter_smoke import build_adapter_smoke_report + + fixture = json.loads(FIXTURE_PATH.read_text()) + snapshot = build_harness_snapshot(["shell"]) + + report = build_adapter_smoke_report(fixture, snapshot) + + self.assertEqual(report["kind"], "agent-fabric-adapter-smoke-report") + self.assertEqual(report["decision"], "ready-source-only") + self.assertEqual(report["harness"], "shell") + self.assertEqual(report["adapter_mode"], "fixture-only") + self.assertFalse(report["executes_commands"]) + self.assertEqual(report["trust_level"], "A0-claims-only") + self.assertEqual(report["harness_status"], "exact") + self.assertEqual(report["blockers"], []) + self.assertIn("adapter_fixture", report["source_hashes"]) + self.assertIn("harness_snapshot", report["source_hashes"]) + + def test_report_blocks_when_snapshot_does_not_include_adapter_harness(self) -> None: + from depone.agent_fabric.adapter_smoke import build_adapter_smoke_report + + fixture = json.loads(FIXTURE_PATH.read_text()) + snapshot = build_harness_snapshot(["codex"]) + + report = build_adapter_smoke_report(fixture, snapshot) + + self.assertEqual(report["decision"], "blocked-harness-not-in-snapshot") + self.assertEqual(report["harness"], "shell") + self.assertEqual( + report["blockers"][0]["code"], + "ERR_ADAPTER_HARNESS_NOT_SNAPSHOTTED", + ) + + def test_report_blocks_invalid_adapter_fixture_without_hiding_errors(self) -> None: + from depone.agent_fabric.adapter_smoke import build_adapter_smoke_report + + fixture = json.loads(FIXTURE_PATH.read_text()) + fixture["adapter"]["executes_commands"] = True + snapshot = build_harness_snapshot(["shell"]) + + report = build_adapter_smoke_report(fixture, snapshot) + + self.assertEqual(report["decision"], "blocked-invalid-adapter-fixture") + self.assertTrue(report["validation_errors"]) + self.assertEqual(report["blockers"][0]["code"], "ERR_ADAPTER_FIXTURE_INVALID") + + def test_cli_writes_adapter_smoke_report(self) -> None: + with tempfile.TemporaryDirectory() as tmp: + root = Path(tmp) + snapshot_path = root / "harness-snapshot.json" + out_path = root / "adapter-smoke.json" + snapshot_path.write_text(json.dumps(build_harness_snapshot(["shell"]))) + + result = subprocess.run( + [ + sys.executable, + "-m", + "depone", + "agent-fabric-adapter-smoke", + "--adapter-fixture", + str(FIXTURE_PATH), + "--harness-snapshot", + str(snapshot_path), + "--out", + str(out_path), + ], + text=True, + capture_output=True, + check=False, + ) + + self.assertEqual(result.returncode, 0, result.stderr) + report = json.loads(out_path.read_text()) + self.assertEqual(report["decision"], "ready-source-only") + self.assertIn("Adapter smoke report written", result.stdout) + + +if __name__ == "__main__": + unittest.main()