Prerequisites
Bug Description
Atlas currently has an internally inconsistent execution contract around plan files and post-verification behavior.
At a high level, Atlas is told the plan is read-only, but the post-task reminder pipeline also tells Atlas to update that same plan file immediately after verification. One prompt variant also still points Atlas at the wrong plan state path, and the reminder pipeline used to tell Atlas to commit directly even though the main Atlas role text says git work should be delegated.
This makes the Atlas role ambiguous in practice:
- Is the plan immutable once Prometheus writes it?
- Is Atlas allowed to change only execution status?
- Should Atlas commit directly, or should git work always be delegated?
Right now the code says different things in different places.
Evidence
1. Atlas prompts currently own the plan as the execution artifact
These prompt variants define .sisyphus/plans/{name}.md as the work-plan artifact Atlas should read while executing.
2. Atlas verification reminders also mutate the plan file immediately after verification
The reminder pipeline explicitly instructs Atlas to:
- read the plan directly after verification
- mark task completion in the plan immediately
- continue execution from that updated state
That is a valid pattern if Atlas is allowed to make status-only updates, but the permission boundary is not stated clearly enough.
3. One prompt variant still used a stale plan-state path
Atlas default still referenced .sisyphus/tasks/{plan-name}.yaml for the boulder ground truth, while the rest of the execution stack uses .sisyphus/plans/{name}.md.
That means Atlas can be pointed at the wrong state source depending on prompt variant.
4. Git responsibility is also contradictory
Atlas role text says git operations should be delegated, but the reminder pipeline also instructed Atlas to stage and commit verified work directly.
Why This Matters
This is not just wording drift. It changes runtime behavior:
- The model is forced to infer a mutability policy that is never stated explicitly.
- Atlas can reasonably interpret "read-only plan" and "edit this plan right now" in conflicting ways.
- The stale
.sisyphus/tasks/*.yaml path can send Atlas to the wrong execution-state source.
- The planner / executor / implementer boundary becomes blurry.
The core ambiguity is:
Atlas must not rewrite the plan
vs
Atlas must update the plan immediately
Those are only compatible if the system states the narrower policy clearly.
Expected Behavior
Atlas should have one explicit plan-mutation contract:
- Atlas MAY update checkbox / status markers in
.sisyphus/plans/{name}.md after verification
- Atlas MAY NOT rewrite task wording
- Atlas MAY NOT add/remove/reorder tasks
- Atlas MAY NOT change dependencies or acceptance criteria
- Atlas should use one canonical plan path only:
.sisyphus/plans/{name}.md
Git responsibility should also be coherent:
- either Atlas may commit verified work
- or Atlas must delegate commits
but not both at once.
Related Issues / Why This Is Not A Duplicate
This is related to, but not the same as:
Those issues cover QA rigor, checkbox state bugs, continuation loops, or lingering read-only execution state.
This issue is specifically about the Atlas execution contract itself being internally inconsistent.
Proposed Solution
- Define Atlas plan mutation policy explicitly in all prompt variants:
- allowed: checkbox / status-only edits
- forbidden: task-content / dependency / acceptance-criteria edits
- Remove the stale
.sisyphus/tasks/{plan-name}.yaml reference from Atlas prompts.
- Reconcile git responsibility:
- either Atlas commits
- or Atlas delegates commits
- Keep
.sisyphus/plans/{name}.md as the single execution-state source of truth.
Prerequisites
Bug Description
Atlas currently has an internally inconsistent execution contract around plan files and post-verification behavior.
At a high level, Atlas is told the plan is read-only, but the post-task reminder pipeline also tells Atlas to update that same plan file immediately after verification. One prompt variant also still points Atlas at the wrong plan state path, and the reminder pipeline used to tell Atlas to commit directly even though the main Atlas role text says git work should be delegated.
This makes the Atlas role ambiguous in practice:
Right now the code says different things in different places.
Evidence
1. Atlas prompts currently own the plan as the execution artifact
These prompt variants define
.sisyphus/plans/{name}.mdas the work-plan artifact Atlas should read while executing.2. Atlas verification reminders also mutate the plan file immediately after verification
The reminder pipeline explicitly instructs Atlas to:
That is a valid pattern if Atlas is allowed to make status-only updates, but the permission boundary is not stated clearly enough.
3. One prompt variant still used a stale plan-state path
Atlas default still referenced
.sisyphus/tasks/{plan-name}.yamlfor the boulder ground truth, while the rest of the execution stack uses.sisyphus/plans/{name}.md.That means Atlas can be pointed at the wrong state source depending on prompt variant.
4. Git responsibility is also contradictory
Atlas role text says git operations should be delegated, but the reminder pipeline also instructed Atlas to stage and commit verified work directly.
Why This Matters
This is not just wording drift. It changes runtime behavior:
.sisyphus/tasks/*.yamlpath can send Atlas to the wrong execution-state source.The core ambiguity is:
Those are only compatible if the system states the narrower policy clearly.
Expected Behavior
Atlas should have one explicit plan-mutation contract:
.sisyphus/plans/{name}.mdafter verification.sisyphus/plans/{name}.mdGit responsibility should also be coherent:
but not both at once.
Related Issues / Why This Is Not A Duplicate
This is related to, but not the same as:
atlas should follow qa / testing manuals much bettertodo plan checkboxes keep re-triggering after tasks are completedTODO/BOULDER Continuation enters infinite loop when remaining tasks are blocked on external actionPrometheus READ-ONLY mode persists after /start-work, preventing task executionThose issues cover QA rigor, checkbox state bugs, continuation loops, or lingering read-only execution state.
This issue is specifically about the Atlas execution contract itself being internally inconsistent.
Proposed Solution
.sisyphus/tasks/{plan-name}.yamlreference from Atlas prompts..sisyphus/plans/{name}.mdas the single execution-state source of truth.