Skip to content

fix(issue-reassess-stats): pin nature counting in step-2 classify eval spec - #1615

Open
thisisnic wants to merge 3 commits into
apache:mainfrom
thisisnic:fix/reassess-stats-classify-nature-spec
Open

thisisnic wants to merge 3 commits into
apache:mainfrom
thisisnic:fix/reassess-stats-classify-nature-spec

Conversation

@thisisnic

@thisisnic thisisnic commented Oct 13, 2026 •

Copy link
Copy Markdown
Member

Summary

  • The issue-reassess-stats step-2-classify eval failed intermittently on case-1-mixed-verdicts: the model sometimes re-bucketed the one verdict with a mixed cases array into bug-as-advertised-partial-fix, dropping bug-as-advertised from 4 to 3 and adding a fifth cross_table row.
  • The output spec listed that nature bucket but never said whether nature is counted as given or re-derived from cases. classify.md and the fixture both assume "as given".
  • Adds two sentences to the spec making that explicit: count classification and nature verbatim, and let a mixed cases array only add the key to partial_fixes.

Type of change

  • Skill change (.claude/skills/<name>/) — eval fixtures updated below
  • Tool / bridge contract (tools/<system>/*.md)
  • Python package (tools/*/ with pyproject.toml)
  • Groovy reference impl
  • Cross-cutting (RFC, AGENTS.md, sandbox, privacy-LLM)
  • Documentation (docs/, README.md, CONTRIBUTING.md)
  • Project template (projects/_template/)
  • CI / dev loop (prek, workflows, validators)
  • Other:

Test plan

Before the change, on the one failing case (step-2-classify/case-1-mixed-verdicts):

Model Result
claude -p default (Fable 5.1), full suite on main FAIL on 2 of 4 runs, same three diff lines each time; all other cases passed every run
claude -p --model opus PASS, byte-identical to expected.json
claude -p --model sonnet PASS

After the change, full suite with claude -p default (Fable 5.1) on this branch:

Runs Result
12 8 of 8 cases passed on every run; case-1-mixed-verdicts returned the expected JSON all 12 times
  • prek run passes on the changed file
  • For skill changes: eval suite passes for the affected skill
    (PYTHONPATH=tools/skill-evals/src python3 -m skill_evals.runner --cli "claude -p" tools/skill-evals/evals/issue-reassess-stats/, 12 consecutive runs)
  • For skill behaviour changes: a new or updated eval fixture is included in this PR — not needed, the existing fixture already exercises the ambiguity; this PR tightens the prompt it runs against

RFC-AI-0004 compliance

No principles touched — prompt-wording change in eval material only; no new mutation, host access, or LLM hop. No SKILL.md edit, so no token restamp.

Linked issues

None.


Generated-by: Claude Code (Fable 5.1)

🤖 Generated with Claude Code

@thisisnic
thisisnic marked this pull request as draft October 13, 2026 13:38
@thisisnic
thisisnic force-pushed the fix/reassess-stats-classify-nature-spec branch from 48ec757 to a475818 Compare October 13, 2026 13:40
…l spec

The step-2-classify output spec lists `bug-as-advertised-partial-fix`
as a nature bucket but never says whether `nature` is counted as given
on each verdict or re-derived from the `cases` array. On the
case-1-mixed-verdicts fixture the model sometimes re-buckets the one
verdict with a mixed `cases` array into the partial-fix nature, which
drops `bug-as-advertised` from 4 to 3 and adds a fifth cross-table row.
Observed on two of four full-suite `claude -p` runs on main; Opus and
Sonnet passed the case.

State the rule the fixture and classify.md already assume: count
`classification` and `nature` exactly as given, and let a mixed `cases`
array only add the key to `partial_fixes`.

Generated-by: Claude Code (Fable 5.1)
@thisisnic
thisisnic force-pushed the fix/reassess-stats-classify-nature-spec branch from a475818 to 9f9fc4d Compare October 13, 2026 13:41
@thisisnic
thisisnic marked this pull request as ready for review October 13, 2026 13:51
thisisnic added a commit to thisisnic/magpie that referenced this pull request Oct 13, 2026
CI never runs the eval suites against a live model, so the only record
of how a suite fares on a given model is whatever someone wrote down.
Nothing was written down. Add a "Recording runs" section to the harness
README defining a per-skill Run history table and four rules: main-only
SHAs as the ref, the model name as the CLI uses it, one row per batch of
identical runs, and record flakes.

Seed the first table in issue-reassess-stats with the pre-fix flake
observed on main, which apache#1615 addresses.

Generated-by: Claude Code (Fable 5.1)
thisisnic added a commit to thisisnic/magpie that referenced this pull request Oct 13, 2026
CI never runs the eval suites against a live model, so the only record
of how a suite fares on a given model is whatever someone wrote down.
Nothing was written down. Add a "Recording runs" section to the harness
README defining a per-skill Run history table and four rules: main-only
SHAs as the ref, the model name as the CLI uses it, one row per batch of
identical runs, and record flakes.

Seed the first table in issue-reassess-stats with the pre-fix flake
observed on main, which apache#1615 addresses.

Generated-by: Claude Code (Fable 5.1)
thisisnic added a commit to thisisnic/magpie that referenced this pull request Oct 13, 2026
CI never runs the eval suites against a live model, so the only record
of how a suite fares on a given model is whatever someone wrote down.
Nothing was written down. Add a "Recording runs" section to the harness
README defining a per-skill Run history table and four rules: main-only
SHAs as the ref, the model name as the CLI uses it, one row per batch of
identical runs, and record flakes.

Seed the first table in issue-reassess-stats with the pre-fix flake
observed on main, which apache#1615 addresses.

Generated-by: Claude Code (Fable 5.1)
thisisnic added a commit to thisisnic/magpie that referenced this pull request Oct 13, 2026
CI never runs the eval suites against a live model, so the only record
of how a suite fares on a given model is whatever someone wrote down.
Nothing was written down. Add a "Recording runs" section to the harness
README defining a per-skill Run history table and four rules: main-only
SHAs as the ref, the model name as the CLI uses it, one row per batch of
identical runs, and record flakes.

Seed the first table in issue-reassess-stats with the pre-fix flake
observed on main, which apache#1615 addresses.

Generated-by: Claude Code (Fable 5.1)
@github-actions github-actions Bot added family:issue issue-* skills capability:stats Read-only dashboards, metrics, governance evidence labels Oct 14, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

capability:stats Read-only dashboards, metrics, governance evidence family:issue issue-* skills

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant