fix(ms-ai-architect): RX-P2 reg-kjede-wiring + komprehensiv agent-sti-forankring [skip-docs]

- classify->dpia->ros kjede-wiring: dpia/ros Task-templater far eksplisitte
  AI Act-klassifiserings- + DPIA-funn-felt (kjede-data agentene allerede branchet pa)
- dpia-agent uutforbar "spor bruker" -> "marker vurderingen" (Hvis-ikke-klassifisert
  + Error Handling); speilet til ros-analysis-agent
- adr-writer-agent: Write-verktoy fjernet, returnerer ADR-markdown til hovedkontekst
  (command er eneste skriver -- subagenter skriver aldri)
- KB-sti-forankring (komprehensiv): 36 bare referanse-subdir-stier i 6 agenter +
  2 commands fullkvalifisert med CLAUDE_PLUGIN_ROOT/skills/<skill>/references/ ---
  ogsa innen-skill kortformer, uresolverbare i installert modus
- mekanisme: validate-plugin.sh Check 6d (bare-subdir-lint m/ hyphen-guard) +
  negativ-probe-test (beviser tenner) + RX-P2 wiring-regresjonstester

Suite 859/859 exit 0. validate-plugin 250 PASS / 0 FAIL. 145 forankrede stier
verifisert eksisterende (0 mangler).
This commit is contained in:
Kjell Tore Guttormsen 2026-07-15 12:17:01 +02:00
commit b68514487c
13 changed files with 151 additions and 36 deletions

View file

@ -349,6 +349,33 @@ else
pass "No sonnet/haiku pinned in Task delegations"
fi
# 6d: every bundled reference-subdir path must be ${CLAUDE_PLUGIN_ROOT}-anchored.
# Short-forms like `responsible-ai/foo.md` (a reference subdir + file, without the
# full skills/<skill>/references/ prefix) resolve only in dev cwd -- installed mode
# breaks. A path is anchored iff the subdir is immediately preceded by '/'
# (.../references/<subdir>/). The (^|[^A-Za-z0-9._/-]) guard fires on bare short-forms
# (preceded by backtick/space/comma/colon) while skipping anchored paths (preceded
# by '/') and compound subdir names (e.g. 'architecture' inside 'rag-architecture',
# preceded by '-').
REF_SUBDIRS='architecture|copilot-extensibility|development|platforms|prompt-engineering|agent-orchestration|api-management|azure-ai-services|data-engineering|mlops-genaiops|multi-modal|rag-architecture|monitoring-observability|norwegian-public-sector-governance|responsible-ai|bcdr|hybrid-edge|ai-security-engineering|cost-optimization|performance-scalability'
subdir_offenders=0
for f in "$PLUGIN_ROOT"/commands/*.md "$PLUGIN_ROOT"/agents/*.md; do
[ -f "$f" ] || continue
rel="${f#$PLUGIN_ROOT/}"
bare="$(grep -nE "(^|[^A-Za-z0-9._/-])($REF_SUBDIRS)/[A-Za-z0-9._-]+\.md" "$f" || true)"
if [ -n "$bare" ]; then
while IFS= read -r bline; do
[ -n "$bline" ] || continue
lineno="${bline%%:*}"
fail "$rel:$lineno: bare reference-subdir path (needs \${CLAUDE_PLUGIN_ROOT}/skills/<skill>/references/ prefix for installed mode)"
subdir_offenders=$((subdir_offenders + 1))
done <<< "$bare"
fi
done
if [ "$subdir_offenders" -eq 0 ]; then
pass "All reference-subdir paths are \${CLAUDE_PLUGIN_ROOT}-anchored"
fi
echo ""
# -------------------------------------------------------