Experimental strategic-risk reasoning framework for AI agents with versioned memo contracts, CLI, and MCP. Provides the Policy Risk Memo Architect method and a versioned method-contract preflight plus a structured MemoArtifact interface.
The server provides 6 tools with explicit definitions, async handlers, and input schemas via the MCP framework. All tools are READ_ONLY and domain-focused on memo analysis and artifact validation. However, several critical gaps limit production readiness: (1) most parameter descriptions are minimal or missing context about usage scenarios; (2) output schemas are not documented in the tool definitions themselves, callers must infer structure; (3) error handling is present but not guided (e.g., check_memo_artifact and render_memo_artifact raise ValueError without recovery hints); (4) no enum constraints on the 'mode' parameter despite a fixed set of 7 valid modes (A-G). The tool names are clear and action-oriented (get_*, check_*, render_*), following verb_noun convention. Schema definitions exist in function signatures but lack depth, parameter descriptions do not state ranges, formats, or dependencies.
Validate MemoArtifact JSON, including per-claim provenance structure. This check validates declarations and cross-references, not the truth or adequacy of the named sources.
Run the versioned method-contract preflight on a draft memo. This check does not verify claim/source support, factuality, or analytical quality. Use Agenda Intelligence MD for evidence-packet linting.
Return the canonical JSON Schema for a structured memo artifact.
Return the canonical section for a specific memo mode.
Return the complete packaged analyst instructions in English or Russian.
Validate MemoArtifact JSON and render its canonical Markdown view.
Mode parameter lacks enum constraint. The 'mode' parameter in get_mode_template and check_memo_contract accepts a free-form string, but only 7 values (A-G) are valid. LLMs will hallucinate invalid modes without explicit enum constraint.
Parameter descriptions lack context on format and constraints. The 'language' parameter in get_skill_prompt and get_mode_template states 'Language code (en or ru)' but does not document what happens on invalid input (e.g. 'fr' or 'EN'). The 'draft' parameter in check_memo_contract does not specify expected markdown dialect or section structure.
Output schemas not documented in tool definitions. Tools like check_memo_artifact and render_memo_artifact do not document their return structure. check_memo_contract returns dict[str, object], the LLM cannot infer which keys (findings, passed, artifact, path, message) are present or typed. Callers must reverse-engineer output by studying the underlying validate_memo_artifact() function.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 66 | 2026-07-28+ | v2 |
Error handling does not guide recovery. render_memo_artifact raises ValueError('Invalid MemoArtifact: ...') but does not advise the LLM on remediation. A better error would be: 'MemoArtifact validation failed at [path]: [message]. Review the schema with get_memo_artifact_schema() and correct the artifact, then retry.' This pattern applies to check_memo_artifact and check_memo_contract as well.
Artifact parameter requires string-encoded JSON but does not document validation. The 'artifact' parameter in check_memo_artifact and render_memo_artifact expects 'A complete MemoArtifact JSON object encoded as a string', but no guidance on how to detect/handle malformed JSON, missing required fields, or type mismatches within the artifact object.