@tekyzinc/gsd-t 2.50.12 → 2.53.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (99) hide show
  1. package/CHANGELOG.md +24 -0
  2. package/README.md +379 -372
  3. package/bin/component-registry.js +250 -0
  4. package/bin/graph-cgc.js +510 -510
  5. package/bin/graph-indexer.js +147 -147
  6. package/bin/graph-overlay.js +195 -195
  7. package/bin/graph-parsers.js +327 -327
  8. package/bin/graph-query.js +453 -452
  9. package/bin/graph-store.js +154 -154
  10. package/bin/qa-calibrator.js +194 -0
  11. package/bin/scan-data-collector.js +153 -153
  12. package/bin/scan-diagrams-generators.js +187 -187
  13. package/bin/scan-diagrams.js +79 -79
  14. package/bin/scan-renderer.js +92 -92
  15. package/bin/scan-report-sections.js +121 -121
  16. package/bin/scan-report.js +184 -184
  17. package/bin/scan-schema-parsers.js +199 -199
  18. package/bin/scan-schema.js +103 -103
  19. package/bin/token-budget.js +246 -0
  20. package/commands/Claude-md.md +10 -10
  21. package/commands/branch.md +15 -15
  22. package/commands/checkin.md +45 -45
  23. package/commands/global-change.md +209 -209
  24. package/commands/gsd-t-audit.md +199 -0
  25. package/commands/gsd-t-backlog-add.md +94 -94
  26. package/commands/gsd-t-backlog-edit.md +111 -111
  27. package/commands/gsd-t-backlog-list.md +63 -63
  28. package/commands/gsd-t-backlog-move.md +94 -94
  29. package/commands/gsd-t-backlog-promote.md +123 -123
  30. package/commands/gsd-t-backlog-remove.md +86 -86
  31. package/commands/gsd-t-backlog-settings.md +158 -158
  32. package/commands/gsd-t-complete-milestone.md +528 -515
  33. package/commands/gsd-t-debug.md +506 -399
  34. package/commands/gsd-t-discuss.md +174 -174
  35. package/commands/gsd-t-execute.md +758 -634
  36. package/commands/gsd-t-feature.md +276 -276
  37. package/commands/gsd-t-health.md +142 -142
  38. package/commands/gsd-t-help.md +465 -457
  39. package/commands/gsd-t-impact.md +302 -302
  40. package/commands/gsd-t-init.md +320 -280
  41. package/commands/gsd-t-integrate.md +365 -249
  42. package/commands/gsd-t-milestone.md +87 -87
  43. package/commands/gsd-t-partition.md +442 -361
  44. package/commands/gsd-t-pause.md +82 -82
  45. package/commands/gsd-t-plan.md +345 -344
  46. package/commands/gsd-t-populate.md +111 -111
  47. package/commands/gsd-t-prd.md +326 -326
  48. package/commands/gsd-t-project.md +211 -211
  49. package/commands/gsd-t-promote-debt.md +123 -123
  50. package/commands/gsd-t-prompt.md +137 -137
  51. package/commands/gsd-t-qa.md +266 -266
  52. package/commands/gsd-t-quick.md +357 -234
  53. package/commands/gsd-t-reflect.md +134 -134
  54. package/commands/gsd-t-resume.md +72 -72
  55. package/commands/gsd-t-scan.md +615 -615
  56. package/commands/gsd-t-setup.md +76 -0
  57. package/commands/gsd-t-status.md +192 -166
  58. package/commands/gsd-t-test-sync.md +381 -381
  59. package/commands/gsd-t-triage-and-merge.md +171 -171
  60. package/commands/gsd-t-verify.md +382 -382
  61. package/commands/gsd-t-visualize.md +118 -118
  62. package/commands/gsd-t-wave.md +401 -378
  63. package/docs/GSD-T-README.md +425 -422
  64. package/docs/architecture.md +385 -369
  65. package/docs/harness-design-analysis.md +371 -0
  66. package/docs/infrastructure.md +205 -205
  67. package/docs/prd-graph-engine.md +398 -398
  68. package/docs/prd-gsd2-hybrid.md +559 -559
  69. package/docs/prd-harness-evolution.md +583 -0
  70. package/docs/requirements.md +14 -0
  71. package/docs/workflows.md +226 -226
  72. package/examples/.gsd-t/domains/example-domain/scope.md +13 -13
  73. package/package.json +40 -40
  74. package/scripts/gsd-t-auto-route.js +39 -39
  75. package/scripts/gsd-t-dashboard-mockup.html +1143 -1143
  76. package/scripts/gsd-t-dashboard-server.js +171 -171
  77. package/scripts/gsd-t-dashboard.html +262 -262
  78. package/scripts/gsd-t-event-writer.js +128 -128
  79. package/scripts/gsd-t-statusline.js +94 -94
  80. package/scripts/gsd-t-tools.js +175 -175
  81. package/templates/CLAUDE-global.md +639 -614
  82. package/templates/CLAUDE-project.md +24 -0
  83. package/templates/backlog-settings.md +18 -18
  84. package/templates/backlog.md +1 -1
  85. package/templates/progress.md +40 -40
  86. package/templates/shared-services-contract.md +60 -60
  87. package/templates/stacks/desktop.ini +2 -2
  88. package/bin/desktop.ini +0 -2
  89. package/commands/desktop.ini +0 -2
  90. package/docs/ci-examples/desktop.ini +0 -2
  91. package/docs/desktop.ini +0 -2
  92. package/examples/.gsd-t/contracts/desktop.ini +0 -2
  93. package/examples/.gsd-t/desktop.ini +0 -2
  94. package/examples/.gsd-t/domains/desktop.ini +0 -2
  95. package/examples/.gsd-t/domains/example-domain/desktop.ini +0 -2
  96. package/examples/desktop.ini +0 -2
  97. package/examples/rules/desktop.ini +0 -2
  98. package/scripts/desktop.ini +0 -2
  99. package/templates/desktop.ini +0 -2
