Purpose
Create CHANGE documentation only. Inspect code as needed, but write only CHANGE docs and .backtrail/changes.md.
CHANGE records describe concrete implementation work. They may be backed by an Accepted ADR or FEATURE, or stand alone when no durable decision is needed.
Input
Use the text after this skill invocation as the change brief.
Resources
- Use
assets/change-template.mdas the CHANGE template. - Use
backtrail-create-taskafter CHANGE creation when implementation needs staged review checkpoints. - Always assess whether the CHANGE should have TASK records and tell the user the recommendation before writing.
- CHANGE template includes a placeholder
## Taskssection. - Delete the
## Taskssection when no TASK records are required. - When TASKs exist, the CHANGE file must link them through the canonical
## Taskssection:
## Tasks
- [TASK-NNNNN](tasks/task-NNNNN-title-slug.md)
Statuses
- Allowed statuses:
Proposed,Blocked,Done,Abandoned. - Create step writes
Proposedfor implementable CHANGE records. - Use
Blockedonly when a CHANGE is waiting on another CHANGE listed inBlocked By.
Workflow
- If the brief does not identify implementation work, ask for the change topic before creating files.
- Read
.backtrail/changes.md,.backtrail/adl.md,.backtrail/features.md, relevant FEATURE, ADR, and CHANGE docs. If.backtrail/changes.mdor.backtrail/changes/is missing, plan to create it with columns for CHANGE, status, date, ADRs, blocked-by links, blocks links, and title/summary. - Apply the CHANGE gate before creating files.
- If the brief references ADRs, verify that each ADR exists and is
Accepted. - If the brief references FEATUREs, verify they exist. Prefer an
AcceptedFEATURE before creating implementation CHANGE records. - Use ADR- or FEATURE-backed changes when implementation work follows an
AcceptedADR or FEATURE. - If work introduces or changes a durable decision that constrains future work, architecture, repository structure, public contracts, generated output, build/test workflow, dependencies, or reversibility, stop; ADR Create must run first.
- Use standalone changes only for concrete work with no new ADR need: bug fixes, local refactors, tests, existing ADR implementation details, copy changes, dependency patches, or task-local choices.
- If the brief references ADRs, verify that each ADR exists and is
- Determine the CHANGE number.
- Use an explicit number only when it appears at the start of input, after optional whitespace.
- Supported prefixes:
CHANGE-014,CHANGE 014,C-014,#14,#014,014,14. - Normalize to five digits:
#14 Split decisions->CHANGE-00014,.backtrail/changes/change-00014-split-decisions.md. - Do not scan the input body for CHANGE numbers.
- If no starting number exists, use the highest
CHANGE-NNNNNfrom.backtrail/changes.md+ 1. - If
.backtrail/changes.mdis missing, create it and start atCHANGE-00001unless the brief has an explicit starting number.
- Stop if
.backtrail/changes/change-NNNNN-title-slug.mdalready exists. - Assess whether dedicated rollback detail is required. Require it when the work:
- destroys or irreversibly transforms data;
- creates a public contract or compatibility break;
- changes authentication, authorization, security, billing, or financial behavior;
- requires a migration, compatibility window, coordinated deployment, or manual recovery; or
- would be materially costly, risky, or operationally complex to reverse.
- Present rough approach before writing.
- goal
- ADR links or standalone rationale
- scope
- implementation shape
- verification
- independent risks, when useful
- rollback assessment and, only when a trigger applies, the reversal or recovery plan
- TASK recommendation:
required,recommended, ornot needed, with one short reason - Use
requiredwhen work is large, risky, parallelizable, depends on multiple checkpoints, or likely needs staged review. - Use
recommendedwhen the CHANGE is moderate but has useful checkpoints. - Use
not neededonly when the CHANGE is small and one review is enough.
- Ask only questions that change scope, compatibility, verification, or a required reversal or recovery plan.
- Create
.backtrail/changes/change-NNNNN-title-slug.mdfromassets/change-template.md.- Add a dedicated
## Rollbacksection only when a trigger in step 6 applies. - Omit the section rather than filling it with generic text when no trigger applies.
- Add separate risk analysis when useful without adding
## Rollbacksolely for that analysis. - If the TASK recommendation is
not needed, delete the placeholder## Taskssection from the CHANGE file. - If the estimated implementation diff exceeds 500 lines or needs multiple reviewable checkpoints, keep one CHANGE as the scope contract and recommend
backtrail-create-taskto split implementation work. - Create multiple CHANGE records only when work has separate scope contracts or dependency relationships independent of task-level staging.
- Keep CHANGE dependency links bidirectional: if a CHANGE lists another CHANGE in
Blocked By, the blocker lists it inBlocks.
- Add a dedicated
- Save the CHANGE and its
.backtrail/changes.mdentry with status, ADR links, blocked-by links, blocks links, and title/summary. UseProposedunless the CHANGE is blocked by another CHANGE. - When the TASK recommendation is
requiredorrecommended, ask whether to proceed with creating TASK records.- Use Yes/No buttons when
request_user_inputis available. Yes: usebacktrail-create-taskwith the selected CHANGE.No: leave the CHANGE as created and report that implementation will run as one CHANGE unless TASKs are created later.
- Use Yes/No buttons when
- Stop after docs/status changes. Do not implement code.
Question UX
- Use
request_user_inputwhen available for two or three meaningful choices. - For yes/no decisions, present
YesandNochoices. - If
request_user_inputis unavailable, ask one concise plain-text question with numbered choices. - Do not claim that a skill can switch modes or force button rendering.
Guardrails
- Do not change implementation code, ADR files, FEATURE files, TASK files, configs, or tests.
- Do not overwrite existing CHANGE files.
- Do not mark CHANGE as
Done. - Do not treat numbers in input body as CHANGE numbers.
- Do not create standalone CHANGE records for work needing a new ADR. Stop and explain why ADR Create is required.
- Linking to a
Rejected,Deprecated, orSupersededADR requires explicit user confirmation.