v2.10.0
The Polish & Audits milestone — 10 of 10 issues closed. Three audit-flavored research artifacts (ISO 27001/27002, CIS M365 v6.0.1, per-control narrative content) plus the long-standing SharePoint prefix-bug in the report's "Why It Matters" renderer. No breaking API changes.
Added
- Per-prefix narrative content for the finding-detail "Why It Matters" callout (#854) — expanded coverage from ~22 to ~70 prefix families across SPO / EXO / DNS / DEFENDER / ENTRA / CA / INTUNE / COMPLIANCE / TEAMS / POWERBI / PBI / FORMS. Order preserves more-specific-first (e.g.,
EXO-FORWARDbefore genericEXO-). Newdocs/research/narrative-content-sources.mdcaptures source-authority by family (Microsoft Learn, CIS M365 v6.0.1, NIST 800-63B / 800-53 r5, CISA, M3AAWG, FBI IC3, MITRE ATT&CK). Per-checkId refinement + architectural move tocontrols/narrative-overlay.jsondeferred to follow-up - ISO 27001 vs 27002 mapping audit (#858) — new
docs/research/iso-27001-vs-27002-audit.mddocuments the upstream SCF conflation (1020 / 1020 identical mappings) and recommends the upstream-fix path. Newiso-27002.jsonframework definition (was missing — registry tagged checks withiso-27002but no framework JSON existed). Newtests/Behavior/Iso-27001-27002-Mapping-Audit.Tests.ps1with skip-until-upstream divergence assertion + always-runs informational stats. Follow-up tracker #871 monitors when upstream lands - CIS M365 v6.0.1 mapping audit (#848) — new
docs/research/cis-m365-v6-audit.mdcatalogs section-9 POWERBI-/PBI- merge-artifact duplicates (11/11 clusters all parallel pairs — every Power BI / Fabric check ships twice and inflates coverage counts) + section-4 EXO-* labeling anomaly (4/6 checks are EXO despite section being named "Microsoft Intune"). Newtests/Behavior/Cis-M365-v6-Mapping-Audit.Tests.ps1with skip-until-upstream regressions on both anomalies + informational stats
Fixed
- SPO- / SHAREPOINT- prefix matching bug in
whyItMatters()(#854) — the chain checkedstartsWith('SHAREPOINT-')but the registry usesSPO-. Every SharePoint finding was hitting the generic fallback since SPO content was added. Now matches correctly with sub-prefix specificity (SHARING/B2B, SITE/ACCESS, SCRIPT/SWAY, SYNC/OD, MALWARE/VERSIONING/LOOP/AUTH/SESSION) plus legacy SHAREPOINT-/20B- catches retained for compatibility