@@ -1,94 +1,94 @@
1
- # GSD-T: Backlog Add — Capture and Categorize a Backlog Item
2
-
3
- You are adding a new item to the project backlog. The item will be auto-categorized if needed and appended to the bottom of the backlog.
4
-
5
- ## Step 1: Load Settings
6
-
7
- Read `.gsd-t/backlog-settings.md` to load:
8
- - **Types**: The allowed type values (bug, feature, improvement, ux, architecture, etc.)
9
- - **Apps**: The allowed app values
10
- - **Categories**: The allowed category values
11
- - **Default App**: The fallback app when `--app` is not specified
12
- - **Auto-categorize**: Whether to infer missing fields from title/description
13
-
14
- If `.gsd-t/backlog-settings.md` does not exist, STOP and tell the user:
15
- "No backlog settings found. Run `/gsd-t-init` or create `.gsd-t/backlog-settings.md` first."
16
-
17
- ## Step 2: Parse Arguments
18
-
19
- Extract from `$ARGUMENTS`:
20
- - **title** (required) — The quoted string at the start, e.g., `"Fix login timeout"`
21
- - **--desc "..."** (optional) — A longer description
22
- - **--type ...** (optional) — The item type (e.g., bug, feature)
23
- - **--app ...** (optional) — The target app
24
- - **--category ...** (optional) — The category
25
-
26
- If no title is provided, STOP and tell the user:
27
- "Usage: `/gsd-t-backlog-add \"<title>\" [--desc \"...\"] [--type ...] [--app ...] [--category ...]`"
28
-
29
- ## Step 3: Auto-Categorize
30
-
31
- For any field NOT explicitly provided:
32
-
33
- 1. **--app not provided**: Use the **Default App** from settings
34
- 2. **--type not provided**: If Auto-categorize is true, infer the type from the title and description:
35
- - Words like "bug", "fix", "broken", "error", "crash" → `bug`
36
- - Words like "add", "new", "create", "implement" → `feature`
37
- - Words like "improve", "optimize", "refactor", "clean" → `improvement`
38
- - Words like "ui", "ux", "design", "layout", "style" → `ux`
39
- - Words like "architecture", "structure", "pattern", "system" → `architecture`
40
- - If unclear, default to `feature`
41
- 3. **--category not provided**: If Auto-categorize is true and categories exist in settings, infer the best-matching category from the title and description. If no good match or no categories defined, leave as `general`.
42
-
43
- ## Step 4: Validate
44
-
45
- Check that the resolved values exist in `.gsd-t/backlog-settings.md`:
46
-
47
- - **Type**: Must be in the Types list. If not found, warn: "Type '{value}' is not in settings. Known types: {list}. Did you mean '{closest match}'?"
48
- - **App**: Must be in the Apps list. If not found, warn: "App '{value}' is not in settings. Known apps: {list}. Did you mean '{closest match}'?"
49
- - **Category**: Must be in the Categories list (if categories are defined). If not found and categories exist, warn: "Category '{value}' is not in settings. Known categories: {list}. Did you mean '{closest match}'?"
50
-
51
- If any validation fails, STOP and show the warning. Do not add the entry until the user confirms or corrects.
52
-
53
- ## Step 5: Append Entry
54
-
55
- 1. Read `.gsd-t/backlog.md`
56
- 2. Count existing entries (count `## {N}.` headings) to determine the next position number
57
- 3. Append the new entry at the bottom of the file using this EXACT format:
58
-
59
- ```
60
- ## {N}. {title}
61
- - **Type:** {type} | **App:** {app} | **Category:** {category}
62
- - **Added:** {YYYY-MM-DD}
63
- - {description}
64
- ```
65
-
66
- Where:
67
- - `{N}` = next sequential position number (existing count + 1)
68
- - `{title}` = the item title
69
- - `{type}`, `{app}`, `{category}` = the resolved/validated values
70
- - `{YYYY-MM-DD}` = today's date
71
- - `{description}` = the --desc value, or a brief description derived from the title if --desc was not provided
72
-
73
- Ensure there is an empty line before the new entry.
74
-
75
- 4. If `.gsd-t/backlog.md` does not exist, create it with the `# Backlog` heading first, then append the entry.
76
-
77
- ## Step 6: Document Ripple
78
-
79
- Update `.gsd-t/progress.md` Decision Log:
80
- - Add entry: `{date} — Added backlog item #{N}: "{title}" (type: {type}, app: {app}, category: {category})`
81
-
82
- ## Step 7: Test Verification
83
-
84
- Verify the entry was added correctly:
85
- 1. Re-read `.gsd-t/backlog.md`
86
- 2. Confirm the new entry exists at the expected position
87
- 3. Confirm the format matches the file-format contract exactly
88
- 4. Report: "Added backlog item #{N}: **{title}** — Type: {type} | App: {app} | Category: {category}"
89
-
90
- $ARGUMENTS
91
-
92
- ## Auto-Clear
93
-
94
- All work is committed to project files. Execute `/clear` to free the context window for the next command.
1
+ # GSD-T: Backlog Add — Capture and Categorize a Backlog Item
2
+
3
+ You are adding a new item to the project backlog. The item will be auto-categorized if needed and appended to the bottom of the backlog.
4
+
5
+ ## Step 1: Load Settings
6
+
7
+ Read `.gsd-t/backlog-settings.md` to load:
8
+ - **Types**: The allowed type values (bug, feature, improvement, ux, architecture, etc.)
9
+ - **Apps**: The allowed app values
10
+ - **Categories**: The allowed category values
11
+ - **Default App**: The fallback app when `--app` is not specified
12
+ - **Auto-categorize**: Whether to infer missing fields from title/description
13
+
14
+ If `.gsd-t/backlog-settings.md` does not exist, STOP and tell the user:
15
+ "No backlog settings found. Run `/gsd-t-init` or create `.gsd-t/backlog-settings.md` first."
16
+
17
+ ## Step 2: Parse Arguments
18
+
19
+ Extract from `$ARGUMENTS`:
20
+ - **title** (required) — The quoted string at the start, e.g., `"Fix login timeout"`
21
+ - **--desc "..."** (optional) — A longer description
22
+ - **--type ...** (optional) — The item type (e.g., bug, feature)
23
+ - **--app ...** (optional) — The target app
24
+ - **--category ...** (optional) — The category
25
+
26
+ If no title is provided, STOP and tell the user:
27
+ "Usage: `/gsd-t-backlog-add \"<title>\" [--desc \"...\"] [--type ...] [--app ...] [--category ...]`"
28
+
29
+ ## Step 3: Auto-Categorize
30
+
31
+ For any field NOT explicitly provided:
32
+
33
+ 1. **--app not provided**: Use the **Default App** from settings
34
+ 2. **--type not provided**: If Auto-categorize is true, infer the type from the title and description:
35
+ - Words like "bug", "fix", "broken", "error", "crash" → `bug`
36
+ - Words like "add", "new", "create", "implement" → `feature`
37
+ - Words like "improve", "optimize", "refactor", "clean" → `improvement`
38
+ - Words like "ui", "ux", "design", "layout", "style" → `ux`
39
+ - Words like "architecture", "structure", "pattern", "system" → `architecture`
40
+ - If unclear, default to `feature`
41
+ 3. **--category not provided**: If Auto-categorize is true and categories exist in settings, infer the best-matching category from the title and description. If no good match or no categories defined, leave as `general`.
42
+
43
+ ## Step 4: Validate
44
+
45
+ Check that the resolved values exist in `.gsd-t/backlog-settings.md`:
46
+
47
+ - **Type**: Must be in the Types list. If not found, warn: "Type '{value}' is not in settings. Known types: {list}. Did you mean '{closest match}'?"
48
+ - **App**: Must be in the Apps list. If not found, warn: "App '{value}' is not in settings. Known apps: {list}. Did you mean '{closest match}'?"
49
+ - **Category**: Must be in the Categories list (if categories are defined). If not found and categories exist, warn: "Category '{value}' is not in settings. Known categories: {list}. Did you mean '{closest match}'?"
50
+
51
+ If any validation fails, STOP and show the warning. Do not add the entry until the user confirms or corrects.
52
+
53
+ ## Step 5: Append Entry
54
+
55
+ 1. Read `.gsd-t/backlog.md`
56
+ 2. Count existing entries (count `## {N}.` headings) to determine the next position number
57
+ 3. Append the new entry at the bottom of the file using this EXACT format:
58
+
59
+ ```
60
+ ## {N}. {title}
61
+ - **Type:** {type} | **App:** {app} | **Category:** {category}
62
+ - **Added:** {YYYY-MM-DD}
63
+ - {description}
64
+ ```
65
+
66
+ Where:
67
+ - `{N}` = next sequential position number (existing count + 1)
68
+ - `{title}` = the item title
69
+ - `{type}`, `{app}`, `{category}` = the resolved/validated values
70
+ - `{YYYY-MM-DD}` = today's date
71
+ - `{description}` = the --desc value, or a brief description derived from the title if --desc was not provided
72
+
73
+ Ensure there is an empty line before the new entry.
74
+
75
+ 4. If `.gsd-t/backlog.md` does not exist, create it with the `# Backlog` heading first, then append the entry.
76
+
77
+ ## Step 6: Document Ripple
78
+
79
+ Update `.gsd-t/progress.md` Decision Log:
80
+ - Add entry: `{date} — Added backlog item #{N}: "{title}" (type: {type}, app: {app}, category: {category})`
81
+
82
+ ## Step 7: Test Verification
83
+
84
+ Verify the entry was added correctly:
85
+ 1. Re-read `.gsd-t/backlog.md`
86
+ 2. Confirm the new entry exists at the expected position
87
+ 3. Confirm the format matches the file-format contract exactly
88
+ 4. Report: "Added backlog item #{N}: **{title}** — Type: {type} | App: {app} | Category: {category}"
89
+
90
+ $ARGUMENTS
91
+
92
+ ## Auto-Clear
93
+
94
+ All work is committed to project files. Execute `/clear` to free the context window for the next command.
@@ -1,111 +1,111 @@
1
- # GSD-T: Backlog Edit — Modify Entry Fields
2
-
3
- You are editing an existing backlog entry. Only the specified fields are updated — all other fields are preserved as-is.
4
-
5
- ## Step 1: Read Backlog
6
-
7
- Read `.gsd-t/backlog.md` and parse all entries.
8
-
9
- Each entry follows this format:
10
- ```
11
- ## {position}. {title}
12
- - **Type:** {type} | **App:** {app} | **Category:** {category}
13
- - **Added:** {YYYY-MM-DD}
14
- - {description}
15
- ```
16
-
17
- Count the total number of entries. If the backlog is empty (no entries), inform the user:
18
- "Backlog is empty. Nothing to edit."
19
- Stop here.
20
-
21
- ## Step 2: Parse Arguments
22
-
23
- Extract from $ARGUMENTS:
24
- - `<position>` (required) — the position number of the entry to edit
25
- - `--title "..."` (optional) — new title
26
- - `--desc "..."` (optional) — new description
27
- - `--type ...` (optional) — new type
28
- - `--app ...` (optional) — new app
29
- - `--category ...` (optional) — new category
30
-
31
- If no position is provided, show usage:
32
- "Usage: /gsd-t-backlog-edit <position> [--title \"...\"] [--desc \"...\"] [--type ...] [--app ...] [--category ...]"
33
- "Example: /gsd-t-backlog-edit 3 --title \"Updated title\" --type bug"
34
- Stop here.
35
-
36
- If no optional flags are provided (only position given), inform the user:
37
- "No fields specified to edit. Use --title, --desc, --type, --app, or --category."
38
- Stop here.
39
-
40
- Validate that the position exists in the backlog (between 1 and total entry count). If not:
41
- "Position {value} is out of range. Backlog has {count} items (valid: 1-{count})."
42
- Stop here.
43
-
44
- ## Step 3: Validate Against Settings
45
-
46
- Read `.gsd-t/backlog-settings.md` to load allowed values.
47
-
48
- For each provided field that has a constrained value set:
49
- - **--type**: Check against the `## Types` list. If invalid, warn: "Type '{value}' is not in settings. Available types: {list}. Did you mean '{closest match}'?"
50
- - **--app**: Check against the `## Apps` list. If invalid, warn: "App '{value}' is not in settings. Available apps: {list}. Did you mean '{closest match}'?"
51
- - **--category**: Check against the `## Categories` list. If the list is empty, accept any value. If populated and invalid, warn: "Category '{value}' is not in settings. Available categories: {list}. Did you mean '{closest match}'?"
52
-
53
- If any value is invalid, stop and ask the user whether to proceed with the invalid value or choose from the available options.
54
-
55
- **--title** and **--desc** are free-text fields — no validation needed.
56
-
57
- ## Step 4: Update Entry
58
-
59
- 1. Find the entry at the specified position
60
- 2. Record the current values as "before" snapshot
61
- 3. Update only the fields that were specified:
62
- - `--title`: Update the title in the `## {position}. {title}` heading
63
- - `--desc`: Update the description line (`- {description}`)
64
- - `--type`: Update the Type in the metadata line
65
- - `--app`: Update the App in the metadata line
66
- - `--category`: Update the Category in the metadata line
67
- 4. Preserve all unspecified fields exactly as they are
68
- 5. Preserve the Added date — do not change it
69
- 6. Rewrite `.gsd-t/backlog.md` with the updated entry in place
70
-
71
- ## Step 5: Confirm
72
-
73
- Show the user the before and after:
74
- ```
75
- Edited backlog item #{position}:
76
-
77
- Before:
78
- Title: {old-title}
79
- Type: {old-type} | App: {old-app} | Category: {old-category}
80
- Description: {old-desc}
81
-
82
- After:
83
- Title: {new-title}
84
- Type: {new-type} | App: {new-app} | Category: {new-category}
85
- Description: {new-desc}
86
- ```
87
-
88
- Only highlight fields that actually changed.
89
-
90
- ## Step 6: Document Ripple
91
-
92
- If `.gsd-t/progress.md` exists, log the edit in the Decision Log:
93
- - Date: today's date
94
- - Entry: "Backlog edit: updated {changed-fields} for '{title}' at position {position}"
95
-
96
- ## Step 7: Test Verification
97
-
98
- Verify the rewritten `.gsd-t/backlog.md` is well-formed:
99
- 1. Re-read the file
100
- 2. Confirm the edited entry parses correctly (heading, metadata, date, description)
101
- 3. Confirm all other entries are unchanged
102
- 4. Confirm total entry count is the same as before the edit
103
- 5. Confirm positions are still sequential (no gaps or duplicates)
104
-
105
- If any check fails, report the issue and attempt to fix (up to 2 attempts).
106
-
107
- $ARGUMENTS
108
-
109
- ## Auto-Clear
110
-
111
- All work is committed to project files. Execute `/clear` to free the context window for the next command.
1
+ # GSD-T: Backlog Edit — Modify Entry Fields
2
+
3
+ You are editing an existing backlog entry. Only the specified fields are updated — all other fields are preserved as-is.
4
+
5
+ ## Step 1: Read Backlog
6
+
7
+ Read `.gsd-t/backlog.md` and parse all entries.
8
+
9
+ Each entry follows this format:
10
+ ```
11
+ ## {position}. {title}
12
+ - **Type:** {type} | **App:** {app} | **Category:** {category}
13
+ - **Added:** {YYYY-MM-DD}
14
+ - {description}
15
+ ```
16
+
17
+ Count the total number of entries. If the backlog is empty (no entries), inform the user:
18
+ "Backlog is empty. Nothing to edit."
19
+ Stop here.
20
+
21
+ ## Step 2: Parse Arguments
22
+
23
+ Extract from $ARGUMENTS:
24
+ - `<position>` (required) — the position number of the entry to edit
25
+ - `--title "..."` (optional) — new title
26
+ - `--desc "..."` (optional) — new description
27
+ - `--type ...` (optional) — new type
28
+ - `--app ...` (optional) — new app
29
+ - `--category ...` (optional) — new category
30
+
31
+ If no position is provided, show usage:
32
+ "Usage: /gsd-t-backlog-edit <position> [--title \"...\"] [--desc \"...\"] [--type ...] [--app ...] [--category ...]"
33
+ "Example: /gsd-t-backlog-edit 3 --title \"Updated title\" --type bug"
34
+ Stop here.
35
+
36
+ If no optional flags are provided (only position given), inform the user:
37
+ "No fields specified to edit. Use --title, --desc, --type, --app, or --category."
38
+ Stop here.
39
+
40
+ Validate that the position exists in the backlog (between 1 and total entry count). If not:
41
+ "Position {value} is out of range. Backlog has {count} items (valid: 1-{count})."
42
+ Stop here.
43
+
44
+ ## Step 3: Validate Against Settings
45
+
46
+ Read `.gsd-t/backlog-settings.md` to load allowed values.
47
+
48
+ For each provided field that has a constrained value set:
49
+ - **--type**: Check against the `## Types` list. If invalid, warn: "Type '{value}' is not in settings. Available types: {list}. Did you mean '{closest match}'?"
50
+ - **--app**: Check against the `## Apps` list. If invalid, warn: "App '{value}' is not in settings. Available apps: {list}. Did you mean '{closest match}'?"
51
+ - **--category**: Check against the `## Categories` list. If the list is empty, accept any value. If populated and invalid, warn: "Category '{value}' is not in settings. Available categories: {list}. Did you mean '{closest match}'?"
52
+
53
+ If any value is invalid, stop and ask the user whether to proceed with the invalid value or choose from the available options.
54
+
55
+ **--title** and **--desc** are free-text fields — no validation needed.
56
+
57
+ ## Step 4: Update Entry
58
+
59
+ 1. Find the entry at the specified position
60
+ 2. Record the current values as "before" snapshot
61
+ 3. Update only the fields that were specified:
62
+ - `--title`: Update the title in the `## {position}. {title}` heading
63
+ - `--desc`: Update the description line (`- {description}`)
64
+ - `--type`: Update the Type in the metadata line
65
+ - `--app`: Update the App in the metadata line
66
+ - `--category`: Update the Category in the metadata line
67
+ 4. Preserve all unspecified fields exactly as they are
68
+ 5. Preserve the Added date — do not change it
69
+ 6. Rewrite `.gsd-t/backlog.md` with the updated entry in place
70
+
71
+ ## Step 5: Confirm
72
+
73
+ Show the user the before and after:
74
+ ```
75
+ Edited backlog item #{position}:
76
+
77
+ Before:
78
+ Title: {old-title}
79
+ Type: {old-type} | App: {old-app} | Category: {old-category}
80
+ Description: {old-desc}
81
+
82
+ After:
83
+ Title: {new-title}
84
+ Type: {new-type} | App: {new-app} | Category: {new-category}
85
+ Description: {new-desc}
86
+ ```
87
+
88
+ Only highlight fields that actually changed.
89
+
90
+ ## Step 6: Document Ripple
91
+
92
+ If `.gsd-t/progress.md` exists, log the edit in the Decision Log:
93
+ - Date: today's date
94
+ - Entry: "Backlog edit: updated {changed-fields} for '{title}' at position {position}"
95
+
96
+ ## Step 7: Test Verification
97
+
98
+ Verify the rewritten `.gsd-t/backlog.md` is well-formed:
99
+ 1. Re-read the file
100
+ 2. Confirm the edited entry parses correctly (heading, metadata, date, description)
101
+ 3. Confirm all other entries are unchanged
102
+ 4. Confirm total entry count is the same as before the edit
103
+ 5. Confirm positions are still sequential (no gaps or duplicates)
104
+
105
+ If any check fails, report the issue and attempt to fix (up to 2 attempts).
106
+
107
+ $ARGUMENTS
108
+
109
+ ## Auto-Clear
110
+
111
+ All work is committed to project files. Execute `/clear` to free the context window for the next command.
@@ -1,63 +1,63 @@
1
- # GSD-T: Backlog List — Filtered View of Backlog Items
2
-
3
- You are displaying the project backlog with optional filtering and limiting.
4
-
5
- ## Step 1: Read Backlog
6
-
7
- Read `.gsd-t/backlog.md` and parse all entries.
8
-
9
- Each entry follows this format:
10
- ```
11
- ## {N}. {title}
12
- - **Type:** {type} | **App:** {app} | **Category:** {category}
13
- - **Added:** {YYYY-MM-DD}
14
- - {description}
15
- ```
16
-
17
- If `.gsd-t/backlog.md` does not exist or contains only the `# Backlog` heading with no entries, display:
18
- "No backlog items. Use `/gsd-t-backlog-add` to capture ideas."
19
- Then STOP.
20
-
21
- ## Step 2: Apply Filters
22
-
23
- Parse `$ARGUMENTS` for optional filters:
24
- - **--type ...** — Show only entries matching this type
25
- - **--app ...** — Show only entries matching this app
26
- - **--category ...** — Show only entries matching this category
27
-
28
- If multiple filters are specified, apply AND logic (entry must match ALL specified filters).
29
-
30
- If no filters are specified, include all entries.
31
-
32
- ## Step 3: Apply Limit
33
-
34
- If **--top N** is specified, keep only the first N entries from the filtered results (by position order, which represents priority).
35
-
36
- ## Step 4: Display Results
37
-
38
- Show the filtered entries in a formatted view:
39
-
40
- ```
41
- # Backlog ({count} items{filter description})
42
-
43
- | # | Title | Type | App | Category | Added |
44
- |---|-------|------|-----|----------|-------|
45
- | 1 | {title} | {type} | {app} | {category} | {date} |
46
- | 2 | {title} | {type} | {app} | {category} | {date} |
47
- ```
48
-
49
- Where:
50
- - `{count}` = number of entries shown
51
- - `{filter description}` = if filters applied, append: `, filtered by type={value}` / `app={value}` / `category={value}` as appropriate. If no filters, omit.
52
- - The `#` column shows the original position number from the backlog (not a re-numbered index)
53
-
54
- ## Step 5: Handle Empty Results
55
-
56
- If filters were applied but no entries match, display:
57
- "No backlog items match the filters: {filter summary}. Use `/gsd-t-backlog-list` with no arguments to see all items."
58
-
59
- $ARGUMENTS
60
-
61
- ## Auto-Clear
62
-
63
- All work is committed to project files. Execute `/clear` to free the context window for the next command.
1
+ # GSD-T: Backlog List — Filtered View of Backlog Items
2
+
3
+ You are displaying the project backlog with optional filtering and limiting.
4
+
5
+ ## Step 1: Read Backlog
6
+
7
+ Read `.gsd-t/backlog.md` and parse all entries.
8
+
9
+ Each entry follows this format:
10
+ ```
11
+ ## {N}. {title}
12
+ - **Type:** {type} | **App:** {app} | **Category:** {category}
13
+ - **Added:** {YYYY-MM-DD}
14
+ - {description}
15
+ ```
16
+
17
+ If `.gsd-t/backlog.md` does not exist or contains only the `# Backlog` heading with no entries, display:
18
+ "No backlog items. Use `/gsd-t-backlog-add` to capture ideas."
19
+ Then STOP.
20
+
21
+ ## Step 2: Apply Filters
22
+
23
+ Parse `$ARGUMENTS` for optional filters:
24
+ - **--type ...** — Show only entries matching this type
25
+ - **--app ...** — Show only entries matching this app
26
+ - **--category ...** — Show only entries matching this category
27
+
28
+ If multiple filters are specified, apply AND logic (entry must match ALL specified filters).
29
+
30
+ If no filters are specified, include all entries.
31
+
32
+ ## Step 3: Apply Limit
33
+
34
+ If **--top N** is specified, keep only the first N entries from the filtered results (by position order, which represents priority).
35
+
36
+ ## Step 4: Display Results
37
+
38
+ Show the filtered entries in a formatted view:
39
+
40
+ ```
41
+ # Backlog ({count} items{filter description})
42
+
43
+ | # | Title | Type | App | Category | Added |
44
+ |---|-------|------|-----|----------|-------|
45
+ | 1 | {title} | {type} | {app} | {category} | {date} |
46
+ | 2 | {title} | {type} | {app} | {category} | {date} |
47
+ ```
48
+
49
+ Where:
50
+ - `{count}` = number of entries shown
51
+ - `{filter description}` = if filters applied, append: `, filtered by type={value}` / `app={value}` / `category={value}` as appropriate. If no filters, omit.
52
+ - The `#` column shows the original position number from the backlog (not a re-numbered index)
53
+
54
+ ## Step 5: Handle Empty Results
55
+
56
+ If filters were applied but no entries match, display:
57
+ "No backlog items match the filters: {filter summary}. Use `/gsd-t-backlog-list` with no arguments to see all items."
58
+
59
+ $ARGUMENTS
60
+
61
+ ## Auto-Clear
62
+
63
+ All work is committed to project files. Execute `/clear` to free the context window for the next command.