Skip to main content
Glama

Record Confirmed Bug

record_bug
Destructive

Record confirmed bugs during testing with severity levels and optional automated verification to prevent false positives.

Instructions

Record a confirmed bug you have identified during testing.

Call this only after you have observed something that meets the bug bar: reproducible, user-affecting, persistent. Do not record speculation or polish nits. The session report is built from these records — be specific.

Args: title: One-line headline, specific. Bad: "Form has issues." Good: "Login form accepts any password — no authentication." severity: "critical" | "high" | "medium" | "low" | "info". HIGH = data loss / security / payment / blocked flow. MEDIUM = workflow friction / confusing UX / cross-page bug. LOW = polish / suggestion-grade. verify: Optional reproduction clause. When the bug has a machine-checkable symptom (something present/absent on a fresh page load), pass it and Argus will INDEPENDENTLY re-load the page and confirm the symptom before recording — turning the bug into a verified, reproducible finding instead of your unverified say-so. This is Argus's anti-false-positive guard; use it whenever the symptom is text-checkable. Shape: {"expect": "present"|"absent", "target_text": "the text that proves the bug", "at_url": "/path"} # optional, defaults to current page Examples: - Fake delete (item survives): {"expect":"present", "target_text":"Buy groceries","at_url":"/tasks"} - Save didn't persist (new value missing): {"expect":"absent", "target_text":"EDITED-XYZ","at_url":"/tasks/1/edit"} IMPORTANT — the target must PROVE the symptom, not a nearby fact. target_text has to be the exact string whose presence/absence ALONE is the bug. For a COUNT or LOGIC inconsistency ("7 pending + 2 done != 8 total") no single text check establishes it — verifying that "8 total" merely EXISTS does not confirm the inconsistency and would stamp a misleading VERIFIED on tangential evidence. Record those as observation-based (omit verify), or verify the specific wrong value that should not be there. For a broken URL or API response whose HTTP status is the proof, use {"expect_status": 404, "at_url": "/missing"} instead of matching error-page copy. Status verification and text verification are alternatives and cannot be combined in one clause. For a MULTI-STEP bug (the symptom only appears after a journey), add "replay": true — Argus re-drives the recorded action trace (click_what/type_into/select_into/navigate) in a fresh cold context and checks the symptom there, giving a stronger "reproduced by replaying N steps from a cold start" receipt (or INCONCLUSIVE if a step no longer resolves). Shape: {"replay": true, "expect": "present"|"absent", "target_text": "the text that proves the bug"} CAUTION: replay re-EXECUTES the journey's steps against the live backend, so any Save/Delete/Add/checkout in the trace runs a second time (real side effect; the receipt reports writes_replayed). Use the plain clean-load verify (no replay) for destructive flows, or accept the re-run. Add "minimize": true to also narrow a confirmed reproduction to the minimal sufficient steps ("you don't need all 7 — 2 and 5 suffice"). Minimization runs ONLY for a write-free journey (it re-runs subsets, which would repeat any writes); it is skipped with a note otherwise. Omit verify entirely for visual/layout/UX-judgment bugs that no single text check captures — those record as observation-based. evidence: Optional dict with extra context. Recommended keys: description (str): Longer explanation including user impact. Default = same as title. steps (list[str]): Reproduction steps. Default = current session step log (everything you did so far). url (str): Page or screen URL. Default = current page URL. screenshot (str): One of "auto" (default — take one now and attach), "skip" (no screenshot), or a label to use as the screenshot filename. Pre-existing screenshot paths are also accepted. bug_type (str): A category for the report. Default "ux_issue". One of: console_error, network_error, visual_anomaly, ux_issue, crash, broken_link, form_error, state_verification, misleading_success, count_mismatch, text_anomaly, broken_image, seo_issue, accessibility, performance, mixed_content. Pick the SPECIFIC type, not the generic ux_issue: a "Saved!" / success toast that lied -> misleading_success; a delete or edit that did not persist -> state_verification; a wrong/inconsistent count or total -> count_mismatch; a JS exception or dead page -> crash; a form losing data / rejecting valid input -> form_error. Reserve ux_issue for genuine usability friction with no better fit — a data-loss or persistence bug labeled "ux_issue" reads as cosmetic next to its HIGH severity.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
titleYes
verifyNo
evidenceNo
severityYes

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
resultYes
Behavior5/5

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

Annotations indicate destructiveHint=true, and description adds detail: affects session report, verify/replay re-executes steps with side effects, warns about writes_replayed. No contradictions.

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?

Structure is good: intro, usage condition, then parameter details. But somewhat verbose; however, each sentence adds necessary value for a complex tool.

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?

Covers purpose, usage, all parameters with examples, behavioral implications, and implicit alternative tools. Complete given tool complexity and output schema existence.

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?

Schema coverage is 0%, but description fully compensates with detailed explanations for all 4 parameters: title with examples, severity with criteria, verify with complex options and warnings, evidence with optional fields and bug_type choices. Adds immense meaning.

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?

Clearly states purpose: recording a confirmed bug. Distinguishes from speculation and polish nits, and implicitly from sibling record_observation for unconfirmed observations.

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?

Explicitly states when to call: only after confirming bug bar (reproducible, user-affecting, persistent). Tells when not to call: speculation or polish nits. Provides detailed usage conditions.

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/chriswu727/argus'

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