backlog ยท diff

git:20260902.1fe14a3 to git:20260905.1f63894

4 added, 4 removed. Audit A to A.

---
name: backlog
- description: 'Use when asked to park an undecided idea without representing it as decided or active work. Creates or updates one reversible local backlog entry with evidence and a readiness threshold. Not for decided or active work โ€” use the project task system.'
+ description: 'Use when asked to park an undecided idea without representing it as decided or active work. Not for decided or active work: use the project task system.'
---
# Backlog
## Contract
| Field | Bound contract |
|---|---|
| Trigger | User wants to park an undecided idea without representing it as decided or active work. |
- | Authority | Reversible local write only: create or update one backlog entry file. No VCS commit, no remote call, no credential use, no published artifact. |
+ | Authority | Reversible local: writes only one backlog entry file; rollback is deleting or reverting that file. No remote mutation. No VCS commit or credential use. |
| Side effect | One backlog entry as a reversible local state change with recorded evidence. |
| Done | The idea is parked in the backlog and ready to be promoted when it meets the readiness threshold. |
## Inputs
- Idea statement (required): one or two sentences naming the idea and the problem it would address.
- - Undecided reason (required): the specific missing input that blocks a decision now โ€” an unverified assumption, absent evidence, an open question, or a competing alternative.
+ - Undecided reason (required): the specific missing input that blocks a decision now: an unverified assumption, absent evidence, an open question, or a competing alternative.
- Readiness threshold (required): the concrete, falsifiable condition that, when met, would make the idea promotable (a measurement, a resolved question, or a confirmed constraint that yields a yes/no).
- Existing evidence (optional): links, measurements, or notes already in hand that bear on the idea.
- Backlog location (optional): path to the backlog file or directory; default is a `backlog.md` file in the current workspace.
## Procedure
1. Validate the inputs: confirm the idea statement is a single coherent proposal, the undecided reason names a concrete missing input, and the readiness threshold is falsifiable. A human or tool must be able to test it and get a yes/no result. Done when: all three required inputs are validated as coherent, concrete, and falsifiable.
2. Bound scope: this skill only parks the idea. Do not evaluate, rank, or promote it. Do not create tasks, requirements, or tickets. Done when: scope is bounded to parking only with no evaluation, ranking, or promotion.
3. Locate or create the backlog store. If a backlog file exists, append to it; otherwise create one with a header marking it as undecided-parking only. Done when: the backlog store is located or created.
4. Write one entry with the idea statement, undecided reason, readiness threshold, any supplied evidence, timestamp, and a stable identifier. Derive the identifier from the idea statement as a kebab-case slug (lowercase words joined by hyphens, with non-alphanumerics dropped); on collision with an existing identifier, append `-2`, `-3`, and so on. Mark the entry status `parked`. Done when: the entry is written with all fields and marked `parked`.
5. Record the entry as a reversible local state change: the file write is the only mutation. No commit, push, or remote call occurs. Done when: the entry is recorded as the only mutation with no commit, push, or remote call.
6. Confirm the done predicate: the entry exists, is marked `parked`, and carries its readiness threshold so a later promotion step can test it. Done when: the entry is confirmed present, parked, and threshold-carrying.
## Failure and recovery
- Non-falsifiable threshold: if the readiness threshold cannot be checked with a yes/no outcome, stop and ask the user to restate it as a testable condition. Do not park an entry whose promotion trigger is subjective.
- Idea already decided or active: if the idea is already represented as a task, requirement, or in-progress work, stop. The backlog is for undecided ideas only; parking a decided item duplicates state.
- Write failure: if the backlog file cannot be written, do not mutate any other file. Report the write error and the intended entry content so the user can retry or relocate.
- Partial result: no partial state is valid. Either the full entry is written or nothing is written. A failed write leaves the backlog unchanged.
## Output
- One backlog entry in the local backlog store, marked `parked`, carrying its idea statement, undecided reason, readiness threshold, evidence, and timestamp โ€” ready to be promoted by a later decision step that tests the threshold.
+ One backlog entry in the local backlog store, marked `parked`, carrying its idea statement, undecided reason, readiness threshold, evidence, and timestamp, ready to be promoted by a later decision step that tests the threshold.