{"schema_version":"verify.report.v1","generated_at":"2026-09-01T23:58:29.792616+00:00","snapshot_id":"trustsnap_986ef21288eef7a0","server":{"namespace":"awesome-aidesignblueprint","name":"integrations","title":"aidesignblueprint/integrations","description":"aidesignblueprint/integrations aidesignblueprint/integrations](https://glama.ai/mcp/servers/aidesignblueprint/integrations) 🐍 ☁️ - Read-only doctrine access for the Agentic AI Blueprint — the industry standard reference for safe, observable, and steerable AI agent UX. Browse and search 10 principles, clusters, curated implementation examples, and application guides for production agentic AI systems. 13 public tools require no credentials. `https://aidesignblueprint.com/mcp`","homepage_url":"https://github.com/aidesignblueprint/integrations","docs_url":"https://github.com/aidesignblueprint/integrations","icon_url":null,"support_url":"https://github.com/aidesignblueprint/integrations","remote_url":"https://aidesignblueprint.com/mcp","server_card_url":null,"latest_version":null,"current_status":"failing","current_score":null,"transport_type":"streamable-http","has_oauth":true,"has_dcr":true,"has_prompts":false,"tool_count":0,"current_validation_schema_version":"8058defc70ca932c","last_validated_at":"2026-09-01T14:29:45.710497+00:00","registry_source":"awesome_mcp_servers","registry_identifier":"awesome_mcp_servers:aidesignblueprint/integrations","canonical_identifier":null,"current_score_components":{"auth_operability_score":4.0,"error_contract_score":0.0,"rate_limit_semantics_score":2.0,"schema_completeness_score":0.0,"backward_compatibility_score":4.0,"slo_health_score":0.0,"security_hygiene_score":0.0,"task_success_score":0.0,"trust_confidence_score":1.0,"prompt_contract_score":0.0,"resource_contract_score":0.0,"discovery_metadata_score":2.0,"registry_consistency_score":2.0,"installability_score":1.0,"session_semantics_score":1.0,"tool_surface_design_score":0.0,"result_shape_stability_score":0.0,"oauth_interop_score":4.0,"recovery_semantics_score":0.0,"maintenance_signal_score":2.0,"adoption_signal_score":1.0,"freshness_confidence_score":1.0,"transport_fidelity_score":3.0,"spec_recency_score":2.0,"session_resume_score":4.0,"step_up_auth_score":4.0,"transport_compliance_score":3.0,"utility_coverage_score":1.0,"advanced_capability_coverage_score":0.0,"connector_publishability_score":1.0,"tool_snapshot_churn_score":0.0,"connector_replay_score":0.0,"request_association_score":0.0,"interactive_flow_safety_score":4.0,"official_registry_presence_score":2.0,"safety_transparency_score":3.0,"tool_capability_clarity_score":0.0,"data_exfiltration_resilience_score":0.0,"dependency_supply_chain_signal_score":0.0,"input_sanitization_safety_score":0.0,"tool_namespace_clarity_score":0.0},"capability_taxonomy":[],"machine_summary":{},"taxonomy_tags":[],"score_decomposition":[],"validation_diff":null,"tool_snapshot_diff":null,"connector_replay":{},"request_association":{},"production_readiness":{"code":"failing","label":"Failing","reason":"The latest validation run was attempted but did not complete successfully.","badge":"score-low"},"recommended_for":[],"history_summary":{},"validation_timeline":[],"evidence_confidence":{"score":null,"label":"not_assessed","reason":"No evidence-bearing validation runs exist yet (11 captured checks, validation age 9.5 hours). Confidence cannot be computed.","live_check_count":11,"validation_age_hours":9.48,"basis":{"evidence_bearing_validations":0,"affirmative_live_check_count":11,"validation_age_hours":9.48,"freshness_threshold_hours":24}},"incident_feed":[],"disputes":[],"remediations":[],"client_remediation_modes":[],"client_profiles":[],"client_readiness_verdicts":[],"publishability_policy_profiles":[],"compatibility_fixtures":[],"install_snippets":{},"aliases":[],"raw_evidence":{"checks":{"probe_noise_resilience":{"status":"ok","latency_ms":403.29,"details":{"url":"https://aidesignblueprint.com/robots.txt","http_status":200,"headers":{"content-type":"text/plain"},"validation_disallowed":false,"consent_error":null}},"server_card":{"status":"ok","latency_ms":95.61,"details":{"url":"https://aidesignblueprint.com/.well-known/mcp/server-card.json","payload":{"name":"com.aidesignblueprint/blueprint","title":"AI Design Blueprint","description":"Doctrine and governed validation for agentic AI: public principles/examples read tools, plus authenticated validators (architect.validate, design.validate, spec.validate) that score implementations, rendered surfaces, and specs against the doctrine.","url":"https://aidesignblueprint.com/mcp","transport":"http","authentication":{"schemes":["bearer"],"instructions":"Public read tools need no auth. Paid validators take a Bearer token tied to an account with an active plan: sign in at https://aidesignblueprint.com/en/connect for guided setup, or use in-client OAuth where supported."},"publisher":{"name":"AI Design Blueprint","url":"https://aidesignblueprint.com"},"documentation":"https://aidesignblueprint.com/en/for-agents/mcp"},"http_status":200,"headers":{"content-type":"application/json"}}},"oauth_protected_resource":{"status":"ok","latency_ms":325.41,"details":{"url":"https://aidesignblueprint.com/.well-known/oauth-protected-resource","payload":{"resource":"https://aidesignblueprint.com/mcp","authorization_servers":["https://aidesignblueprint.com"],"bearer_methods_supported":["header"],"resource_documentation":"https://aidesignblueprint.com/for-agents/mcp"},"http_status":200,"headers":{"content-type":"application/json"}}},"oauth_authorization_server":{"status":"ok","latency_ms":93.22,"details":{"url":"https://aidesignblueprint.com/.well-known/oauth-authorization-server","payload":{"issuer":"https://aidesignblueprint.com","authorization_endpoint":"https://aidesignblueprint.com/oauth/authorize","token_endpoint":"https://aidesignblueprint.com/api/oauth/token","registration_endpoint":"https://aidesignblueprint.com/api/oauth/register","response_types_supported":["code"],"grant_types_supported":["authorization_code"],"code_challenge_methods_supported":["S256"],"token_endpoint_auth_methods_supported":["none"],"scopes_supported":["mcp"]},"http_status":200,"headers":{"content-type":"application/json"}}},"openid_configuration":{"status":"error","latency_ms":129.35,"details":{"url":"https://aidesignblueprint.com/.well-known/openid-configuration","error":"Client error '404 Not Found' for url 'https://aidesignblueprint.com/.well-known/openid-configuration'\nFor more information check: https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/404"}},"initialize":{"status":"ok","latency_ms":424.52,"details":{"url":"https://aidesignblueprint.com/mcp","payload":{"jsonrpc":"2.0","id":1,"result":{"protocolVersion":"2025-03-26","capabilities":{"experimental":{},"prompts":{"listChanged":false},"resources":{"subscribe":false,"listChanged":false},"tools":{"listChanged":false},"tasks":{"list":{},"cancel":{},"requests":{"tools":{}}}},"serverInfo":{"name":"Agentic AI Blueprint Doctrine","version":"1.26.0"},"instructions":"Read-only doctrine and example access for the Agentic AI Blueprint. Use these tools to retrieve principles, clusters, curated examples, and downloadable agent assets. Public tools require no credentials. Tools marked 'Auth: Bearer <token>' require a Firebase ID token in the Authorization header. Pro/Teams tools additionally require an active paid membership."}},"http_status":200,"headers":{"content-type":"application/json","mcp-session-id":"dda5609e23f44f688d0c5d1951689045"}}},"protocol_version_probe":{"status":"warning","latency_ms":null,"details":{"claimed_version":"2025-03-26","validator_protocol_version":"2025-03-26","latest_known_version":"2025-11-25","releases_behind":2,"lag_days":244}},"tools_list":{"status":"error","latency_ms":116.97,"details":{"url":"https://aidesignblueprint.com/mcp","error":"Client error '400 Bad Request' for url 'https://aidesignblueprint.com/mcp'\nFor more information check: https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/400","http_status":400,"payload":{},"headers":{"content-type":"application/json","mcp-session-id":"8cb4068a39ef4aa0a1e08155d2fdf49f"}}},"prompts_list":{"status":"missing","latency_ms":370.6,"details":{"url":"https://aidesignblueprint.com/mcp","error":"Client error '400 Bad Request' for url 'https://aidesignblueprint.com/mcp'\nFor more information check: https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/400","http_status":400,"payload":{},"headers":{"content-type":"application/json","mcp-session-id":"90efe5249510458a9fba30ac031fab4f"},"reason":"not_advertised"}},"prompt_get":{"status":"missing","latency_ms":null,"details":{"reason":"not_advertised"}},"resources_list":{"status":"missing","latency_ms":378.19,"details":{"url":"https://aidesignblueprint.com/mcp","error":"Client error '400 Bad Request' for url 'https://aidesignblueprint.com/mcp'\nFor more information check: https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/400","http_status":400,"payload":{},"headers":{"content-type":"application/json","mcp-session-id":"fa195299331b4cd6a286eff50f5f5e48"},"reason":"not_advertised"}},"resource_read":{"status":"missing","latency_ms":null,"details":{"reason":"not_advertised"}},"determinism_probe":{"status":"missing","latency_ms":null,"details":{"reason":"tools_list_unavailable"}},"instruction_tool_reference_probe":{"status":"not_assessed","latency_ms":null,"details":{"reason":"initialize_or_tools_unavailable"}},"session_resume_probe":{"status":"ok","latency_ms":221.19,"details":{"url":"https://aidesignblueprint.com/mcp","payload":{"jsonrpc":"2.0","id":301,"result":{"tools":[{"name":"principles.list","title":"List Principles","description":"List Blueprint doctrine with stable slugs, titles, and clusters. The lens selects which of the three public doctrines: 'architecture' = the 10 agentic principles (default, the architect.validate rubric); 'surface' = the 8 experience-design laws (the design.validate rubric); 'spec' = the 8 spec-quality laws (the spec.validate rubric). Use this when you need the full inventory or want every entry in one cluster (pass cluster slug to filter). Prefer principles.search when the user describes a topic, failure mode, or keyword in natural language. Prefer principles.get when you already know the exact slug and need full detail.","inputSchema":{"properties":{"cluster":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Cluster slug to filter by (e.g. 'delegation', 'visibility', 'trust', 'orchestration'). Omit to return all principles.","title":"Cluster"},"lens":{"default":"architecture","description":"Which public doctrine: 'architecture' = the 10 agentic principles (default), 'surface' = the 8 experience-design laws, 'spec' = the 8 spec-quality laws.","enum":["architecture","surface","spec"],"title":"Lens","type":"string"}},"title":"list_principlesArguments","type":"object"},"outputSchema":{"additionalProperties":true,"title":"list_principlesDictOutput","type":"object"},"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"clusters.list","title":"List Clusters","description":"List all principle clusters with their stable slugs and linked principle titles. Use this to discover which clusters exist before drilling in with clusters.get or filtering principles.list by cluster. Prefer clusters.get when you already know the cluster slug and need full detail.","inputSchema":{"properties":{},"title":"list_clustersArguments","type":"object"},"outputSchema":{"additionalProperties":true,"title":"list_clustersDictOutput","type":"object"},"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"principles.get","title":"Get Principle","description":"Get one doctrine entry by stable slug. The lens selects the doctrine: 'architecture' = one of the 10 agentic principles (default); 'surface' = one of the 8 experience-design laws; 'spec' = one of the 8 spec-quality laws. Returns id, title, cluster, definition, rationale, implications, and risk-if-violated (laws also carry their eponym and validator_questions). Use this when you already have the exact slug from principles.list; prefer principles.search when the user describes a topic or failure mode in natural language; prefer principles.list when you need every entry or every entry within a cluster. Returns error_payload on unknown slug for the lens.","inputSchema":{"properties":{"slug":{"description":"Stable slug of the principle (e.g. 'establish-trust-through-inspectability').","title":"Slug","type":"string"},"lens":{"default":"architecture","description":"Which public doctrine the slug belongs to: 'architecture' (10 principles, default), 'surface' (8 design laws), or 'spec' (8 spec laws).","enum":["architecture","surface","spec"],"title":"Lens","type":"string"}},"required":["slug"],"title":"get_principleArguments","type":"object"},"outputSchema":{"additionalProperties":true,"title":"get_principleDictOutput","type":"object"},"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"clusters.get","title":"Get Cluster","description":"Get one principle cluster by stable slug. Returns the cluster definition, shared rationale, and the full set of member principles (slug + title) so the caller can pivot into principles.get without a second list call. WHEN TO CALL: the user has already named a specific cluster (e.g. 'delegation', 'visibility', 'trust', 'orchestration') OR you have a slug from a prior clusters.list / principles.list response and need its full definition + member principles. The response embeds member principle slugs + titles already, so DO NOT loop principles.get over each member to get a cluster overview — read the response. WHEN NOT TO CALL: the user is describing a topic, failure mode, or keyword in natural language (call principles.search instead); the user wants to discover which clusters exist (call clusters.list); the user wants the definition of one specific principle (call principles.get directly). Idempotent + cacheable per slug. Returns 404-shaped error_payload on unknown slug — the slug must match exactly the value emitted by clusters.list, with no normalization.","inputSchema":{"properties":{"slug":{"description":"Stable slug of the principle cluster (e.g. 'delegation', 'visibility', 'trust', 'orchestration').","title":"Slug","type":"string"}},"required":["slug"],"title":"get_clusterArguments","type":"object"},"outputSchema":{"additionalProperties":true,"title":"get_clusterDictOutput","type":"object"},"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"examples.get","title":"Get Example","description":"Get one curated example by stable slug. Returns title, summary, source-code links, principle coverage (the principle slugs the example demonstrates), difficulty, library/framework, and implementation notes. Use this when you already have the slug from examples.search, a principles.get response, or a guide cross-link; prefer examples.search when filtering by topic / principle / difficulty / library; prefer guides.get when the caller wants a full walkthrough rather than a single reference example. Returns error_payload on unknown slug. Some entries are first-party agentic patterns (entry_kind='pattern') rather than upstream cookbook examples: those additionally return pattern_slug, pattern_family, when_to_use, doctrine_relations (each {principle_id, relation, note, code_ref} where relation is one of structural / default_gap / depends), prior_art, and doctrine_binding_basis. Every other row omits those seven keys.","inputSchema":{"properties":{"slug":{"description":"Stable slug of the curated example (e.g. 'agents-building-blocks-5-control').","title":"Slug","type":"string"}},"required":["slug"],"title":"get_exampleArguments","type":"object"},"outputSchema":{"additionalProperties":true,"title":"get_exampleDictOutput","type":"object"},"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"principles.search","title":"Search Principles","description":"Search Blueprint principles by free-text query and return the closest matches ranked by relevance. Use this to find principles related to a specific design challenge, failure mode, or keyword (e.g. 'reversibility', 'approval flow', 'delegation boundary'). Returns principle title, cluster, definition, rationale, and implementation heuristics. Prefer this over principles.list when you have a specific topic in mind rather than wanting all principles. NOTE: search currently covers the 10 agentic principles only; for the 8 experience-design laws or the 8 spec-quality laws use principles.list(lens='surface') / principles.list(lens='spec') until search spans all three lenses.","inputSchema":{"properties":{"query":{"description":"Free-text search query matched against principle title, definition, rationale, and cluster.","title":"Query","type":"string"},"limit":{"default":5,"description":"Maximum number of results to return. Capped at server maximum.","minimum":1,"title":"Limit","type":"integer"}},"required":["query"],"title":"search_principlesArguments","type":"object"},"outputSchema":{"additionalProperties":true,"title":"search_principlesDictOutput","type":"object"},"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"examples.search","title":"Search Examples","description":"Search curated examples by free-text query, ranked by relevance, with optional filters: principle_ids (only examples covering those principles), difficulty (beginner/intermediate/advanced), library (e.g. 'langgraph', 'openai'). Returns each match's slug, title, summary, principle coverage, difficulty, library, and source-code link — slug is the handle examples.get hydrates. Default limit 5, capped server-side. Use this when the user describes a use case, technique, or library and wants matching examples; prefer examples.get when you already have the slug; prefer guides.search when the user wants a full walkthrough; prefer principles.search when the user wants doctrine guidance, not an implementation. Results may include first-party agentic patterns (entry_kind='pattern') carrying an explicit doctrine binding, see examples.get. Filter to one family with pattern_family, which implies patterns only. Patterns take a small relevance preference over generic examples when otherwise equally relevant; that preference never outranks a genuine failing-principle match, and a pattern whose only relation to a failing principle is 'depends' receives no such match at all.","inputSchema":{"properties":{"query":{"description":"Free-text search query matched against example title, summary, and metadata.","title":"Query","type":"string"},"principle_ids":{"anyOf":[{"items":{"type":"integer"},"type":"array"},{"type":"null"}],"default":null,"description":"Filter to examples that cover these principle IDs.","title":"Principle Ids"},"difficulty":{"anyOf":[{"enum":["beginner","intermediate","advanced"],"type":"string"},{"type":"null"}],"default":null,"description":"Filter by difficulty level.","title":"Difficulty"},"library":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Filter by library or framework name (e.g. 'langgraph', 'openai', 'anthropic').","title":"Library"},"pattern_family":{"anyOf":[{"enum":["tools-actions","reasoning-reflection","retrieval","memory","sampling-search","multi-agent","safety-routing","specialty"],"type":"string"},{"type":"null"}],"default":null,"description":"Filter to one agentic-pattern family. Implies patterns only, since no upstream cookbook example carries a family.","title":"Pattern Family"},"limit":{"default":5,"description":"Maximum number of results to return. Capped at server maximum.","minimum":1,"title":"Limit","type":"integer"}},"required":["query"],"title":"search_examplesArguments","type":"object"},"outputSchema":{"additionalProperties":true,"title":"search_examplesDictOutput","type":"object"},"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"assets.list","title":"List Agent Assets","description":"Public — list downloadable doctrine and agent asset artifacts (skill packs, rule packs, MCP setup snippets) the user can drop into their AI coding tool to import the Blueprint as native skill/rule files. Returns a list of assets with name, format (one of: zip / md / markdown / mdc / json / toml / text — the full vocabulary), pack_version, download_url, and platform target (Claude Code, Cursor, Codex, Gemini, Qwen). The response also carries `count` (length of `assets`) for symmetry with principles.list / clusters.list / guides.list. WHEN TO CALL: the user asks how to bring the Blueprint into their coding agent, or wants to install it as a local skill/rule file. WHEN NOT TO CALL: for the live MCP tools themselves — those are already available through this server. For doctrine content, prefer principles.list/get and guides.list/get. BEHAVIOR: read-only, idempotent, no auth required. Asset artefacts are regenerated on every deploy from the canonical doctrine.","inputSchema":{"properties":{},"title":"list_agent_assetsArguments","type":"object"},"outputSchema":{"additionalProperties":true,"title":"list_agent_assetsDictOutput","type":"object"},"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"guides.list","title":"List Application Guides","description":"List application guides that show how Blueprint principles apply to engineering challenges (security, evaluation, observability, etc.). Use this to discover which guides exist before drilling in. Prefer guides.search when the user describes a topic or failure mode in natural language. Prefer guides.get when you already know the guide slug and need full detail.","inputSchema":{"properties":{},"title":"list_application_guidesArguments","type":"object"},"outputSchema":{"additionalProperties":true,"title":"list_application_guidesDictOutput","type":"object"},"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"guides.get","title":"Get Application Guide","description":"Get a full application guide by its stable slug (e.g. 'security-application', 'observable-evaluation'). Returns sections, action items, and linked principles. Use this when you already have the guide slug from guides.list or guides.search. Prefer guides.search when the user describes a topic in natural language; prefer guides.list when you need the full inventory.","inputSchema":{"properties":{"slug":{"description":"Stable slug of the application guide (e.g. 'security-application', 'observable-evaluation').","title":"Slug","type":"string"}},"required":["slug"],"title":"get_application_guideArguments","type":"object"},"outputSchema":{"additionalProperties":true,"title":"get_application_guideDictOutput","type":"object"},"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"guides.search","title":"Search Application Guides","description":"Search application guides by free-text query, matched against section answers and action items. Use this when the user describes an engineering challenge (security review, evaluation harness, observability) and wants matching guides. Prefer guides.get when you already have the guide slug; prefer guides.list when you need the full inventory.","inputSchema":{"properties":{"query":{"description":"Free-text search query matched against all guide content including section answers and action items.","title":"Query","type":"string"},"limit":{"default":5,"description":"Maximum number of results to return. Capped at server maximum.","minimum":1,"title":"Limit","type":"integer"}},"required":["query"],"title":"search_application_guidesArguments","type":"object"},"outputSchema":{"additionalProperties":true,"title":"search_application_guidesDictOutput","type":"object"},"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"signals.report","title":"Report Value Event","description":"Pro/Teams — records a value moment (e.g. review_confidence, runtime_risk_found, workflow_clarity) after a successful validate run on any lens — architect.validate, design.validate, or spec.validate — or a doctrine session. Each event captures event_type, surface_used (mcp/web/cli), perceived_value (1-5), and an optional brief_context — structured fields only, NO prompts or code stored. WHEN TO CALL: after architect.validate, design.validate, or spec.validate returns a clearly useful result AND the user has acknowledged the value (or you ask them \"would you rate this 1-5?\"). Each validator's response carries an explicit next_step instruction telling the agent to OFFER this call — surface that offer to the user. WHEN NOT TO CALL: silently or without the user's awareness; on every validate (only after a clear value moment); to capture intent or speculative value. If the user declines, do not retry within the same session. BEHAVIOR: write-only, single insert into ValueEvent. Auth: Bearer <token>, Pro or Teams plan required. UK/EU residency. Do NOT include proprietary code, prompt content, or PII in brief_context — it surfaces in admin AI-visibility dashboards. Expect a 1-line acknowledgment in the response; the structured feedback is then aggregated server-side.","inputSchema":{"properties":{"event_type":{"description":"Pick the type that best matches what just happened: 'review_confidence' — a validator lens (architect.validate / design.validate / spec.validate) returned aligned; 'runtime_risk_found' — a validate run found violations; 'workflow_clarity' — principles/examples clarified a design decision; 'agent_setup_success' — user successfully wired up an agent or MCP tool; 'onboarding_helped' — user understood how to start using the Blueprint; 'research_time_saved' — user found relevant doctrine faster than expected; 'team_alignment' — Blueprint helped align a team on agentic design; 'other' — use only if none of the above fit.","enum":["workflow_clarity","runtime_risk_found","agent_setup_success","onboarding_helped","review_confidence","research_time_saved","team_alignment","other"],"title":"Event Type","type":"string"},"surface_used":{"anyOf":[{"enum":["mcp","for-agents","integrations","principles","examples","runtime-architecture","learn","certification","coaching","other"],"type":"string"},{"type":"null"}],"default":null,"description":"Where the value was experienced. Use 'mcp' when called from Claude Code, Cursor, Windsurf, or any MCP client. Use 'principles' if the user was browsing or searching principles. Use 'examples' if the user was reading implementation examples. Use 'for-agents' if the user came via the /for-agents page. Use 'learn' or 'certification' for course-related sessions.","title":"Surface Used"},"brief_context":{"anyOf":[{"maxLength":500,"type":"string"},{"type":"null"}],"default":null,"description":"1–2 plain-English sentences summarising what was helpful. Example: 'Validation identified a missing approval gate before email send.' No code snippets, no proprietary content, no user PII. Max 500 chars.","title":"Brief Context"},"perceived_value":{"anyOf":[{"maximum":5,"minimum":1,"type":"integer"},{"type":"null"}],"default":null,"description":"Ask the user: 'On a scale of 1–5, how valuable was this session?' Map their answer directly: 1=low, 5=high. Do not guess — only set this if the user gave an explicit score.","title":"Perceived Value"},"workflow_stage":{"anyOf":[{"enum":["exploring","designing","implementing","reviewing","shipping"],"type":"string"},{"type":"null"}],"default":null,"description":"Infer from what the user was doing: 'exploring' — reading doctrine, browsing principles; 'designing' — planning architecture or agent flows; 'implementing' — writing or refactoring code; 'reviewing' — running a validator lens on existing code, a surface, or a spec; 'shipping' — preparing for production or deployment.","title":"Workflow Stage"},"would_recommend":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":null,"description":"Ask the user: 'Would you recommend the Blueprint to a colleague?' Set true/false based on their answer. Only set if asked — do not assume.","title":"Would Recommend"},"team_size":{"anyOf":[{"minimum":1,"type":"integer"},{"type":"null"}],"default":null,"description":"If the user mentions their team size during the session, record it here. Do not ask for it explicitly — only capture if volunteered.","title":"Team Size"}},"required":["event_type"],"title":"report_value_eventArguments","type":"object"},"outputSchema":{"additionalProperties":true,"title":"report_value_eventDictOutput","type":"object"},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":false}},{"name":"signals.feedback","title":"Submit Feedback","description":"Public — records explicit free-text user feedback about the Blueprint, this tool surface, or a specific principle/example. Captures category (bug, doctrine_critique, missing_example, ergonomics, other), free-text body, and optional contact_email when permission_to_follow_up is true. WHEN TO CALL: ONLY when the user explicitly says they want to give feedback (e.g. 'can you log this as feedback', 'file this critique', 'send a bug report'). Use signals.report instead for value-moment metrics (rating validate's output 1-5). WHEN NOT TO CALL: proactively, silently, or to substitute for signals.report. Never harvest contact info without explicit permission_to_follow_up=true. BEHAVIOR: write-only, no auth required (open to all callers), single insert into UserFeedback. UK/EU residency. contact_email is stored ONLY when permission_to_follow_up=true, and that fact is confirmed back in the response so the user can see the privacy boundary.","inputSchema":{"properties":{"task_type":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"What the user was doing when they decided to give feedback. Use plain English — e.g. 'code-review', 'architecture-design', 'agent-setup', 'onboarding', 'validation'. Infer from context.","title":"Task Type"},"surface":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Which Blueprint surface the feedback is about. Use 'mcp' if the session was via Claude Code or another MCP client. Use 'principles', 'examples', 'guides', 'coaching', or 'validation' based on what the user interacted with.","title":"Surface"},"rating_clarity":{"anyOf":[{"maximum":5,"minimum":1,"type":"integer"},{"type":"null"}],"default":null,"description":"Ask the user: 'How clear was the Blueprint guidance? Rate 1–5.' 1 = very unclear, 5 = very clear. Only set if the user gives an explicit number.","title":"Rating Clarity"},"rating_usefulness":{"anyOf":[{"maximum":5,"minimum":1,"type":"integer"},{"type":"null"}],"default":null,"description":"Ask the user: 'How useful was the Blueprint for this task? Rate 1–5.' 1 = not useful, 5 = very useful. Only set if the user gives an explicit number.","title":"Rating Usefulness"},"what_helped":{"anyOf":[{"maxLength":1000,"type":"string"},{"type":"null"}],"default":null,"description":"Ask the user: 'What was most helpful?' Record their answer verbatim or paraphrased in plain English. Max 1000 chars. No code snippets, no proprietary content.","title":"What Helped"},"what_missing":{"anyOf":[{"maxLength":1000,"type":"string"},{"type":"null"}],"default":null,"description":"Ask the user: 'What was missing or could be improved?' Record their answer verbatim or paraphrased. Max 1000 chars.","title":"What Missing"},"would_use_again":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":null,"description":"Ask the user: 'Would you use the Blueprint again for a similar task?' Set true/false based on their answer. Only set if they answer explicitly.","title":"Would Use Again"},"contact_email":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Only ask for this if the user explicitly says they want a follow-up response. Never prompt for email unprompted. Only stored when permission_to_follow_up=true.","title":"Contact Email"},"permission_to_follow_up":{"default":false,"description":"Set to true only if the user explicitly said they want a follow-up. Must be confirmed before storing contact_email.","title":"Permission To Follow Up","type":"boolean"}},"title":"submit_feedbackArguments","type":"object"},"outputSchema":{"additionalProperties":true,"title":"submit_feedbackDictOutput","type":"object"},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":false}},{"name":"architect.validate","title":"Validate Agent Architecture","description":"Pro/Teams — first-pass doctrine review of agentic code/workflow against the 10-principle Agentic AI Blueprint. ON CLIENT TIMEOUT — DO NOT RETRY THIS TOOL. Long-running LLM call (60-180s typical); MCP clients commonly close the call before the server returns. Retrying re-runs the 60-180s LLM call from scratch and burns compute. RECOVERY: the run_id is emitted in the FIRST notifications/progress event at t=0s (before the LLM call begins) — capture it. On timeout, call `me.validation_history(run_id='<that-id>')` to fetch the persisted result; the server-side run completes independently within a 20-minute budget. Edge case: if the transport dropped before the first progress notification (very rare; sub-second window), call `me.validation_history(repository='<same value you passed here>')` to find your most recent run. TASK-AUGMENTED INVOCATION (MCP 2025-11-25, SEP-1686): clients that advertise the `tasks` capability can task-augment this call by including `task: {ttl: <ms>}` inside the JSON-RPC request's `params` (NOT as a tool argument; alongside `arguments`, `_meta`, etc.). The server returns a `CreateTaskResult` immediately (taskId equals the run_id above) and runs the validation in the background. Spec-correct long-running pattern: poll via `tasks/get` for state, fetch the terminal payload via `tasks/result`, listen for `notifications/tasks/status` for push updates, and cancel via `tasks/cancel`. `_meta.progressToken` from the original request stays valid for the entire task lifetime. Sync (non-augmented) calls behave exactly as before, backwards-compatible by construction. The me.validation_history(run_id=...) recovery path remains the canonical recovery handle for clients that don't yet advertise the tasks capability. Returns code_classification (autonomous_agentic_workflow vs non_agentic_component), per-principle findings (verdict, severity_score 0-100, severity_class, code-cited evidence, recommendation), severity-weighted readiness (score|null, grade|null, tier ∈ {production_ready, emerging, draft, not_applicable}), recommended examples, reproducibility envelope (model, seed, doctrine_fingerprint, prompt_template_fingerprint), persistence_status with shareable run_id/badge_url/review_url. Those two URLs 404 until the run's owner publishes it: runs are private by default. Read `public_review` in the response before embedding either one. WHEN TO CALL: the user wants a governance audit, readiness score, or production_ready badge on an agent/workflow they just built or changed. WHEN NOT TO CALL: non-agentic plumbing (math utilities, type aliases, event-loop helpers, single-shot request/response handlers) returns tier=not_applicable with score=null/grade=null — that's not a failure, the doctrine simply doesn't grade non-agentic code, and architect.certify will refuse with not_agentic_component. Submit the OWNING agentic workflow instead. BEHAVIOR: long-running LLM call (~60-180s typical at high reasoning effort, single-pass; server-side budget 20 min). Mints run_id at t=0; first notifications/progress event carries run_id as recovery handle; keepalive every 30s. Persists ValidationRun + UserValidationRun + AIValidationRunLog + LLMUsageLog atomically; on rollback, badge/review URLs are stripped. Auth: Bearer <token>, Pro/Teams plan. UK/EU residency; transient OpenAI processing (no-training); prompt-injection in code is inert. INPUTS: send FULL file contents verbatim as `implementation_context` (NO truncation, NO `...` placeholders, NO comment removal — the architect treats your `...` as literal code and hallucinates bugs that don't exist). If too large, split into MULTIPLE calls scoped by file/module; never truncate one call. Pass repository=\"<name>\" to group runs into a project trend. Pass private_session=true to skip the stored run (persistence + recovery disabled); operational security + cost logs are still kept. focus_area narrows scope; unmatched focus_area fails explicitly rather than silently widening. PAYLOAD COMPLETENESS (load-bearing if you intend to architect.certify this run): the validate first-pass is permissive — it scores on doctrine alignment + structural patterns visible in the submitted code. Cert's adversarial second-pass is rigorous — it scores on cert-payload-completeness as well as code correctness. A run that scores 100/A at validate can cert-reject pre-LLM with `payload_incomplete` when imported modules' surfaces aren't visible. To validate with INTENT TO CERT, also bundle verbatim public-surface stubs for every imported module: `from sqlalchemy.exc import SQLAlchemyError` → include a stub class; `from app.db import models` → include a `class models:` namespace stub with the columns/methods the code references; module-level imports of `dataclass`, `Literal`, `json`, `datetime`, `timezone` MUST also be in the payload (cert correctly catches when they're omitted — the module would NameError on import as submitted). 'Submit Like Production': the payload should be the code as it would actually run. TWO COMPLETENESS AXES. (1) IMPORTS: stub the public surface of every dependency (above). (2) ENFORCEMENT BRANCHES: the code under cert itself (approval gates, policy checks, recovery paths) must be the REAL logic, fully written. A placeholder body (`# ... execute approved action ...`, `pass  # TODO`, a bare `...`) is graded as a MISSING control, not shorthand; cert scores what would actually run. Never sketch the agent you are certifying. Empirically reconfirmed PR #157 iter8 → iter9 cert downgrades. SCORE VARIANCE DISCLOSURE (anomaly #10 — empirically documented): validate scores are POINT ESTIMATES with an observed empirical variance band of ~20-67 pts on BYTE-IDENTICAL input. Runs against the same repository, same code, same deterministic seed (the seed is derived from input — same input → same seed) can produce materially different scores AND different top-blocker rankings, because OpenAI's reasoning models at reasoning_effort=high are not strictly deterministic even with the seed parameter pinned. The `reproducibility_mode='best_effort'` field on every response is the platform's honest disclosure of this property. For decisions where stability matters more than speed, call `architect.validate_consensus` (N=3-5 aggregated, median verdict + per-principle stability metrics) instead — collapses the variance, surfaces unstable principles explicitly. A single validate run is a single roll; consensus is the right tool when one score isn't enough. ITERATION LOOP — repository keying. Pass the SAME `repository` value across calls to chain iteration rounds; the validator auto-resolves the most recent prior run on (user, repository, scope) as `prior_run_baseline` and the LLM grades the new submission with iteration context (per-principle severity deltas surface in the response). Changing the `repository` string between calls — even subtly with an `iter-2` suffix — silently severs the chain and yields a fresh blind first-shot. Round numbering belongs in `task` or commit messages, never in `repository`. See the `architect-validation-orchestration` skill in the agent-asset pack for the full validate → consensus → certify sequence. VERIFICATION LAYERS (the two-layer doctrine this platform practices on itself): validate verifies DOCTRINE ALIGNMENT against the 10-principle Blueprint — design patterns, hand-off explicitness, operational-state inspectability, race/blocker handling at the architectural level. validate does NOT guarantee runtime correctness. cert verifies PAYLOAD COMPLETENESS and runs an adversarial second pass over the submitted code — catches production_blockers the first pass missed, name-errors on import, missing module surfaces, etc. cert does NOT verify runtime correctness either. Passing validate is a NECESSARY condition for production_ready, not a sufficient one. Runtime correctness (does this actually execute and behave?) is verified at the THIRD layer — your tests, types, walks. The platform's own recursive-integrity practice: every PR runs validate against its own primitives, then cert. Real bugs surfaced via this practice in PR #157 — NULL-UUID false-positive (iter3) and tie-breaker mismatch (iter5) — that 25 unit tests had missed. Two-layer verification is the discipline, not 'either/or'. TYPED FAILURES: timed_out, rate_limited, dependency_unavailable, schema_mismatch (each carries retryable + next_action). NEXT STEP: if tier=production_ready (A or B grade), the response carries certification_status='not_evaluated' — call architect.certify(run_id, code) to mint the certified production_ready badge (separate ~60-150s adversarial review, eligibility-gated). See Payload Completeness above for the common pre-cert pitfall.","inputSchema":{"properties":{"implementation_context":{"description":"The artifact under review. SEND FULL FILE CONTENTS VERBATIM — the architect cites per-line evidence (identifiers, branch ordering, structural choices); any compression destroys evidence and produces hallucinated findings on code that isn't there. CONCRETE DON'TS: do NOT replace docstrings/comments with `...`; do NOT condense multi-line statements; do NOT replace dict/set comprehensions with `{...}`; do NOT remove explanatory comments to save tokens. If the file is large, split into MULTIPLE architect.validate calls scoped by file/module — never truncate one call. Architecture summaries (high-level prose) accepted ONLY for greenfield (no code yet); never as a substitute for code that already exists.","title":"Implementation Context","type":"string"},"focus_area":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Narrow the evaluation to a specific principle cluster or slug (e.g. 'delegation', 'visibility', 'establish-trust-through-inspectability').","title":"Focus Area"},"task":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"What the agent or workflow is trying to accomplish. Adds evaluation context.","title":"Task"},"language":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Programming language of the code being evaluated (e.g. 'python', 'typescript').","title":"Language"},"repository":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Iteration key. SAME value across calls auto-resolves the most recent prior run as `prior_run_baseline` for iteration-aware grading (per-principle severity deltas, regressions/improvements). CHANGING the value (even subtly with an `iter-2` suffix) silently severs the chain and yields a fresh blind first-shot. Round numbering belongs in `task`, not here. Empirical evidence of why anchoring matters: PR #157 iter1 33/F vs iter2 100/A on byte-identical baseline-race primitives (+67 spread); invoice-payment-manager #158 38/F vs #159 74/C (+36 spread) — same code, score variance from non-deterministic LLM at reasoning_effort=high; the baseline anchor collapses this onto a stable arc.","title":"Repository"},"files":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"default":null,"description":"List of file paths relevant to the implementation context.","title":"Files"},"goals":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"default":null,"description":"Specific safety or quality goals to evaluate against (e.g. 'prevent irreversible actions', 'explicit approvals').","title":"Goals"},"example_limit":{"default":3,"description":"Maximum number of curated examples to include in recommendations.","minimum":1,"title":"Example Limit","type":"integer"},"private_session":{"default":false,"description":"Set to true to disable logging AND prior-run anchoring AND run_id recovery for this call. Use for private one-shots that don't participate in the iteration arc. Default false.","title":"Private Session","type":"boolean"},"session_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"default":null,"description":"Optional Governed Session to attach this run to (GEP-M2). Must reference a session YOU own (list via me.sessions; sessions are created in the web app at /app/sessions) — foreign ids are refused before any model call. The run then appears on the session's timeline alongside the other lenses. With private_session=true no run is stored so nothing attaches, but the ownership check still runs FIRST: a session id you don't own fails the call either way.","title":"Session Id"}},"required":["implementation_context"],"title":"validate_agent_architectureArguments","type":"object"},"outputSchema":{"additionalProperties":true,"title":"validate_agent_architectureDictOutput","type":"object"},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":true},"taskSupport":"optional"},{"name":"design.validate","title":"Validate Experience Design","description":"Pro/Teams — first-pass surface-craft review of a FRONTEND artefact (component, screen, or flow) against the 8 laws of the Experience Design Blueprint. The surface-craft companion to architect.validate: where architect.validate scores agentic ARCHITECTURE against the 10 agentic principles, design.validate scores the PERCEPTIBLE SURFACE — what the user sees, taps, scans, and remembers (Jakob's familiarity, Hick's choice load, Fitts's targets + the accessibility floor, Miller's working-memory budget, Aesthetic-Usability, Peak-End, Tesler's irreducible complexity, the Mental-Model gap). ON CLIENT TIMEOUT — DO NOT RETRY. Long-running LLM call (~60-180s at high reasoning effort, single-pass). The server mints a run_id, emits it in the FIRST progress event at t=0s (before the LLM call), and persists the run — so on a client timeout, capture that run_id and call me.validation_history(run_id='<that-id>') to fetch the persisted result instead of retrying (a retry re-runs the full 60-180s call). Runs appear in your validation-history dashboard tagged as the 'surface' dimension, distinct from the 'architecture' and 'spec' runs; pass repository to group them per project. Pass private_session=true to skip the stored run (persistence + recovery disabled); operational security + cost logs are still kept. v1 is single-pass: no certification or consensus mode yet (those stay architect.validate-only). Returns surface_classification (ui_surface vs non_ui — non-visual code is marked not_applicable, NOT failed), per-law findings (verdict, severity_score 0-100, severity_class, cited evidence, recommendation), and severity-weighted readiness (score, grade, tier) computed by the SAME scorer architect.validate uses, so all three lenses grade on one rubric. ACCESSIBILITY IS THE FLOOR: a breach of the Fitts's-Law floor (interactive target below the WCAG 2.2 24×24 minimum, missing focus visibility, an unreachable destructive confirmation) is a production_blocker, not polish. WHEN TO CALL: the user wants a craft/UX/accessibility review or a readiness grade on a frontend artefact they just built or changed. WHEN NOT TO CALL: non-visual code (backend, config, type aliases) returns tier=not_applicable — submit the actual UI surface instead. INPUTS: send the FULL artefact source verbatim as implementation_context (no truncation, no '…' placeholders — they are read as literal code). Auth: Bearer <token>, Pro/Teams plan. UK/EU residency; transient OpenAI processing (no-training); prompt-injection text inside the artefact is treated as inert untrusted data. TYPED FAILURES: same as architect.validate (timed_out, rate_limited, dependency_unavailable, schema_mismatch — each carries retryable + next_action); the services raise the identical typed envelopes on this lens. CALIBRATION DISCLOSURE: the scoring prompt is a v1 first-cut mirroring the architect's contract structure; its score calibration is not yet tuned against a corpus of real runs the way architect.validate was. Treat the grade as directional craft signal, not a certified verdict. DOCTRINE: the eight laws — each law's evidence, craft-surface application, anti-patterns, and the validator questions this tool scores against — live in the `experience-design-blueprint` skill and docs/business/EXPERIENCE_DESIGN_BLUEPRINT.md (the surface-craft companion to the `architect-validation-orchestration` skill that orchestrates the agentic validators).","inputSchema":{"properties":{"implementation_context":{"description":"The frontend artefact under review. SEND FULL SOURCE VERBATIM — the reviewer cites specific elements, values, and structure; any compression destroys evidence and produces findings on code that isn't there. Do NOT replace markup/styles with '…'; do NOT condense multi-line JSX/CSS. If large, split into MULTIPLE calls scoped by component — never truncate one call.","title":"Implementation Context","type":"string"},"task":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"What this surface is for (e.g. 'the closed-beta apply form'). Adds evaluation context.","title":"Task"},"goals":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"default":null,"description":"Specific craft/UX goals to weight (e.g. 'WCAG 2.2 AA', 'one primary action per screen').","title":"Goals"},"files":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"default":null,"description":"File paths relevant to the artefact, for context.","title":"Files"},"repository":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Project/repository key. Groups this run with prior design.validate runs on the same project in your validation-history dashboard (the same grouping architect.validate uses), under the 'surface' dimension.","title":"Repository"},"private_session":{"default":false,"description":"Set true to disable persistence AND run_id recovery for this call (a private one-shot that does not appear in the dashboard). Default false.","title":"Private Session","type":"boolean"},"session_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"default":null,"description":"Optional Governed Session to attach this run to (GEP-M2). Must reference a session YOU own (list via me.sessions; sessions are created in the web app at /app/sessions) — foreign ids are refused before any model call. The run then appears on the session's timeline alongside the other lenses. With private_session=true no run is stored so nothing attaches, but the ownership check still runs FIRST: a session id you don't own fails the call either way.","title":"Session Id"}},"required":["implementation_context"],"title":"validate_experience_designArguments","type":"object"},"outputSchema":{"additionalProperties":true,"title":"validate_experience_designDictOutput","type":"object"},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":true}},{"name":"spec.validate","title":"Validate Specification Quality","description":"Pro/Teams — first-pass specification-quality review of a WRITTEN SPEC (proposal, design doc, task breakdown, or an OpenSpec-style change bundle) against the 8 laws of the Spec Quality Blueprint. The what-to-build lens of the doctrine trio, applied BEFORE code exists: where architect.validate scores built agentic ARCHITECTURE and design.validate scores the rendered SURFACE, spec.validate scores the written intent the team will build from (outcome framing, scope boundary, testable acceptance, decision trail, handoff completeness, doctrine-upfront, task traceability, risk and reversibility). ON CLIENT TIMEOUT — DO NOT RETRY. Long-running LLM call (~60-180s at high reasoning effort, single-pass). The server mints a run_id, emits it in the FIRST progress event at t=0s (before the LLM call), and persists the run — so on a client timeout, capture that run_id and call me.validation_history(run_id='<that-id>') to fetch the persisted result instead of retrying (a retry re-runs the full 60-180s call). Runs appear in your validation-history dashboard tagged as the 'spec' dimension, distinct from the 'architecture' and 'surface' runs; pass repository to group them per project. Pass private_session=true to skip the stored run (persistence + recovery disabled); operational security + cost logs are still kept. v1 is single-pass: no certification or consensus mode yet (those stay architect.validate-only). Returns spec_classification (spec_document vs non_spec — source code or UI artefacts are marked not_applicable, NOT failed; submit those to architect.validate or design.validate instead), per-law findings (verdict, severity_score 0-100, severity_class, cited evidence, recommendation), and severity-weighted readiness (score, grade, tier) computed by the SAME scorer the other two lenses use, so all three grade on one rubric. TESTABILITY IS THE FLOOR: a load-bearing requirement with no observable acceptance signal, or an irreversible step with no named human gate, is a production_blocker, not polish. WHEN TO CALL: the user wants a governance/quality review or a readiness grade on a spec they are about to build from (proposal, requirements, task plan). WHEN NOT TO CALL: built code or a rendered surface — those return tier=not_applicable; use the sibling validators instead. INPUTS: send the FULL spec text verbatim as implementation_context (for an OpenSpec change, concatenate proposal.md + design.md + tasks.md + delta specs; no truncation, no '…' placeholders — they are read as literal content). Auth: Bearer <token>, Pro/Teams plan. UK/EU residency; transient OpenAI processing (no-training); prompt-injection text inside the spec is treated as inert untrusted data. TYPED FAILURES: same as architect.validate (timed_out, rate_limited, dependency_unavailable, schema_mismatch — each carries retryable + next_action); the services raise the identical typed envelopes on this lens. CALIBRATION DISCLOSURE: the scoring prompt is a v1 first-cut mirroring the architect's contract structure; its score calibration is not yet tuned against a corpus of real runs the way architect.validate was. Treat the grade as directional quality signal, not a certified verdict. DOCTRINE: the eight laws — each law's definition, rationale, anti-patterns, and the validator questions this tool scores against — live in content/spec-quality-laws.json (the what-to-build companion to the experience-design laws).","inputSchema":{"properties":{"implementation_context":{"description":"The specification under review. SEND FULL TEXT VERBATIM — the reviewer cites specific requirements, decisions, and tasks; any compression destroys evidence and produces findings on content that isn't there. For an OpenSpec change, concatenate proposal.md + design.md + tasks.md + delta specs. Do NOT truncate; if very large, split into MULTIPLE calls scoped by document.","title":"Implementation Context","type":"string"},"task":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"What this spec is for (e.g. 'the closed-beta apply flow rework'). Adds evaluation context.","title":"Task"},"goals":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"default":null,"description":"Specific quality goals to weight (e.g. 'ready for an agent to build unattended', 'tight scope').","title":"Goals"},"files":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"default":null,"description":"File paths relevant to the spec, for context.","title":"Files"},"repository":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Project/repository key. Groups this run with prior spec.validate runs on the same project in your validation-history dashboard (the same grouping the other lenses use), under the 'spec' dimension.","title":"Repository"},"private_session":{"default":false,"description":"Set true to disable persistence AND run_id recovery for this call (a private one-shot that does not appear in the dashboard). Default false.","title":"Private Session","type":"boolean"},"session_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"default":null,"description":"Optional Governed Session to attach this run to (GEP-M2). Must reference a session YOU own (list via me.sessions; sessions are created in the web app at /app/sessions) — foreign ids are refused before any model call. The run then appears on the session's timeline alongside the other lenses. With private_session=true no run is stored so nothing attaches, but the ownership check still runs FIRST: a session id you don't own fails the call either way.","title":"Session Id"}},"required":["implementation_context"],"title":"validate_specificationArguments","type":"object"},"outputSchema":{"additionalProperties":true,"title":"validate_specificationDictOutput","type":"object"},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":true}},{"name":"architect.validate_consensus","title":"Validate Agent Architecture (Consensus Mode)","description":"Pro/Teams — N-shot CONSENSUS doctrine review of agentic code. ON CLIENT TIMEOUT — DO NOT RETRY THIS TOOL. Long-running (~80-120s for N=3 parallel LLM calls); MCP clients often close the call before the server returns. Retrying re-runs N × 60-180s LLM calls from scratch and burns N× compute. RECOVERY: same heartbeat pattern as architect.validate — the run_id is emitted in the FIRST progress event at t=0s (before LLM children fire); on timeout, call `me.validation_history(run_id='<that-id>')` to fetch the persisted consensus envelope. Runs N parallel `architect.validate` calls with private_session=True, then aggregates them to a per-principle MODE verdict + median severity + per-principle stability + score range/stdev. Returns one ConsensusValidationResponse with the headline median score, the honest variance band, and a representative full ValidationResponse (the child whose score is closest to the median). WHEN TO CALL: the user wants an HONEST first-pass score on agentic code, with the architect's variance surfaced. The single-shot `architect.validate` re-asserts the prior persisted run's verdict via baseline-anchor injection — same code can score 60/C anchored vs 98/A unanchored. Consensus mode is the unanchored honest read. WHEN NOT TO CALL: when you NEED the iteration delta against a prior run (regressions/improvements panel) — for that, call `architect.validate` which keeps baseline injection on. CHAIN RESUME: each child runs with `private_session=True` (no anchor) on purpose, but the CONSOLIDATED outer row IS persisted with `lifecycle_status='completed'` — the next single-shot `architect.validate` on the same repository auto-resolves it as prior_run_baseline. Consensus checkpoint becomes the new anchor. See the `architect-validation-orchestration` skill in the agent-asset pack for the full validate → consensus → certify sequence. BEHAVIOR: N (default 3, max 5) parallel LLM calls run concurrently; wallclock ~80-120s for N=3 (max child latency, not sum). Cost = N × LLM bill. Each child runs with private_session=True so the doctrine prompt's prior-run baseline injection is suppressed (no anchor bias). One CONSOLIDATED `UserValidationRun` row is written carrying the consensus envelope; the N children themselves do NOT persist (private_session contract). AUTH: Bearer <token>, Pro/Teams plan. Same paid-plan gate as architect.validate. INPUTS: same shape as architect.validate. `n` is the only extra arg (range 2..5). `private_session` is implicit (always true for children); the OUTER consolidated row IS persisted unless the tool itself is called inside another private context — but no such wrapper exists today. OUTPUT: response carries `score_consensus_median` (headline), `score_stdev` (honest uncertainty), `score_range` (min, max), `mode_stability_min_pct` (the cert-eligibility gate's input — ≥ 80% means the consensus is stable), `per_principle` (mode + distribution + severity median per principle), and `representative_response` (the closest-to-median child's full ValidationResponse so existing UI components render unchanged). TYPED FAILURES: same as architect.validate (timed_out, rate_limited, dependency_unavailable). Plus consensus-specific: `consensus_quorum_failed` when fewer than 2 child runs succeeded (≥ 2 required to compute a meaningful median).","inputSchema":{"properties":{"implementation_context":{"description":"The artifact under review. SEND FULL FILE CONTENTS VERBATIM — same constraint as architect.validate. Truncation produces hallucinated findings on code that isn't there.","title":"Implementation Context","type":"string"},"focus_area":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Optional: narrow the review to a principle cluster or slug.","title":"Focus Area"},"task":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"What the agent or workflow is trying to accomplish.","title":"Task"},"language":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Programming language of the code (e.g. 'python').","title":"Language"},"repository":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Iteration key. Consensus children all run unanchored (`private_session=True`), but the consolidated row IS persisted under this key — discoverable as prior baseline for the next single-shot `architect.validate`. Same value across calls keeps the iteration arc inspectable.","title":"Repository"},"files":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"default":null,"description":"List of file paths relevant to the implementation.","title":"Files"},"goals":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"default":null,"description":"Specific safety or quality goals to evaluate against.","title":"Goals"},"example_limit":{"default":3,"description":"Max curated examples per child run.","minimum":1,"title":"Example Limit","type":"integer"},"n":{"default":3,"description":"Number of parallel child runs. Default 3 (the variance signal is visible at N=3; cost = 3× LLM bill). Capped server-side by Settings.consensus_n_max (default 5).","maximum":10,"minimum":2,"title":"N","type":"integer"}},"required":["implementation_context"],"title":"validate_consensus_agent_architectureArguments","type":"object"},"outputSchema":{"additionalProperties":true,"title":"validate_consensus_agent_architectureDictOutput","type":"object"},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":true}},{"name":"architect.certify","title":"Certify Production-Ready Architecture","description":"Pro/Teams — second-pass adversarial certification of an architect.validate run that scored production_ready (A or B first-pass tier). ON CLIENT TIMEOUT — DO NOT RETRY THIS TOOL. **RECOVERY FIRST**: the run_id is emitted in the FIRST notifications/progress event at t=0s (BEFORE the LLM call begins). Capture it. On timeout, call `me.validation_history(run_id='<that-id>')` to fetch the persisted cert verdict; the server-side run completes independently within a 20-minute budget. This is the canonical recovery path. Use it before considering any retry. Long-running LLM call (60-180s typical; exceeds Claude Code's ~60s idle budget); MCP clients commonly close the call before the server returns. Retrying re-runs the LLM call AND burns one of your 3 cert retry-budget attempts. Mints the certified production_ready badge when both reviewers sign off; caps the run to C/emerging when the second pass surfaces a missed production_blocker. MANDATORY DOCTRINE RULE (load-bearing): the badge certifies the EXACT code that produced the validate run_id, NOT 'this codebase' in general. If you modify, fix, or iterate the code between architect.validate and architect.certify — even a single character — cert rejects with code_fingerprint_mismatch. Fixing the code voids the run. The recovery path is always: edit code → architect.validate → fresh run_id → architect.certify on the fresh run. Do NOT cert from a stale run_id after iteration; ask the user to re-validate first. WHEN TO CALL: only after architect.validate returned tier=production_ready AND the user wants the certified badge AND the code has not been touched since the validate run. NOT for tier=draft/emerging/not_applicable runs (typed rejections fire — see below). NOT idempotent across attempts: each call is one of the 3 attempts in the retry budget. BEHAVIOR: atomic one-shot single LLM call, ~60-180s server-side at high reasoning effort (small payloads finish faster; observed p99 ~250s; server-side budget is 20 min, ~5× observed max). Exceeds typical MCP-client tool-call idle budget (~60s in Claude Code), so the FIRST notifications/progress event fires at t=0 carrying the run_id. The run is atomic by contract — no in_progress lifecycle, no cancellation, no resume. Updates the persisted run's result_json (public review URL + me.validation_history(run_id=...) reflect the cert outcome). ELIGIBILITY GATE (typed rejection enum on failure): caller must own the run, tier=production_ready, less than 24h old, not already certified, within cert retry budget (max 3 attempts), no other cert call in flight for the same run_id, code fingerprint must match the validated code, AND the submitted payload must be cert-payload-complete (see Payload Completeness below — cert rejects pre-LLM with `payload_incomplete` when an imported module's surface isn't visible in the validate payload that produced this run_id). Rejection reasons (typed Literal): auth_required, paid_plan_required, run_not_found, not_run_owner, not_eligible_tier, not_agentic_component (tier=not_applicable runs), already_certified, certification_age_exceeded, retry_budget_exhausted, code_fingerprint_mismatch, code_fingerprint_missing, code_not_on_file (caller omitted `code` argument AND the 24h cert-retry hold for this run has expired or was never written. Recovery: re-run architect.certify from the same MCP session that ran architect.validate, passing the code explicitly — the server never persists code by design), payload_incomplete (submitted/validated payload imports modules whose contents aren't visible — cert refuses pre-LLM to prevent a false-precision downgrade. Recovery: re-validate with verbatim public-surface stubs for every imported module, then re-cert on the fresh run_id. Empirically validated: PR #157 iter8/iter9 cert rejections were exactly this class — code on disk was correct, the submitted payload merely omitted module visibility), cert_consensus_score_below_threshold (consensus_median<75 — consensus runs only), cert_consensus_unstable_blocker (any principle mode_stability<80% — consensus runs only), run_state_corrupt, cert_persistence_failed, cert_in_flight (a prior architect.certify call on this run_id is still running. Poll me.validation_history for the verdict; do not retry until it resolves). PAYLOAD COMPLETENESS (load-bearing for cert eligibility): the cert reviewer reads the EXACT payload that produced the validate run_id. Imported modules whose surface isn't present in the payload cause pre-LLM `payload_incomplete` refusal. Avoidance — when validating with intent to cert, bundle public-surface stubs for every imported module: `from sqlalchemy.exc import SQLAlchemyError` → include a stub class; `from app.db import models` → include a `class models:` namespace stub with the columns/methods you reference; module-level imports of `dataclass`, `Literal`, `json`, `datetime`, `timezone` MUST also be in the payload (cert correctly catches when they're omitted — code would NameError on import). 'Submit Like Production': the payload should be the code as it would actually run, not a compressed sketch. The stubs cover IMPORTED dependencies only; the certified code's own enforcement branches (approval gates, policy checks, recovery paths) must be present in full. A `# ...` placeholder reads as an ABSENT control and is graded against you, not as shorthand for one that exists. PRE-LLM REJECTION AUDIT TRAIL: when cert rejects before the LLM call (payload_incomplete, code_fingerprint_mismatch, etc.), `certification_attempts=[]` on the response — no attempt landed in the retry budget, no LLM hop occurred. The rejection envelope's `rejection_reason` + `guidance` are the actionable surface. (Audit-trail UI surfacing of pre-LLM rejections is tracked in the platform self-audit set as anomaly #5; out of scope for the cert tool itself.) INPUTS: re-send the SAME code that produced the run_id (the architect persists findings + recommendations, never code, by design — privacy-preserving). Server compares the submitted code's SHA-256 fingerprint to the stored fingerprint and rejects mismatches. Auth: Bearer <token>, Pro or Teams plan required. UK/EU data residency (Cloud Run europe-west2). Code processed transiently by OpenAI (no-training-on-API-data) and dropped; payloads JSON-escaped + delimited as inert untrusted data — prompt-injection inside code is ignored. If the cert call fails outright (provider error, persistence error), a fresh architect.certify is the recovery path; the eligibility gate enforces the 3-attempt retry budget. For long-running cert workflows the answer is to re-validate, not to make this tool stateful. OUTCOMES: certification_status ∈ {confirmed_production_ready (badge mints), downgraded_to_emerging (cert review surfaced a missed production_blocker, tier capped at C/emerging), unavailable_provider_error (LLM call failed, retry within budget)}. Cert findings + summary + attempt history surfaced on the persisted run for full inspectability.","inputSchema":{"properties":{"run_id":{"description":"The run_id from a prior architect.validate call. Returned in the validate response when persistence_status='saved'. Must be owned by the caller (per-user authorisation, same gate as me.validation_history).","title":"Run Id","type":"string"},"code":{"default":"","description":"The same code that was sent to architect.validate to produce this run_id. Sent verbatim — the cert reviewer needs the actual code to surface production_blockers the first pass missed. May be omitted (empty string) when the prior validate stored the code under the 24h cert-retry hold; in that case the server reuses the stored code automatically. Sent under the same enterprise-safety envelope as architect.validate (transient processing, no training, JSON-escaped + delimited).","title":"Code","type":"string"}},"required":["run_id"],"title":"architect_certify_runArguments","type":"object"},"outputSchema":{"additionalProperties":true,"title":"architect_certify_runDictOutput","type":"object"},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":true}},{"name":"team.summarize","title":"Summarize Team Usage","description":"Pro/Teams — summarises the caller's tool-usage patterns and value signals over a configurable window (default 30 days). Returns tool_call_counts, top principles cited in validate runs, value_event_counts by event_type, and an aggregate readiness trend. WHEN TO CALL: the user asks 'how is the Blueprint helping me/my team', 'what should I explore next', or 'show me my Blueprint usage'. WHEN NOT TO CALL: proactively or on every conversation turn (the summary is an explicit retrospective, not telemetry); to compare users (returns only the caller's own data). BEHAVIOR: read-only, idempotent over the same window. Aggregates from AIToolCallLog + ValueEvent + AIValidationRunLog. Pass private_session=true to bypass server-side logging for this summary call (the underlying historical data still exists; only this read is untracked). Auth: Bearer <token>, Pro or Teams plan. UK/EU residency.","inputSchema":{"properties":{"days_back":{"default":30,"description":"Number of days of usage history to include in the summary.","minimum":1,"title":"Days Back","type":"integer"},"private_session":{"default":false,"description":"Set to true to skip logging this summary call.","title":"Private Session","type":"boolean"}},"title":"summarize_team_usageArguments","type":"object"},"outputSchema":{"additionalProperties":true,"title":"summarize_team_usageDictOutput","type":"object"},"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"me.learning_path","title":"Get My Learning Path","description":"Authenticated — returns the caller's Blueprint learning-path state: current course slug, stage progress, certification status (Foundation, Practitioner, Capstone), Capstone track eligibility flags, and the next recommended stage. WHEN TO CALL: the user asks 'where am I', 'what's next', or 'am I Capstone-eligible'; before suggesting next-step coaching content. WHEN NOT TO CALL: as a heartbeat (state changes only when the user completes a stage); to read another user's progress. BEHAVIOR: read-only, idempotent. Auth: Bearer <token> (any plan, including basic). Returns user_email, course_slug, stages list with completion timestamps, certification block, and a next_stage hint.","inputSchema":{"properties":{},"title":"get_my_learning_pathArguments","type":"object"},"outputSchema":{"additionalProperties":true,"title":"get_my_learning_pathDictOutput","type":"object"},"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"me.coaching_context","title":"Get My Coaching Context","description":"Authenticated — returns stages in the caller's active course where recorded evidence is thin relative to the stage's principle requirements. Each thin stage carries the missing principle slugs + a short diagnostic so the caller can suggest the user record concrete evidence. WHEN TO CALL: when the user asks 'what should I work on next' or 'what's weak in my Blueprint progress'; before suggesting which guide/example to consult. Pair with me.add_evidence to close gaps. WHEN NOT TO CALL: to lecture the user on principles they have already satisfied; on every conversation turn (state changes only when evidence is added). BEHAVIOR: read-only, idempotent. Auth: Bearer <token> (any plan). Returns thin_stages list with stage slug, course slug, missing principles, evidence_count, and a coaching_note.","inputSchema":{"properties":{},"title":"get_my_coaching_contextArguments","type":"object"},"outputSchema":{"additionalProperties":true,"title":"get_my_coaching_contextDictOutput","type":"object"},"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"me.add_evidence","title":"Add Evidence Note","description":"Authenticated — append a free-text evidence note to a specific stage in the caller's active course. Notes record concrete implementation observations, decisions, or artefacts that demonstrate progress through a Blueprint principle (e.g. how a delegation boundary was implemented, what approval flow was chosen and why). Persisted as UserStageEvidence rows scoped to (user_id, course_slug, stage_slug). WHEN TO CALL: AFTER the user has articulated something concrete they have built, observed, or decided — not to capture intent or speculation. Pair with me.coaching_context to close evidence gaps. WHEN NOT TO CALL: to log every conversation turn; to record planning, ideas, or todos; on behalf of another user; without the user's awareness (they should know their progress is being recorded). BEHAVIOR: write-only, single insert. Auth: Bearer <token> (Firebase ID token, any plan). UK/EU residency. Notes are visible only to the owning user and are surfaced on me.learning_path / me.coaching_context. Confirms the stage_slug + course_slug pair in the response so the user can see which stage was credited.","inputSchema":{"properties":{"course_slug":{"description":"Slug of the course the stage belongs to (e.g. 'agentic-fundamentals').","title":"Course Slug","type":"string"},"stage_id":{"description":"ID of the stage to append the evidence note to.","title":"Stage Id","type":"string"},"note":{"description":"Evidence note to append to the delegation boundary notes for this stage.","title":"Note","type":"string"}},"required":["course_slug","stage_id","note"],"title":"add_evidence_noteArguments","type":"object"},"outputSchema":{"additionalProperties":true,"title":"add_evidence_noteDictOutput","type":"object"},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":false}},{"name":"me.sessions","title":"My Governed Sessions","description":"Pro/Teams — list or inspect the authenticated user's Governed Sessions (GEP-M2): durable, owner-scoped containers that group validation runs across lenses (architect.validate → 'architecture', design.validate → 'surface', spec.validate → 'spec') into one timeline for one piece of work. Two modes: (1) No arguments returns every session (id, title, status,   repo_url, spec_ref, team_agents, run_count, validators = the   lenses seen), newest first. (2) `session_id=<id>` returns that session plus its run   timeline (light rows; fetch full results per run via   me.validation_history(run_id=...)) and, for team sessions,   `events` = the typed team-event log posted via   me.session_event. Attach new runs by passing `session_id` to architect.validate, design.validate, or spec.validate. Sessions are created and managed in the web app at /app/sessions. Read-only. Auth: Bearer <token>. Pro or Teams plan required.","inputSchema":{"properties":{"session_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"default":null,"description":"Session id to inspect (returns the session + its run timeline). Owner-scoped: ids you don't own answer 'Session not found.'. Omit to list all your sessions.","title":"Session Id"}},"title":"get_my_sessionsArguments","type":"object"},"outputSchema":{"additionalProperties":true,"title":"get_my_sessionsDictOutput","type":"object"},"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"me.session_event","title":"Post a Team Event to a Governed Session","description":"Pro/Teams — append a TYPED TEAM EVENT to a Governed Session's timeline (GEP-M6). This is how the user's own harness makes trio work inspectable: handoffs between role lenses, pushbacks, plan previews, gates, and acks land as structured events next to the validation runs, so the session reads as a system, not a transcript. CHANNEL PROVENANCE: this MCP channel posts the AGENT-SIDE vocabulary only. `steer` events and actor `human` are cockpit-originated by contract (the owner posts them from the AIDB Studio session surface) and are REFUSED here, so a timeline entry can never impersonate the human side of the loop. Every event posted here is durably stamped with its channel. REQUIRES team mode: the session must have team_agents enabled (toggled in the web app on the session page); posting to a standalone session is refused so non-team sessions stay byte-identical. Owner-scoped: foreign session ids read as not found. event_type: handoff | pushback | plan_preview | gate | ack. actor: pm | engineer | designer | system. Read events back via me.sessions(session_id=...). WHEN TO CALL: at every role handoff (who -> who, what was passed), when a role pushes back on another's output, when the PM's plan is previewed for the co-planning gate, and when a hard gate blocks on an irreversible side-effect. ack: the IDE agent confirms it STARTED working on a steer. Post it FIRST on receiving a steer (summary like 'Started: <steer gist>'), then execute, then post handoff with the result. WHEN NOT TO CALL: not a chat log: post decisions and transitions, not every message; never to record a steer (steers arrive FROM the cockpit via me.await_steer). REJECTION CODES (invalid_request): 'Session not found.' (not yours, or no such id); 'Team mode is off for this session.' (owner enables it on the session page); 'This session has reached its event limit (500).' (the shared volume brake: start a new session for further team events); 'summary must not be blank.' (empty summaries are refused); steer/human posts are refused with a pointer to the cockpit channel. Auth: Bearer <token>, Pro/Teams plan.","inputSchema":{"properties":{"session_id":{"description":"The Governed Session to post to. Must be YOURS and have team_agents enabled; list sessions via me.sessions.","title":"Session Id","type":"integer"},"event_type":{"description":"handoff | pushback | plan_preview | gate | ack (ack = started working on a steer; `steer` itself is cockpit-only and refused on this channel)","enum":["handoff","pushback","plan_preview","gate","ack"],"title":"Event Type","type":"string"},"actor":{"description":"Who acted: pm | engineer | designer | system (`human` is reserved for the cockpit channel)","enum":["pm","engineer","designer","system"],"title":"Actor","type":"string"},"summary":{"description":"One-to-two sentence event summary (truncated to 500 chars) — a decision or transition, not a chat message.","title":"Summary","type":"string"}},"required":["session_id","event_type","actor","summary"],"title":"post_session_team_eventArguments","type":"object"},"outputSchema":{"additionalProperties":true,"title":"post_session_team_eventDictOutput","type":"object"},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":false}},{"name":"me.await_steer","title":"Wait for the Next Cockpit Steer (long-poll)","description":"Pro/Teams. BLOCK until the session owner posts the next `steer` event to a Governed Session from the AIDB Studio cockpit, then return it. DELIVERY GUARANTEE: the durable cursor read against the session log is authoritative (at-least-once: a lost response is safely re-issuable with the same cursor, and timed_out is only returned after a final confirming read). The in-between wake-up is a best-effort in-process push: usually sub-second, but a steer is never lost if a wake-up is missed; the confirming read catches it. See the after_event_id and timeout_s parameter descriptions for the semantics. THE LOOP: finish a task -> post me.session_event handoff -> call me.await_steer -> on a steer, FIRST post me.session_event event_type=ack ('Started: <steer gist>'), then execute, then handoff, then call me.await_steer again; on `timed_out`, call again with the returned after_event_id. REQUIRES team mode on the session (toggled by the owner in the web app); owner-scoped, so foreign session ids read as not found. Read-only: this tool never writes events. REJECTION CODES (invalid_request): 'Session not found.' (not yours, or no such id); 'Team mode is off for this session.' (owner enables it on the session page). Auth: Bearer <token>, Pro/Teams plan.","inputSchema":{"properties":{"session_id":{"description":"The Governed Session to watch. Must be YOURS and have team_agents enabled; list sessions via me.sessions.","title":"Session Id","type":"integer"},"after_event_id":{"default":0,"description":"Cursor: highest session-event id you have already seen (0 = deliver any existing steer). Pass the value from your previous await_steer result or me.sessions read. Non-destructive at-least-once delivery: re-calling with the same cursor returns the same steers again, so a lost response never loses a steer.","minimum":0,"title":"After Event Id","type":"integer"},"timeout_s":{"default":45,"description":"Seconds to wait before returning timed_out. Clamped to 5-240, DEFAULT 45: safe under Claude Code's 60-second first-response-byte timer for HTTP servers. Longer waits require the per-server timeout raised in the MCP client config (e.g. \"timeout\": 300000 in .mcp.json).","maximum":240,"minimum":5,"title":"Timeout S","type":"integer"}},"required":["session_id"],"title":"await_steerArguments","type":"object"},"outputSchema":{"additionalProperties":true,"title":"await_steerDictOutput","type":"object"},"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"me.validation_history","title":"My Validation History (architecture + design + spec)","description":"Pro/Teams — return the authenticated user's validation run history for all three lenses (architect.validate → validator='architecture', design.validate → validator='surface', spec.validate → validator='spec') with the Blueprint Readiness Score (0-100), letter grade (A-F), and tier (draft, emerging, production_ready). Each run carries a `validator` field naming its lens. Three lookup modes: (1) `run_id=<id>` returns a SINGLE run with the full persisted result_json   — use this to RECOVER a result when your MCP client tool-call timed out   before architect.validate, design.validate, or spec.validate returned. The run   completes server-side and persists; the run_id is surfaced in the   first progress notification of every validate call so you have the   recovery handle even when your client gives up early. (2) `repository=<name>` returns the full per-run trend for that repository   plus a regression diff between the latest two runs. (3) No arguments returns one summary per repository the user has validated,   sorted by most recent. Use modes (2) or (3) BEFORE re-validating the same repository on either lens — they tell you which principles or laws regressed since the last run, so you can focus the new review on what is actually changing. Auth: Bearer <token>. Pro or Teams plan required.","inputSchema":{"properties":{"repository":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Repository name or path to scope the history to. Pass the same value you would pass to architect.validate. Omit to get one summary per repository. Mutually exclusive with `run_id` — if both are passed, `run_id` wins.","title":"Repository"},"run_id":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Single-run lookup by run_id (UUID). Returns the persisted result_json verbatim — the same payload architect.validate would have returned if your client hadn't timed out. Use this to recover a result when your MCP tool-call closed before the server returned. Per-run authorisation: returns only runs owned by the calling user.","title":"Run Id"},"limit":{"default":10,"description":"Maximum number of runs to return when scoped to a single repository. Capped at 50. Ignored when `run_id` is provided.","minimum":1,"title":"Limit","type":"integer"}},"title":"get_my_validation_historyArguments","type":"object"},"outputSchema":{"additionalProperties":true,"title":"get_my_validation_historyDictOutput","type":"object"},"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"handoffs.operator","title":"Request Operator Handoff","description":"Authenticated — creates a support handoff record when an agent needs human review, account-specific escalation, or operator follow-up that cannot be resolved with the read-only doctrine tools. Persists a SupportHandoff row (reason, topic, page_url, agent_name, agent_platform, trace_summary, user_email) routed to the support inbox; user is contacted by the team. WHEN TO CALL: user explicitly asks for human help, hits a billing/access issue, or the agent has tried the doctrine tools and the user still needs a human. ALWAYS confirm with the user before firing — this creates a human-visible ticket. WHEN NOT TO CALL: proactively, silently, or to log debugging traces (use diagnostic logs instead); for partnerships/agency enquiries (use handoffs.partnership / handoffs.agency); for content questions answerable by principles.search / guides.search. BEHAVIOR: write-only, single insert, side-effecting (creates a ticket the team will see). Auth: Bearer <token> (any plan). UK/EU residency. Response confirms ticket id + topic so the user can reference it.","inputSchema":{"properties":{"reason":{"description":"Clear description of why a human operator review is needed.","title":"Reason","type":"string"},"topic":{"default":"agent","description":"Topic category for routing (e.g. 'agent', 'billing', 'access', 'general').","title":"Topic","type":"string"},"page_url":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"URL of the page or context where the handoff was triggered.","title":"Page Url"},"agent_name":{"default":"mcp-client","description":"Name of the agent or client triggering the handoff.","title":"Agent Name","type":"string"},"agent_platform":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Platform or runtime the agent is running on (e.g. 'claude-code', 'cursor', 'copilot').","title":"Agent Platform"},"trace_summary":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Optional summary of the agent's recent actions or trace for operator context.","title":"Trace Summary"},"locale":{"default":"en","description":"Response locale for the handoff acknowledgment.","enum":["en","it"],"title":"Locale","type":"string"}},"required":["reason"],"title":"request_operator_handoffArguments","type":"object"},"outputSchema":{"additionalProperties":true,"title":"request_operator_handoffDictOutput","type":"object"},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":true}},{"name":"handoffs.partnership","title":"Request Partnership Handoff","description":"Authenticated — creates a partnerships handoff record for design-partner, ecosystem, training, or advisory conversations needing human review. Persists a PartnershipHandoff row routed to the partnerships inbox; the user is contacted by the team. WHEN TO CALL: user explicitly wants to engage as a design partner, co-marketing/training partner, or evaluate the Blueprint for their org's training programme. ALWAYS confirm with the user before firing — this creates a human-visible partnerships ticket. WHEN NOT TO CALL: for general support / billing / access issues (use handoffs.operator); for paid-engagement enquiries (use handoffs.agency); proactively or as a sales prompt — only when the user has explicitly asked. BEHAVIOR: write-only, single insert, side-effecting (creates a ticket). Auth: Bearer <token> (any plan). UK/EU residency. Response confirms the ticket id + audience so the user can reference it.","inputSchema":{"properties":{"reason":{"description":"Clear description of the partnership opportunity or inquiry.","title":"Reason","type":"string"},"topic":{"default":"ecosystem","description":"Partnership topic category.","enum":["ecosystem","design-partner","training","advisory"],"title":"Topic","type":"string"},"organization":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Name of the organization or company making the partnership inquiry.","title":"Organization"},"role":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Role or title of the person submitting the partnership inquiry.","title":"Role"},"website":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Website of the organization for additional context.","title":"Website"},"agent_name":{"default":"mcp-client","description":"Name of the agent or client triggering the handoff.","title":"Agent Name","type":"string"},"agent_platform":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Platform or runtime the agent is running on.","title":"Agent Platform"},"trace_summary":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Optional agent trace summary for operator context.","title":"Trace Summary"},"locale":{"default":"en","description":"Response locale for the handoff acknowledgment.","enum":["en","it"],"title":"Locale","type":"string"}},"required":["reason"],"title":"request_partnership_handoffArguments","type":"object"},"outputSchema":{"additionalProperties":true,"title":"request_partnership_handoffDictOutput","type":"object"},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":true}},{"name":"handoffs.agency","title":"Request Agency Handoff","description":"Authenticated — submit an agency engagement enquiry on behalf of the caller for a founder-led discovery call. Persists an AgencyHandoff row routed to the agency inbox; the user is contacted by the team for a scoped proposal. Engagement scopes: workflow sprint (rapid agentic workflow implementation), proof-of-concept (validate a specific agent design in a bounded timeframe), pilot support (co-design and validate a production-ready pilot), advisory (ongoing architectural guidance across a product team). WHEN TO CALL: the user has identified a paid hands-on expert engagement need beyond self-service learning, and explicitly asks to talk to the team or book a discovery call. ALWAYS confirm with the user before firing — this creates a sales-visible record. WHEN NOT TO CALL: for free training / partnerships discussion (use handoffs.partnership); for support / billing / access (use handoffs.operator); proactively or as a sales push. BEHAVIOR: write-only, single insert, side-effecting. Auth: Bearer <token> (Firebase ID token, any plan). UK/EU residency. Response confirms the ticket id + scope so the user can reference it.","inputSchema":{"properties":{"reason":{"description":"Description of the engagement need: workflow sprint, proof-of-concept, pilot support, or advisory.","title":"Reason","type":"string"},"company":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Company or team name submitting the agency inquiry.","title":"Company"},"role":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Role or title of the person submitting the agency inquiry.","title":"Role"},"workflow_stage":{"anyOf":[{"enum":["exploring","designing","implementing","reviewing","shipping"],"type":"string"},{"type":"null"}],"default":null,"description":"Current workflow stage.","title":"Workflow Stage"},"support_type":{"anyOf":[{"enum":["sprint","poc","pilot","advisory"],"type":"string"},{"type":"null"}],"default":null,"description":"Type of support needed.","title":"Support Type"},"website":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Website or relevant URL for the team or project.","title":"Website"},"agent_name":{"default":"mcp-client","description":"Name of the agent or client triggering the handoff.","title":"Agent Name","type":"string"},"agent_platform":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Platform or runtime the agent is running on.","title":"Agent Platform"},"trace_summary":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Optional agent trace summary for operator context.","title":"Trace Summary"},"locale":{"default":"en","description":"Response locale for the acknowledgment.","enum":["en","it"],"title":"Locale","type":"string"}},"required":["reason"],"title":"request_agency_handoffArguments","type":"object"},"outputSchema":{"additionalProperties":true,"title":"request_agency_handoffDictOutput","type":"object"},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":true}}]}},"http_status":200,"headers":{"content-type":"application/json","mcp-session-id":"dda5609e23f44f688d0c5d1951689045"},"session_id_present":true,"transport":"streamable-http","requested_protocol_version":"2025-03-26","resumed":true}},"step_up_auth_probe":{"status":"ok","latency_ms":null,"details":{"oauth_present":true,"auth_required_checks":[],"supported_scopes":["mcp"],"scope_specificity_ratio":0.5,"broad_scopes":[],"challenge_headers":[],"step_up_signals":[],"minimal_scope_documented":true}},"transport_compliance_probe":{"status":"warning","latency_ms":460.7,"details":{"transport":"streamable-http","session_id_present":true,"protocol_header_present":false,"last_event_id_visible":false,"requested_protocol_version":"2025-03-26","bad_protocol_status_code":400,"bad_protocol_payload":{"jsonrpc":"2.0","id":"server-error","error":{"code":-32600,"message":"Bad Request: Unsupported protocol version: 1999-99-99. Supported versions: 2024-11-05, 2025-03-26, 2025-06-18, 2025-11-25"}},"bad_protocol_headers":{"content-type":"application/json","mcp-session-id":"dda5609e23f44f688d0c5d1951689045"},"bad_protocol_error":null,"delete_status_code":200,"delete_error":null,"expired_session_status_code":404,"expired_session_error":null,"issues":["missing_protocol_header"]}},"utility_coverage_probe":{"status":"warning","latency_ms":136.38,"details":{"completions":{"advertised":false,"sample_target":null,"live_probe":"not_executed"},"pagination":{"supported":false,"next_cursor_methods":[],"metadata_signal":false},"tasks":{"advertised":true,"probe_status":"error","http_status":400},"initialize_capability_keys":["experimental","prompts","resources","tasks","tools"]}},"advanced_capabilities_probe":{"status":"missing","latency_ms":null,"details":{"capabilities":{"prompts":false,"resources":false,"completions":false,"roots":false,"sampling":false,"elicitation":false,"structured_outputs":false,"resource_links":false},"enabled_count":0,"enabled":[],"initialize_capability_keys":["experimental","prompts","resources","tasks","tools"]}},"tool_snapshot_probe":{"status":"missing","latency_ms":null,"details":{"reason":"no_tools"}},"connector_replay_probe":{"status":"missing","latency_ms":null,"details":{"reason":"no_tools"}},"request_association_probe":{"status":"missing","latency_ms":null,"details":{"reason":"no_request_association_capabilities_advertised"}},"interactive_flow_probe":{"status":"ok","latency_ms":null,"details":{"risk_hits":[],"safe_hits":["oauth","sign in"],"oauth_supported":true,"prompt_available":false}},"action_safety_probe":{"status":"not_assessed","latency_ms":null,"details":{"summary":{"tool_count":0,"high_risk_tools":0,"destructive_tools":0,"exec_tools":0,"egress_tools":0,"secret_tools":0,"bulk_access_tools":0,"declared_non_read_only_tools":0,"annotation_conflict_tools":0,"risk_distribution":{"low":0,"medium":0,"high":0,"critical":0},"capability_distribution":{},"has_mutating_capability":false,"has_non_read_capability":false},"auth_present":true,"safeguard_count":0,"confirmation_signals":[],"reason":"empty_observation_set"}},"official_registry_probe":{"status":"missing","latency_ms":null,"details":{"registry_source":"awesome_mcp_servers","direct_match":false,"official_peer_count":0}},"provenance_divergence_probe":{"status":"not_assessed","latency_ms":null,"details":{"direct_official_match":false,"registry_title":null,"server_card_title":"AI Design Blueprint","registry_version":null,"server_card_version":null,"registry_homepage":null,"server_card_homepage":null,"registry_repository":null,"server_card_repository":null,"drift_fields":[],"metadata_document_count":2,"compared_fields":["title","version","homepage","repository"],"readable_sources":["server_card"],"comparable_field_count":0}},"schema_divergence_probe":{"status":"missing","latency_ms":null,"details":{"reason":"no_server_card_tools","compared_tool_count":0,"compared_dimensions":["server_name","server_version","declared_vs_observed_auth","tool_membership","parameter_names","required_parameters","parameter_types","output_schema_presence"],"server_name_mismatch":false,"card_server_name":null,"live_server_name":"Agentic AI Blueprint Doctrine","server_version_mismatch":false,"card_server_version":null,"live_server_version":"1.26.0","auth_scheme_mismatch":true}},"connector_publishability_probe":{"status":"error","latency_ms":null,"details":{"transport":"streamable-http","tool_count":0,"high_risk_tools":0,"blockers":["tools_list","protocol_version","transport_compliance","connector_replay","request_association","action_safety","tool_surface"],"criteria":{"remote_transport":true,"initialize":true,"tools_list":false,"protocol_version":false,"session_resume":true,"step_up_auth":true,"transport_compliance":false,"connector_replay":false,"request_association":false,"action_safety":false,"server_card":true,"tool_surface":false,"auth_flow":true}}}}},"active_alerts":[{"code":"server_failing","severity":"critical","title":"Latest validation is failing","message":"Core MCP flows did not validate successfully on the latest run.","addressee":"publisher"}],"maintainer_analytics":{},"public_server_reputation":{},"maintainer_response_quality":{},"maintainer_annotations":[],"maintainer_rebuttals":[],"security_posture_summary":{},"tool_security_inventory":[],"transport_compliance":{},"utility_coverage":{},"write_action_governance":{},"provenance_divergence":{},"alias_consolidation":{},"alert_routing":{},"authenticated_validation":{},"hosted_runtime":{},"action_controls_diff":null,"benchmark_tasks":[],"latest_capability_counts":{},"point_loss_breakdown":[],"verdict_traces":{},"current_snapshot":{"schema_version":"verify.trust_snapshot.v1","snapshot_id":"trustsnap_986ef21288eef7a0","generated_at":"2026-09-01T23:58:29.810218+00:00","trust_evaluated_at":"2026-09-01T23:58:29.810218+00:00","evidence_revision":"aad7ac0df6f866884bdabc04","source":"current_snapshot","server":"awesome-aidesignblueprint/integrations","last_validated_at":"2026-09-01T14:29:45.710497+00:00","validation_age_hours":9.48,"freshness":{"schema_version":"verify.freshness_profile.v1","last_validated_at":"2026-09-01T14:29:45.710497+00:00","age_hours":9.48,"bucket":"verified_last_24h","label":"Verified in last 24h","badges":["verified_last_24h"],"freshness_sla_hours":720.0,"freshness_sla_status":"met","stale_score_suppressed":false,"display_score":null,"raw_score":null,"confidence_score":null,"confidence_weighted_score":null,"tier_status":[{"tier":"community","label":"Community","freshness_sla_hours":720,"met":true,"priority_revalidation":false},{"tier":"pro","label":"Pro","freshness_sla_hours":168,"met":true,"priority_revalidation":true},{"tier":"enterprise","label":"Enterprise","freshness_sla_hours":24,"met":true,"priority_revalidation":true}]},"current_status":"failing","current_score":null,"display_score":null,"stale_score_suppressed":false,"production_trust_decision":{"schema_version":"verify.executive_verdict.v1","decision":"Not assessed","why":"tool surface has not been observed by any completed validation run","next_action":"revalidate so the tool surface can be inspected before a production decision is made","reason_count":0},"production_readiness_class":{"code":"failing","label":"Failing","reason":"The latest validation run was attempted but did not complete successfully."},"evidence_confidence":{"score":null,"label":"not_assessed","validation_age_hours":9.48,"live_check_count":11,"basis":{"evidence_bearing_validations":0,"affirmative_live_check_count":11,"validation_age_hours":9.48,"freshness_threshold_hours":24}},"active_alerts":[{"code":"server_failing","severity":"critical","title":"Latest validation is failing"}],"active_alert_summary":{"critical":1,"high":0,"medium":0,"low":0,"high_or_critical":1,"total":1},"materialization":{"state":"partial","trust_core_complete":true,"fields_unavailable":["tool_security_inventory","security_posture_summary","write_action_governance","capability_taxonomy","remediations"],"materialized_at":"2026-09-01T23:58:29.810218+00:00"}},"trust_snapshot":{"schema_version":"verify.trust_snapshot.v1","snapshot_id":"trustsnap_986ef21288eef7a0","generated_at":"2026-09-01T23:58:29.810218+00:00","trust_evaluated_at":"2026-09-01T23:58:29.810218+00:00","evidence_revision":"aad7ac0df6f866884bdabc04","source":"current_snapshot","server":"awesome-aidesignblueprint/integrations","last_validated_at":"2026-09-01T14:29:45.710497+00:00","validation_age_hours":9.48,"freshness":{"schema_version":"verify.freshness_profile.v1","last_validated_at":"2026-09-01T14:29:45.710497+00:00","age_hours":9.48,"bucket":"verified_last_24h","label":"Verified in last 24h","badges":["verified_last_24h"],"freshness_sla_hours":720.0,"freshness_sla_status":"met","stale_score_suppressed":false,"display_score":null,"raw_score":null,"confidence_score":null,"confidence_weighted_score":null,"tier_status":[{"tier":"community","label":"Community","freshness_sla_hours":720,"met":true,"priority_revalidation":false},{"tier":"pro","label":"Pro","freshness_sla_hours":168,"met":true,"priority_revalidation":true},{"tier":"enterprise","label":"Enterprise","freshness_sla_hours":24,"met":true,"priority_revalidation":true}]},"current_status":"failing","current_score":null,"display_score":null,"stale_score_suppressed":false,"production_trust_decision":{"schema_version":"verify.executive_verdict.v1","decision":"Not assessed","why":"tool surface has not been observed by any completed validation run","next_action":"revalidate so the tool surface can be inspected before a production decision is made","reason_count":0},"production_readiness_class":{"code":"failing","label":"Failing","reason":"The latest validation run was attempted but did not complete successfully."},"evidence_confidence":{"score":null,"label":"not_assessed","validation_age_hours":9.48,"live_check_count":11,"basis":{"evidence_bearing_validations":0,"affirmative_live_check_count":11,"validation_age_hours":9.48,"freshness_threshold_hours":24}},"active_alerts":[{"code":"server_failing","severity":"critical","title":"Latest validation is failing"}],"active_alert_summary":{"critical":1,"high":0,"medium":0,"low":0,"high_or_critical":1,"total":1},"materialization":{"state":"partial","trust_core_complete":true,"fields_unavailable":["tool_security_inventory","security_posture_summary","write_action_governance","capability_taxonomy","remediations"],"materialized_at":"2026-09-01T23:58:29.810218+00:00"}},"agent_commerce":{},"latest_claim":null,"maintainer_profile_slug":null,"watch_summary":{},"partial":true,"fields_unavailable":["tool_security_inventory","security_posture_summary","write_action_governance","capability_taxonomy","remediations"],"trust_evaluated_at":"2026-09-01T23:58:29.810218+00:00","evidence_revision":"aad7ac0df6f866884bdabc04","active_alert_summary":{"critical":1,"high":0,"medium":0,"low":0,"high_or_critical":1,"total":1},"materialization":{"state":"partial","trust_core_complete":true,"fields_unavailable":["tool_security_inventory","security_posture_summary","write_action_governance","capability_taxonomy","remediations"],"materialized_at":"2026-09-01T23:58:29.810218+00:00"},"owner_opted_out":false},"latest_validation":null,"current_snapshot":{"schema_version":"verify.trust_snapshot.v1","snapshot_id":"trustsnap_986ef21288eef7a0","generated_at":"2026-09-01T23:58:29.810218+00:00","trust_evaluated_at":"2026-09-01T23:58:29.810218+00:00","evidence_revision":"aad7ac0df6f866884bdabc04","source":"current_snapshot","server":"awesome-aidesignblueprint/integrations","last_validated_at":"2026-09-01T14:29:45.710497+00:00","validation_age_hours":9.48,"freshness":{"schema_version":"verify.freshness_profile.v1","last_validated_at":"2026-09-01T14:29:45.710497+00:00","age_hours":9.48,"bucket":"verified_last_24h","label":"Verified in last 24h","badges":["verified_last_24h"],"freshness_sla_hours":720.0,"freshness_sla_status":"met","stale_score_suppressed":false,"display_score":null,"raw_score":null,"confidence_score":null,"confidence_weighted_score":null,"tier_status":[{"tier":"community","label":"Community","freshness_sla_hours":720,"met":true,"priority_revalidation":false},{"tier":"pro","label":"Pro","freshness_sla_hours":168,"met":true,"priority_revalidation":true},{"tier":"enterprise","label":"Enterprise","freshness_sla_hours":24,"met":true,"priority_revalidation":true}]},"current_status":"failing","current_score":null,"display_score":null,"stale_score_suppressed":false,"production_trust_decision":{"schema_version":"verify.executive_verdict.v1","decision":"Not assessed","why":"tool surface has not been observed by any completed validation run","next_action":"revalidate so the tool surface can be inspected before a production decision is made","reason_count":0},"production_readiness_class":{"code":"failing","label":"Failing","reason":"The latest validation run was attempted but did not complete successfully."},"evidence_confidence":{"score":null,"label":"not_assessed","validation_age_hours":9.48,"live_check_count":11,"basis":{"evidence_bearing_validations":0,"affirmative_live_check_count":11,"validation_age_hours":9.48,"freshness_threshold_hours":24}},"active_alerts":[{"code":"server_failing","severity":"critical","title":"Latest validation is failing"}],"active_alert_summary":{"critical":1,"high":0,"medium":0,"low":0,"high_or_critical":1,"total":1},"materialization":{"state":"partial","trust_core_complete":true,"fields_unavailable":["tool_security_inventory","security_posture_summary","write_action_governance","capability_taxonomy","remediations"],"materialized_at":"2026-09-01T23:58:29.810218+00:00"}},"trust_snapshot":{"schema_version":"verify.trust_snapshot.v1","snapshot_id":"trustsnap_986ef21288eef7a0","generated_at":"2026-09-01T23:58:29.810218+00:00","trust_evaluated_at":"2026-09-01T23:58:29.810218+00:00","evidence_revision":"aad7ac0df6f866884bdabc04","source":"current_snapshot","server":"awesome-aidesignblueprint/integrations","last_validated_at":"2026-09-01T14:29:45.710497+00:00","validation_age_hours":9.48,"freshness":{"schema_version":"verify.freshness_profile.v1","last_validated_at":"2026-09-01T14:29:45.710497+00:00","age_hours":9.48,"bucket":"verified_last_24h","label":"Verified in last 24h","badges":["verified_last_24h"],"freshness_sla_hours":720.0,"freshness_sla_status":"met","stale_score_suppressed":false,"display_score":null,"raw_score":null,"confidence_score":null,"confidence_weighted_score":null,"tier_status":[{"tier":"community","label":"Community","freshness_sla_hours":720,"met":true,"priority_revalidation":false},{"tier":"pro","label":"Pro","freshness_sla_hours":168,"met":true,"priority_revalidation":true},{"tier":"enterprise","label":"Enterprise","freshness_sla_hours":24,"met":true,"priority_revalidation":true}]},"current_status":"failing","current_score":null,"display_score":null,"stale_score_suppressed":false,"production_trust_decision":{"schema_version":"verify.executive_verdict.v1","decision":"Not assessed","why":"tool surface has not been observed by any completed validation run","next_action":"revalidate so the tool surface can be inspected before a production decision is made","reason_count":0},"production_readiness_class":{"code":"failing","label":"Failing","reason":"The latest validation run was attempted but did not complete successfully."},"evidence_confidence":{"score":null,"label":"not_assessed","validation_age_hours":9.48,"live_check_count":11,"basis":{"evidence_bearing_validations":0,"affirmative_live_check_count":11,"validation_age_hours":9.48,"freshness_threshold_hours":24}},"active_alerts":[{"code":"server_failing","severity":"critical","title":"Latest validation is failing"}],"active_alert_summary":{"critical":1,"high":0,"medium":0,"low":0,"high_or_critical":1,"total":1},"materialization":{"state":"partial","trust_core_complete":true,"fields_unavailable":["tool_security_inventory","security_posture_summary","write_action_governance","capability_taxonomy","remediations"],"materialized_at":"2026-09-01T23:58:29.810218+00:00"}},"partial":true,"fields_unavailable":["tool_security_inventory","security_posture_summary","write_action_governance","capability_taxonomy","remediations"],"snapshot_invariant":{"schema_version":"verify.snapshot_invariant.v1","server":"awesome-aidesignblueprint/integrations","ok":true,"surface_snapshot_ids":{"page":"trustsnap_986ef21288eef7a0","badge":null,"report":"trustsnap_986ef21288eef7a0","policy":null},"checked_surfaces":["page","report"],"unchecked_surfaces":["badge","policy"],"checked_count_surfaces":[],"count_mismatches":{},"checked_at":"2026-09-01T23:58:29.793649+00:00"},"history":{},"production_readiness":{"code":"failing","label":"Failing","reason":"The latest validation run was attempted but did not complete successfully.","badge":"score-low"},"agent_commerce_readiness":{},"evidence_confidence":{"score":null,"label":"not_assessed","reason":"No evidence-bearing validation runs exist yet (11 captured checks, validation age 9.5 hours). Confidence cannot be computed.","live_check_count":11,"validation_age_hours":9.48,"basis":{"evidence_bearing_validations":0,"affirmative_live_check_count":11,"validation_age_hours":9.48,"freshness_threshold_hours":24}},"recommended_for":[],"active_alerts":[{"code":"server_failing","severity":"critical","title":"Latest validation is failing","message":"Core MCP flows did not validate successfully on the latest run.","addressee":"publisher"}],"remediations":[],"cache_note":"Fast fallback response; full report evidence is deferred to protect web capacity. Fields listed in fields_unavailable (including tool_security_inventory, and write_action_governance) are not yet computed on this response -- an empty value means unchecked, not confirmed clean. Treat partial responses as indeterminate.","publisher_claim":{"verified":false,"status":"unclaimed","claim_url":"https://verify.sentinelsignal.io/claim?server=awesome-aidesignblueprint%2Fintegrations&source=report_json","reason_code":"claim_to_publish_metadata","reason":"Claim this profile to verify publisher identity, add evidence, and manage trust metadata.","score_neutral":true},"observed_attention":{"schema":"verify.observed_attention.v1","window_days":30,"level":"none","label":"No observed attention","summary":"No recent machine-readable trust or discovery activity observed for this server.","segments":{"useful_ai_user":{"level":"none","observed":false,"description":"AI-assisted user sessions such as ChatGPT/User or Claude/User."},"machine_trust_evaluator":{"level":"none","observed":false,"description":"Synthetic sessions inspecting multiple trust surfaces such as report, policy, ledger, badge, trust-summary, or compare."},"possible_agent_or_script":{"level":"none","observed":false,"description":"Structured direct sessions with rapid profile, compare, report, policy, badge, or trust-surface fan-out."},"isolated_machine_surface":{"level":"none","observed":false,"description":"Aged-out direct synthetic singleton sessions that touched a machine-readable trust surface without becoming a broader evaluator."},"ai_crawler":{"level":"none","observed":false,"description":"Known AI crawler activity such as ClaudeBot, GPTBot, or similar crawlers."},"search_crawler":{"level":"none","observed":false,"description":"Search and SEO crawler activity."},"browser_like_automation":{"level":"none","observed":false,"description":"Browser-like synthetic sessions with rapid structured endpoint activity."},"confirmed_human":{"level":"none","observed":false,"description":"Confirmed browser-session human activity."}},"surfaces_observed":{"server_profile":false,"compare":false,"compare_json":false,"compare_api":false,"report_json":false,"policy":false,"ledger":false,"badge_metadata":false,"badge_svg":false,"trust_summary":false,"mcp_tool":false},"claim_prompt":{"recommended":false,"reason":"No claim prompt is recommended from observed attention in the current window."},"notes":["Observed attention is based on segmented first-party telemetry.","Crawler and evaluator activity is not treated as confirmed human demand.","Public levels are bucketed to avoid exposing raw traffic counts."]},"owner_activation":{"claim_recommended":false,"reason":"no_observed_attention"},"related_machine_surfaces":{"compare_index":"/compare.json","compare_api":"/v1/compare?server=awesome-aidesignblueprint%2Fintegrations","trust_summary":"/v1/servers/awesome-aidesignblueprint/integrations/trust-summary","ledger":"/v1/servers/awesome-aidesignblueprint/integrations/ledger","policy":"/v1/servers/awesome-aidesignblueprint/integrations/policy","report":"/v1/servers/awesome-aidesignblueprint/integrations/report"},"intelligence_api":{"available":true,"signup_url":"https://verify.sentinelsignal.io/verify-intelligence-api","use_case":"Programmatic MCP server trust, comparison, policy, and evidence enrichment."},"trust_evaluated_at":"2026-09-01T23:58:29.810218+00:00","evidence_revision":"aad7ac0df6f866884bdabc04","active_alert_summary":{"critical":1,"high":0,"medium":0,"low":0,"high_or_critical":1,"total":1},"materialization":{"state":"partial","trust_core_complete":true,"fields_unavailable":["tool_security_inventory","security_posture_summary","write_action_governance","capability_taxonomy","remediations"],"materialized_at":"2026-09-01T23:58:29.810218+00:00"}}