AI Supply Chain Risk Management - Component discovery, signing, and continuous validation for AI systems
AI-SCRM provides 25 tools with mostly complete schemas and descriptions. Strengths: all tools have descriptions (50-300 chars, within baseline 194 avg); all parameters are typed and described; clear AI-SCS compliance narrative. Weaknesses: naming lacks action verbs (e.g., 'finalize', 'scan', 'guard' are weak; 'add_model' is good but 'Monitor.start' uses dot notation); many tools are library/class methods rather than discrete MCP tools (Monitor.start/stop/pause/resume are state management, not independent operations); error handling guidance is absent (no recovery hints in descriptions); output schemas are documented in prose but not in formal JSON Schema; composition issues (add_* methods should batch or chain better). Transport unknown, cannot verify MCP registration.
Load ABOM from JSON file.
Serialize ABOM to JSON file.
Check if an MCP server is authorized in the ABOM.
Check if a tool is authorized in the ABOM.
FastAPI middleware for AI-SCRM validation. Validates requests against ABOM based on path patterns.
Get current monitor status including state, last check times, and statistics.
Pause monitoring (can be resumed).
Resume monitoring after pause.
Weak action verbs in tool names. 'finalize', 'guard', 'scan' lack clarity on what happens. 'finalize' should be 'create_abom' or 'build_abom'; 'guard' should be 'authorize_tool' or 'validate_tool_access'; 'scan' should be 'discover_components' or 'scan_for_components'. LLMs rely on verb_noun naming to infer intent.
Class/method naming (Monitor.start, ABOM.to_file, Signer.sign) violates verb_noun convention. MCP tools should be flat, not nested under classes. Rename to 'start_monitor', 'serialize_abom_to_file', 'sign_abom', 'verify_abom_signature' for clarity.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 59 | <=2025-11-25 | v2 |
Start continuous validation monitor. Runs tiered validation at configurable intervals: hash checks, MCP heartbeat, and full scans.
Stop the continuous validation monitor.
Check if an observation complies with policies.
Sign an ABOM document with cryptographic signature.
Verify cryptographic signature of an ABOM document.
Add a dataset component (AI-SCS 4.1.2, 5.3.2). Captures data provenance with type, source, and license information.
Add a fine-tuned model (AI-SCS 4.1.1). Convenience method that sets model_type='fine-tuned' and requires base_model_ref.
Add a library/dependency component (AI-SCS 4.1.4). Supports frameworks, tokenizers, and runtime libraries.
Add an MCP server component (AI-SCS 4.1.6). Declares MCP servers with trust boundary classification and capabilities.
Add a model component (AI-SCS 4.1.1, 5.3.1). Mandatory Fields: Model name, Model version, Cryptographic hash, Model format, Source organization, Base model reference (for fine-tuned/adapters)
Add a prompt template component (AI-SCS 5.3.6). Captures behavioral artifacts including system prompts and guardrail prompts.
Add a tool component (AI-SCS 4.1.6). Supports plugins, function calls, and external APIs.
Context manager for emergency bypass of AI-SCRM checks. All checks are disabled within the context, but activity is logged.
Finalize and validate the ABOM document. Returns a complete ABOM object ready for signing or file output.
Decorator to guard function execution with AI-SCRM validation. Authorizes tool or MCP server access against ABOM.
Wrap a LangChain agent with AI-SCRM validation. Intercepts tool calls and validates against ABOM.
Scan for AI components including models, MCP servers, libraries, and prompts. Returns a ScanResult with discovered artifacts.
No error handling guidance in descriptions. Tools like 'add_model' and 'finalize' lack recovery hints (e.g., 'If validation fails, check hash_value format or supplier name'). Descriptions should state what errors are possible and how to fix them.
Output schemas not formally documented. Descriptions mention 'returns ABOM object' or 'returns ScanResult' but no JSON Schema for response structure. LLMs cannot plan downstream calls without knowing response fields.
State management tools (Monitor.start/stop/pause/resume) should be consolidated or redesigned. Four separate tools for one resource violates single-responsibility. Consider 'update_monitor_state' with a 'state' enum parameter (start|stop|pause|resume) or separate into independent operations with clearer names.