Skip to content

Make roadmap invocations goal-driven - #44

Merged
Deicyde merged 6 commits into
facebookresearch:mainfrom
VivienCabannes:fix/roadmap-goal-continuation
Oct 3, 2026
Merged

Deicyde merged 6 commits into
facebookresearch:mainfrom
VivienCabannes:fix/roadmap-goal-continuation

Conversation

@Deicyde

@Deicyde Deicyde commented Sep 26, 2026 •

Copy link
Copy Markdown
Contributor

Summary

  • Make a direct Roadmap invocation own one complete source-grounded planning pass rather than stopping at approval checkpoints.
  • Use a compatible model-callable Goal lifecycle when available; otherwise finish the same pass in the current run and leave unrelated Goals untouched.
  • Keep source discovery, coarse coverage, decomposition, and validation as internal checkpoints unless the user explicitly requests staged review.
  • Require the final state to have no MAPPED rows in the adopted boundary, pass check and applicable audit findings, refresh the graph, and commit the final validated changes.
  • Label the Cabannes roadmap as an intentionally incomplete structural example so agents do not copy its stopping point.
  • Keep the CLI agent-facing and the user workflow inside the host agent window.

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 main is limited to the intended roadmap skill, documentation, metadata, and contract tests. Additive merge commits preserve the original PR ancestry and current main without reintroducing the execution overlay's tree.

Validation

  • uv run pytest -q tests/test_skill_examples.py tests/test_plugin_runtime.py
  • make lint
  • make test
  • make check-example
  • git diff --check origin/main...HEAD
  • effective diff against current main: eight intended files only

Deicyde and others added 2 commits August 28, 2026 12:25
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.
@meta-cla meta-cla Bot added the CLA Signed This label is managed by the Meta Open Source bot. label Sep 26, 2026
@Deicyde Deicyde added the review: ready Review complete with no known merge blockers label Oct 2, 2026

@Deicyde Deicyde left a comment

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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 execution base advances that branch to the main-based tree and removes the execution overlay from the resulting tree.
  • Merely retargeting this same head to main records 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:

  1. Start from current main (including the recently merged #14 and #15).
  2. Cherry-pick only the two intended roadmap commits: 6fc16a3 and c2a7056.
  3. Update this PR to that clean head and change the base to main.
  4. Confirm that origin/execution is 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 lint passed.
  • make check-example passed, 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 current main and 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.

@Deicyde Deicyde added awaiting author Review is complete and author action is required and removed review: ready Review complete with no known merge blockers labels Oct 2, 2026
@Deicyde

Deicyde commented Oct 2, 2026

Copy link
Copy Markdown
Contributor Author

The roadmap change itself is reviewed, but this PR is not merge-ready while it targets execution and carries that branch ancestry. Please rebuild it from current main with only commits 6fc16a3 and c2a7056, then retarget to main. The focused tests, lint, example/site build, skill validation, and CI otherwise passed; the lone local full-suite failure reproduces on unmodified main.

@Deicyde
Deicyde marked this pull request as draft October 3, 2026 00:47
@Deicyde
Deicyde changed the base branch from execution to main October 3, 2026 01:04
@Deicyde Deicyde added review: ready Review complete with no known merge blockers and removed awaiting author Review is complete and author action is required labels Oct 3, 2026
@Deicyde
Deicyde marked this pull request as ready for review October 3, 2026 01:26
@Deicyde
Deicyde merged commit f52f898 into facebookresearch:main Oct 3, 2026
9 checks passed
@Deicyde
Deicyde deleted the fix/roadmap-goal-continuation branch October 3, 2026 01:50
Deicyde added a commit that referenced this pull request Oct 3, 2026
#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>
Deicyde added a commit that referenced this pull request Oct 3, 2026
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.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

CLA Signed This label is managed by the Meta Open Source bot. review: ready Review complete with no known merge blockers

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant