run-sap-router-skilllisted
Install: claude install-skill williamcorrea23/sap-router-skill
# Run: sap-router-skill
> **Multi-IDE:** Same `driver.py` works on Codex, Antigravity, and Codex.
> Codex → this file. Antigravity → `.gemini/skills/run-sap-router-skill/SKILL.md`.
> Codex → `AGENTS.md` at unit root. All point to the same driver.
The repository now contains 40 Python operational scripts under `scripts/`.
The core smoke gate remains self-contained: **no live SAP system, network,
or credentials needed** — routing is a static lookup table, `memory_manager`
is local file I/O, `xls_to_bapi` parses CSV/XLSX. Everything runs offline.
| Script | Purpose |
|---|---|
| `sap_router.py` | Routing engine: ADT-first; SAP GUI scripting fallback (mcp-sap-gui); sf-mcp |
| `memory_manager.py` | Session context file (MEMORY.md) lifecycle |
| `xls_to_bapi.py` | CSV/XLSX → BAPI JSON payload converter |
| `template_repo.py` | Offline ABAP template repository with `{{placeholders}}` |
| `abap_serializer.py` | Multi-format ABAP packer: .nugg, abapGit, ZDOWNLOAD XML |
The agent path is the smoke driver: it launches every CLI surface against a
throwaway workspace and asserts exit codes + output.
## Repository-owned skill/MCP discovery
For ambiguous SAP tasks, search the unified local catalog before choosing a
skill or MCP:
```bash
python scripts/source_catalog.py search "task description"
python scripts/mcp_launcher.py search --query "task description"
```
Bundled MCP snapshots are fail-closed (`disabled_candidate`) until reviewed and
promoted in `.agents/registries/mcps.json`