Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 1 addition & 4 deletions .agents/skills/plan-anvil/scripts/execution_contract.py
Original file line number Diff line number Diff line change
Expand Up @@ -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",
Expand Down
5 changes: 5 additions & 0 deletions .agents/skills/plan-anvil/tests/test_execution_contract.py
Original file line number Diff line number Diff line change
Expand Up @@ -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(
Expand Down
4 changes: 2 additions & 2 deletions .codex/config.toml
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
[agents]
max_threads = 4
max_depth = 1
enabled = true
max_concurrent_threads_per_session = 4
7 changes: 7 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down
9 changes: 6 additions & 3 deletions capabilities/C01/README.md
Original file line number Diff line number Diff line change
@@ -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`.
10 changes: 7 additions & 3 deletions capabilities/C02/README.md
Original file line number Diff line number Diff line change
@@ -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.
12 changes: 8 additions & 4 deletions capabilities/C03/README.md
Original file line number Diff line number Diff line change
@@ -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.
11 changes: 7 additions & 4 deletions capabilities/C04/README.md
Original file line number Diff line number Diff line change
@@ -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.
11 changes: 7 additions & 4 deletions capabilities/C05/README.md
Original file line number Diff line number Diff line change
@@ -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.
10 changes: 7 additions & 3 deletions capabilities/C06/README.md
Original file line number Diff line number Diff line change
@@ -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.
7 changes: 5 additions & 2 deletions capabilities/C07/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -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.
10 changes: 7 additions & 3 deletions capabilities/C08/README.md
Original file line number Diff line number Diff line change
@@ -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.
9 changes: 6 additions & 3 deletions capabilities/C09/README.md
Original file line number Diff line number Diff line change
@@ -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.
10 changes: 7 additions & 3 deletions capabilities/C10/README.md
Original file line number Diff line number Diff line change
@@ -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.
8 changes: 6 additions & 2 deletions capabilities/C11/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -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.
10 changes: 7 additions & 3 deletions capabilities/C12/README.md
Original file line number Diff line number Diff line change
@@ -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.
10 changes: 7 additions & 3 deletions capabilities/C13/README.md
Original file line number Diff line number Diff line change
@@ -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.
9 changes: 6 additions & 3 deletions capabilities/C14/README.md
Original file line number Diff line number Diff line change
@@ -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.
7 changes: 5 additions & 2 deletions capabilities/C15/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -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.
9 changes: 6 additions & 3 deletions capabilities/C16/README.md
Original file line number Diff line number Diff line change
@@ -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.
Loading
Loading