Skip to content
Merged
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
24 changes: 13 additions & 11 deletions CONTRIBUTOR_TASKS.md
Original file line number Diff line number Diff line change
Expand Up @@ -79,10 +79,10 @@ parallel abstractions or a second source of truth.
| --- | --- | --- | --- |
| P0 | Wire caller-approved `validation_command` into self-reported completion | #3082 | Needs design |
| P0 | Turn fencing convergence: M7.1 parity fixtures and replay lens | #3074, RFC M7.1 | Available |
| P1 | Fresh-project `/loopx` onboarding regression fixture | #3092 / #3093 | Available |
| P1 | Security-boundary regression fixtures for the merged hardening fixes | #3137-#3140 | Available |
| P1 | Per-goal token/cost/duration dashboard projection | #3085 | Needs design |
| P1 | One budget-aware CLI output ergonomics slice | #2881 | Needs design |
| P2 | Release docs timeline v0.2.6 -> v0.4.4 | GH-C04 | Available |
| P2 | Release docs timeline v0.2.6 -> v0.4.5 | GH-C04 | Available |
| P2 | CLI ownership and hot-module extraction | GH-C06 | Available |

## Product Manager Cut
Expand Down Expand Up @@ -112,14 +112,15 @@ points:
| --- | --- | --- |
| Turn and settlement | Typed quota/Turn settlement is shipped for CLI and Codex App routes; task-lease CLI acquire routes through typed settlement (#3091), verified leases release when completion commits (#3040), cross-turn completion replay is fenced (#3049), and fine-grained turn mode landed (#3087). Fencing remote execution and terminal writeback (#3074) is under changes-requested review. | Add one replay-reuse or typed receipt readback negative fixture without a second settlement ledger, a model call, or double quota spend. |
| Effect program runtime | A shared typed Effect Program now drives quota, Turn, and task-lease settlement. The RFC roadmap and M7 status were refreshed (#3063), and the Dev Book course now teaches the current Effect Program runtime (#3097). The turn driver is the second real consumer of the typed settlement algebra. The scheduler remains outside settlement. | Provide M7.1 parity fixtures and a read-only replay lens. do not force pure decision logic into Kleisli form or extract a shared executor without shared execution ownership; do not build a shared interpreter/executor protocol before both adapters consume the same plan/receipt algebra. |
| Review quality | PR review now requires scope-fit evidence for production surface changes (#3090), and the review contract test carries scope-fit evidence (#3096). | Add synthetic conformance and negative cases around scope-fit evidence, causal chains, and exact-head review packets. |
| Review quality | PR review now requires scope-fit evidence for production surface changes (#3090), the execution contract carries four self-dev review lenses (#3123), and example-only PRs need durable smoke-value evidence (#3134). | Add synthetic conformance and negative cases around scope-fit evidence, causal chains, exact-head review packets, and durable-smoke-value claims. |
| Task leases | Typed task-lease CLI with preserved legacy error codes landed (#3095); on-disk hard leases surface in goal-channel projection (#3039); Turn fencing uses lease fences plus an append-only journal. | Extend lease adoption to one more host integration or add a transfer/overlap-write-scope fixture. Keep soft-claim routing and undeclared-lease authority unchanged. |
| Status, quota, monitors | Monitor and repeated-stall replans are hardened (#3089); compact scheduler-hint and heartbeat-prompt budgets were raised above the shipped `fallback_hint` size (#3062, #3068); hot-path budget and todo-detail cold-path smokes remain the reference. | Extend one measured performance, detail-readback, lock-timeout, or malformed-state case. Keep default output bounded and cold-path detail available. |
| Governance and productization | A synthetic visible-governance slice landed (#3086); decision-context evidence cursors settle (#3079); material and PR-program walkthroughs are approved (#3070, #3071); the homepage React rebuild (#3098) is under review. | Add one synthetic lifecycle walkthrough or missing negative fixture. Keep activation explicit and leave source bodies, draft bodies, review text, provider payloads, private locators, cursor state, and apply/publish authority outside public fixtures. |
| Status, quota, monitors | Monitor and repeated-stall replans are hardened (#3089); replan obligations carry novelty guidance (#3100, #3101, #3105, #3106), evidence-log reads require receipts with a failure-receipt escape (#3112, #3135), and replan reads are bound by obligation identity (#3144); compact scheduler-hint and heartbeat-prompt budgets were raised above the shipped `fallback_hint` size (#3062, #3068); hot-path budget and todo-detail cold-path smokes remain the reference. | Extend one measured performance, detail-readback, lock-timeout, malformed-state, or obligation-bound evidence-read case. Keep default output bounded and cold-path detail available. |
| Governance and productization | A synthetic visible-governance slice landed (#3086); decision-context evidence cursors settle (#3079); material and PR-program walkthroughs are approved (#3070, #3071); the React homepage rebuild (#3098) landed, and a goal-artifact lifecycle projection RFC (#3136) proposes the next read-model boundary. | Add one synthetic lifecycle walkthrough or missing negative fixture. Keep activation explicit and leave source bodies, draft bodies, review text, provider payloads, private locators, cursor state, and apply/publish authority outside public fixtures. |
| Security boundaries | Four merged hardening fixes contain state-file override writes (#3140), reject shell metacharacters in launcher worker commands (#3139), validate `goal_id` in reward routes (#3138), and stop ACAO:* on unauthenticated status reads (#3137). | Add focused negative fixtures per boundary with the shipped tests as the reference; keep credentials, private reproduction details, and advisory coordination out of public fixtures. |
| Benchmark boundary | Shared lifecycle, readiness, ledger, and reducer contracts are the public seam; Terminal-Bench, ALE, and EdgeBench now sit on the same seams as SkillsBench. Generic Effect Program conformance and replay tests harden settlement infrastructure but do not change benchmark scoring or authorize live runs. Live scored comparisons stay held until a fresh task-free runner lifecycle receipt proves readiness. | Extend synthetic setup/termination attribution, or add a SWE adapter only when a second SWE route needs shared launch/observe/ingest behavior. Do not launch scoring, duplicate the controller, or expose raw task text, logs, trajectories, verifier tails, credentials, uploads, or local paths. |
| Validation and change quality | Python tests are green on the latest runtime-bearing `main` change; public smoke parity and the frontstage Pages build are restored. The KNN timing oracle still needs deterministic coverage. | Replace timing as a semantic oracle, retain negative/mutation coverage, and distinguish infrastructure outages from product regressions. Keep live model/provider checks explicit and low-frequency. |
| Release and install | v0.4.4 is the latest public tag and package version. `main` now contains post-v0.4.4 product and public-surface changes, while `docs/product/release-readiness.md` still stops at v0.2.6. | Close the v0.2.7-v0.4.4 timeline gap from tagged release evidence, preserve tagged stable versus post-tag `main`, and improve contributor-safe update recovery without adding a parallel release checklist. |
| Public docs and onboarding | Hosted docs, a public homepage, the Dev Book, localized dashboard copy, public/private boundary examples, GitHub issue forms, and a PR/issue label taxonomy have landed. Slash-command installation now exposes all four canonical global manager commands through their shipped CLI wrappers. | Keep contributor, release, protocol, course, and showcase surfaces concise and linked to public evidence; add navigation and locale checks without appending status narratives or aliases. |
| Release and install | v0.4.5 is the latest public tag and package version. `main` now contains post-v0.4.5 product and public-surface changes, while `docs/product/release-readiness.md` still stops at v0.2.6. | Close the v0.2.7-v0.4.5 timeline gap from tagged release evidence, preserve tagged stable versus post-tag `main`, and improve contributor-safe update recovery without adding a parallel release checklist. |
| Public docs and onboarding | Hosted docs, a public homepage, the Dev Book, localized dashboard copy, public/private boundary examples, GitHub issue forms, and a PR/issue label taxonomy have landed. Slash-command installation now exposes all four canonical global manager commands through their shipped CLI wrappers; the fresh-project `/loopx` onboarding fix and its five-scenario regression fixture landed (#3093, #3103), and context-window/compaction parity guidance (#3132) plus maturity wording (#3127) are documented. | Keep contributor, release, protocol, course, and showcase surfaces concise and linked to public evidence; add navigation and locale checks without appending status narratives or aliases. |

## Turn Loop Controller Plan

Expand Down Expand Up @@ -153,8 +154,7 @@ points for contributors who are still learning the repository.
| ID | Area | Task | Validation |
| --- | --- | --- | --- |
| GH-C02 | tests | Add or extend a focused smoke test around todo archive/completion behavior. Prefer copying the style of `examples/control_plane/todo-lifecycle-cli-smoke.py`. Currently claimed in issue #3056; coordinate before duplicating. | `python3 examples/control_plane/todo-lifecycle-cli-smoke.py` and `python3 -m py_compile loopx/*.py` |
| GH-C87 | onboarding | Add a durable regression fixture for the fresh-project `/loopx` guided-todo-template and `agent-onboard` failure (#3092): fresh project, no existing goal, guided todo add, agent registration readback, and a clean second run after the approved fix (#3093) merges. | Focused pytest or CLI smoke plus `loopx check --scan-path examples/control_plane --scan-path CONTRIBUTOR_TASKS.md` |
| GH-C04 | docs | Refresh install, activation, and recovery guidance through v0.4.4: add concise v0.2.7-v0.4.4 timeline summaries from tagged release evidence, preserve tagged stable vs post-tag `main` and release-snapshot vs canary distinctions, cover installed-runtime activation recovery, and link rather than duplicate the release body's bilingual optional-capability usage guidance. | `python3 examples/fresh-clone-quickstart-smoke.py`, `python3 examples/loopx-update-smoke.py`, `python3 examples/release/release-readiness-doc-smoke.py`, `python3 examples/release/release-version-contract-smoke.py`, and `loopx check --scan-path docs/product/release-readiness.md --scan-path CONTRIBUTING.md` |
| GH-C04 | docs | Refresh install, activation, and recovery guidance through v0.4.5: add concise v0.2.7-v0.4.5 timeline summaries from tagged release evidence, preserve tagged stable vs post-tag `main` and release-snapshot vs canary distinctions, cover installed-runtime activation recovery, and link rather than duplicate the release body's bilingual optional-capability usage guidance. | `python3 examples/fresh-clone-quickstart-smoke.py`, `python3 examples/loopx-update-smoke.py`, `python3 examples/release/release-readiness-doc-smoke.py`, `python3 examples/release/release-version-contract-smoke.py`, and `loopx check --scan-path docs/product/release-readiness.md --scan-path CONTRIBUTING.md` |
| GH-C80 | docs | Add a hosted-docs navigation and locale-parity check across `mkdocs.yaml`, `docs/index.md`, `docs/book/index.md`, the docs catalog, and stable README entry links. Catch broken or orphaned public pages without changing the README or homepage first viewport. | `python3 examples/docs-governance-smoke.py`, `python3 examples/frontstage-pages-workflow-smoke.py`, a strict MkDocs build, and `loopx check --scan-path docs --scan-path mkdocs.yaml --scan-path README.md --scan-path README.zh-CN.md` |
| GH-C64 | release docs | Add a contributor-safe atomic-promotion failure matrix around the shipped release lock/concurrency smoke: explain which failures happen before the symlink swap, how a waiter recovers, and when contributors must stop before maintainer-only promotion state. Extend the existing fixture only for a durable missing case. | `python3 examples/release/release-promotion-concurrency-smoke.py`, `python3 examples/release/local-install-promotion-boundary-smoke.py`, and `loopx check --scan-path docs/product/release-readiness.md --scan-path CONTRIBUTOR_TASKS.md` |
| GH-C75 | runtime docs | Add a public operator guide for the experimental planner-worker mode using the shipped provider-neutral fake runtime. Explain the clean-worktree requirement, explicit model routes, caller-approved validation commands, one-step typed receipt, incomplete-cost semantics, provider opt-in, and how to stop without presenting it as a resident scheduler or default multi-agent runtime. | `python3 examples/experiments/planner_worker/contract-smoke.py`, `python3 examples/experiments/planner_worker/runtime-smoke.py`, and `loopx check --scan-path docs/integrations/runtime-connector-catalog.md --scan-path CONTRIBUTOR_TASKS.md` |
Expand All @@ -170,6 +170,8 @@ for contributors who can run local CLI smokes and keep changes scoped.
| GH-C83 | turn / effect program | Add M7.1 parity fixtures for the fenced Turn settlement vertical slice: partial execution, retry, cancellation, permission denial, budget rejection, and owner/key-mismatched replay. Derive expectations from the typed settlement contract (RFC M7.1), not from implementation output. | `python3 -m pytest -q tests/test_loopx_turn_driver.py tests/test_loopx_turn_executor.py tests/test_loopx_turn_journal.py tests/test_loopx_turn_transaction.py` and `loopx check --scan-path docs/architecture/rfcs/agent-loop-effect-interpreter-v0.md --scan-path CONTRIBUTOR_TASKS.md` |
| GH-C84 | turn / effect program | Add a read-only `interpret_turn_journal` lens over the fenced journal trace: replay legality, owner/key matching, tombstone retention, and phase-order invariants. Mirror `interpret_quota_should_run_packet`; do not introduce an executor or write path. | Focused pytest, `python3 examples/loopx-turn-fake-host-walkthrough-smoke.py`, and `loopx check --scan-path docs/reference/effect-interpreter-packet.md --scan-path CONTRIBUTOR_TASKS.md` |
| GH-C85 | validation | Wire caller-approved `validation_command` into the self-reported completion path (#3082): optional public-safe field on the completion request, reuse the existing independent task-validation phase, require a validation receipt before durable writeback, block and surface typed failure, keep the no-command fast path unchanged. | Focused pytest with a negative case, `python3 examples/loopx-turn-fake-host-walkthrough-smoke.py`, and `loopx check --scan-path loopx/capabilities/issue_fix --scan-path CONTRIBUTOR_TASKS.md` |
| GH-C90 | validation / security | Audit the four merged security boundaries (#3137-#3140) against the shipped regression tests and add one missing negative or mutation case per boundary: state-file override containment, launcher worker-command metacharacter rejection, serve-status `goal_id` path-traversal validation, and ACAO-free unauthenticated read responses. Keep credentials and private reproduction details out, and coordinate timing with maintainer advisory disclosure. | `python3 -m pytest -q tests/test_state_file_containment.py tests/test_worker_command_validation.py tests/test_feedback_goal_id_validation.py tests/test_status_server_cors.py`, `python3 examples/full-public-smokes-workflow-smoke.py`, and `loopx check --scan-path loopx/status_server.py --scan-path loopx/state_refresh.py --scan-path loopx/visible_multi_agent_launcher.py --scan-path CONTRIBUTOR_TASKS.md` |
| GH-C91 | control plane | Extend the obligation-bound replan/evidence-read fixtures with one missing negative case (stale receipt, wrong obligation identity, or required read not executed) derived from the replan/evidence contracts (#3112, #3135, #3144). Do not invoke a model or spend quota. | `python3 -m pytest -q tests/control_plane/test_replan_evidence_tool_behavior.py tests/control_plane/test_replan_required_read_receipts.py tests/control_plane/test_replan_novelty_policy.py`, `python3 examples/control_plane/quota-replan-decision-plane-smoke.py`, and `loopx check --scan-path docs/status-data-contract.md --scan-path docs/reference/protocols/agent-scoped-evidence-ledger-v0.md --scan-path CONTRIBUTOR_TASKS.md` |
| GH-C86 | dashboard | Surface per-goal token/cost/duration in the existing dashboard from compact quota/run-history projections (#3085). Keep raw machine fields in drill-downs, add an explicit projection source, and do not create a second ledger. | Frontstage route/browser smokes plus `loopx check --scan-path apps/presentation/dashboard --scan-path CONTRIBUTOR_TASKS.md` |
| GH-C88 | cli | Implement one budget-aware CLI output ergonomics slice for #2881: shorter default summaries with a typed `--json` escape hatch on one command family, keeping hot-path payload budgets and differential allowances intact. | `python3 examples/control_plane/cli-output-budget-regression-smoke.py`, focused command smoke, and `loopx check --scan-path docs/status-data-contract.md --scan-path CONTRIBUTOR_TASKS.md` |
| GH-C43 | showcase | Add a contributor-facing walkthrough for the shipped Auto Research stop/takeover and state-aware wake transitions. Reuse the current command path and synthetic/redacted evidence; do not add a second launcher or alter the README first screen without maintainer preview. | `python3 examples/showcase-catalog-smoke.py`, `python3 examples/auto-research-demo-e2e-worker-loop-smoke.py`, `python3 examples/auto-research-visible-worker-hook-smoke.py`, `python3 examples/auto-research-stop-marker-smoke.py`, `python3 examples/auto-research-state-aware-wake-smoke.py`, `python3 examples/auto-research-quota-pause-smoke.py`, and `loopx check --scan-path docs/showcases --scan-path docs/guides` |
Expand Down Expand Up @@ -232,8 +234,8 @@ This board is maintained from public-safe projections of:
- the local `loopx-meta` Agent Todo list;
- public docs under `docs/`, especially the state interaction model, status
data contract, quota allocation, integration guide, product vision, and
benchmark research docs, the Dev Book and control-plane course, and the
PR/issue label taxonomy;
benchmark research docs, the goal artifact lifecycle projection RFC (#3136),
the Dev Book and control-plane course, and the PR/issue label taxonomy;
- recent maintainer review of which work is externally claimable versus
maintainer-owned live automation.

Expand Down