@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
@@ -175,6 +175,82 @@ See `.gsd-t/progress.md` for current milestone/phase state.
175
175
  - **Include if relevant**: Where Things Live, Testing, Code Patterns, Environment Variables
176
176
  - **Omit if empty**: Deployed URLs (if not deployed), Architecture (if trivial), Workflow Preferences (if no overrides)
177
177
 
178
+ ## Step 5.5: Quality North Star Configuration
179
+
180
+ After generating the CLAUDE.md content (Step 5) and before presenting it to the user, offer a Quality North Star section if one is not already present.
181
+
182
+ **Skip this step if the existing or generated CLAUDE.md already contains `## Quality North Star`.**
183
+
184
+ Ask the user:
185
+ ```
186
+ Would you like to define a Quality North Star for this project?
187
+ This is a 1–3 sentence quality identity that subagents read at execute time to calibrate
188
+ their judgment. It does not add procedural rules — it shapes what "excellent" means here.
189
+
190
+ Options:
191
+ [1] library — "Published npm library: intuitive API, well-documented, backward-compatible, type-safe, zero-dep."
192
+ [2] web-app — "User-facing app: accessible, performant, visually consistent. UX is the product."
193
+ [3] cli — "Developer CLI: fast, predictable, clear output. Error messages explain what went wrong and how to fix it."
194
+ [4] custom — Write your own 1–3 sentences
195
+ [5] skip — No Quality North Star (can add later via /user:gsd-t-setup)
196
+ ```
197
+
198
+ If the user picks 1–3, use the corresponding preset text from the table below.
199
+ If the user picks 4, ask: "Describe what 'excellent' means for this project in 1–3 sentences."
200
+ If the user picks 5, skip the section entirely.
201
+
202
+ | Preset ID | Text |
203
+ |-----------|------|
204
+ | `library` | `This is a published npm library. Every public API must be intuitive, well-documented, and backward-compatible. Type safety and zero-dependency design are non-negotiable.` |
205
+ | `web-app` | `This is a user-facing web application. Every feature must be accessible, performant, and visually consistent. The user experience is the product.` |
206
+ | `cli` | `This is a developer CLI tool. Every command must be fast, predictable, and produce clear output. Error messages must explain what went wrong and how to fix it.` |
207
+
208
+ Insert the chosen section into the generated CLAUDE.md content before `## GSD-T Workflow`:
209
+
210
+ ```markdown
211
+ ## Quality North Star
212
+
213
+ {selected preset text or custom text}
214
+ ```
215
+
216
+ If the project already has a `CLAUDE.md` with `## Quality North Star`, the generated file preserves the existing section. Do not overwrite user-customized personas.
217
+
218
+ ## Step 5.6: Design Brief Generation (UI Projects)
219
+
220
+ After the Quality North Star step, check for UI/frontend signals in this project. If detected, offer to generate a design brief.
221
+
222
+ **Skip this step if `.gsd-t/contracts/design-brief.md` already exists** — user-customized briefs are authoritative. Log: "Design brief: skipped — existing brief preserved."
223
+
224
+ ### Detection — check for ANY of the following
225
+
226
+ | Signal | How to check |
227
+ |--------|-------------|
228
+ | React, Vue, Svelte, Next.js | in `package.json` dependencies |
229
+ | Flutter | `pubspec.yaml` exists |
230
+ | CSS/SCSS files | `.css`, `.scss`, `.sass` files in project |
231
+ | Component files | `.jsx`, `.tsx`, `.svelte`, `.vue` files in project |
232
+ | Tailwind config | `tailwind.config.js` or `tailwind.config.ts` exists |
233
+
234
+ If NO signals detected → skip this step entirely. Do not mention it to the user.
235
+
236
+ If signals detected, ask the user:
237
+ ```
238
+ UI/frontend signals detected ({list signals found}).
239
+ Would you like to generate a design brief at .gsd-t/contracts/design-brief.md?
240
+ This gives subagents a consistent visual language reference (colors, typography, spacing, patterns).
241
+
242
+ [1] Yes — generate now (sources: Tailwind config if exists, then project defaults)
243
+ [2] No — skip for now (can generate later by re-running /user:gsd-t-setup)
244
+ ```
245
+
246
+ If user picks 1: generate `.gsd-t/contracts/design-brief.md` using the format defined in `.gsd-t/contracts/design-brief-contract.md` (or the standard format):
247
+ - Extract color palette from `tailwind.config.js/ts` → `theme.colors` if available; else use web defaults
248
+ - Extract fonts from `theme.fontFamily` if available; else use system fonts
249
+ - Read `## Quality North Star` from `CLAUDE.md` for Tone & Voice (skip if absent)
250
+ - Fill remaining fields with sensible defaults and `{placeholder}` markers for user to complete
251
+
252
+ Log in `.gsd-t/progress.md` Decision Log (if `.gsd-t/` exists): `- {date}: Design brief generated at .gsd-t/contracts/design-brief.md`
253
+
178
254
  ## Step 6: Present and Confirm
