aaronsb_obsidian-mcp-plugin/scripts
Aaron Bockelie c59314d591 fix(scorecard): re-anchor parser to redesigned Obsidian portal (#183)
The 2026 portal redesign replaced the old DOM/RSC structure with a card
UI: Health/Review render as a coloured grade word + a segmented bar
meter, and findings are RSC JSX tuples. The old parser drifted (SCRAPER
DRIFT, null anchors).

- decodeDoc/toText split: keep tags for the structural bar meter, strip
  for prose fields.
- gradeAndScore(): grade = coloured span after the label; numeric score =
  filled/total bar-meter segments (#183 — the portal's visible trust
  signal), window bounded to the next label so Health can't bleed into
  Review.
- Grade vocab no longer enum-pinned (the hard-coded Excellent|Good|… list
  is exactly what drifted) — capture whatever word renders; drift guard
  catches a null.
- Findings re-extracted from ["$","div|details","<text>",{...}] tuples in
  the scorecard region; SIGNATURE re-anchored to the redesign wording
  (**Title**: + neutral scan/attestation sentences).
- Drift guard: numeric scores are now first-class anchors; findingsDrift
  = non-zero issue count with zero findings. Exit 2 on drift preserved.

Validated live: Health Excellent (4/4), Review Satisfactory (3/4), 5
issues, 12 findings, freshness current, integrity ok. Correctly surfaces
the residual "Dynamic Code Execution" finding on 0.11.25 (clears when a
post-ADR-201 release is scanned — the CLAUDE.md caveat).

Refs #183
2026-05-16 23:29:53 -05:00
..
build-mcpb.mjs fix(build): Use stable latest-release URL for MCPB download 2026-05-15 11:46:06 -05:00
make-mcpb.mjs feat: Add scripts/make-mcpb.mjs interactive maker for advanced users 2026-05-15 11:31:57 -05:00
scorecard.mjs fix(scorecard): re-anchor parser to redesigned Obsidian portal (#183) 2026-05-16 23:29:53 -05:00
set-description.mjs chore(meta): make pattern for plugin description; rewrite copy 2026-05-16 12:07:52 -05:00