From 77c2667801c112166ce666264d5c1a0608dc26bb Mon Sep 17 00:00:00 2001 From: KeyffMS <124252104+KeyffMS@users.noreply.github.com> Date: Fri, 28 Aug 2026 14:13:00 +0200 Subject: [PATCH 1/2] Refresh Codex capability baseline --- .../plan-anvil/scripts/execution_contract.py | 5 +- .../tests/test_execution_contract.py | 5 ++ .codex/config.toml | 4 +- CHANGELOG.md | 7 +++ capabilities/index.json | 62 +++++++++++-------- docs/CODEX_CAPABILITY_BASELINE.md | 62 +++++++++++-------- ...DEX_CAPABILITY_QUALIFICATION_2026-08-28.md | 54 ++++++++++++++++ 7 files changed, 141 insertions(+), 58 deletions(-) create mode 100644 docs/CODEX_CAPABILITY_QUALIFICATION_2026-08-28.md diff --git a/.agents/skills/plan-anvil/scripts/execution_contract.py b/.agents/skills/plan-anvil/scripts/execution_contract.py index 360d529..8da7c6a 100644 --- a/.agents/skills/plan-anvil/scripts/execution_contract.py +++ b/.agents/skills/plan-anvil/scripts/execution_contract.py @@ -39,10 +39,7 @@ def execution_contract_findings(plan_text: str) -> list[dict[str, Any]]: } ) - if not ( - _has(plan_text, r"\bflat\b.{0,40}\bdirect[- ]child\b") - or _has(plan_text, r"\bagents\.max_depth\s*=\s*1\b") - ): + if not _has(plan_text, r"\bflat\b.{0,40}\bdirect[- ]child\b"): findings.append( { "kind": "execution-contract-topology-missing", diff --git a/.agents/skills/plan-anvil/tests/test_execution_contract.py b/.agents/skills/plan-anvil/tests/test_execution_contract.py index 6fd97e0..322cb43 100644 --- a/.agents/skills/plan-anvil/tests/test_execution_contract.py +++ b/.agents/skills/plan-anvil/tests/test_execution_contract.py @@ -85,6 +85,11 @@ def test_flat_topology_and_single_modifier_are_enforced(self) -> None: self.assertIn("execution-contract-topology-missing", kinds) self.assertIn("execution-contract-single-modifier-missing", kinds) + def test_legacy_max_depth_does_not_satisfy_flat_topology(self) -> None: + text = compliant_plan().replace("flat direct-child topology", "agents.max_depth = 1 topology") + kinds = {item["kind"] for item in execution_contract_findings(text)} + self.assertIn("execution-contract-topology-missing", kinds) + def test_evidence_cycle_is_enforced(self) -> None: findings = execution_contract_findings(compliant_plan().replace("FULL GREEN", "TEST AGAIN")) self.assertIn( diff --git a/.codex/config.toml b/.codex/config.toml index c46e764..a847f82 100644 --- a/.codex/config.toml +++ b/.codex/config.toml @@ -1,3 +1,3 @@ [agents] -max_threads = 4 -max_depth = 1 +enabled = true +max_concurrent_threads_per_session = 4 diff --git a/CHANGELOG.md b/CHANGELOG.md index 74c0e62..02cc915 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,13 @@ All notable changes to PlanAnvil are documented here. ## [Unreleased] +### Changed + +- refresh the Codex capability baseline to 2.2 against current 2026-08-28 official documentation; +- replace legacy agent concurrency/depth configuration with `agents.enabled` and `agents.max_concurrent_threads_per_session`; +- enforce flat direct-child execution topology in the generated contract instead of relying on undocumented `agents.max_depth` behavior; +- record the 2026-08-28 C01–C16 qualification attempt and its live Codex runtime blocker. + ### Fixed - canonicalize event repository paths before active-run routing so source-worktree matching is stable across macOS symlink aliases and Windows path aliases; diff --git a/capabilities/index.json b/capabilities/index.json index ea58423..4d02c09 100644 --- a/capabilities/index.json +++ b/capabilities/index.json @@ -1,52 +1,52 @@ { - "baseline_version": "2.1", + "baseline_version": "2.2", "capabilities": [ { "evidence_directory": "capabilities/C01", "expected_behavior": "Repository skills are discovered from .agents/skills", "id": "C01", "required": true, - "result": "NOT_RUN", + "result": "BLOCKED", "source": "DOCUMENTED" }, { "evidence_directory": "capabilities/C02", - "expected_behavior": "allow_implicit_invocation false disables implicit invocation", + "expected_behavior": "allow_implicit_invocation false disables implicit invocation while explicit invocation remains available", "id": "C02", "required": true, - "result": "NOT_RUN", + "result": "BLOCKED", "source": "DOCUMENTED" }, { "evidence_directory": "capabilities/C03", - "expected_behavior": "agents.max_depth 1 permits direct children and prevents deeper descendants", + "expected_behavior": "Generated execution contracts require a flat direct-child topology without relying on a Codex nesting-depth setting", "id": "C03", "required": true, - "result": "NOT_RUN", - "source": "DOCUMENTED" + "result": "BLOCKED", + "source": "CONTRACT_DEFINED" }, { "evidence_directory": "capabilities/C04", - "expected_behavior": "Nested agents are available when configured depth permits them", + "expected_behavior": "Codex subagent workflows use current agents enablement and concurrency settings; PlanAnvil does not require nested descendants", "id": "C04", "required": false, - "result": "NOT_RUN", + "result": "BLOCKED", "source": "DOCUMENTED" }, { "evidence_directory": "capabilities/C05", - "expected_behavior": "Planning-agent handoffs use explicit files and hashes", + "expected_behavior": "Required reviewer handoffs use explicit immutable files and hashes", "id": "C05", - "required": false, - "result": "NOT_RUN", + "required": true, + "result": "BLOCKED", "source": "CONTRACT_DEFINED" }, { "evidence_directory": "capabilities/C06", - "expected_behavior": "PreToolUse covers supported calls but not every equivalent path", + "expected_behavior": "PreToolUse covers supported local function-tool paths but not every equivalent path", "id": "C06", "required": true, - "result": "NOT_RUN", + "result": "BLOCKED", "source": "DOCUMENTED" }, { @@ -54,7 +54,7 @@ "expected_behavior": "The Git guard rejects the configured unsafe-command corpus", "id": "C07", "required": true, - "result": "NOT_RUN", + "result": "BLOCKED", "source": "CONTRACT_DEFINED" }, { @@ -62,7 +62,7 @@ "expected_behavior": "PreCompact can stop compaction", "id": "C08", "required": true, - "result": "NOT_RUN", + "result": "BLOCKED", "source": "DOCUMENTED" }, { @@ -70,7 +70,7 @@ "expected_behavior": "Compaction is allowed after checkpoint creation without a permanent loop", "id": "C09", "required": true, - "result": "NOT_RUN", + "result": "BLOCKED", "source": "CONTRACT_DEFINED" }, { @@ -78,7 +78,7 @@ "expected_behavior": "PostCompact and SessionStart can provide recovery context", "id": "C10", "required": true, - "result": "NOT_RUN", + "result": "BLOCKED", "source": "DOCUMENTED" }, { @@ -86,23 +86,23 @@ "expected_behavior": "Project instructions follow documented directory scope and precedence", "id": "C11", "required": true, - "result": "NOT_RUN", + "result": "BLOCKED", "source": "DOCUMENTED" }, { "evidence_directory": "capabilities/C12", - "expected_behavior": "project_doc_max_bytes may truncate automatic instruction loading", + "expected_behavior": "project_doc_max_bytes can truncate automatic instruction loading", "id": "C12", "required": true, - "result": "NOT_RUN", + "result": "BLOCKED", "source": "DOCUMENTED" }, { "evidence_directory": "capabilities/C13", - "expected_behavior": "SubagentStart can add context but is not a startup blocker", + "expected_behavior": "SubagentStart can add context but continue false does not stop subagent startup", "id": "C13", "required": true, - "result": "NOT_RUN", + "result": "BLOCKED", "source": "DOCUMENTED" }, { @@ -110,7 +110,7 @@ "expected_behavior": "Planning isolation preserves source branch, SHA, index, and files", "id": "C14", "required": true, - "result": "NOT_RUN", + "result": "BLOCKED", "source": "CONTRACT_DEFINED" }, { @@ -118,7 +118,7 @@ "expected_behavior": "Blind review is immutable and detects seeded contract defects", "id": "C15", "required": true, - "result": "NOT_RUN", + "result": "BLOCKED", "source": "CONTRACT_DEFINED" }, { @@ -126,10 +126,18 @@ "expected_behavior": "Git probe reports refs, branches, worktrees, index, commits, and cleanup", "id": "C16", "required": true, - "result": "NOT_RUN", + "result": "BLOCKED", "source": "CONTRACT_DEFINED" } ], - "generated_at": "2026-07-12", + "generated_at": "2026-08-28", + "qualification_attempt": { + "date": "2026-08-28", + "deterministic_ci_commit": "acb1dd664d039ed6d8b3069b6e7c24be7646e559", + "deterministic_ci_run": 24, + "deterministic_ci_result": "PASS", + "live_codex_result": "BLOCKED", + "blocker": "No authenticated Codex runtime or codex executable is available in the qualification execution environment." + }, "release_gate": "Required capabilities must have committed sanitized REPRODUCED evidence before production readiness." } diff --git a/docs/CODEX_CAPABILITY_BASELINE.md b/docs/CODEX_CAPABILITY_BASELINE.md index 5cf917a..fdaff1e 100644 --- a/docs/CODEX_CAPABILITY_BASELINE.md +++ b/docs/CODEX_CAPABILITY_BASELINE.md @@ -1,7 +1,7 @@ # PlanAnvil — Codex Capability Baseline -> **Baseline version:** 2.1 -> **Review date:** 2026-07-12 +> **Baseline version:** 2.2 +> **Review date:** 2026-08-28 > **Purpose:** define current expected Codex behavior and reproducible release tests. > **Authority:** current official OpenAI documentation has precedence. @@ -27,11 +27,11 @@ BLOCKED `CONTRACT_DEFINED` means the behavior is enforced by PlanAnvil's deterministic implementation. -`REPRODUCED` requires a committed, sanitized evidence package. Informal observations and remembered runtime behavior are not valid architecture inputs. +`REPRODUCED` requires a committed, sanitized evidence package. Informal observations, documentation review alone, deterministic unit tests alone, and remembered runtime behavior are not sufficient live Codex evidence. ## 2. Required evidence package -Each test directory contains: +Each reproduced test directory contains: ```text CXX/ @@ -54,26 +54,28 @@ Do not commit session transcripts, credentials, private paths, unrelated Git dat | ID | Expected behavior | Source | Evidence | Contract decision | |---|---|---|---|---| -| C01 | Repository skills are discovered from `.agents/skills` | DOCUMENTED | NOT_RUN | Use `.agents/skills/plan-anvil` | -| C02 | `allow_implicit_invocation: false` disables implicit invocation | DOCUMENTED | NOT_RUN | Require explicit `$plan-anvil` activation | -| C03 | `agents.max_depth = 1` permits direct children and prevents deeper descendants | DOCUMENTED | NOT_RUN | Use depth `1` for the flat topology and audit actual evidence as an additional control | -| C04 | Nested agents are available when configured depth permits them | DOCUMENTED | NOT_RUN | Generated execution remains deliberately flat | -| C05 | Planning-agent handoffs use explicit files and hashes | CONTRACT_DEFINED | NOT_RUN | Reject missing, stale or out-of-root briefs | -| C06 | `PreToolUse` covers supported calls but not every equivalent path | DOCUMENTED | NOT_RUN | Hooks plus mandatory postcondition validation | -| C07 | The Git guard rejects the configured unsafe-command corpus | CONTRACT_DEFINED | NOT_RUN | Git postconditions remain mandatory | -| C08 | `PreCompact` can stop compaction | DOCUMENTED | NOT_RUN | Delay only until a valid checkpoint exists | -| C09 | Compaction is allowed after checkpoint creation without a permanent stop loop | CONTRACT_DEFINED | NOT_RUN | Checkpoint, allow, recover and reconcile | -| C10 | `PostCompact` and `SessionStart` can provide recovery context | DOCUMENTED | NOT_RUN | Inject only a recovery pointer | -| C11 | Project instructions follow documented directory scope and precedence | DOCUMENTED | NOT_RUN | Explicitly map affected instructions | -| C12 | `project_doc_max_bytes` may truncate automatic instruction loading | DOCUMENTED | NOT_RUN | Read, size and hash complete files explicitly | -| C13 | `SubagentStart` can add context but is not a startup blocker | DOCUMENTED | NOT_RUN | Context and audit only | -| C14 | Planning isolation preserves the source branch, SHA, index and files | CONTRACT_DEFINED | NOT_RUN | Planning worktree isolation is mandatory | -| C15 | Blind review is immutable and detects seeded contract defects | CONTRACT_DEFINED | NOT_RUN | Hash review before separate comparison | -| C16 | The Git probe accurately reports refs, branches, worktrees, index, commits and cleanup | CONTRACT_DEFINED | NOT_RUN | No artifact generation before required Git capabilities pass | +| C01 | Repository skills are discovered from `.agents/skills` | DOCUMENTED | BLOCKED | Use `.agents/skills/plan-anvil` | +| C02 | `allow_implicit_invocation: false` disables implicit invocation while explicit `$skill` invocation remains available | DOCUMENTED | BLOCKED | Require explicit `$plan-anvil` activation | +| C03 | Generated execution contracts require an explicit flat direct-child topology and do not rely on a Codex nesting-depth setting | CONTRACT_DEFINED | BLOCKED | Enforce flat topology deterministically in `PLAN.md` validation | +| C04 | Codex subagent workflows are controlled by current `[agents]` enablement/concurrency settings; PlanAnvil does not require nested descendants | DOCUMENTED | BLOCKED | Keep generated execution deliberately flat | +| C05 | Required reviewer handoffs use explicit immutable files and hashes | CONTRACT_DEFINED | BLOCKED | Reject missing, stale or out-of-root review inputs | +| C06 | `PreToolUse` covers supported local function-tool paths but not every equivalent path | DOCUMENTED | BLOCKED | Hooks plus mandatory postcondition validation | +| C07 | The Git guard rejects the configured unsafe-command corpus | CONTRACT_DEFINED | BLOCKED | Git postconditions remain mandatory | +| C08 | `PreCompact` can stop compaction | DOCUMENTED | BLOCKED | Delay only until a valid checkpoint exists | +| C09 | Compaction is allowed after checkpoint creation without a permanent stop loop | CONTRACT_DEFINED | BLOCKED | Checkpoint, allow, recover and reconcile | +| C10 | `PostCompact` and `SessionStart` can provide recovery context | DOCUMENTED | BLOCKED | Inject only a recovery pointer | +| C11 | Project instructions follow documented directory scope and precedence | DOCUMENTED | BLOCKED | Explicitly map affected instructions | +| C12 | `project_doc_max_bytes` can truncate automatic instruction loading | DOCUMENTED | BLOCKED | Read, size and hash complete files explicitly | +| C13 | `SubagentStart` can add context but `continue: false` does not stop subagent startup | DOCUMENTED | BLOCKED | Context and audit only | +| C14 | Planning isolation preserves the source branch, SHA, index and files | CONTRACT_DEFINED | BLOCKED | Planning worktree isolation is mandatory | +| C15 | Blind review is immutable and detects seeded contract defects | CONTRACT_DEFINED | BLOCKED | Hash review before separate comparison | +| C16 | The Git probe accurately reports refs, branches, worktrees, index, commits and cleanup | CONTRACT_DEFINED | BLOCKED | No artifact generation before required Git capabilities pass | ## 4. Release gate -C01, C02, C03 and C06 through C16 must be `REPRODUCED` before production readiness. C04 and C05 are required when the corresponding agent features are enabled. +C01, C02, C03 and C05 through C16 must be `REPRODUCED` before production readiness. C04 is informational for PlanAnvil 2.2 because generated execution deliberately forbids nested descendants. + +The 2026-08-28 qualification attempt is `BLOCKED` for live Codex reproduction because the available execution environment does not expose an authenticated Codex runtime or `codex` executable. Deterministic contract tests remain useful supporting evidence but cannot substitute for the required live packages. ## 5. Test requirements @@ -83,11 +85,11 @@ Verify nested-directory discovery, explicit activation, disabled implicit activa ### Agent topology -Run with depth values `0`, `1` and `2`. Record the complete event tree and assert the behavior defined by current official documentation. Agent evidence is audited before a quality gate is accepted. +Use current documented agent configuration (`agents.enabled` and `agents.max_concurrent_threads_per_session`). Record the event tree for required reviewer/profiler dispatch. Do not rely on undocumented nesting-depth configuration. Separately assert that generated execution contracts require a flat direct-child topology. ### File handoff -Verify explicit brief paths, expected hashes and rejection of missing, stale or escaped paths. +Verify explicit review/profile brief paths, expected hashes and rejection of missing, stale or escaped paths. ### Hooks and Git guards @@ -113,7 +115,17 @@ Use seeded defects including missing rollback, uncovered requirements, risks wit Record separate outcomes for ordinary file writes, temporary refs, branches, linked worktrees, index updates, commits, signing, repository hooks and cleanup under every supported permission mode. -## 6. Architecture rule +## 6. Current official documentation checked on 2026-08-28 + +- Skills: `https://developers.openai.com/codex/skills` +- Configuration reference: `https://developers.openai.com/codex/config-reference` +- Subagents: `https://developers.openai.com/codex/subagents` +- Hooks: `https://developers.openai.com/codex/hooks` +- AGENTS.md: `https://developers.openai.com/codex/guides/agents-md` + +Notable drift from baseline 2.1: current subagent documentation exposes `agents.enabled` and `agents.max_concurrent_threads_per_session`; it does not document `agents.max_depth`. `agents.max_threads` is retained only as a legacy concurrency alias. PlanAnvil therefore enforces flat topology in its generated execution contract instead of relying on a runtime depth setting. + +## 7. Architecture rule An active architecture decision may rely only on: @@ -122,7 +134,7 @@ An active architecture decision may rely only on: A disagreement blocks the affected release work until the current behavior is verified and the contract is corrected. -## 7. Evidence retention +## 8. Evidence retention Sanitize usernames, home directories, private repository URLs, session identifiers, credentials and proprietary source content. diff --git a/docs/CODEX_CAPABILITY_QUALIFICATION_2026-08-28.md b/docs/CODEX_CAPABILITY_QUALIFICATION_2026-08-28.md new file mode 100644 index 0000000..29b026d --- /dev/null +++ b/docs/CODEX_CAPABILITY_QUALIFICATION_2026-08-28.md @@ -0,0 +1,54 @@ +# Codex capability qualification — 2026-08-28 + +## Outcome + +A sequential C01–C16 qualification attempt was performed after restoring green CI on `main`. + +- Deterministic baseline: GitHub Actions run #24 on commit `acb1dd664d039ed6d8b3069b6e7c24be7646e559` passed all 64 tests on Ubuntu, macOS and Windows. +- Documentation baseline: current official OpenAI Codex documentation was reviewed on 2026-08-28. +- Live Codex runtime: **BLOCKED**. The available execution environment has no `codex` executable and no authenticated Codex runtime exposed through the available connectors. +- Release decision: **NO-GO**. No capability is labeled `REPRODUCED` without its required committed sanitized live evidence package. + +## Sequential results + +| ID | Docs/contract check | Deterministic support | Live result | Notes | +|---|---|---|---|---| +| C01 | PASS — current docs scan repository `.agents/skills` from CWD toward repository root | repository layout present | BLOCKED | Requires live skill discovery evidence | +| C02 | PASS — current docs define `allow_implicit_invocation: false` as disabling implicit invocation while preserving explicit `$skill` | `test_skill_metadata_requires_explicit_activation` PASS | BLOCKED | Requires implicit-vs-explicit runtime prompts | +| C03 | BASELINE DRIFT CORRECTED — current docs do not document `agents.max_depth` | execution-contract flat topology validation PASS; legacy-depth-only acceptance removed | BLOCKED | Requires live agent event-tree evidence consistent with flat PlanAnvil contract | +| C04 | PASS — current docs expose subagent enablement/concurrency, not a nesting-depth knob | n/a; nested descendants are not part of PlanAnvil execution contract | BLOCKED | Informational/non-gating in baseline 2.2 | +| C05 | CONTRACT PASS — review bundle is explicit, immutable and hash-bound | review integrity and immutable write tests PASS | BLOCKED | Mandatory reviewer handoff still needs live Codex evidence | +| C06 | PASS — docs confirm supported local function-tool coverage and explicit exceptions | hook guard tests PASS | BLOCKED | Needs live supported and non-intercepted tool-path evidence | +| C07 | CONTRACT PASS | destructive Git and hook-diagnostic tests PASS | BLOCKED | Needs committed capability package | +| C08 | PASS — docs confirm `PreCompact` can stop before compaction | checkpoint-required hook test PASS | BLOCKED | Needs live manual/auto compaction evidence | +| C09 | CONTRACT PASS | valid checkpoint allows compaction test PASS | BLOCKED | Needs live no-loop compaction/recovery evidence | +| C10 | PASS — docs confirm `PostCompact` and `SessionStart` context outputs | recovery hook behavior covered by tests | BLOCKED | Needs live post-compaction continuation evidence | +| C11 | PASS — docs confirm root-to-CWD scope, override/fallback precedence and merge order | instruction map/conflict tests PASS | BLOCKED | Needs live instruction-source evidence | +| C12 | PASS — docs define `project_doc_max_bytes` as instruction-chain size limit | explicit hash/freshness tests PASS | BLOCKED | Needs live truncation fixture | +| C13 | PASS — docs confirm `SubagentStart` context and that `continue: false` does not stop startup | hook implementation compiles/tests | BLOCKED | Needs live subagent start evidence | +| C14 | CONTRACT PASS | planning worktree isolation and source preservation tests PASS | BLOCKED | Needs committed capability package | +| C15 | CONTRACT PASS | tamper, immutable blind review and independent author-role tests PASS | BLOCKED | Needs live reviewer run with seeded defects | +| C16 | CONTRACT PASS | reversible Git probe, cleanup and hook classification tests PASS | BLOCKED | Needs live matrix under supported Codex permission modes | + +## Documentation checked + +- `https://developers.openai.com/codex/skills` +- `https://developers.openai.com/codex/config-reference` +- `https://developers.openai.com/codex/subagents` +- `https://developers.openai.com/codex/hooks` +- `https://developers.openai.com/codex/guides/agents-md` + +## Baseline correction + +Baseline 2.1 relied on `agents.max_depth = 1`. Current Codex documentation no longer documents that setting. It documents `agents.enabled` and `agents.max_concurrent_threads_per_session`; `agents.max_threads` remains only a legacy concurrency alias. + +PlanAnvil 2.2 therefore: + +1. uses the canonical concurrency setting; +2. does not claim runtime depth enforcement; +3. requires generated execution contracts to state an explicit flat direct-child topology; +4. rejects a plan that relies only on the legacy `agents.max_depth = 1` phrase. + +## Remaining release blocker + +Run the live C01–C03 and C05–C16 fixtures in an authenticated current Codex runtime and commit the complete sanitized evidence package for every required capability. Only then may `capabilities/index.json` move those entries from `BLOCKED` to `REPRODUCED`. From 7059fce8e1f02eff9804f0b82083cb128cb67819 Mon Sep 17 00:00:00 2001 From: KeyffMS <124252104+KeyffMS@users.noreply.github.com> Date: Fri, 28 Aug 2026 14:13:54 +0200 Subject: [PATCH 2/2] Record C01-C16 qualification blockers --- capabilities/C01/README.md | 9 ++++++--- capabilities/C02/README.md | 10 +++++++--- capabilities/C03/README.md | 12 ++++++++---- capabilities/C04/README.md | 11 +++++++---- capabilities/C05/README.md | 11 +++++++---- capabilities/C06/README.md | 10 +++++++--- capabilities/C07/README.md | 7 +++++-- capabilities/C08/README.md | 10 +++++++--- capabilities/C09/README.md | 9 ++++++--- capabilities/C10/README.md | 10 +++++++--- capabilities/C11/README.md | 8 ++++++-- capabilities/C12/README.md | 10 +++++++--- capabilities/C13/README.md | 10 +++++++--- capabilities/C14/README.md | 9 ++++++--- capabilities/C15/README.md | 7 +++++-- capabilities/C16/README.md | 9 ++++++--- 16 files changed, 104 insertions(+), 48 deletions(-) diff --git a/capabilities/C01/README.md b/capabilities/C01/README.md index e00e844..eba048c 100644 --- a/capabilities/C01/README.md +++ b/capabilities/C01/README.md @@ -1,8 +1,11 @@ # C01 — Capability evidence -- Expected behavior: Repository skills are discovered from .agents/skills. +- Expected behavior: Repository skills are discovered from `.agents/skills`. - Source: `DOCUMENTED` - Release-gating: `yes` -- Current result: `NOT_RUN` +- Current result: `BLOCKED` +- Qualification attempt: `2026-08-28` +- Documentation check: `PASS` against current official Codex skills documentation. +- Live blocker: no authenticated Codex runtime or `codex` executable is available in the qualification environment. -Do not change the result to `REPRODUCED` until this directory contains the complete sanitized package defined in `capabilities/README.md`. Record the exact Codex version, model slug, operating system, permission mode, project trust, fixture commit, setup, cleanup, expected result, actual sanitized result, evaluation, and hashes. +Do not change the result to `REPRODUCED` until this directory contains the complete sanitized package defined in `capabilities/README.md`. diff --git a/capabilities/C02/README.md b/capabilities/C02/README.md index af19922..bf81a48 100644 --- a/capabilities/C02/README.md +++ b/capabilities/C02/README.md @@ -1,8 +1,12 @@ # C02 — Capability evidence -- Expected behavior: allow_implicit_invocation false disables implicit invocation. +- Expected behavior: `allow_implicit_invocation: false` disables implicit invocation while explicit `$skill` invocation remains available. - Source: `DOCUMENTED` - Release-gating: `yes` -- Current result: `NOT_RUN` +- Current result: `BLOCKED` +- Qualification attempt: `2026-08-28` +- Documentation check: `PASS`; repository metadata is configured for explicit-only activation. +- Deterministic support: `test_skill_metadata_requires_explicit_activation` passed in GitHub Actions run #24. +- Live blocker: no authenticated Codex runtime is available for implicit-vs-explicit prompt trials. -Do not change the result to `REPRODUCED` until this directory contains the complete sanitized package defined in `capabilities/README.md`. Record the exact Codex version, model slug, operating system, permission mode, project trust, fixture commit, setup, cleanup, expected result, actual sanitized result, evaluation, and hashes. +Do not change the result to `REPRODUCED` until the complete sanitized live package exists. diff --git a/capabilities/C03/README.md b/capabilities/C03/README.md index da64c39..16abd31 100644 --- a/capabilities/C03/README.md +++ b/capabilities/C03/README.md @@ -1,8 +1,12 @@ # C03 — Capability evidence -- Expected behavior: agents.max_depth 1 permits direct children and prevents deeper descendants. -- Source: `DOCUMENTED` +- Expected behavior: Generated execution contracts require an explicit flat direct-child topology without relying on a Codex nesting-depth setting. +- Source: `CONTRACT_DEFINED` - Release-gating: `yes` -- Current result: `NOT_RUN` +- Current result: `BLOCKED` +- Qualification attempt: `2026-08-28` +- Baseline correction: current Codex documentation does not document `agents.max_depth`; PlanAnvil now enforces flat topology in deterministic contract validation. +- Deterministic support: execution-contract topology tests passed in run #24; qualification adds a regression rejecting legacy-depth-only wording. +- Live blocker: no authenticated Codex runtime is available to capture the required subagent event tree. -Do not change the result to `REPRODUCED` until this directory contains the complete sanitized package defined in `capabilities/README.md`. Record the exact Codex version, model slug, operating system, permission mode, project trust, fixture commit, setup, cleanup, expected result, actual sanitized result, evaluation, and hashes. +Do not change the result to `REPRODUCED` until the complete sanitized live package exists. diff --git a/capabilities/C04/README.md b/capabilities/C04/README.md index 87a6c7d..4ae9c4c 100644 --- a/capabilities/C04/README.md +++ b/capabilities/C04/README.md @@ -1,8 +1,11 @@ # C04 — Capability evidence -- Expected behavior: Nested agents are available when configured depth permits them. +- Expected behavior: Codex subagent workflows use current agent enablement/concurrency settings; PlanAnvil does not require nested descendants. - Source: `DOCUMENTED` -- Release-gating: `conditional` -- Current result: `NOT_RUN` +- Release-gating: `no` for baseline 2.2 +- Current result: `BLOCKED` +- Qualification attempt: `2026-08-28` +- Documentation check: `PASS`; current docs expose `agents.enabled` and `agents.max_concurrent_threads_per_session`, not a nesting-depth knob. +- Live blocker: no authenticated Codex runtime is available for subagent spawning evidence. -Do not change the result to `REPRODUCED` until this directory contains the complete sanitized package defined in `capabilities/README.md`. Record the exact Codex version, model slug, operating system, permission mode, project trust, fixture commit, setup, cleanup, expected result, actual sanitized result, evaluation, and hashes. +This capability is informational for PlanAnvil 2.2 because generated execution deliberately requires a flat direct-child topology. diff --git a/capabilities/C05/README.md b/capabilities/C05/README.md index 2e0edfc..69067df 100644 --- a/capabilities/C05/README.md +++ b/capabilities/C05/README.md @@ -1,8 +1,11 @@ # C05 — Capability evidence -- Expected behavior: Planning-agent handoffs use explicit files and hashes. +- Expected behavior: Required reviewer handoffs use explicit immutable files and hashes. - Source: `CONTRACT_DEFINED` -- Release-gating: `conditional` -- Current result: `NOT_RUN` +- Release-gating: `yes` +- Current result: `BLOCKED` +- Qualification attempt: `2026-08-28` +- Deterministic support: review-bundle integrity, immutable-write and tamper-detection tests passed in run #24. +- Live blocker: the mandatory fresh reviewer handoff cannot be exercised without an authenticated Codex runtime. -Do not change the result to `REPRODUCED` until this directory contains the complete sanitized package defined in `capabilities/README.md`. Record the exact Codex version, model slug, operating system, permission mode, project trust, fixture commit, setup, cleanup, expected result, actual sanitized result, evaluation, and hashes. +Do not change the result to `REPRODUCED` until the complete sanitized live package exists. diff --git a/capabilities/C06/README.md b/capabilities/C06/README.md index eb5df6e..2076f53 100644 --- a/capabilities/C06/README.md +++ b/capabilities/C06/README.md @@ -1,8 +1,12 @@ # C06 — Capability evidence -- Expected behavior: PreToolUse covers supported calls but not every equivalent path. +- Expected behavior: `PreToolUse` covers supported local function-tool paths but not every equivalent path. - Source: `DOCUMENTED` - Release-gating: `yes` -- Current result: `NOT_RUN` +- Current result: `BLOCKED` +- Qualification attempt: `2026-08-28` +- Documentation check: `PASS`; current hooks documentation lists supported shell, patch, MCP and local-function paths plus hosted/specialized exceptions. +- Deterministic support: hook guard tests passed in run #24. +- Live blocker: no authenticated Codex runtime is available to capture supported and bypass-path hook events. -Do not change the result to `REPRODUCED` until this directory contains the complete sanitized package defined in `capabilities/README.md`. Record the exact Codex version, model slug, operating system, permission mode, project trust, fixture commit, setup, cleanup, expected result, actual sanitized result, evaluation, and hashes. +Do not change the result to `REPRODUCED` until the complete sanitized live package exists. diff --git a/capabilities/C07/README.md b/capabilities/C07/README.md index f3f89a1..5f1ec50 100644 --- a/capabilities/C07/README.md +++ b/capabilities/C07/README.md @@ -3,6 +3,9 @@ - Expected behavior: The Git guard rejects the configured unsafe-command corpus. - Source: `CONTRACT_DEFINED` - Release-gating: `yes` -- Current result: `NOT_RUN` +- Current result: `BLOCKED` +- Qualification attempt: `2026-08-28` +- Deterministic support: destructive-Git denial and hook-diagnostic classification tests passed in run #24. +- Live blocker: no authenticated Codex runtime is available to capture the required live hook decisions and postconditions. -Do not change the result to `REPRODUCED` until this directory contains the complete sanitized package defined in `capabilities/README.md`. Record the exact Codex version, model slug, operating system, permission mode, project trust, fixture commit, setup, cleanup, expected result, actual sanitized result, evaluation, and hashes. +Do not change the result to `REPRODUCED` until the complete sanitized live package exists. diff --git a/capabilities/C08/README.md b/capabilities/C08/README.md index abae5ed..bd3d72d 100644 --- a/capabilities/C08/README.md +++ b/capabilities/C08/README.md @@ -1,8 +1,12 @@ # C08 — Capability evidence -- Expected behavior: PreCompact can stop compaction. +- Expected behavior: `PreCompact` can stop compaction. - Source: `DOCUMENTED` - Release-gating: `yes` -- Current result: `NOT_RUN` +- Current result: `BLOCKED` +- Qualification attempt: `2026-08-28` +- Documentation check: `PASS`; current hooks documentation states `continue: false` stops before compaction. +- Deterministic support: checkpoint-required compaction tests passed in run #24. +- Live blocker: no authenticated Codex runtime is available for manual and automatic compaction trials. -Do not change the result to `REPRODUCED` until this directory contains the complete sanitized package defined in `capabilities/README.md`. Record the exact Codex version, model slug, operating system, permission mode, project trust, fixture commit, setup, cleanup, expected result, actual sanitized result, evaluation, and hashes. +Do not change the result to `REPRODUCED` until the complete sanitized live package exists. diff --git a/capabilities/C09/README.md b/capabilities/C09/README.md index 3dacf2e..9d1c919 100644 --- a/capabilities/C09/README.md +++ b/capabilities/C09/README.md @@ -1,8 +1,11 @@ # C09 — Capability evidence -- Expected behavior: Compaction is allowed after checkpoint creation without a permanent loop. +- Expected behavior: Compaction is allowed after checkpoint creation without a permanent stop loop. - Source: `CONTRACT_DEFINED` - Release-gating: `yes` -- Current result: `NOT_RUN` +- Current result: `BLOCKED` +- Qualification attempt: `2026-08-28` +- Deterministic support: valid checkpoint acceptance and recovery tests passed in run #24. +- Live blocker: no authenticated Codex runtime is available to demonstrate stop → checkpoint → compact → recover without a loop. -Do not change the result to `REPRODUCED` until this directory contains the complete sanitized package defined in `capabilities/README.md`. Record the exact Codex version, model slug, operating system, permission mode, project trust, fixture commit, setup, cleanup, expected result, actual sanitized result, evaluation, and hashes. +Do not change the result to `REPRODUCED` until the complete sanitized live package exists. diff --git a/capabilities/C10/README.md b/capabilities/C10/README.md index 47eea9a..0b9782b 100644 --- a/capabilities/C10/README.md +++ b/capabilities/C10/README.md @@ -1,8 +1,12 @@ # C10 — Capability evidence -- Expected behavior: PostCompact and SessionStart can provide recovery context. +- Expected behavior: `PostCompact` and `SessionStart` can provide recovery context. - Source: `DOCUMENTED` - Release-gating: `yes` -- Current result: `NOT_RUN` +- Current result: `BLOCKED` +- Qualification attempt: `2026-08-28` +- Documentation check: `PASS`; current hooks documentation supports model-visible context for these events and compact-source continuation. +- Deterministic support: recovery hook tests passed in run #24. +- Live blocker: no authenticated Codex runtime is available for post-compaction continuation evidence. -Do not change the result to `REPRODUCED` until this directory contains the complete sanitized package defined in `capabilities/README.md`. Record the exact Codex version, model slug, operating system, permission mode, project trust, fixture commit, setup, cleanup, expected result, actual sanitized result, evaluation, and hashes. +Do not change the result to `REPRODUCED` until the complete sanitized live package exists. diff --git a/capabilities/C11/README.md b/capabilities/C11/README.md index 738c931..4c9a7e8 100644 --- a/capabilities/C11/README.md +++ b/capabilities/C11/README.md @@ -3,6 +3,10 @@ - Expected behavior: Project instructions follow documented directory scope and precedence. - Source: `DOCUMENTED` - Release-gating: `yes` -- Current result: `NOT_RUN` +- Current result: `BLOCKED` +- Qualification attempt: `2026-08-28` +- Documentation check: `PASS`; current docs define root-to-CWD discovery, `AGENTS.override.md` precedence, fallbacks and nearest-guidance override behavior. +- Deterministic support: instruction-map and conflict tests passed in run #24. +- Live blocker: no authenticated Codex runtime is available to record actual instruction sources. -Do not change the result to `REPRODUCED` until this directory contains the complete sanitized package defined in `capabilities/README.md`. Record the exact Codex version, model slug, operating system, permission mode, project trust, fixture commit, setup, cleanup, expected result, actual sanitized result, evaluation, and hashes. +Do not change the result to `REPRODUCED` until the complete sanitized live package exists. diff --git a/capabilities/C12/README.md b/capabilities/C12/README.md index 29a1141..d6ff1c0 100644 --- a/capabilities/C12/README.md +++ b/capabilities/C12/README.md @@ -1,8 +1,12 @@ # C12 — Capability evidence -- Expected behavior: project_doc_max_bytes may truncate automatic instruction loading. +- Expected behavior: `project_doc_max_bytes` can truncate automatic instruction loading. - Source: `DOCUMENTED` - Release-gating: `yes` -- Current result: `NOT_RUN` +- Current result: `BLOCKED` +- Qualification attempt: `2026-08-28` +- Documentation check: `PASS`; current configuration/AGENTS documentation defines the combined instruction byte limit. +- Deterministic support: explicit read/hash freshness tests passed in run #24. +- Live blocker: no authenticated Codex runtime is available for a truncation fixture. -Do not change the result to `REPRODUCED` until this directory contains the complete sanitized package defined in `capabilities/README.md`. Record the exact Codex version, model slug, operating system, permission mode, project trust, fixture commit, setup, cleanup, expected result, actual sanitized result, evaluation, and hashes. +Do not change the result to `REPRODUCED` until the complete sanitized live package exists. diff --git a/capabilities/C13/README.md b/capabilities/C13/README.md index 961e8db..28c8a53 100644 --- a/capabilities/C13/README.md +++ b/capabilities/C13/README.md @@ -1,8 +1,12 @@ # C13 — Capability evidence -- Expected behavior: SubagentStart can add context but is not a startup blocker. +- Expected behavior: `SubagentStart` can add context but `continue: false` does not stop subagent startup. - Source: `DOCUMENTED` - Release-gating: `yes` -- Current result: `NOT_RUN` +- Current result: `BLOCKED` +- Qualification attempt: `2026-08-28` +- Documentation check: `PASS` against current Codex hooks documentation. +- Deterministic support: hook code compiles and the full suite passed in run #24. +- Live blocker: no authenticated Codex runtime is available to spawn a subagent and capture the event. -Do not change the result to `REPRODUCED` until this directory contains the complete sanitized package defined in `capabilities/README.md`. Record the exact Codex version, model slug, operating system, permission mode, project trust, fixture commit, setup, cleanup, expected result, actual sanitized result, evaluation, and hashes. +Do not change the result to `REPRODUCED` until the complete sanitized live package exists. diff --git a/capabilities/C14/README.md b/capabilities/C14/README.md index 42a5676..7318300 100644 --- a/capabilities/C14/README.md +++ b/capabilities/C14/README.md @@ -1,8 +1,11 @@ # C14 — Capability evidence -- Expected behavior: Planning isolation preserves source branch, SHA, index, and files. +- Expected behavior: Planning isolation preserves the source branch, SHA, index and files. - Source: `CONTRACT_DEFINED` - Release-gating: `yes` -- Current result: `NOT_RUN` +- Current result: `BLOCKED` +- Qualification attempt: `2026-08-28` +- Deterministic support: planning-worktree isolation, source-preservation and destination-safety tests passed in run #24. +- Live blocker: the repository policy requires a complete committed capability package tied to an actual Codex run. -Do not change the result to `REPRODUCED` until this directory contains the complete sanitized package defined in `capabilities/README.md`. Record the exact Codex version, model slug, operating system, permission mode, project trust, fixture commit, setup, cleanup, expected result, actual sanitized result, evaluation, and hashes. +Do not change the result to `REPRODUCED` until the complete sanitized live package exists. diff --git a/capabilities/C15/README.md b/capabilities/C15/README.md index 1ca062c..fbbfa6f 100644 --- a/capabilities/C15/README.md +++ b/capabilities/C15/README.md @@ -3,6 +3,9 @@ - Expected behavior: Blind review is immutable and detects seeded contract defects. - Source: `CONTRACT_DEFINED` - Release-gating: `yes` -- Current result: `NOT_RUN` +- Current result: `BLOCKED` +- Qualification attempt: `2026-08-28` +- Deterministic support: review tamper detection, immutable publication and independent author-role tests passed in run #24. +- Live blocker: no authenticated Codex runtime is available for a fresh blind reviewer against seeded defects. -Do not change the result to `REPRODUCED` until this directory contains the complete sanitized package defined in `capabilities/README.md`. Record the exact Codex version, model slug, operating system, permission mode, project trust, fixture commit, setup, cleanup, expected result, actual sanitized result, evaluation, and hashes. +Do not change the result to `REPRODUCED` until the complete sanitized live package exists. diff --git a/capabilities/C16/README.md b/capabilities/C16/README.md index 430a1d6..77fabfb 100644 --- a/capabilities/C16/README.md +++ b/capabilities/C16/README.md @@ -1,8 +1,11 @@ # C16 — Capability evidence -- Expected behavior: Git probe reports refs, branches, worktrees, index, commits, and cleanup. +- Expected behavior: The Git probe reports refs, branches, worktrees, index, commits and cleanup accurately. - Source: `CONTRACT_DEFINED` - Release-gating: `yes` -- Current result: `NOT_RUN` +- Current result: `BLOCKED` +- Qualification attempt: `2026-08-28` +- Deterministic support: reversible probe, source preservation, cleanup and hook-failure classification tests passed in run #24. +- Live blocker: no authenticated Codex runtime is available to execute the required matrix under supported Codex permission modes. -Do not change the result to `REPRODUCED` until this directory contains the complete sanitized package defined in `capabilities/README.md`. Record the exact Codex version, model slug, operating system, permission mode, project trust, fixture commit, setup, cleanup, expected result, actual sanitized result, evaluation, and hashes. +Do not change the result to `REPRODUCED` until the complete sanitized live package exists.