Repository navigation
[Feature]: evidence.md convention for speckit.bug.assess (pre-digested inputs such as reduced logs) #4804
Description
Problem Statement
speckit.bug.assess ingests a bug report as pasted text or a URL. Real bug
reports often come with a log: a CI run, kubectl logs, a crash-looping
service. These run to thousands or millions of lines. Today the agent either
reads the raw log (blowing the context window and burying the one relevant
error under repeats) or skims it ad hoc. Whatever it looked at is not recorded
in .specify/bugs/<slug>/, so speckit.bug.fix and speckit.bug.test can't
rely on it, and a reviewer can't check what the agent actually saw.
Proposed Solution
In Execution → 1. Ingest the bug report of speckit.bug.assess, add:
If
BUG_DIR/evidence.mdexists (for example, written by a
before_bug_assesshook), read it as part of the report. Cite it under
Report and prefer it over re-reading any raw log it was derived from.
Also add evidence.md (optional) to the per-bug directory layout in the
README, alongside assessment.md, fix.md and test.md.
This names no tool. With no evidence.md, behavior is exactly as today. The
file can be written by hand or by any extension. Using the
before_bug_assess hook from #4799 is the natural route, but this convention
works without that hook.
Motivating producer: log intake
A community extension, speckit.logreduce.intake,
finds log files referenced in the report and runs
logreduce with a token budget.
logreduce is a single static binary that applies TF-IDF over masked templates
plus severity weighting. The extension writes BUG_DIR/evidence.md containing
the command it ran, the source path, the summary header and the reduced log.
- On a 1M-line log, that is a ~99.9% token reduction.
- On the LogDx CI-incident benchmark (35 cases), it kept 99% of the
human-labelled critical lines at an 8k-token budget.
Assess, fix and test then all work from the same saved evidence file instead of
the raw log. I'll maintain that extension and submit it to the community
catalog. This issue only asks for the convention.
Alternatives Considered
- Bake log reduction into
speckit.bug.assess. That adds a tool-specific
dependency to a bundled extension. A file convention keeps core neutral. - A standalone command the user runs first, with no convention. This works
today, but assess doesn't know to read the result.
Component
Extensions: bundled bug extension (extensions/bug/)
AI Agent (if applicable)
All.
Use Cases
- A CI job fails with a 40k-line log. Intake writes about 7k tokens of reduced
log toevidence.md, and the assessment cites the first error and the
crash-loop pattern from it. speckit.bug.testfails and recommends re-running assess. The new failing
log goes through the same intake, soevidence.mdshows the before and
after.
Acceptance Criteria
-
speckit.bug.assessreadsBUG_DIR/evidence.mdwhen present and cites it
under Report. -
evidence.md(optional) is listed in the per-bug directory layout in the
bug extension README. - With no
evidence.md, the command output is unchanged.
I'm happy to send the PR.
Additional Context
- Split from [Feature]: Hook events for the bundled
bugextension commands #4799 (hook events for the bug commands) at a maintainer's request. - The community
spec-kit-bugfixextension (speckit.bugfix.report) could read
evidence.mdin the same way.
AI Disclosure
Drafted with Claude Code (Claude Opus 5.5) from my notes. I reviewed it.
Activity
github-actions commentedon Oct 1, 2026
Feature assessment — evidence-convention · Stage 1/5: Intake
Idea Intake:
evidence.mdconvention for bug assessmentevidence.mdconvention forspeckit.bug.assess(pre-digested inputs such as reduced logs) #4804 ingithub/spec-kitIdea (as captured)
Restated
Adopt an optional per-bug
evidence.mdconvention sospeckit.bug.assesscan consume and cite pre-digested evidence, especially reduced logs, while retaining current behavior when the file is absent.Origin & Context
alexcpnin GitHub issue [Feature]:evidence.mdconvention forspeckit.bug.assess(pre-digested inputs such as reduced logs) #4804bugextension commands #4799 at a maintainer's request to isolate the evidence-file convention from hook events.First-Glance Unknowns
evidence.mdhave?]speckit.bug.assess?]github-actions commentedon Oct 1, 2026
Feature assessment — evidence-convention · Stage 2/5: Research
Idea Research:
evidence.mdconvention for bug assessmentUsers & Demand
Prior Art
assessment.md,fix.md, andtest.md; it does not documentevidence.md— source:extensions/bug/README.md:15-19(confidence: high, cited).speckit.bug.assesscurrently describes pasted text or URL ingestion and writes onlyassessment.md; its execution instructions do not mention pre-digested evidence — source:extensions/bug/commands/speckit.bug.assess.md:7,78-106(confidence: high, cited).speckit.bug.assesswith the report and slug, then separately runs fix and test; the workflow tests assert this command contract but do not cover evidence-file behavior — source:tests/workflows/test_bundled_bugfix_assess_workflows.py:20-71(confidence: high, cited).tests/extensions/bug/test_bug_extension.py:22-64(confidence: high, cited).Market & Context
Data & Constraints
evidence.mdis absent — source: GitHub issue #4804, acceptance criteria (confidence: high, cited).speckit.bug.assesstreats report content as untrusted input under its command policy, so any convention must preserve that handling for generated evidence — source:extensions/bug/commands/speckit.bug.assess.md:39-75(confidence: high, cited).Evidence Against the Idea
Gaps & Open Questions
evidence.md?]Sources
evidence.mdconvention forspeckit.bug.assess(pre-digested inputs such as reduced logs) #4804 (host: github.com, policy: allowlisted)extensions/bug/README.mdextensions/bug/commands/speckit.bug.assess.mdtests/extensions/bug/test_bug_extension.pytests/workflows/test_bundled_bugfix_assess_workflows.pygithub-actions commentedon Oct 1, 2026
Feature assessment — evidence-convention · Stage 3/5: Problem
Problem Definition:
evidence.mdconvention for bug assessmentProblem Statement
People assessing bugs with very large logs cannot reliably focus on relevant evidence or preserve what was inspected for later fix, test, and review stages. The current bundled bug workflow has no documented per-bug place for a pre-digested report, so repeated assessments may reprocess raw logs inconsistently and consume excessive context.
Affected Users & Stakeholders
evidence.mdconvention forspeckit.bug.assess(pre-digested inputs such as reduced logs) #4804].evidence.mdconvention forspeckit.bug.assess(pre-digested inputs such as reduced logs) #4804].Goals
Non-Goals
Success Metrics
Cost of Inaction
Users continue to choose between sending very large raw logs through assessment or making ad hoc summaries that are not part of the per-bug record. This can waste context, make repeated assessments inconsistent, and leave reviewers unable to determine what evidence informed the result. The frequency and magnitude of this cost are not measured in the repository.
Open Questions
github-actions commentedon Oct 1, 2026
Feature assessment — evidence-convention · Stage 4/5: Concept
Concept:
evidence.mdconvention for bug assessmentOptions
Option A — Optional evidence handoff
+- Sketch: Treat an optional per-bug evidence document as the canonical supplementary input for bug assessment when present, and make the bundled workflow visibly reference it in the assessment record. Raw-report-only bugs continue through the existing path.
+- Appetite: small
+- Trade-offs: Wins a simple, tool-neutral contract and backward compatibility. Sacrifices richer guarantees about provenance, validation, and downstream consumption until those needs are better understood.
+- Rabbit holes: Ambiguous precedence between raw and reduced material; unbounded or stale files; inconsistent adoption by community producers; unclear behavior for unreadable content.
Option B — Evidence convention with explicit provenance expectations
+- Sketch: Establish the optional evidence document as a reviewable handoff that includes enough context for users to understand where it came from and when it was produced, while keeping generation outside the bundled extension.
+- Appetite: medium
+- Trade-offs: Wins auditability and makes stale or misleading summaries easier to identify. Sacrifices the smallest possible change and may impose requirements that simple hand-authored evidence cannot meet.
+- Rabbit holes: Designing a metadata standard prematurely; debating freshness and source identity; expanding documentation and tests across every producer.
Option C — Do nothing in the bundled workflow
+- Sketch: Leave the bug extension unchanged and let users or community extensions pass reduced content as ordinary pasted report text or manage their own files.
+- Appetite: small
+- Trade-offs: Wins zero implementation and documentation cost. Sacrifices persistent shared context, reviewability, and the issue's stated benefit for repeated assessments.
+- Rabbit holes: Fragmented conventions, duplicated raw-log processing, and downstream tools that cannot discover the same evidence.
Recommendation
Recommend Option A because it addresses the stated problem with the smallest tool-neutral scope and preserves the current no-evidence path. It directly supports the issue's requested acceptance criteria while leaving provenance, size, and broader consumer requirements as explicit specification questions rather than inventing a standard without usage data.
Out of Scope (for the recommended option)
speckit.bug.fix,speckit.bug.test, or unrelated extensions until their evidence needs are validated.Assumptions to Validate
github-actions commentedon Oct 1, 2026
Feature assessment — evidence-convention · Stage 5/5: Decision — verdict go
Decision:
evidence.mdconvention for bug assessmentScorecard
Verdict & Rationale
Go. The problem is sufficiently concrete, the requested change has a bounded small option, and the repository already uses per-bug Markdown artifacts as a workflow boundary. The issue's adoption and performance claims are not independently verified, and several contract details remain open, but they are specification questions for a narrow backward-compatible convention rather than blockers to deciding whether the idea is worth specifying. The handoff must explicitly address evidence trust, failure behavior, precedence, and scope of downstream consumers.
If needs-clarification
If go — Handoff to
__SPECKIT_COMMAND_SPECIFY__evidence.mdwhen present while leaving raw-report-only behavior unchanged.mnriem commentedon Oct 2, 2026
@alexcpn I would recommend going for a community preset or presets as they can be stacked. And then one can say deliver it in a way that each user of the assess extension can opt into what they need for their specific environment