Make roadmap invocations goal-driven - #44
Conversation
Summary: Reconstruct Deicyde/main as an additive execution overlay on cleaned main. Restore Orchestrate, specialist subagents, deterministic claim-backed scheduling, and dependency-free Claude/Codex/Muse prover adapters while consuming the canonical Markdown runtime, claim board, and Lean services owned by main. Harden execution with post-claim revalidation, unique workers, bounded retries and steering, cancellation-safe subprocess cleanup, compare-and-swap rollback, declaration-level edit confinement, Lean-backed type and axiom verification, and authoritative statement/proof transitions. Test Plan: - `uv run --extra dev pytest -q tests/test_worker_executor.py tests/test_worker_scheduler.py tests/test_prover_execution.py tests/test_orchestrate_overlay.py` (90 passed) - `uv run --extra dev --extra repl ruff check autoform_cli autoform_worker servers tests` - `make check-example` - Full pytest: 402 passed, 1 skipped; six unchanged shared Lean-runtime lifecycle tests failed intermittently on macOS and will be gated by Linux CI.
Deicyde
left a comment
There was a problem hiding this comment.
Review result: changes needed before merge.
Blocking: the PR base and ancestry contradict the independent-main claim
The roadmap change itself looks ready, but the PR is still based on execution, and execution (1592d6a) is an ancestor of the current head (4b2fd76). The head's merge commit has c2a7056 and the old execution-based 765a9cb as parents, while its tree is byte-identical to c2a7056's main-based tree.
That creates two unsafe landing paths:
- Merging the PR into its current
executionbase advances that branch to the main-based tree and removes the execution overlay from the resulting tree. - Merely retargeting this same head to
mainrecords the execution lineage as merged into main even though the head tree omits that overlay. That poisons ancestry for the future #48 landing and can hide work from later PR diffs.
Please rebuild the PR head with clean ancestry:
- Start from current
main(including the recently merged #14 and #15). - Cherry-pick only the two intended roadmap commits:
6fc16a3andc2a7056. - Update this PR to that clean head and change the base to
main. - Confirm that
origin/executionis not an ancestor of the rebuilt head and that the PR diff contains only the intended roadmap/docs/metadata/tests changes.
Patch review
I found no content-level blocker in the intended two-commit patch. It applies cleanly to current main, preserves the complete-pass invariant, keeps the Goal lifecycle capability-gated, makes the incomplete Cabannes fixture explicit, and aligns the docs and manifests with the agent-facing workflow.
Validation on current main plus those two commits:
- 21 focused plugin/skill tests passed.
make lintpassed.make check-examplepassed, including strict MkDocs build.- Skill Creator validation passed for
skills/roadmap. - The PR's five GitHub checks are green.
- A long local full-suite run reached 715 passed / 1 skipped. Its only observed failure was
test_bounded_command_finds_a_descendant_that_escapes_its_process_group; that exact failure reproduces on unmodified currentmainand is unrelated to #44's files.
Once the branch is rebuilt on main with clean ancestry and CI reruns, I would consider #44 ready to merge.
|
The roadmap change itself is reviewed, but this PR is not merge-ready while it targets |
#44's history merge (4b2fd76) made 1592d6a reachable from main without its changes, so a plain `git merge main` here fast-forwards and drops the overlay. This merge takes main's current files plus the overlay, so execution is again ahead of main by exactly the overlay. Conflicts resolved by keeping #44's roadmap prompt and adding the worker prompt. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Main brings four pull requests since the last merge (42c4522): - PR #57 adds the complementary cryptography constraint, 49 or later everywhere but Intel Macs, relocks with the uv version CI pins, and tests that pyproject.toml alone declares the split. - PR #44 makes roadmap invocations goal-driven: the roadmap skill and its agent prompt, the thesis roadmap reference, the root README, the Codex default prompt, a CLI README note that the CLI is agent-facing, and the skill-example and plugin-surface tests. - PR #14 adds bounded project inspection: autoform_cli/project with its bundled release catalog, the `autoform project inspect` and `autoform project versions` subcommands, their README section, tests/test_project_inspect.py, and a wheel test that installs the CLI and runs both. - PR #45 settles the homepage progress semantics: the hero's `Scoped roadmap` figure counts formalizable leaf targets that are fully proved with every dependency, keeps 0% and 100% for exactly none and all, drops role="img" from the bar, and adds a declared source coverage line that links the coverage contract. The human-review skill says how to read the figure. Four files conflicted, one hunk each: autoform_cli/__main__.py: imports. The stack imports readback, review and render's publication_issues; #14 imports from .project. Both are kept, in module order. #14's parser, dispatch and _project, _print_project_inspection and _human_text merged without conflict beside the stack's skeleton, review and render commands. autoform_cli/render.py: imports. The stack imports from .approvals; #45 adds COVERAGE_DISPOSITIONS to the coverage import. Both are kept. #45's landing page, hero and stylesheet hunks merged without conflict beside the stack's link moving, page checks, MathJax configuration and publication guards. The coverage line is part of the dashboard render adds after the page checks, which judge the landing page as the author wrote it, and its href is the fixed coverage/index.html that _as_published gives for coverage/README.md, so it needs none of the encoding authored links get. skills/human-review/SKILL.md: both sides append after the coarse-to-fine paragraph. #45's paragraph explains the landing-page progress summary that paragraph names, so it stays in the opening section, and the stack's "Review formalized statements through prepared evidence and read-backs" section follows it. tests/test_render.py: imports. The stack imports site_converter and statement_and_notes from autoform_cli.markdown; #45 imports _COVERAGE_SUMMARY_ORDER, _completion_percentage and derive. Both are kept. autoform_cli/README.md, pyproject.toml, uv.lock and tests/test_skill_examples.py changed on both sides and merged without conflict. Against each parent, every conflicted file carries exactly the other side's added and removed lines.
Summary
MAPPEDrows in the adopted boundary, pass check and applicable audit findings, refresh the graph, and commit the final validated changes.Design boundary
No CLI command claims to mutate host-session Goal state. Claude, Codex, and Muse users stay in their agent window. The shared skill capability-detects a callable native lifecycle and never shells out to an interactive host goal command or emulates persistence with repository files.
This PR is independent of the draft execution overlay. Its effective diff against current
mainis limited to the intended roadmap skill, documentation, metadata, and contract tests. Additive merge commits preserve the original PR ancestry and currentmainwithout reintroducing the execution overlay's tree.Validation
uv run pytest -q tests/test_skill_examples.py tests/test_plugin_runtime.pymake lintmake testmake check-examplegit diff --check origin/main...HEADmain: eight intended files only