179
255
 
180
256
  Show the generated CLAUDE.md content to the user with a summary:
@@ -1,166 +1,192 @@
1
- # GSD-T: Status — Cross-Domain Progress View
2
-
3
- You are checking the current state of the project across all domains.
4
-
5
- ## Launch via Subagent
6
-
7
- To keep the main conversation context lean, run status via a Task subagent.
8
-
9
- **If you are the orchestrating agent** (you received the slash command directly):
10
- Spawn a fresh subagent using the Task tool:
11
- ```
12
- subagent_type: general-purpose
13
- model: haiku
14
- prompt: "You are running gsd-t-status. Working directory: {current project root}
15
- Read .gsd-t/progress.md and execute the full status report workflow."
16
- ```
17
- Wait for the subagent to complete. Relay its output to the user. **Do not read files yourself.**
18
-
19
- **If you are the spawned subagent** (your prompt says "running gsd-t-status"):
20
- Continue below.
21
-
22
- ## Read These Files
23
-
24
- 1. `.gsd-t/progress.md`
25
- 2. `.gsd-t/domains/*/tasks.md` — all domain task lists
26
- 3. `.gsd-t/contracts/integration-points.md` — dependency graph
27
-
28
- ## Report Format
29
-
30
- Present a concise status to the user:
31
-
32
- ```
33
- 📊 GSD-T Status: {milestone name}
34
- Phase: {PARTITIONED | DISCUSSED | PLANNED | EXECUTING | INTEGRATED | VERIFIED}
35
-
36
- Domains:
37
- {domain-1}: {completed}/{total} tasks {✅ done | 🔄 in progress | ⏳ blocked}
38
- {domain-2}: {completed}/{total} tasks {✅ done | 🔄 in progress | ⏳ blocked}
39
- {domain-3}: {completed}/{total} tasks {✅ done | 🔄 in progress | ⏳ blocked}
40
-
41
- Backlog: {N} items
42
- 1. {title} ({type})
43
- 2. {title} ({type})
44
- 3. {title} ({type})
45
-
46
- Next checkpoint: {description} — waiting on {domain} Task {N}
47
- Next action: {what should happen next}
48
-
49
- Recent decisions:
50
- - {latest decision from Decision Log}
51
- ```
52
-
53
- ### Backlog Section
54
-
55
- If `.gsd-t/backlog.md` exists, read and parse it. Show total count and top 3 items (position, title, type). If no backlog file exists, skip the Backlog section entirely. If the backlog file exists but is empty (no entries), show `Backlog: No items`.
56
-
57
- If there are blockers or issues, highlight them.
58
- If the user provides $ARGUMENTS, focus the status on that specific domain or aspect.
59
-
60
- ## Token Usage Breakdown
61
-
62
- If `.gsd-t/token-log.md` exists, read it and append a token breakdown to the status report.
63
-
64
- Parse each row in the table. Handle both old format (9 columns) and extended format (12 columns with Domain, Task, Ctx%). Rows with missing or empty Domain column are assigned domain "(untagged)".
65
-
66
- ### Token Usage by Domain
67
- Group rows by Domain. For each domain, sum Tokens and collect all Ctx% values (ignoring "N/A" and empty). Display:
68
-
69
- ```
70
- ## Token Usage by Domain
71
- | Domain | Tokens | Subagents | Peak Ctx% |
72
- |----------------|--------|-----------|-----------|
73
- | auth | 12,400 | 4 | 14% |
74
- | notifications | 45,200 | 3 | 52% ⚠️ |
75
- | (untagged) | 8,100 | 6 | N/A |
76
- ```
77
-
78
- Flag any domain where Peak Ctx% >= 70 with `⚠️` suffix.
79
-
80
- ### Token Usage by Phase/Command
81
- Group rows by Command. For each command, sum Tokens and count subagent rows. Display:
82
-
83
- ```
84
- ## Token Usage by Command
85
- | Command | Tokens | Subagents |
86
- |---------------|--------|-----------|
87
- | gsd-t-execute | 86,200 | 14 |
88
- | gsd-t-wave | 12,400 | 9 |
89
- | gsd-t-plan | 3,400 | 1 |
90
- ```
91
-
92
- If token-log.md does not exist or is empty, skip this section entirely (no error).
93
-
94
- ## Process Health
95
-
96
- If `.gsd-t/metrics/rollup.jsonl` exists, read the latest entry and append to the status report:
97
-
98
- ```
99
- Process Health:
100
- ELO: {elo_after} ({elo_delta > 0 ? '↑' : '↓'} {elo_delta})
101
- Quality: {first_pass_rate * 100}% first-pass rate | {total_fix_cycles} fix cycles
102
- ```
103
-
104
- If `.gsd-t/metrics/task-metrics.jsonl` exists but no rollup.jsonl, compute first_pass_rate directly from task-metrics for the current milestone and display:
105
-
106
- ```
107
- Process Health:
108
- Quality: {rate}% first-pass rate (current milestone, no rollup yet)
109
- ```
110
-
111
- If neither file exists, skip this section entirely.
112
-
113
- ## Graph Status
114
-
115
- If `.gsd-t/graph/meta.json` exists, read it and append to the status report:
116
- ```
117
- Graph: {entityCount} entities indexed — last indexed {lastIndexed timestamp}
118
- ```
119
- If the graph does not exist, skip this section.
120
-
121
- ## Version Check
122
-
123
- After displaying the project status, check for GSD-T updates:
124
-
125
- 1. Read `~/.claude/.gsd-t-version` to get the installed version
126
- 2. Read `~/.claude/.gsd-t-update-check` (JSON with `latest` and `timestamp` fields) to get the latest known version
127
- 3. If the file doesn't exist or is unreadable, run `gsd-t status` (CLI) in the background to trigger a cache refresh, and skip the notice
128
- 4. If `latest` is newer than the installed version, append to the report:
129
-
130
- ```
131
- ⬆️ GSD-T update available: {installed} {latest}
132
- Run: npm update -g @tekyzinc/gsd-t && gsd-t update-all
133
- ```
134
-
135
- 5. If versions match, skip — don't show anything
136
-
137
- ## Global ELO & Cross-Project Rankings
138
-
139
- After the Process Health section, check for global metrics:
140
-
141
- 1. Run via Bash:
142
- ```bash
143
- node -e "const g = require('./bin/global-sync-manager.js'); const name = (() => { try { return require('./package.json').name; } catch { return require('path').basename(process.cwd()); } })(); const elo = g.getGlobalELO(name); const ranks = g.getProjectRankings(); console.log(JSON.stringify({ elo, ranks, name }));" 2>/dev/null
144
- ```
145
-
146
- 2. If the result returns `elo: null` or the command fails: display "No global metrics yet" and skip.
147
-
148
- 3. If global ELO data exists, display:
149
- ```
150
- Global ELO: {elo} (rank #{position} of {total} projects)
151
- ```
152
- Where position is the 1-based index of the current project in the rankings array.
153
-
154
- 4. If 2+ projects have global rollup data, display the top 5 rankings:
155
- ```
156
- ## Cross-Project Rankings (Top 5)
157
- | Rank | Project | ELO | Latest Milestone |
158
- |------|------------------|--------|------------------|
159
- | 1 | {project} | {elo} | {milestone} |
160
- ```
161
-
162
- $ARGUMENTS
163
-
164
- ## Auto-Clear
165
-
166
- All work is committed to project files. Execute `/clear` to free the context window for the next command.
1
+ # GSD-T: Status — Cross-Domain Progress View
2
+
3
+ You are checking the current state of the project across all domains.
4
+
5
+ ## Launch via Subagent
6
+
7
+ To keep the main conversation context lean, run status via a Task subagent.
8
+
9
+ **If you are the orchestrating agent** (you received the slash command directly):
10
+ Spawn a fresh subagent using the Task tool:
11
+ ```
12
+ subagent_type: general-purpose
13
+ model: haiku
14
+ prompt: "You are running gsd-t-status. Working directory: {current project root}
15
+ Read .gsd-t/progress.md and execute the full status report workflow."
16
+ ```
17
+ Wait for the subagent to complete. Relay its output to the user. **Do not read files yourself.**
18
+
19
+ **If you are the spawned subagent** (your prompt says "running gsd-t-status"):
20
+ Continue below.
21
+
22
+ ## Read These Files
23
+
24
+ 1. `.gsd-t/progress.md`
25
+ 2. `.gsd-t/domains/*/tasks.md` — all domain task lists
26
+ 3. `.gsd-t/contracts/integration-points.md` — dependency graph
27
+
28
+ ## Report Format
29
+
30
+ Present a concise status to the user:
31
+
32
+ ```
33
+ 📊 GSD-T Status: {milestone name}
34
+ Phase: {PARTITIONED | DISCUSSED | PLANNED | EXECUTING | INTEGRATED | VERIFIED}
35
+
36
+ Domains:
37
+ {domain-1}: {completed}/{total} tasks {✅ done | 🔄 in progress | ⏳ blocked}
38
+ {domain-2}: {completed}/{total} tasks {✅ done | 🔄 in progress | ⏳ blocked}
39
+ {domain-3}: {completed}/{total} tasks {✅ done | 🔄 in progress | ⏳ blocked}
40
+
41
+ Backlog: {N} items
42
+ 1. {title} ({type})
43
+ 2. {title} ({type})
44
+ 3. {title} ({type})
45
+
46
+ Next checkpoint: {description} — waiting on {domain} Task {N}
47
+ Next action: {what should happen next}
48
+
49
+ Recent decisions:
50
+ - {latest decision from Decision Log}
51
+ ```
52
+
53
+ ### Backlog Section
54
+
55
+ If `.gsd-t/backlog.md` exists, read and parse it. Show total count and top 3 items (position, title, type). If no backlog file exists, skip the Backlog section entirely. If the backlog file exists but is empty (no entries), show `Backlog: No items`.
56
+
57
+ If there are blockers or issues, highlight them.
58
+ If the user provides $ARGUMENTS, focus the status on that specific domain or aspect.
59
+
60
+ ## Token Usage Breakdown
61
+
62
+ If `.gsd-t/token-log.md` exists, read it and append a token breakdown to the status report.
63
+
64
+ Parse each row in the table. Handle both old format (9 columns) and extended format (12 columns with Domain, Task, Ctx%). Rows with missing or empty Domain column are assigned domain "(untagged)".
65
+
66
+ ### Token Usage by Domain
67
+ Group rows by Domain. For each domain, sum Tokens and collect all Ctx% values (ignoring "N/A" and empty). Display:
68
+
69
+ ```
70
+ ## Token Usage by Domain
71
+ | Domain | Tokens | Subagents | Peak Ctx% |
72
+ |----------------|--------|-----------|-----------|
73
+ | auth | 12,400 | 4 | 14% |
74
+ | notifications | 45,200 | 3 | 52% ⚠️ |
75
+ | (untagged) | 8,100 | 6 | N/A |
76
+ ```
77
+
78
+ Flag any domain where Peak Ctx% >= 70 with `⚠️` suffix.
79
+
80
+ ### Token Usage by Phase/Command
81
+ Group rows by Command. For each command, sum Tokens and count subagent rows. Display:
82
+
83
+ ```
84
+ ## Token Usage by Command
85
+ | Command | Tokens | Subagents |
86
+ |---------------|--------|-----------|
87
+ | gsd-t-execute | 86,200 | 14 |
88
+ | gsd-t-wave | 12,400 | 9 |
89
+ | gsd-t-plan | 3,400 | 1 |
90
+ ```
91
+
92
+ If token-log.md does not exist or is empty, skip this section entirely (no error).
93
+
94
+ ## Process Health
95
+
96
+ If `.gsd-t/metrics/rollup.jsonl` exists, read the latest entry and append to the status report:
97
+
98
+ ```
99
+ Process Health:
100
+ ELO: {elo_after} ({elo_delta > 0 ? '↑' : '↓'} {elo_delta})
101
+ Quality: {first_pass_rate * 100}% first-pass rate | {total_fix_cycles} fix cycles
102
+ ```
103
+
104
+ If `.gsd-t/metrics/task-metrics.jsonl` exists but no rollup.jsonl, compute first_pass_rate directly from task-metrics for the current milestone and display:
105
+
106
+ ```
107
+ Process Health:
108
+ Quality: {rate}% first-pass rate (current milestone, no rollup yet)
109
+ ```
110
+
111
+ If neither file exists, skip this section entirely.
112
+
113
+ ## Graph Status
114
+
115
+ If `.gsd-t/graph/meta.json` exists, read it and append to the status report:
116
+ ```
117
+ Graph: {entityCount} entities indexed — last indexed {lastIndexed timestamp}
118
+ ```
119
+ If the graph does not exist, skip this section.
120
+
121
+ ## Harness Health (M31 — if available)
122
+
123
+ If `bin/component-registry.js` exists, check for flagged components:
124
+
125
+ Run via Bash:
126
+ `node -e "const cr = require('./bin/component-registry.js'); const flagged = cr.getFlaggedComponents('.'); if(flagged.length) { flagged.forEach(c => console.log('⚠️ FLAGGED: ' + c.name + ' — ' + c.reason)); } else { console.log('No flagged components'); }" 2>/dev/null`
127
+
128
+ If flagged components exist, display them in the report:
129
+ ```
130
+ Flagged Components:
131
+ ⚠️ {component-name} {reason}
132
+ ```
133
+
134
+ If `bin/qa-calibrator.js` exists and `.gsd-t/metrics/qa-miss-log.jsonl` exists, display QA miss-rate summary:
135
+
136
+ Run via Bash:
137
+ `node -e "const qc = require('./bin/qa-calibrator.js'); const s = qc.getMissRateSummary('.'); if(s) process.stdout.write(JSON.stringify(s));" 2>/dev/null`
138
+
139
+ If data returned, display:
140
+ ```
141
+ QA Calibration:
142
+ Miss rate: {miss_rate}% | Weak spots: {weak_spot_count} | Top category: {top_category}
143
+ ```
144
+
145
+ If neither file exists, skip this section entirely.
146
+
147
+ ## Version Check
148
+
149
+ After displaying the project status, check for GSD-T updates:
150
+
151
+ 1. Read `~/.claude/.gsd-t-version` to get the installed version
152
+ 2. Read `~/.claude/.gsd-t-update-check` (JSON with `latest` and `timestamp` fields) to get the latest known version
153
+ 3. If the file doesn't exist or is unreadable, run `gsd-t status` (CLI) in the background to trigger a cache refresh, and skip the notice
154
+ 4. If `latest` is newer than the installed version, append to the report:
155
+
156
+ ```
157
+ ⬆️ GSD-T update available: {installed} {latest}
158
+ Run: npm update -g @tekyzinc/gsd-t && gsd-t update-all
159
+ ```
160
+
161
+ 5. If versions match, skip — don't show anything
162
+
163
+ ## Global ELO & Cross-Project Rankings
164
+
165
+ After the Process Health section, check for global metrics:
166
+
167
+ 1. Run via Bash:
168
+ ```bash
169
+ node -e "const g = require('./bin/global-sync-manager.js'); const name = (() => { try { return require('./package.json').name; } catch { return require('path').basename(process.cwd()); } })(); const elo = g.getGlobalELO(name); const ranks = g.getProjectRankings(); console.log(JSON.stringify({ elo, ranks, name }));" 2>/dev/null
170
+ ```
171
+
172
+ 2. If the result returns `elo: null` or the command fails: display "No global metrics yet" and skip.
173
+
174
+ 3. If global ELO data exists, display:
175
+ ```
176
+ Global ELO: {elo} (rank #{position} of {total} projects)
177
+ ```
178
+ Where position is the 1-based index of the current project in the rankings array.
179
+
180
+ 4. If 2+ projects have global rollup data, display the top 5 rankings:
181
+ ```
182
+ ## Cross-Project Rankings (Top 5)
183
+ | Rank | Project | ELO | Latest Milestone |
184
+ |------|------------------|--------|------------------|
185
+ | 1 | {project} | {elo} | {milestone} |
186
+ ```
187
+
188
+ $ARGUMENTS
189
+
190
+ ## Auto-Clear
191
+
192
+ All work is committed to project files. Execute `/clear` to free the context window for the next command.