@jhizzard/termdeck 1.7.0 → 1.8.1

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.
@@ -21,9 +21,19 @@ function parseStatusMd(filePath) {
21
21
  const content = fs.readFileSync(filePath, 'utf8');
22
22
  const lines = content.split('\n');
23
23
 
24
- // Regex per BRIEF (loosened for multiple suffixes):
25
- // ^### \[(T\d+(?:-[A-Z0-9-]+)?|ORCH)\] (FINDING|PROPOSE|LANDED|DONE|AUDIT-RED|AUDIT-CONCERN|CHECKPOINT|FINAL-VERDICT|STATUS|RULING) (\d{4}-\d{2}-\d{2}) (\d{2}:\d{2}) ET — (.*?)$
26
- const POST_RE = /^### \[(T\d+(?:-[A-Z0-9-]+)?|ORCH)\] (FINDING|PROPOSE|LANDED|DONE|AUDIT-RED|AUDIT-CONCERN|CHECKPOINT|FINAL-VERDICT|STATUS|RULING) (\d{4}-\d{2}-\d{2}) (\d{2}:\d{2}) ET — (.*?)$/;
24
+ // Canonical post header (global CLAUDE.md § lane post-shape uniformity):
25
+ // ### [T<n>] VERB[ (qualifier)] YYYY-MM-DD HH:MM ET — <gist>
26
+ // The verb is HARD-ANCHORED to the header position (immediately after the
27
+ // lane tag), so a verb word appearing in a gist/prose — e.g. "DONE" inside a
28
+ // CHECKPOINT line's gist — is never mis-counted as that verb; it survives
29
+ // only as gist (capture group 5). Verb vocabulary tracks the REAL lane
30
+ // vocabulary, incl. FIX-PROPOSED / FIX-LANDED / AUDIT-PASS / AUDIT-FAIL, plus
31
+ // an optional parenthetical qualifier after the verb (e.g. the real shape
32
+ // `AUDIT-PASS (cdp/render)`). Order longer compounds before their shorter
33
+ // prefixes is unnecessary here (all alternatives are anchored + whitespace-
34
+ // delimited), but FIX-*/AUDIT-* are listed before bare PROPOSE/LANDED for
35
+ // readability.
36
+ const POST_RE = /^### \[(T\d+(?:-[A-Z0-9-]+)?|ORCH)\] (FINDING|FIX-PROPOSED|PROPOSE|FIX-LANDED|LANDED|DONE|AUDIT-RED|AUDIT-CONCERN|AUDIT-PASS|AUDIT-FAIL|CHECKPOINT|FINAL-VERDICT|STATUS|RULING)(?:\s+\([^)]*\))? (\d{4}-\d{2}-\d{2}) (\d{2}:\d{2}) ET — (.*?)$/;
27
37
 
28
38
  const laneLandeds = {}; // laneTag -> latest LANDED timestamp
29
39
  const openReds = []; // List of {tag, timestamp, gist}
@@ -57,7 +67,7 @@ function parseStatusMd(filePath) {
57
67
  gist
58
68
  };
59
69
 
60
- if (verb === 'LANDED') {
70
+ if (verb === 'LANDED' || verb === 'FIX-LANDED') {
61
71
  laneLandeds[tag] = timestamp;
62
72
  }
63
73