#!/usr/bin/env bash # Prints ground-truth grounding context for SessionStart ("session") or # UserPromptSubmit ("prompt"). Stdout becomes model context. Always exits 0. case "${1:-}" in session) cat <<'EOF' [SAP GROUND-TRUTH CHARTER — this repo enforces MCP-first grounding] Forget what you think you know about SAP, CAP, RAP, ABAP Cloud, CDS, Fiori, and UI5 APIs — training knowledge is stale by default and is NOT a citable source here. Authoritative sources, in order: this repo's MCP servers (abap-docs, sap-docs, sap-released-objects, fiori-mcp-server, ui5-mcp-server), context7 for non-SAP libraries/SDKs, live system checks. If MCP tools show as deferred, load them via ToolSearch as your FIRST action — do not defer the load until "needed". Every SAP behavioral claim you record in PRD/ADR/KNOWLEDGE must carry a citation: [source: , verified YYYY-MM-DD]. Uncited = hypothesis. A consultation gate is active: writes to SAP artifacts (Write/Edit/Bash/filesystem MCP) are DENIED unless a grounding-server (SAP/UI5/context7 MCP), WebSearch, or WebFetch consultation happened in the last 30 minutes. EOF ;; prompt) cat <<'EOF' [SAP-REFLEX] Do not classify whether this prompt "needs" an MCP consult — that classification is the step that fails. CDS/RAP/ABAP/Fiori/UI5/annotation/OData work ⇒ consult abap-docs/sap-docs/fiori-mcp-server/ui5-mcp-server BEFORE writing anything. Library/SDK questions ⇒ context7. Record SAP claims only with [source: , verified YYYY-MM-DD]. EOF ;; esac exit 0