Skip to Content
Commands/conclave-bug

/conclave-bug <report [text|url] | list>

Report a bug the moment it surfaces — typically after a PR has already merged and shipped a silent regression — or list the current bug backlog.

/conclave-bug report "checkout button throws 500 on mobile Safari" /conclave-bug report https://<logging-tool-url>/issues/8f2a1c /conclave-bug list

report writes a BUG-NNN artifact directly in status: ready — bugs never pass through backlog or Sprint Planning, and /conclave-planning never sees them. Once reported, a bug is picked up exactly like a story: /conclave-dev BUG-NNN/conclave-qa BUG-NNN/conclave-pr-review BUG-NNN (if applicable). This command is the on-ramp only — no new pipeline is introduced.

What report does

  1. Classifies the argument — free text, or a URL/ID that looks like a reference to a logging/error-tracking tool.
  2. If it looks like a reference, checks whether the current session has any connected MCP tool whose name/description matches logging/error-tracking terms (generic keyword detection — never a hardcoded vendor name). If one matches, attempts to fetch stack trace/breadcrumbs/context. Falls back silently to plain text on no match or a failed fetch.
  3. Haiku pre-analysis refiner — dispatches a read-only claude-haiku-4-5-20251001 subagent against the raw input and any enriched context. Returns a JSON brief with: optimized_title, suspected_code_area, blocking_questions, nonblocking_gaps, advisory_severity, and prefill values for the user form. This runs silently — it never blocks the flow, it only makes the next step smarter.
  4. Asks for clarification (AskUserQuestion) — conditionally: if the refiner found no blocking questions AND advisory severity is clear, the question step is skipped entirely and its prefill values are used directly. Otherwise, asks up to 5 questions (title, severity, discipline, related story/PR) with refiner-generated prefill and the refiner’s top 3 blocking questions. Severity (critical | high | medium | low) has no default — must be explicit.
  5. Delegates to the QA subagent — not Product Manager — to draft Gherkin repro steps and an advisory severity note (the user’s explicit severity choice is always authoritative). The refiner’s suspected_code_area and nonblocking_gaps are passed as context hints.
  6. Computes the next BUG-NNN — a separate monotonic sequence from US-NNN, independent counters, never colliding.
  7. Writes conclave/product/bugs/BUG-NNN-<slug>.md from bug.template.md. Includes suspected_code_area (from the refiner) and lab_test_path (empty until a lab test is generated).
  8. Mirrors it as a GitHub issue via gh issue create (GitHub-only this phase) — the issue is a mirror, never the source of truth.
  9. Generates a lab test spec — if lab_test.enabled: true in conclave/config.md AND the bug’s severity is ≥ lab_test.bugs.severity_threshold, dispatches the Tech Lead subagent to write BUG-NNN-lab.md. Requires conclave/lab-config.md (warns and skips if missing). Updates lab_test_path in the bug file. See Lab tests.

What list does

Mechanical — no subagent call, same precedent as /conclave-story retire. Globs conclave/product/bugs/*.md and prints a table sorted by severity (critical → high → medium → low), then by ID:

| Bug | Title | Severity | Status | Related | Lab | Issue | Assignee | |---------|--------------------------------|----------|-------------|------------|-----|-------------------------------|----------| | BUG-004 | Checkout 500 on mobile Safari | critical | in-progress | US-042 | ✓ | https://github.com/…/issues/81 | Cy | | BUG-003 | Login loop on iOS Safari | high | ready | — | — | https://github.com/…/issues/80 | — |

The Lab column shows when a lab test spec exists (lab_test_path is set) and otherwise.

Severity vs priority

severity (critical | high | medium | low) is a field only bugs have — distinct from priority (MoSCoW: must | should | could | wont), which stories use. Severity measures incident impact; priority measures feature work order. They are never conflated.

Bugs in /conclave-dev and /conclave-qa

/conclave-dev and /conclave-qa accept BUG-NNN IDs anywhere they accept US-NNN, including mixed batches (/conclave-dev US-001 BUG-004) — the ID prefix disambiguates which directory each resolves against. Everything else (branch naming, discipline-based charter routing, batching, model resolution, summary tables) works unmodified, since a bug’s frontmatter has the same shape a story’s does.

The Developer subagent reproduces a bug before fixing it — uses the bug file’s inline Gherkin repro steps to confirm the failure is still present before writing any fix code. If it cannot reproduce, it stops and surfaces that (interactively, or AUTONOMOUS_ABORT: could not reproduce BUG-NNN's repro steps in autonomous mode) rather than fixing something it never actually saw fail. The rendered PR body includes Fixes #<github_issue_number> so merging auto-closes the mirrored GitHub issue.

Guardrails

  • Never modifies any file outside conclave/product/bugs/ and conclave/context/.
  • Never commits — the team reviews the bug report as a PR, same as every existing command.
  • list never calls a subagent.
  • No edit/retire/split sub-actions in this phase — a mis-filed bug is hand-corrected via frontmatter edit (git preserves the audit trail).
  • Never invents a stack trace, environment detail, or severity the user didn’t provide or the enrichment didn’t surface.
  • Never hardcodes a specific logging/error-tracking vendor name in the MCP-detection logic.
  • The Haiku refiner is a convenience aid, not a gate — if it errors, the flow continues without it.
  • AskUserQuestion is conditional: it is skipped (not “answered automatically”) only when the refiner finds zero blocking questions AND advisory severity is clear. Severity without a clear recommendation always triggers the question step.
  • Lab spec generation is skipped silently (with a setup hint) if conclave/lab-config.md is absent. It is never a hard error during bug reporting.

After it runs

  • report — next step is /conclave-dev BUG-NNN to fix it.
  • list — informational only, no next step implied.
Last updated on