Skip to main content
Glama
rodlunt

engineering-audit

by rodlunt

render_report

Finalize a repository audit run: render the complete HTML report and write run-state.json, blocking incomplete verdicts to preserve integrity.

Instructions

Finish the run and render its report.

    Requires a resolved configuration. Sets meta.finished to the given
    ISO timestamp, renders the deterministic HTML report (which itself
    refuses to render an incomplete run: a selected domain with no
    recorded result, or a completed result missing a rule verdict, raises
    rather than producing a report that looks clean over a gap), and
    writes both report.html and run-state.json to the run's deliverables
    directory: config.deliverables_dir if the configuration page (or a
    preset AuditConfig) named one, otherwise the run's own output_dir,
    unchanged from how every run before that choice existed behaved.
    output_dir itself is never affected by this choice; it stays the
    run's working directory for the crash-recovery progress file
    regardless of where the finished deliverables land (issue #109).
    Any issue URLs filed this run via file_issues, and any
    feedback issue filed via submit_feedback, are carried on the
    RunState itself, so the written run-state.json is self-sufficient:
    it (and its schema_version) can be handed to
    engineering-audit-render later to re-render the same report without
    this server, this run tracker, or either URL, still in memory.

    This call also stamps meta.server_finished from the server's own
    clock, alongside the caller-supplied finished. See begin_run's
    server_started for why the report keeps both this figure and the
    caller's rather than trusting either one alone.

    The finished run stays reachable for one last submit_feedback (the
    order AUDIT.md documents), which rewrites both files to carry the
    feedback issue's link. It stops being reachable at the next
    begin_run.

    Both files are written atomically, and the run's crash-recovery file
    is removed once they are on disk: from here the run-state.json is the
    record, and a later begin_run on this output directory starts clean
    rather than offering to resume a run that is already finished.

    The response also carries "rules_fetched": which domains had their
    rule text fetched this run, which recorded verdicts without it, and
    which were carried in from a saved run that never recorded it. Any
    domain in the second list is named in the report and must be named to
    the user as well: it says the verdicts for that domain were reached
    without the rules they are verdicts on.
    

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
finishedYes

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 provided, the description carries the full burden and it excels: it discloses atomic writes, file locations (deliverables_dir vs output_dir), removal of crash-recovery file, changes in run reachability, failure modes (raises on incomplete runs), and the response's 'rules_fetched' field. This is comprehensive behavioral transparency.

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 but well-structured: the core purpose is front-loaded, and each subsequent paragraph covers a distinct behavioral aspect (server_finished, feedback ordering, atomicity, response). Some historical detail like 'issue #109' could be trimmed, but the length is largely 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 tool's complexity and the presence of an output schema, the description is remarkably complete. It covers prerequisites, side effects, ordering with sibling tools, failure modes, and response content. The output schema handles return structure details, so the description needs no further additions.

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 only parameter, 'finished', has 0% schema description coverage, but the description adds meaning by calling it an 'ISO timestamp' and explaining it sets meta.finished. This goes beyond the bare schema type, though it does not specify the exact ISO 8601 variant or format constraints.

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 'Finish the run and render its report,' a specific verb+resource statement that distinguishes it from siblings like begin_run, record_domain_result, and submit_feedback. It further elaborates on deliverables and side effects, leaving no ambiguity about the tool's role.

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 description clearly states a prerequisite ('Requires a resolved configuration') and explains interaction order with submit_feedback and begin_run. It references begin_run for a design rationale but does not explicitly say 'use this instead of X', so it lacks explicit exclusionary guidance.

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