@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.
- package/CHANGELOG.md +24 -0
- package/README.md +379 -372
- package/bin/component-registry.js +250 -0
- package/bin/graph-cgc.js +510 -510
- package/bin/graph-indexer.js +147 -147
- package/bin/graph-overlay.js +195 -195
- package/bin/graph-parsers.js +327 -327
- package/bin/graph-query.js +453 -452
- package/bin/graph-store.js +154 -154
- package/bin/qa-calibrator.js +194 -0
- package/bin/scan-data-collector.js +153 -153
- package/bin/scan-diagrams-generators.js +187 -187
- package/bin/scan-diagrams.js +79 -79
- package/bin/scan-renderer.js +92 -92
- package/bin/scan-report-sections.js +121 -121
- package/bin/scan-report.js +184 -184
- package/bin/scan-schema-parsers.js +199 -199
- package/bin/scan-schema.js +103 -103
- package/bin/token-budget.js +246 -0
- package/commands/Claude-md.md +10 -10
- package/commands/branch.md +15 -15
- package/commands/checkin.md +45 -45
- package/commands/global-change.md +209 -209
- package/commands/gsd-t-audit.md +199 -0
- package/commands/gsd-t-backlog-add.md +94 -94
- package/commands/gsd-t-backlog-edit.md +111 -111
- package/commands/gsd-t-backlog-list.md +63 -63
- package/commands/gsd-t-backlog-move.md +94 -94
- package/commands/gsd-t-backlog-promote.md +123 -123
- package/commands/gsd-t-backlog-remove.md +86 -86
- package/commands/gsd-t-backlog-settings.md +158 -158
- package/commands/gsd-t-complete-milestone.md +528 -515
- package/commands/gsd-t-debug.md +506 -399
- package/commands/gsd-t-discuss.md +174 -174
- package/commands/gsd-t-execute.md +758 -634
- package/commands/gsd-t-feature.md +276 -276
- package/commands/gsd-t-health.md +142 -142
- package/commands/gsd-t-help.md +465 -457
- package/commands/gsd-t-impact.md +302 -302
- package/commands/gsd-t-init.md +320 -280
- package/commands/gsd-t-integrate.md +365 -249
- package/commands/gsd-t-milestone.md +87 -87
- package/commands/gsd-t-partition.md +442 -361
- package/commands/gsd-t-pause.md +82 -82
- package/commands/gsd-t-plan.md +345 -344
- package/commands/gsd-t-populate.md +111 -111
- package/commands/gsd-t-prd.md +326 -326
- package/commands/gsd-t-project.md +211 -211
- package/commands/gsd-t-promote-debt.md +123 -123
- package/commands/gsd-t-prompt.md +137 -137
- package/commands/gsd-t-qa.md +266 -266
- package/commands/gsd-t-quick.md +357 -234
- package/commands/gsd-t-reflect.md +134 -134
- package/commands/gsd-t-resume.md +72 -72
- package/commands/gsd-t-scan.md +615 -615
- package/commands/gsd-t-setup.md +76 -0
- package/commands/gsd-t-status.md +192 -166
- package/commands/gsd-t-test-sync.md +381 -381
- package/commands/gsd-t-triage-and-merge.md +171 -171
- package/commands/gsd-t-verify.md +382 -382
- package/commands/gsd-t-visualize.md +118 -118
- package/commands/gsd-t-wave.md +401 -378
- package/docs/GSD-T-README.md +425 -422
- package/docs/architecture.md +385 -369
- package/docs/harness-design-analysis.md +371 -0
- package/docs/infrastructure.md +205 -205
- package/docs/prd-graph-engine.md +398 -398
- package/docs/prd-gsd2-hybrid.md +559 -559
- package/docs/prd-harness-evolution.md +583 -0
- package/docs/requirements.md +14 -0
- package/docs/workflows.md +226 -226
- package/examples/.gsd-t/domains/example-domain/scope.md +13 -13
- package/package.json +40 -40
- package/scripts/gsd-t-auto-route.js +39 -39
- package/scripts/gsd-t-dashboard-mockup.html +1143 -1143
- package/scripts/gsd-t-dashboard-server.js +171 -171
- package/scripts/gsd-t-dashboard.html +262 -262
- package/scripts/gsd-t-event-writer.js +128 -128
- package/scripts/gsd-t-statusline.js +94 -94
- package/scripts/gsd-t-tools.js +175 -175
- package/templates/CLAUDE-global.md +639 -614
- package/templates/CLAUDE-project.md +24 -0
- package/templates/backlog-settings.md +18 -18
- package/templates/backlog.md +1 -1
- package/templates/progress.md +40 -40
- package/templates/shared-services-contract.md +60 -60
- package/templates/stacks/desktop.ini +2 -2
- package/bin/desktop.ini +0 -2
- package/commands/desktop.ini +0 -2
- package/docs/ci-examples/desktop.ini +0 -2
- package/docs/desktop.ini +0 -2
- package/examples/.gsd-t/contracts/desktop.ini +0 -2
- package/examples/.gsd-t/desktop.ini +0 -2
- package/examples/.gsd-t/domains/desktop.ini +0 -2
- package/examples/.gsd-t/domains/example-domain/desktop.ini +0 -2
- package/examples/desktop.ini +0 -2
- package/examples/rules/desktop.ini +0 -2
- package/scripts/desktop.ini +0 -2
- 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.
|