Skip to main content
Glama
rodlunt

engineering-audit

by rodlunt

record_domain_result

Save a domain's audit result after validating verdict completeness, finding consistency, and source attribution, preventing silent skips or invalid citations; replace=true overwrites existing records.

Instructions

Record the audit result for one domain.

    The payload itself is pydantic-validated by DomainResult (finding and
    verdict consistency, could-not-run reason, could-not-evaluate and
    not-applicable notes, both of which are the verdict's stated reason,
    every finding's precondition, the completed domain's
    uninspected_evidence, and that every consulted_sources entry has a
    non-blank url, title and why). On top of that: the domain must be one of the domains
    selected for this run, a completed result must carry a verdict for
    every rule the domain defines, and every consulted_sources rule_id
    must be one of this domain's own rules; a completed result missing a
    verdict raises IncompleteResultError listing exactly which rule ids
    are missing, and an unattributable consulted source raises
    UnknownRuleIdError, so the agent can fix and resubmit rather than a
    skipped rule silently passing or a citation silently pointing at
    nothing. Re-recording an already-recorded domain requires
    replace=True, to guard against an accidental overwrite.

    Verdicts for a domain get_domain was never called for during this run
    are recorded, not refused, and the response says "rules_fetched": false
    and carries a warning naming what that means. The report names the
    domain too. Recording rather than refusing is deliberate: refusing
    would be trivially satisfied by fetching the text and ignoring it,
    which destroys the signal, while the verdicts and the fact that they
    were unsupported both survive this way. Tell the user when you see it.

    Two fields are refused outright rather than recorded with a warning,
    because unlike an unfetched domain there is no signal to preserve by
    letting them through: a finding without a `precondition` (issue #178)
    and a completed domain without `uninspected_evidence` (issue #179).
    Both are one sentence the auditor already knows the answer to, and in
    both cases being unable to write it is the finding. A finding whose
    precondition cannot be named belongs at not-applicable, and a domain
    that cannot say what it did not read has not established what its
    absence claims are worth. See AUDIT.md step 3 and step 4.
    

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
resultYes
replaceNo

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault

No arguments

Behavior5/5

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

With no annotations, the description carries the full burden and delivers: it details validation layers, error types (IncompleteResultError, UnknownRuleIdError), the deliberate recording of unfetched domains with a warning, refusal of two specific fields, and the rationale for these behaviors. This is exemplary disclosure of edge-case handling and error semantics.

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

Conciseness4/5

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

The description is long and dense, but every sentence contributes substantive guidance—validation rules, errors, edge cases, and rationales. It is front-loaded with the core purpose and organized into coherent paragraphs. It would be slightly more scannable with bullets, but the length is justified by the tool's complexity.

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?

Given the complexity of DomainResult validation and the absence of annotations, the description is remarkably complete: it covers success criteria, failure modes, exceptions, overwrite protection, unfetched domains, and field refusals. The output schema covers return values, and the description fills the behavioral gap thoroughly.

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

Parameters4/5

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

The top-level schema has 0% description coverage, so the description must compensate. It adds significant meaning: constraints on DomainResult (every rule verdict required, consulted_sources rule_id association), replace semantics, and rejection criteria. It does not restate the JSON shape, but the nested schema $defs cover structure. Slightly more explicit field-level guidance would raise it further.

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 opens with a specific verb+resource: 'Record the audit result for one domain.' It further specifies scope (domain must be selected for this run, replace=True for re-recording), clearly distinguishing it from sibling tools like get_domain (fetching) and list_domains (listing). The purpose is unambiguous and actionable.

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

Usage Guidelines4/5

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

The tool explains when to use it (after auditing a domain, with validation of completeness), when to use replace=True (re-recording), and when results are refused (missing precondition or uninspected_evidence). It references AUDIT.md steps 3 and 4 for deeper context. It does not explicitly name alternatives, but the operational context is clear.

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

Install Server

Other Tools

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/rodlunt/engineering-audit'

If you have feedback or need assistance with the MCP directory API, please join our Discord server