The existing NIST corpus (SP 800-82r3 etc., ingested before source_class tagging)
was classified supervisory_guidance because "NIST" sat in guidanceMarkers, so the
control-intent lift (#36) could never surface it. Add a technical_standard class:
- authority.go: new standardMarkers (NIST/OWASP/Grundschutz/ISO 27001/CSA CCM/CIS),
checked before guidanceMarkers (so "BSI Grundschutz" -> standard, not BSI guidance);
move NIST out of guidanceMarkers; sourceClassFromWeight maps weight 80 -> standard.
- authority_rerank.go: the intent-lift path (liftAboveBinding + bestBindingSemantic)
now classifies via classifyAuthority instead of trusting the raw payload source_class,
so the untagged legacy corpus is recognized — untagged NIST is now lifted on a
control question ("Welche Controls passen zu Security Updates?").
Tested: classifier cases for NIST/Grundschutz/weight-80, and an untagged-NIST lift case.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>