Skip to content

Roadmap and Agentic Workflow

Sasha Lopashev edited this page Jul 19, 2026 · 65 revisions

Roadmap and Agentic Workflow

The roadmap is a live dependency graph, not a flat backlog. Every managed issue has one milestone, one status/priority/kind/risk, at least one area, one concurrency declaration, test/evidence criteria, documentation impact, and GitHub-native blocker relationships. Native dependencies are authoritative; each issue body mirrors them for humans.

Four phases

Phase Outcome Live milestone Current state
1 Complete executable self-hosted behavior over the minimal kernel Phase 1 Required CI, protected delivery, generalized evaluator #15, self-hosted any #16, none #17, causal chain #18, and unary gate #19 are implemented; cross-form conformance #20 is ready
2 Make coding-agent evidence reproducible and executable in-session Phase 2 Pilots 001–005 merged; Pilot 006 #21 claimed; capability-bounded verifier runner #23 and deterministic evidence mapping #24 merged; in-session adapters #27 remain blocked by #25
3 Compose and enforce monotonic organization/user policy Phase 3 The complete no-waiver slice is merged through #38 layered-policy conformance; waiver semantics #39 are next
4 Add safe custom syntax and presentation layouts Phase 4 Safe semantics #41, preamble selection #42, typed models #43, and token lowering #44 are merged; inheritance #45, formatting #46, and adversarial conformance #47 are ready

Current claimable queue

Priority is considered only among issues with no open native blockers and an available concurrency token.

The complete delivery-safety foundation, generalized reducer evaluator, self-hosted any/none/chain/gate, capability-bounded verifier runner with deterministic evidence mapping, the complete no-waiver policy path, and the safe profile contract through deterministic canonical-token lowering are merged. The coordinator should select the highest-priority ready issue after native blocker and concurrency checks; #45 leads the Phase 4 queue, followed by #46 and #47, then #20 and #39.

Status and dependency rules

  • status:ready: open and every native blocker is closed.
  • status:claimed: authoritative issue/resource refs were atomically acquired.
  • status:blocked: at least one native blocker is open.
  • status:review: implementation is delivered and locks remain held through review.
  • status:done: merged, verified, and closed.
  • status:stale: a claim needs evidence-based recovery; it is not permission to steal a lock.

Blocked issues must not be started early. Closing a blocker promotes a dependent issue to ready only after its remaining blockers and resource capacity are rechecked.

Atomic claims

Labels, assignment, and comments are metadata, not locks. Cross-machine exclusion uses unique remote Git refs:

  • refs/heads/codex-locks/issues/<number> — one worker per issue.
  • refs/heads/codex-locks/mutex/<resource> — exclusive shared resource.
  • refs/heads/codex-locks/semaphore/<resource>/<slot> — bounded capacity, slots 1..N only.

The coordinator creates all required resource refs and the issue ref atomically, then changes the label, assigns the worker, and comments with agent/task, timestamp, branch, worktree, scope, ref paths, exact SHAs, and unique nonces. A worker keeps those refs through review.

Release is a compare-and-delete fenced by the acquired SHA. If the lease fails, ownership was lost: do not delete the newer ref. Stale recovery requires inspecting the claim comment, task, branch, worktree, PR, and recent activity, then documenting the decision.

Delivery loop

  1. Select the highest-priority ready issue whose concurrency token is available.
  2. Atomically claim it and make the metadata match the lock.
  3. Work red-first where practical; keep Rust models, CDDL, SEMANTICS, README, conformance fixtures, and wiki claims aligned.
  4. Run formatting, Clippy with warnings denied, all tests, release build, and issue-specific evidence.
  5. Open a linked PR; move the issue to status:review but retain all locks.
  6. Independently review the exact head SHA. Queue or merge only that green, unchanged head with --squash --match-head-commit <reviewed-head-sha>; GitHub rejects author approval and failed required checks keep auto-merge blocked.
  7. Close the issue, mark status:done, promote newly unblocked dependents, and release only the exact held refs with fenced deletion.

The reusable project loop is now repository-configured through AGENTS.md and .codex/project-profile.md. Those files are the executable operating contract; this page summarizes them, and live native issue dependencies remain authoritative.

Clone this wiki locally