@tekyzinc/gsd-t 4.0.24 → 4.0.25
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 +8 -0
- package/bin/scan-data-collector.js +15 -1
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,14 @@
|
|
|
2
2
|
|
|
3
3
|
All notable changes to GSD-T are documented here. Updated with each release.
|
|
4
4
|
|
|
5
|
+
## [4.0.25] - 2026-06-03 (M77 HTML Report Reads Deep-Scan Table Format - patch)
|
|
6
|
+
|
|
7
|
+
### Fixed - scan report showed 0 critical/0 high on a 322-finding register
|
|
8
|
+
|
|
9
|
+
The HTML report renderer (`bin/scan-data-collector.js::parseDebtSummary`) parsed only the LEGACY breadth-scan prose format ("Critical items: N"). The deep-scan register uses a markdown severity TABLE (`| CRITICAL | 9 |`, emoji optional), so the report displayed 0 critical / 0 high. parseDebtSummary now reads both formats (prose first, then the table). +test/m77-renderer-table-summary.test.js (4 tests). Note: the per-item techDebt[] list section + the 10-finding sample still use legacy formats (secondary; headline cards are the fix).
|
|
10
|
+
|
|
11
|
+
Suite: 1315 pass / 0 fail / 4 skip.
|
|
12
|
+
|
|
5
13
|
## [4.0.24] - 2026-06-03 (M76 revision — keep severity color bullets)
|
|
6
14
|
|
|
7
15
|
### Fixed — over-correction: v4.0.23 stripped the severity color bullets too
|
|
@@ -8,11 +8,25 @@ function read(filePath) {
|
|
|
8
8
|
|
|
9
9
|
function parseDebtSummary(text) {
|
|
10
10
|
const n = (pattern) => { const m = text.match(pattern); return m ? parseInt(m[1], 10) : 0; };
|
|
11
|
-
|
|
11
|
+
// Legacy prose format ("Critical items: N").
|
|
12
|
+
let out = {
|
|
12
13
|
debtCritical: n(/Critical items?:\s*(\d+)/i),
|
|
13
14
|
debtHigh: n(/High priority:\s*(\d+)/i),
|
|
14
15
|
debtMedium: n(/Medium priority:\s*(\d+)/i)
|
|
15
16
|
};
|
|
17
|
+
// M77: deep-scan register uses a markdown SEVERITY TABLE instead, e.g.
|
|
18
|
+
// | 🔴 CRITICAL | 9 | / | HIGH | 90 | (emoji optional, case-insensitive).
|
|
19
|
+
// If the prose format yielded nothing, parse the table rows.
|
|
20
|
+
if (!out.debtCritical && !out.debtHigh && !out.debtMedium) {
|
|
21
|
+
const row = (label) => {
|
|
22
|
+
// a table row whose first cell contains the label and whose next cell is a number
|
|
23
|
+
const re = new RegExp("\\|[^|\\n]*\\b" + label + "\\b[^|\\n]*\\|\\s*\\**\\s*(\\d+)\\s*\\**\\s*\\|", "i");
|
|
24
|
+
const m = text.match(re);
|
|
25
|
+
return m ? parseInt(m[1], 10) : 0;
|
|
26
|
+
};
|
|
27
|
+
out = { debtCritical: row("CRITICAL"), debtHigh: row("HIGH"), debtMedium: row("MEDIUM") };
|
|
28
|
+
}
|
|
29
|
+
return out;
|
|
16
30
|
}
|
|
17
31
|
|
|
18
32
|
function parseTestCoverage(text) {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@tekyzinc/gsd-t",
|
|
3
|
-
"version": "4.0.
|
|
3
|
+
"version": "4.0.25",
|
|
4
4
|
"description": "GSD-T: Contract-Driven Development for Claude Code — 54 slash commands with headless-by-default workflow spawning, unattended supervisor relay with event stream, graph-powered code analysis, real-time agent dashboard, task telemetry, doc-ripple enforcement, backlog management, impact analysis, test sync, milestone archival, and PRD generation",
|
|
5
5
|
"author": "Tekyz, Inc.",
|
|
6
6
|
"license": "MIT",
|