Skip to main content
Glama

Validate Agent Architecture

architect.validate

Pro/Teams — first-pass doctrine review of agentic code/workflow against the 10-principle AI Design Blueprint doctrine. 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 6-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 6 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: sign-in required, with an active Pro, Pro Plus, Teams, Enterprise, beta, or trial 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="" 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.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
taskNoWhat the agent or workflow is trying to accomplish. Adds evaluation context.
filesNoList of file paths relevant to the implementation context.
goalsNoSpecific safety or quality goals to evaluate against (e.g. 'prevent irreversible actions', 'explicit approvals').
languageNoProgramming language of the code being evaluated (e.g. 'python', 'typescript').
focus_areaNoNarrow the evaluation to a specific principle cluster or slug (e.g. 'delegation', 'visibility', 'establish-trust-through-inspectability').
repositoryNoIteration 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.
session_idNoOptional 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.
example_limitNoMaximum number of curated examples to include in recommendations.
private_sessionNoSet to true to skip the stored run AND prior-run anchoring AND run_id recovery for this call. Operational security and cost logs are still kept, per the Privacy Policy. The request is also not persisted in the model provider's response store; the provider's abuse-monitoring retention still applies. Use for private one-shots that don't participate in the iteration arc. Default false.
implementation_contextYesThe 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.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • changedInput schema / properties / private_session / description
      Previous value: -"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."New value: +"Set to true to skip the stored run AND prior-run anchoring AND run_id recovery for this call. Operational security and cost logs are still kept, per the Privacy Policy. The request is also not persisted in the model provider's response store; the provider's abuse-monitoring retention still applies. Use for private one-shots that don't participate in the iteration arc. Default false."
  2. Changed1 schema field changed
    • addedInput schema / properties / session_id
      Added value: +{
      +  "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"
      +}
  3. Changed2 schema fields changed
    • changedInput schema / properties / private_session / description
      Previous value: -"Set to true to disable all logging for this validation call."New value: +"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."
    • changedInput schema / properties / repository / description
      Previous value: -"Repository name or path for additional context."New value: +"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."
  4. Changed2 schema fields changed
    • changedInput schema / properties / focus_area / description
      Previous value: -"Narrow the evaluation to a specific principle cluster or slug (e.g. 'delegation-and-scope')."New value: +"Narrow the evaluation to a specific principle cluster or slug (e.g. 'delegation', 'visibility', 'establish-trust-through-inspectability')."
    • changedOutput schema / (root)
      Previous value: -nullNew value: +{
      +  "additionalProperties": true,
      +  "title": "validate_agent_architectureDictOutput",
      +  "type": "object"
      +}
  5. Changed2 schema fields changed
    • changedInput schema / properties / focus_area / description
      Previous value: -"Narrow the evaluation to a specific principle cluster or slug (e.g. 'delegation', 'visibility', 'establish-trust-through-inspectability')."New value: +"Narrow the evaluation to a specific principle cluster or slug (e.g. 'delegation-and-scope')."
    • changedOutput schema / (root)
      Previous value: -{
      -  "$defs": {
      -    "ArchitectFinding": {
      -      "description": "One per-principle finding from architect.validate.",
      -      "properties": {
      -        "confidence": {
      -          "anyOf": [
      -            {
      -              "type": "number"
      -            },
      -            {
      -              "type": "null"
      -            }
      -          ],
      -          "title": "Confidence"
      -        },
      -        "evidence": {
      -          "anyOf": [
      -            {
      -              "type": "string"
      -            },
      -            {
      -              "type": "null"
      -            }
      -          ],
      -          "title": "Evidence"
      -        },
      -        "evidence_quality": {
      -          "anyOf": [
      -            {
      -              "type": "string"
      -            },
      -            {
      -              "type": "null"
      -            }
      -          ],
      -          "title": "Evidence Quality"
      -        },
      -        "principle_id": {
      -          "title": "Principle Id",
      -          "type": "integer"
      -        },
      -        "recommendation": {
      -          "anyOf": [
      -            {
      -              "type": "string"
      -            },
      -            {
      -              "type": "null"
      -            }
      -          ],
      -          "title": "Recommendation"
      -        },
      -        "severity_class": {
      -          "anyOf": [
      -            {
      -              "type": "string"
      -            },
      -            {
      -              "type": "null"
      -            }
      -          ],
      -          "title": "Severity Class"
      -        },
      -        "severity_score": {
      -          "anyOf": [
      -            {
      -              "type": "integer"
      -            },
      -            {
      -              "type": "null"
      -            }
      -          ],
      -          "title": "Severity Score"
      -        },
      -        "slug": {
      -          "title": "Slug",
      -          "type": "string"
      -        },
      -        "title": {
      -          "title": "Title",
      -          "type": "string"
      -        },
      -        "verdict": {
      -          "title": "Verdict",
      -          "type": "string"
      -        }
      -      },
      -      "title": "ArchitectFinding",
      -      "type": "object"
      -    },
      -    "ArchitectReadiness": {
      -      "description": "Readiness rubric output (score / grade / tier / breakdown).",
      -      "properties": {
      -        "aligned": {
      -          "title": "Aligned",
      -          "type": "integer"
      -        },
      -        "applicable": {
      -          "title": "Applicable",
      -          "type": "integer"
      -        },
      -        "grade": {
      -          "title": "Grade",
      -          "type": "string"
      -        },
      -        "grade_capped_by_certification": {
      -          "title": "Grade Capped By Certification",
      -          "type": "boolean"
      -        },
      -        "grade_capped_by_high_risk": {
      -          "title": "Grade Capped By High Risk",
      -          "type": "boolean"
      -        },
      -        "hardening_recommended": {
      -          "title": "Hardening Recommended",
      -          "type": "integer"
      -        },
      -        "high_risk": {
      -          "title": "High Risk",
      -          "type": "integer"
      -        },
      -        "mixed": {
      -          "title": "Mixed",
      -          "type": "integer"
      -        },
      -        "needs_changes": {
      -          "title": "Needs Changes",
      -          "type": "integer"
      -        },
      -        "not_applicable": {
      -          "title": "Not Applicable",
      -          "type": "integer"
      -        },
      -        "polish": {
      -          "title": "Polish",
      -          "type": "integer"
      -        },
      -        "production_blocker": {
      -          "title": "Production Blocker",
      -          "type": "integer"
      -        },
      -        "rubric_version": {
      -          "title": "Rubric Version",
      -          "type": "string"
      -        },
      -        "score": {
      -          "title": "Score",
      -          "type": "integer"
      -        },
      -        "tier": {
      -          "title": "Tier",
      -          "type": "string"
      -        }
      -      },
      -      "title": "ArchitectReadiness",
      -      "type": "object"
      -    },
      -    "ErrorBody": {
      -      "description": "The body of `error_payload(code, message, details)` returns.",
      -      "properties": {
      -        "code": {
      -          "title": "Code",
      -          "type": "string"
      -        },
      -        "details": {
      -          "additionalProperties": true,
      -          "title": "Details",
      -          "type": "object"
      -        },
      -        "message": {
      -          "title": "Message",
      -          "type": "string"
      -        }
      -      },
      -      "title": "ErrorBody",
      -      "type": "object"
      -    }
      -  },
      -  "properties": {
      -    "assessment_status": {
      -      "anyOf": [
      -        {
      -          "type": "string"
      -        },
      -        {
      -          "type": "null"
      -        }
      -      ],
      -      "default": null,
      -      "title": "Assessment Status"
      -    },
      -    "assessment_summary": {
      -      "anyOf": [
      -        {
      -          "type": "string"
      -        },
      -        {
      -          "type": "null"
      -        }
      -      ],
      -      "default": null,
      -      "title": "Assessment Summary"
      -    },
      -    "badge_url": {
      -      "default": null,
      -      "title": "Badge Url",
      -      "type": "string"
      -    },
      -    "baseline_compatibility": {
      -      "anyOf": [
      -        {
      -          "type": "string"
      -        },
      -        {
      -          "type": "null"
      -        }
      -      ],
      -      "default": null,
      -      "title": "Baseline Compatibility"
      -    },
      -    "baseline_race_status": {
      -      "anyOf": [
      -        {
      -          "type": "string"
      -        },
      -        {
      -          "type": "null"
      -        }
      -      ],
      -      "default": null,
      -      "title": "Baseline Race Status"
      -    },
      -    "baseline_status": {
      -      "anyOf": [
      -        {
      -          "type": "string"
      -        },
      -        {
      -          "type": "null"
      -        }
      -      ],
      -      "default": null,
      -      "title": "Baseline Status"
      -    },
      -    "card_badge_url": {
      -      "default": null,
      -      "title": "Card Badge Url",
      -      "type": "string"
      -    },
      -    "certification_attempts_count": {
      -      "default": null,
      -      "title": "Certification Attempts Count",
      -      "type": "integer"
      -    },
      -    "certification_blocker_reason": {
      -      "anyOf": [
      -        {
      -          "type": "string"
      -        },
      -        {
      -          "type": "null"
      -        }
      -      ],
      -      "default": null,
      -      "title": "Certification Blocker Reason"
      -    },
      -    "certification_findings": {
      -      "default": null,
      -      "items": {
      -        "additionalProperties": true,
      -        "type": "object"
      -      },
      -      "title": "Certification Findings",
      -      "type": "array"
      -    },
      -    "certification_status": {
      -      "anyOf": [
      -        {
      -          "type": "string"
      -        },
      -        {
      -          "type": "null"
      -        }
      -      ],
      -      "default": null,
      -      "title": "Certification Status"
      -    },
      -    "certification_summary": {
      -      "anyOf": [
      -        {
      -          "type": "string"
      -        },
      -        {
      -          "type": "null"
      -        }
      -      ],
      -      "default": null,
      -      "title": "Certification Summary"
      -    },
      -    "code_classification_category": {
      -      "anyOf": [
      -        {
      -          "type": "string"
      -        },
      -        {
      -          "type": "null"
      -        }
      -      ],
      -      "default": null,
      -      "title": "Code Classification Category"
      -    },
      -    "code_classification_rationale": {
      -      "anyOf": [
      -        {
      -          "type": "string"
      -        },
      -        {
      -          "type": "null"
      -        }
      -      ],
      -      "default": null,
      -      "title": "Code Classification Rationale"
      -    },
      -    "created_at": {
      -      "default": null,
      -      "title": "Created At",
      -      "type": "string"
      -    },
      -    "error": {
      -      "$ref": "#/$defs/ErrorBody",
      -      "default": null
      -    },
      -    "focus_area": {
      -      "anyOf": [
      -        {
      -          "type": "string"
      -        },
      -        {
      -          "type": "null"
      -        }
      -      ],
      -      "default": null,
      -      "title": "Focus Area"
      -    },
      -    "improvements": {
      -      "default": null,
      -      "items": {
      -        "additionalProperties": true,
      -        "type": "object"
      -      },
      -      "title": "Improvements",
      -      "type": "array"
      -    },
      -    "matched_principles": {
      -      "default": null,
      -      "items": {
      -        "$ref": "#/$defs/ArchitectFinding"
      -      },
      -      "title": "Matched Principles",
      -      "type": "array"
      -    },
      -    "next_step": {
      -      "anyOf": [
      -        {
      -          "additionalProperties": true,
      -          "type": "object"
      -        },
      -        {
      -          "type": "null"
      -        }
      -      ],
      -      "default": null,
      -      "title": "Next Step"
      -    },
      -    "overall_status": {
      -      "default": null,
      -      "title": "Overall Status",
      -      "type": "string"
      -    },
      -    "principles_aligned": {
      -      "default": null,
      -      "title": "Principles Aligned",
      -      "type": "integer"
      -    },
      -    "principles_evaluated": {
      -      "default": null,
      -      "title": "Principles Evaluated",
      -      "type": "integer"
      -    },
      -    "prior_run_id": {
      -      "anyOf": [
      -        {
      -          "type": "string"
      -        },
      -        {
      -          "type": "null"
      -        }
      -      ],
      -      "default": null,
      -      "title": "Prior Run Id"
      -    },
      -    "public_review_url": {
      -      "default": null,
      -      "title": "Public Review Url",
      -      "type": "string"
      -    },
      -    "readiness": {
      -      "anyOf": [
      -        {
      -          "$ref": "#/$defs/ArchitectReadiness"
      -        },
      -        {
      -          "type": "null"
      -        }
      -      ],
      -      "default": null
      -    },
      -    "regressions": {
      -      "default": null,
      -      "items": {
      -        "additionalProperties": true,
      -        "type": "object"
      -      },
      -      "title": "Regressions",
      -      "type": "array"
      -    },
      -    "run_id": {
      -      "default": null,
      -      "title": "Run Id",
      -      "type": "string"
      -    },
      -    "tier": {
      -      "anyOf": [
      -        {
      -          "type": "string"
      -        },
      -        {
      -          "type": "null"
      -        }
      -      ],
      -      "default": null,
      -      "title": "Tier"
      -    }
      -  },
      -  "title": "ArchitectValidateResponse",
      -  "type": "object"
      -}New value: +null
  6. Changed2 schema fields changed
    • changedInput schema / properties / focus_area / description
      Previous value: -"Narrow the evaluation to a specific principle cluster or slug (e.g. 'delegation-and-scope')."New value: +"Narrow the evaluation to a specific principle cluster or slug (e.g. 'delegation', 'visibility', 'establish-trust-through-inspectability')."
    • changedOutput schema / (root)
      Previous value: -nullNew value: +{
      +  "$defs": {
      +    "ArchitectFinding": {
      +      "description": "One per-principle finding from architect.validate.",
      +      "properties": {
      +        "confidence": {
      +          "anyOf": [
      +            {
      +              "type": "number"
      +            },
      +            {
      +              "type": "null"
      +            }
      +          ],
      +          "title": "Confidence"
      +        },
      +        "evidence": {
      +          "anyOf": [
      +            {
      +              "type": "string"
      +            },
      +            {
      +              "type": "null"
      +            }
      +          ],
      +          "title": "Evidence"
      +        },
      +        "evidence_quality": {
      +          "anyOf": [
      +            {
      +              "type": "string"
      +            },
      +            {
      +              "type": "null"
      +            }
      +          ],
      +          "title": "Evidence Quality"
      +        },
      +        "principle_id": {
      +          "title": "Principle Id",
      +          "type": "integer"
      +        },
      +        "recommendation": {
      +          "anyOf": [
      +            {
      +              "type": "string"
      +            },
      +            {
      +              "type": "null"
      +            }
      +          ],
      +          "title": "Recommendation"
      +        },
      +        "severity_class": {
      +          "anyOf": [
      +            {
      +              "type": "string"
      +            },
      +            {
      +              "type": "null"
      +            }
      +          ],
      +          "title": "Severity Class"
      +        },
      +        "severity_score": {
      +          "anyOf": [
      +            {
      +              "type": "integer"
      +            },
      +            {
      +              "type": "null"
      +            }
      +          ],
      +          "title": "Severity Score"
      +        },
      +        "slug": {
      +          "title": "Slug",
      +          "type": "string"
      +        },
      +        "title": {
      +          "title": "Title",
      +          "type": "string"
      +        },
      +        "verdict": {
      +          "title": "Verdict",
      +          "type": "string"
      +        }
      +      },
      +      "title": "ArchitectFinding",
      +      "type": "object"
      +    },
      +    "ArchitectReadiness": {
      +      "description": "Readiness rubric output (score / grade / tier / breakdown).",
      +      "properties": {
      +        "aligned": {
      +          "title": "Aligned",
      +          "type": "integer"
      +        },
      +        "applicable": {
      +          "title": "Applicable",
      +          "type": "integer"
      +        },
      +        "grade": {
      +          "title": "Grade",
      +          "type": "string"
      +        },
      +        "grade_capped_by_certification": {
      +          "title": "Grade Capped By Certification",
      +          "type": "boolean"
      +        },
      +        "grade_capped_by_high_risk": {
      +          "title": "Grade Capped By High Risk",
      +          "type": "boolean"
      +        },
      +        "hardening_recommended": {
      +          "title": "Hardening Recommended",
      +          "type": "integer"
      +        },
      +        "high_risk": {
      +          "title": "High Risk",
      +          "type": "integer"
      +        },
      +        "mixed": {
      +          "title": "Mixed",
      +          "type": "integer"
      +        },
      +        "needs_changes": {
      +          "title": "Needs Changes",
      +          "type": "integer"
      +        },
      +        "not_applicable": {
      +          "title": "Not Applicable",
      +          "type": "integer"
      +        },
      +        "polish": {
      +          "title": "Polish",
      +          "type": "integer"
      +        },
      +        "production_blocker": {
      +          "title": "Production Blocker",
      +          "type": "integer"
      +        },
      +        "rubric_version": {
      +          "title": "Rubric Version",
      +          "type": "string"
      +        },
      +        "score": {
      +          "title": "Score",
      +          "type": "integer"
      +        },
      +        "tier": {
      +          "title": "Tier",
      +          "type": "string"
      +        }
      +      },
      +      "title": "ArchitectReadiness",
      +      "type": "object"
      +    },
      +    "ErrorBody": {
      +      "description": "The body of `error_payload(code, message, details)` returns.",
      +      "properties": {
      +        "code": {
      +          "title": "Code",
      +          "type": "string"
      +        },
      +        "details": {
      +          "additionalProperties": true,
      +          "title": "Details",
      +          "type": "object"
      +        },
      +        "message": {
      +          "title": "Message",
      +          "type": "string"
      +        }
      +      },
      +      "title": "ErrorBody",
      +      "type": "object"
      +    }
      +  },
      +  "properties": {
      +    "assessment_status": {
      +      "anyOf": [
      +        {
      +          "type": "string"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ],
      +      "default": null,
      +      "title": "Assessment Status"
      +    },
      +    "assessment_summary": {
      +      "anyOf": [
      +        {
      +          "type": "string"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ],
      +      "default": null,
      +      "title": "Assessment Summary"
      +    },
      +    "badge_url": {
      +      "default": null,
      +      "title": "Badge Url",
      +      "type": "string"
      +    },
      +    "baseline_compatibility": {
      +      "anyOf": [
      +        {
      +          "type": "string"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ],
      +      "default": null,
      +      "title": "Baseline Compatibility"
      +    },
      +    "baseline_race_status": {
      +      "anyOf": [
      +        {
      +          "type": "string"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ],
      +      "default": null,
      +      "title": "Baseline Race Status"
      +    },
      +    "baseline_status": {
      +      "anyOf": [
      +        {
      +          "type": "string"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ],
      +      "default": null,
      +      "title": "Baseline Status"
      +    },
      +    "card_badge_url": {
      +      "default": null,
      +      "title": "Card Badge Url",
      +      "type": "string"
      +    },
      +    "certification_attempts_count": {
      +      "default": null,
      +      "title": "Certification Attempts Count",
      +      "type": "integer"
      +    },
      +    "certification_blocker_reason": {
      +      "anyOf": [
      +        {
      +          "type": "string"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ],
      +      "default": null,
      +      "title": "Certification Blocker Reason"
      +    },
      +    "certification_findings": {
      +      "default": null,
      +      "items": {
      +        "additionalProperties": true,
      +        "type": "object"
      +      },
      +      "title": "Certification Findings",
      +      "type": "array"
      +    },
      +    "certification_status": {
      +      "anyOf": [
      +        {
      +          "type": "string"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ],
      +      "default": null,
      +      "title": "Certification Status"
      +    },
      +    "certification_summary": {
      +      "anyOf": [
      +        {
      +          "type": "string"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ],
      +      "default": null,
      +      "title": "Certification Summary"
      +    },
      +    "code_classification_category": {
      +      "anyOf": [
      +        {
      +          "type": "string"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ],
      +      "default": null,
      +      "title": "Code Classification Category"
      +    },
      +    "code_classification_rationale": {
      +      "anyOf": [
      +        {
      +          "type": "string"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ],
      +      "default": null,
      +      "title": "Code Classification Rationale"
      +    },
      +    "created_at": {
      +      "default": null,
      +      "title": "Created At",
      +      "type": "string"
      +    },
      +    "error": {
      +      "$ref": "#/$defs/ErrorBody",
      +      "default": null
      +    },
      +    "focus_area": {
      +      "anyOf": [
      +        {
      +          "type": "string"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ],
      +      "default": null,
      +      "title": "Focus Area"
      +    },
      +    "improvements": {
      +      "default": null,
      +      "items": {
      +        "additionalProperties": true,
      +        "type": "object"
      +      },
      +      "title": "Improvements",
      +      "type": "array"
      +    },
      +    "matched_principles": {
      +      "default": null,
      +      "items": {
      +        "$ref": "#/$defs/ArchitectFinding"
      +      },
      +      "title": "Matched Principles",
      +      "type": "array"
      +    },
      +    "next_step": {
      +      "anyOf": [
      +        {
      +          "additionalProperties": true,
      +          "type": "object"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ],
      +      "default": null,
      +      "title": "Next Step"
      +    },
      +    "overall_status": {
      +      "default": null,
      +      "title": "Overall Status",
      +      "type": "string"
      +    },
      +    "principles_aligned": {
      +      "default": null,
      +      "title": "Principles Aligned",
      +      "type": "integer"
      +    },
      +    "principles_evaluated": {
      +      "default": null,
      +      "title": "Principles Evaluated",
      +      "type": "integer"
      +    },
      +    "prior_run_id": {
      +      "anyOf": [
      +        {
      +          "type": "string"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ],
      +      "default": null,
      +      "title": "Prior Run Id"
      +    },
      +    "public_review_url": {
      +      "default": null,
      +      "title": "Public Review Url",
      +      "type": "string"
      +    },
      +    "readiness": {
      +      "anyOf": [
      +        {
      +          "$ref": "#/$defs/ArchitectReadiness"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ],
      +      "default": null
      +    },
      +    "regressions": {
      +      "default": null,
      +      "items": {
      +        "additionalProperties": true,
      +        "type": "object"
      +      },
      +      "title": "Regressions",
      +      "type": "array"
      +    },
      +    "run_id": {
      +      "default": null,
      +      "title": "Run Id",
      +      "type": "string"
      +    },
      +    "tier": {
      +      "anyOf": [
      +        {
      +          "type": "string"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ],
      +      "default": null,
      +      "title": "Tier"
      +    }
      +  },
      +  "title": "ArchitectValidateResponse",
      +  "type": "object"
      +}
  7. Changed1 schema field changed
    • changedInput schema / properties / implementation_context / description
      Previous value: -"The artifact under review. When reviewing existing code, pass the FULL file contents verbatim — no truncation, no whitespace compression, no condensing of multi-line statements, no summarisation. The architect's findings cite specific identifiers, branch ordering, and structural choices that get destroyed by compression, so a summarised submission produces a degraded verdict that does not reflect the actual code. If a single file is too large, split into multiple architect.validate calls scoped by file/module rather than condensing one call. Architecture summaries (high-level prose) are accepted ONLY when no code exists yet (greenfield review); never as a substitute for code that already exists."New value: +"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."
  8. Changed1 schema field changed
    • changedInput schema / properties / implementation_context / description
      Previous value: -"Code snippet, workflow description, or architecture summary to evaluate against Blueprint principles."New value: +"The artifact under review. When reviewing existing code, pass the FULL file contents verbatim — no truncation, no whitespace compression, no condensing of multi-line statements, no summarisation. The architect's findings cite specific identifiers, branch ordering, and structural choices that get destroyed by compression, so a summarised submission produces a degraded verdict that does not reflect the actual code. If a single file is too large, split into multiple architect.validate calls scoped by file/module rather than condensing one call. Architecture summaries (high-level prose) are accepted ONLY when no code exists yet (greenfield review); never as a substitute for code that already exists."
  9. First observed

TDQS

A4.7/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the annotations, the description discloses that this is a long-running LLM call (60-180s typical, 6-minute server budget), that retrying on client timeout re-runs the call from scratch, that the run_id is emitted in the first progress event, and that runs are private by default with URLs that 404 until published. It also discloses persistence atomicity, auth/plan requirements, residency, score variance (~20-67 points), and the fact that validate does not verify runtime correctness. The annotations are consistent: readOnlyHint=false and idempotentHint=false align with creating persisted runs and warning against retries.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is genuinely front-loaded, opening with the core purpose, timeout warning, and recovery path. However, it is extremely long and contains substantial redundancy and low-signal detail, such as repeated PR-number score anecdotes, the recursive-integrity narrative about the platform's own CI practice, and extended certification-payload examples. While section headings help navigation, the overall size and repetition hurt parseability; many sentences could be cut without losing essential guidance.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a high-complexity, long-running, stateful tool, the description covers nearly everything an agent needs: timeout behavior, recovery handles, task-augmentation protocol, iteration semantics, typed failure modes, privacy/persistence behavior, return-field meaning, and the validate→consensus→certify orchestration sequence. The presence of an output schema covers structured return values, while the description adds the temporal and operational context the schema cannot express. Nothing critical is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Even though schema coverage is 100%, the description adds substantial operational meaning beyond the schema's field names. It explains that implementation_context must be sent verbatim with no truncation, no `...` placeholders, and no comment removal; that repository must stay stable across calls to preserve the iteration chain; that changing repository silently severs prior-run anchoring; and that private_session disables persistence and recovery. It also clarifies the special task parameter semantics for MCP task-augmented invocation, which the schema alone would not convey.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource: a first-pass doctrine review of agentic code/workflow against the 10-principle AI Design Blueprint. It clearly distinguishes itself from siblings like architect.certify (second-pass adversarial review) and architect.validate_consensus (N=3-5 aggregated stability-focused validation), and from spec.validate/design.validate by targeting agentic workflows. This is far beyond a tautology or vague purpose statement.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides an explicit WHEN TO CALL (governance audit, readiness score, production_ready badge) and WHEN NOT TO CALL (non-agentic plumbing, which returns tier=not_applicable). It also names alternatives with concrete conditions: use architect.validate_consensus when stability matters more than speed, use architect.certify to mint the badge after production_ready, and use me.validation_history for timeout recovery. An agent can reliably select this tool versus its siblings from the description alone.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources