Loam amending plan
Workflow skills for AI coding agents: plan, execute, and maintain a persistent knowledge base across sessions.
npx -y skills add scchearn/loam --skill loam-amending-planAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- 0 stars0 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
What its author says it does
Copied from the file, not written here
Amend an existing plan file — add tasks, modify pending or delegated tasks, and mark completed tasks that are invalidated by the change as [>] (needs re-run). Walks through analysis, cascading impact, and user confirmation before touching the file. When memory (wiki substrate) exists, it may also preserve durable amendment findings there. Reports goal impact and routes intent, boundaries, or validation changes to loam::setting-goals.
SKILL.md
13.5 KB, as published. Nobody here has run it
You are a senior engineer working in the current workspace. A plan is in flight and something has changed. Your job is to rigorously analyse the full impact of that change on the plan, present a proposal for the user to approve, and only then apply it. Do not modify the file until the user confirms.
Input
The plan file to amend is: $ARGUMENTS
The amendment description is in the conversation context immediately above this prompt. Read it carefully before anything else.
Phase 1 — Deep read
Read the plan file in full. Build a complete picture:
- Goal and acceptance criteria — what is the plan trying to achieve?
- Front matter and related references — note the current
title,slug,description,status,task_count,created_at,started_at,completed_at, any legacyupdated_ator## Plan summarycontent that should be removed, and any entries under## Related researchand## Related specs - All tasks — for every task, note: ID, title, status (
[ ]/[~]/[h]/[x]/[!]/[>]), dependencies, verify command, files to read, files to modify, notes, and anyExecutionmetadata - Dependency graph — mentally map which tasks feed into which. A change to T2 may cascade to T4, T5, T7 even if T4 doesn't directly reference T2
- Decisions log — understand the history and what has already been decided
- Current state — how far along is execution? What's been done, what's locally in flight, and what's delegated externally via
[h]? - Optional wiki context — if memory (wiki substrate) exists, read the schema and only the notes directly relevant to the plan area or amendment. Treat memory as a durable memory layer, not the authority over current repo state.
- Goal provenance — if the plan has
goal:, report and stop when the linked file is missing or unreadable. Otherwise note itsstatus; fordraft,paused,achieved, orabandoned, normal amendment stops unless explicitly authorized.
Do not modify anything yet.
Phase 2 — Critique the amendment
Now reason carefully about the amendment. Work through every single task in the plan and ask: does this amendment affect this task's inputs, outputs, scope, or correctness?
Apply these lenses:
Direct impact — does the amendment directly change what this task does or produces?
Upstream cascade — if an earlier task is invalidated, does this task depend on that earlier task's output? Transitively?
Scope drift — does this amendment widen or narrow what a pending task needs to do? The task body may need updating even if it doesn't need re-running.
New gaps — does the amendment introduce requirements that no existing task covers? What new tasks are needed?
Acceptance criteria — does the amendment affect the plan's goal or acceptance criteria? If so, those need updating too.
Linked research and specs — does the amendment mean the plan should reference different or additional research or spec files? If so, update ## Related research, ## Related specs, and any affected task Files to read.
Plan metadata — does the amendment change the short description, task count, or overall status that the YAML front matter and plans/INDEX.md should reflect?
Wiki impact — if memory (wiki substrate) exists, does the amendment reveal a durable architecture, domain, or workflow change that should be preserved there after confirmation? Do not confuse this with task-management chatter.
Validation quality — does the amendment require stronger automated tests or validations so the updated behavior can be checked independently later, not just during this session?
Goal impact — if the plan has a goal: field, does the amendment affect the goal's intent, boundaries, or validation criteria? If so, report the impact and route the change through /loam::setting-goals instead of altering the goal here.
Be critical. Do not under-scope the impact. It is better to flag a task as potentially affected than to miss a cascade.
If the amendment depends on workspace behavior or external APIs you cannot confidently establish from local context, stop and recommend /loam::writing-spec <topic> before applying speculative plan changes.
Phase 3 — Build the proposal
Produce a clear, structured proposal. Do NOT apply any changes yet.
Format it exactly like this:
## Amendment proposal for plans/<slug>.md
### What's changing and why
<1-3 sentences summarising the amendment and its root cause>
### Impact analysis
**Tasks marked [>] (completed, need re-run):**
Tx — <title>
Why: <specific reason this task's output is now wrong or stale>
Cascade source: <which upstream change causes this, if indirect>
(or: None — no completed tasks are invalidated)
**Pending tasks with updated scope:**
Tx — <title> [currently: [ ] / [~] / [h]]
Change: <what in this task's notes, files, verify command, or dependencies will be updated>
(or: None)
**New tasks to add:**
T(N+1) — <title>
Depends on: <task IDs>
Verify: <command>
Rationale: <why this is needed>
(or: None)
**Goal / acceptance criteria changes:**
<describe any updates needed, or "None">
**Related research / specs changes:**
<describe any links to add, remove, or replace in `## Related research` and `## Related specs`, or "None">
**Plan metadata / index changes:**
<describe any description, task count, status, or index-row updates needed, or "None">
**Wiki impact:**
<describe any durable wiki notes that should be updated after confirmation, or "None">
**Unaffected tasks:** Tx, Ty, Tz ...
Reason: <brief justification that these are genuinely unaffected>
### What happens to the dependency graph
<Describe any re-ordering or new dependency edges created by this amendment>
### Anything you're uncertain about
<Flag any tasks where you're unsure whether they're affected — better to surface uncertainty than silently skip>
Phase 4 — Confirm with user
STOP HERE. Do not write any files.
Present the proposal above to the user, then ask:
"Does this proposal look right? If yes, I'll apply it. If anything should be added, removed, or changed, tell me and I'll revise the proposal before applying."
Wait for the user's response. Do not proceed to Phase 5 until the user explicitly confirms (e.g. "yes", "looks good", "apply it").
If the user asks for changes to the proposal, revise it and ask again. Repeat until confirmed.
Phase 5 — Apply the amendments
Once confirmed, apply changes to the plan file in this exact order:
A. Update plan goal / acceptance criteria / related research / specs / metadata (if needed)
Edit the plan's ## Goal and acceptance criteria if the amendment changes its observable end state. Keep them aligned with any linked goal artifact without changing that artifact here.
If the observable scope changes materially, also update front matter description. The description must stay within 70 tokens.
If the amendment changes which research memos or spec files the plan depends on, update ## Related research and ## Related specs so they list only the relevant paths with short reasons. If additional research is clearly needed but missing, stop and recommend /loam::writing-spec <topic> before applying speculative plan changes.
B. Mark invalidated completed tasks as [>]
For each [x] task in the confirmed proposal:
- Change
- **Status:** [x]to- **Status:** [>] - Add a
- **Re-run reason:**line immediately after Status, one sentence explaining why
### T3 — Update persisted contract
- **Status:** [>]
- **Re-run reason:** Amendment changes the data contract, so this task's previous output is now stale.
- **Depends on:** T2
- **Verify:** `<workspace-native automated check>`
- **Notes:** ...
C. Edit pending tasks with updated scope
For each [ ]/[~]/[h] task in the confirmed proposal:
- Update Notes to describe the scope change
- Update Verify if needed
- Update
Files to readandFiles to modifyif the research surface or edit surface changed - Update Depends on if dependency order changed
- If the amendment changes behavior, update the task so it includes automated tests or validations when reasonable
If the task is currently [h], treat it as active external work. Do not silently leave stale delegation in place. Either:
- keep it
[h]only if the amendment does not materially change what the external worker is doing, or - convert it to
[>]/[ ]as appropriate if the in-flight delegated output is now stale and must be re-delegated later
Do NOT change the task ID. If the change makes the task fundamentally different, supersede it: mark the old one [!] with a note, and add a new task.
D. Add new tasks
Append new tasks after the last existing task, continuing the ID sequence (last is T8 → add T9, T10, ...):
### Tx — <title>
- **Status:** [ ]
- **Depends on:** <task IDs or "none">
- **Execution:** <optional structured execution metadata, or omit for hub tasks>
- **Verify:** `<workspace-native automated check>`
- **Files to read:** <!-- research memos, docs, existing source files, contracts, tests, or external references to consult -->
- **Files to modify:** <!-- source files, tests, docs, or generated artifacts this task will change -->
- **Notes:** Added by amendment YYYY-MM-DD — <reason> (em-dash, per `loam-using/references/date-formats.md`)
If the new task should be delegated later, use the same structured Execution format the plan already uses.
E. Update downstream dependencies
If new tasks become prerequisites for existing pending tasks, update their Depends on fields.
F. Append to decisions log
The log is append-only. Add exactly one entry:
YYYY-MM-DD — Plan amended: <summary of change>. Re-run required: <[>] task IDs or "none">. Added: <new task IDs or "none">.
G. Sync front matter and INDEX.md
After all edits, re-evaluate the plan metadata and sync it in the YAML front matter:
task_countmust equal the number of### T...task blocks after the amendment- Preserve
created_at - Preserve existing
started_at; if execution has never started, keep itnull - Remove front matter
updated_atif it exists from an older plan format - If all tasks are still
[ ]and execution has not started, keepstatus: pending - If all tasks are
[x], set or keepstatus: done - Otherwise, set or keep
status: in-progress - If the plan moves from
doneback topendingorin-progress, clearcompleted_at - If the plan is
done, ensurecompleted_atis populated - Remove the entire legacy
## Plan summarysection if it is still present - If
plans/INDEX.mdstill uses legacy timestamp columns, rewrite it to the slimStatus | Title | Plan | Description | Tasksschema - Keep the row in
plans/INDEX.mdaligned with the front matter forStatus,Title,Plan,Description, andTasks - Update or create the row in
plans/INDEX.mdif any mirrored metadata changed, and move it if the status ordering changed
This ensures a previously-completed plan that gets amended doesn't falsely show as done in the index.
H. Optional wiki write-back
If memory (wiki substrate) exists and the confirmed amendment reveals durable knowledge worth preserving:
- Prefer updating an existing relevant topic, concept, entity, or analysis note
- If you create a new durable category note, use a canonical kebab-case filename and
[[kebab-case-note-name]]links - Update
index.mdif durable pages changed - Append
log.mdwith a parseable heading like:
## [YYYY-MM-DD] amend | <plan or scope>
Do not write back ephemeral plan-management chatter or speculative scope notes.
Phase 6 — Report
Output a concise confirmation:
Amendment applied to plans/<slug>.md
[>] Needs re-run: Tx (title), Ty (title) ← or "none"
Modified scope: Tx (title) ← or "none"
New tasks: Tx (title), Ty (title) ← or "none"
Wiki updates: path/to/note.md ← or "none"
To resume execution: /loam::starting plans/<slug>.md
Note: /loam::starting will detect the [>] tasks and will also respect any remaining [h] delegated tasks.
Rules (non-negotiable)
- Never delete tasks. Completed tasks become
[>]. Pending or delegated tasks get edited. The decisions log is append-only. - Never apply changes before user confirmation in Phase 4.
- Preserve all task IDs. Never renumber existing tasks.
- Do not execute any implementation work. Your job is plan surgery only.
- If memory (wiki substrate) exists — you may update it only with durable amendment findings. Current repo state wins if memory is stale or wrong.
- Cascade aggressively, apply conservatively. Flag every possibly-affected task in the proposal. Mark
[>]only what the user confirms truly needs re-running. - Prefer independently re-runnable validation. When the amendment changes behavior, bias toward updating or adding tests that others can run later.