From draft
Handles mid-track requirement changes in Draft projects by analyzing spec.md/plan.md impacts, flagging affected tasks, and proposing amendments for user confirmation before applying.
npx claudepluginhub mayurpise/draft --plugin draftThis skill uses the workspace's default tool permissions.
You are handling a mid-track requirement change using Draft's Context-Driven Development methodology.
Starts collaborative intake for new feature or bug tracks: verifies draft init, loads project context (product.md, tech-stack.md), checks overlaps, refines scope, generates spec.md and plan.md.
Creates change directory with SPEC.md (type-specific), dynamic phased PLAN.md for features, bugfixes, refactors, epics, and updates INDEX.md using project settings.
Mandates invoking relevant skills via tools before any response in coding sessions. Covers access, priorities, and adaptations for Claude Code, Copilot CLI, Gemini CLI.
Share bugs, ideas, or general feedback.
You are handling a mid-track requirement change using Draft's Context-Driven Development methodology.
[x] completed tasks without flagging them explicitlyShow impact before applying. Always confirm.
ls draft/tracks.md 2>/dev/null
If draft/ does not exist: STOP — "No Draft context found. Run /draft:init first."
Extract from $ARGUMENTS:
track <id> prefix to target a specific trackIf no track <id> specified:
[~] In Progress track from draft/tracks.md[~] track, find the first [ ] Pending trackAuto-detected track: <id> - <name> before proceedingIf no change description provided:
/draft:change <description> or /draft:change track <id> <description>"draft/tracks/<id>/spec.md — extract requirements and acceptance criteriadraft/tracks/<id>/plan.md — extract all tasks with their current status ([ ], [~], [x], [!])draft/tracks/<id>/metadata.json — for track type and statusAnalyze the change description against the loaded spec.
For each requirement and acceptance criterion, classify the effect:
| Classification | Meaning |
|---|---|
| Added | New requirement or AC introduced by this change |
| Modified | Existing requirement or AC needs updating |
| Removed | Existing requirement or AC is no longer needed |
| Unaffected | No change needed |
Produce a concise impact list. Example:
Spec impact:
- AC #2 "User can export to CSV" → Modified (now also requires JSON format)
- AC #5 "Export limited to 1000 rows" → Removed (no row limit)
- NEW: AC #6 "Export progress indicator for large datasets"
For each task in plan.md, determine if the spec change affects it:
[x] completed tasks that are now invalidated by the change → flag as:
⚠️ [task description] — may need rework
[ ] pending tasks that need updating → show the proposed new task text
[~] in-progress tasks that are affected → flag as:
⚠️ IN PROGRESS: [task description] — review before continuing
[!] blocked tasks that are affected → flag as:
⚠️ BLOCKED: [task description] — re-evaluate; requirement change may alter blocking condition or resolution path
Unaffected tasks — skip, do not mention
Display a clear summary before proposing any file changes:
Change: [change description]
Track: <track_id> — <track_name>
Spec impact:
- [classification] [requirement/AC]
- [classification] [requirement/AC]
Plan impact:
- ⚠️ [N] completed task(s) may need rework
- [M] pending task(s) need updating
- [K] in-progress task(s) need review
- [B] blocked task(s) need re-evaluation
Completed tasks that may need rework:
- [x] [task description] (commit: abc1234)
Pending tasks with proposed changes:
Before: - [ ] [original task text]
After: - [ ] [proposed new task text]
Display only the changed sections of each file (not full rewrites):
Show the diff as before/after for each modified section. Do not rewrite unchanged sections.
Show each task that would be modified as before/after. Do not rewrite the full plan.
Apply these changes to spec.md and plan.md? [yes / no / edit]
yes — proceed to Step 8no — discard all proposed changes, announce "No changes applied." and stopedit — let the user describe adjustments to the proposed amendments, then revise and re-present the CHECKPOINT again. The loop continues until the user selects yes or no.Apply the agreed amendments to spec.md and plan.md
Update draft/tracks/<id>/metadata.json:
updated to current ISO timestamptasks.total by counting all - [ ], - [~], - [x], and - [!] lines in the updated plan.md. Update tasks.completed by counting only - [x] lines.Append a Change Log entry (with current git SHA (obtain via git rev-parse --short HEAD) and timestamp) to plan.md. If a ## Change Log section does not exist, add it at the bottom:
## Change Log
| Date | Description | Impact |
|------|-------------|--------|
| [ISO date] | [change description] | [N completed may need rework, M pending updated] |
Changes applied: <track_id>
Updated:
- draft/tracks/<id>/spec.md
- draft/tracks/<id>/plan.md
[If completed tasks flagged:]
⚠️ Review N completed task(s) — they may not align with the updated spec.
Re-run /draft:implement to address rework, or /draft:review to assess.
Next: /draft:implement to continue, or /draft:review to assess current state.
Error: Track '<id>' not found.
Run /draft:status to see available tracks.
Error: No active track found.
Use: /draft:change track <id> <description>
Error: Missing spec.md or plan.md for track <id>.
Cannot perform change analysis without both files.
/draft:change the export format should support JSON in addition to CSV
/draft:change track add-export-feature also require a progress indicator for exports over 500 rows