{
  "format": "driftproof-answers/2",
  "receipt_hash": "d31b2f40eced27b77786d4fa004f3a8cac901918bb82fbf199588a3aa3b5716e",
  "model_id": "claude-sonnet-5-5",
  "answers": {
    "e6e10336c3757c142327528d0a8df7074ce55a42b178e01c8521c9be00bd0526": "**Next step: stop and ask you which state is correct. I don't change anything until you answer.**\n\nThe item has two state roles, `needs-info` and `ready-for-agent`, but a triaged item must carry exactly one. The triage rules say that when state roles conflict, I flag it and ask the maintainer before doing anything else. That means no verification, no grilling, no brief, no comment, and no label changes yet.\n\n**Why it matters:** the two states imply different things.\n- `needs-info` means we're waiting on the reporter, so there's no agent brief and the item shouldn't be picked up.\n- `ready-for-agent` means the item is fully specified and an AFK agent can start.\n\nI can't tell which one is stale. A plausible cause is that the reporter replied and `ready-for-agent` was added without removing `needs-info`. Another is that someone applied `ready-for-agent` prematurely.\n\n**What I need from you:**\n1. Which state should this item have: `needs-info`, `ready-for-agent`, or something else, such as `needs-triage` to re-evaluate?\n2. Whether I should remove the other label once you've decided.\n\n**What happens after your answer:**\n- **`ready-for-agent`:** I'd first check that the bug reproduces, then post an agent brief. Every comment I post starts with the AI-generated disclaimer. If you say to skip grilling, I'll ask whether you still want a brief.\n- **`needs-info`:** I'd post triage notes listing what's established and the specific questions for the reporter.\n- **`needs-triage`:** I'd apply that label and re-evaluate from the start, including reading the prior notes to see whether the reporter has answered anything.\n\nSince the bug category is present and not in conflict, I'd leave it as is.",
    "08caf6a5e6fccdfbf9e28d88fab84a717efca61cb4e61471ea3dcfc89a84a36e": "**Next step: stop and ask the maintainer. Don't change anything yet.**\n\nThe triage rules say every triaged issue carries exactly one category role and exactly one state role. This item has the `bug` category, which is fine, but it carries two state roles, `needs-info` and `ready-for-agent`. The rule for that case is explicit: if state roles conflict, flag it and ask the maintainer before doing anything else.\n\nThe two states genuinely contradict each other:\n\n- `needs-info` means we're waiting on the reporter for more detail, so the item isn't sufficiently specified.\n- `ready-for-agent` means it's fully specified and an AFK agent can pick it up.\n\nSince the label mapping uses the canonical strings, there's no ambiguity about which labels these are.\n\n**What I'd do now, in order:**\n\n1. Tell the maintainer about the conflict, naming both labels.\n2. Ask which state is correct. I can offer a guess about how it likely happened: either the reporter answered and `needs-info` was never removed, or `ready-for-agent` was applied early. I'd mark that as a guess until I've looked at the comment history.\n3. Wait for their answer before posting comments, removing labels, or writing a brief.\n\n**After they answer:**\n\n- If they pick `ready-for-agent`, I remove `needs-info`, verify the bug (reproduce it from the reporter's steps), and post an agent brief. Per the quick-override rule, if they want it moved without a grilling session, I'd ask whether they want a brief written.\n- If they pick `needs-info`, I remove `ready-for-agent` and post triage notes covering what's established and the specific questions for the reporter.\n- If they say neither, the item can go back to `needs-triage` for a normal evaluation.\n\nAny comment I post along the way must begin with the AI-generated disclaimer line.",
    "ada1ff38c3e5aec16c9be0ad12a04cdc94c9028e877e17b9fde00d9ce504080d": "**Next step: stop and flag the conflict to the maintainer. Nothing else happens until they answer.**\n\nThe item has the `bug` category and two state roles, `needs-info` and `ready-for-agent`. Every triaged item should carry exactly one state role, and when states conflict the rule is to flag it and ask before doing anything else. So I would not reproduce the bug, explore the codebase, write a brief, post a comment, or change any labels yet.\n\nThe two states contradict each other:\n- `needs-info` means we're waiting on the reporter, so something is unresolved.\n- `ready-for-agent` means the issue is fully specified and an AFK agent can pick it up.\n\nBecause the label mapping uses the canonical strings, there is no mapping ambiguity. Both labels really are applied.\n\n**What I'd ask the maintainer:**\n1. Which state is correct? A likely cause is that the reporter replied and `ready-for-agent` was applied without removing `needs-info`, or the reverse.\n2. If `ready-for-agent`, should I remove `needs-info` and then check for an agent brief? If none exists, I'd reproduce the bug and write one.\n3. If `needs-info`, should I remove `ready-for-agent`? I'd also check whether the reporter has answered the outstanding questions, since `needs-info` should go back to `needs-triage` once they reply.\n\n**My recommendation:** treat `needs-info` as the safer state until someone confirms the bug has been reproduced and a brief exists. Sending an agent after an under-specified bug wastes more effort than a short wait for the reporter. This is only a default, and the maintainer can override it.\n\nOnce they pick one, I'd remove the other label, confirm the change with them, and continue the normal triage flow from there.",
    "151a63525a5d8cf5fe428257fef1fd161cd54d61f38ce8c41ed3f5e6c71ec24e": "Nothing is determined by the facts supplied, so the next step is a human decision. The item is in a conflicting state.\n\n- **Category:** `bug` is fine and unambiguous.\n- **State:** `needs-info` means the report is missing something. `ready-for-agent` means it's actionable as-is. Both can't be true at once. The label mapping uses those same strings, so each label maps directly to its state, and there's no translation layer to break the tie.\n- **What the tooling does:** You haven't given me a precedence rule, so I can't say whether the automation picks one label, skips the item, or hands it to an agent. I'd treat any specific outcome as a guess.\n\n**Recommendation:** Treat it as `needs-info`. Remove `ready-for-agent` and keep `needs-info` until the missing details are supplied. Someone likely added `needs-info` because something was missing, and an agent working from an incomplete bug report tends to waste effort or fix the wrong thing. Once the reporter answers, swap `needs-info` for `ready-for-agent`.\n\nIf you know that `ready-for-agent` was applied later, after the questions were answered, then `needs-info` is the stale label and should be removed instead. The label history would tell you which it is.",
    "843fc2ba24684e97799755f0ae6bfa76da4dfec9a7e4b0cccfe609e973d20c4d": "**Next step: the item is in an inconsistent state and shouldn't be handed to an agent yet. Resolve the conflict first.**\n\n`needs-info` means a human is waiting on missing information, and `ready-for-agent` means the item is fully specified and can be picked up. An item can't be both. Since the label mapping uses those same strings, both labels would be applied as-is, and nothing in the mapping resolves the clash.\n\n**Recommendation:** treat it as `needs-info` and drop `ready-for-agent`.\n- If the item is wrongly marked ready, an agent starts work on an underspecified bug and wastes effort or fixes the wrong thing.\n- If the item is wrongly marked needs-info, the cost is a short delay while someone confirms the spec is complete.\n\n**Concrete sequence:**\n1. Remove `ready-for-agent` and keep `needs-info`. The category stays `bug`.\n2. Check whether the missing information was actually supplied, such as repro steps, expected vs. actual behavior, or the environment.\n3. If it was, remove `needs-info` and re-apply `ready-for-agent`. If not, leave `needs-info` and ask the reporter for the specifics.\n\n**Caveat:** you didn't supply a precedence rule or a state-machine definition, so this is my judgment from the labels' meanings, not a documented rule. If your workflow defines one, such as \"latest label wins\" or \"needs-info always blocks\", that should override my recommendation. It would also be worth finding out how both labels got applied, since that points to a gap in the triage process.",
    "7931c510f989d0e97df72c2912346817190a3162d5441b3cef7e8ccfb171e27b": "**Recommendation: treat it as `needs-info`, and don't hand it to an agent until the conflict is resolved.**\n\nYou haven't given me the triage rules, so this rests on the usual meaning of these states rather than on a spec.\n\n- **The states contradict each other.** `needs-info` means something is missing from the report, such as repro steps or expected behavior. `ready-for-agent` means the item is fully specified and can be picked up. Both can't be true at once.\n- **The label mapping adds no ambiguity.** Since the labels use the same strings as the states, both labels would be applied literally. Nothing in the mapping resolves the conflict, and an automation keyed on `ready-for-agent` could still pick the item up.\n- **Why `needs-info` wins.** Dispatching an under-specified bug to an agent wastes work and can produce a wrong fix. Holding a ready item a bit longer costs little.\n\n**What happens next:**\n1. Flag the item as inconsistent, since the category (bug) is fine but the state is not.\n2. Remove `ready-for-agent` and keep `needs-info`, with a note on what information is missing.\n3. Once the reporter or a maintainer supplies it, drop `needs-info` and apply `ready-for-agent`.\n\nIf the item was actually complete and `needs-info` is stale, do the reverse: remove `needs-info` and keep `ready-for-agent`. Someone with context needs to make that call, so I wouldn't guess.",
    "8aadcc74a33614acb93797937481ffdf003298aa7907c3f6bae6551fe008c223": "**Recommendation:** keep category `bug`, move state from `needs-triage` to `needs-info`.\n\n**Reasoning:** The report gives no steps, so I can't reproduce it. Per the triage flow, insufficient detail is a strong `needs-info` signal. I haven't looked at the codebase, so I haven't checked whether export is already fixed or whether a prior `.out-of-scope/` entry applies. Nothing here is verified.\n\nDraft comment to post (the disclaimer is required):\n\n```markdown\n> *This was generated by AI during triage.*\n\n## Triage Notes\n\n**What we've established so far:**\n\n- You're reporting that export crashes.\n- We haven't been able to reproduce it yet, because the report doesn't include steps or details of the failure.\n\n**What we still need from you (@reporter):**\n\n- What exactly did you do before the crash? Please list the steps from opening the app (or running the command) to the crash, including which export option or format you chose.\n- What did you see when it crashed? Please paste the full error message, stack trace, or log output, or describe what happened (window closed, hang, error dialog).\n- What did you try to export? The approximate size, type, and any unusual content in it would help (for example, a large dataset, special characters, or an empty selection).\n- What version of the project are you running, and on which OS and environment?\n- Does it crash every time, or only sometimes? Did export work in an earlier version?\n```\n\n**Next steps once the reporter replies:** the item returns to `needs-triage`. I'd then try to reproduce from their steps, and a confirmed reproduction with the code path makes a much stronger agent brief.\n\nI haven't posted anything or changed any labels. Tell me if you want the wording adjusted before you apply it.",
    "1803caab17e59b66579772dd3e455d1c35bb0822ea2d7b079bca77c549592368": "**Recommendation:** keep `bug`, move `needs-triage` → `needs-info`. Verification step 3 can't proceed: there are no reproduction steps, and I haven't checked the codebase, so there's no code path to confirm. That's a strong `needs-info` signal. Since this is a state change, confirm with me before I apply the label and post.\n\n**Draft comment** (to be posted with the required disclaimer):\n\n```markdown\n> *This was generated by AI during triage.*\n\n## Triage Notes\n\n**What we've established so far:**\n\n- You're reporting that export crashes.\n- This is labeled `bug`.\n- We haven't been able to reproduce it or locate a cause yet, because the report doesn't include steps or error output.\n\n**What we still need from you (@reporter):**\n\n- **Which export?** The exact command, menu item, or API call you used, and the format you chose (e.g. CSV, JSON, PDF), if there are options.\n- **Exact steps** from a fresh start to the crash, including what data or file you were exporting (rough size, and anything unusual in it).\n- **What \"crashes\" means:** an error message, stack trace, hang, or the process exiting? Please paste the full output or logs.\n- **Expected vs. actual behavior:** what you expected to happen, and what happened instead.\n- **Environment:** version or commit, OS, runtime version, and how you installed or run it.\n- **Frequency:** does it fail every time, or only with certain data or settings? Did it ever work, and if so, in which version?\n```\n\n**Caveats:**\n- The bracketed `@reporter` should be replaced with their actual handle.\n- Once they reply, the item returns to `needs-triage` and I'd attempt reproduction before deciding between `ready-for-agent`, `ready-for-human`, or further questions.\n- Before posting, I'd also run the redundancy and `.out-of-scope/` checks, which I haven't done here.",
    "b2cd2705792a060767d0f1705b15d1659c66b2e73de964de4cbea827b7c12321": "## Recommendation\n\n- **Category:** `bug` (keep)\n- **State:** move `needs-triage` → `needs-info`\n- **Reasoning:** The report has no reproduction steps, so the claim can't be verified. Per the triage flow, insufficient detail is a strong `needs-info` signal. I haven't looked at the codebase or run anything, so the redundancy check, the `.out-of-scope/` check, and reproduction are all **not done**. Nothing below is confirmed.\n\n## Draft comment\n\n```markdown\n> *This was generated by AI during triage.*\n\n## Triage Notes\n\n**What we've established so far:**\n\n- The report is that export crashes.\n- We haven't been able to reproduce or confirm this yet, because the report doesn't include steps or any error output.\n- No other details (version, format, data involved) have been established.\n\n**What we still need from you (@reporter):**\n\n- What are the exact steps you take, starting from a fresh launch, up to the crash? (For example: which screen or command you start from, and what you click or run.)\n- Which export format or target are you using (e.g. CSV, PDF, JSON, or a specific destination)?\n- What do you see when it crashes? Please paste the full error message, stack trace, or log output if there is any. If the app closes with no message, tell us that.\n- Which version of the project are you running, and on what OS/environment?\n- Does it crash every time, or only with certain data? If it's data-dependent, roughly how large is the dataset, and can you share a minimal sample that triggers it?\n- Did export ever work for you before? If so, what changed (an upgrade, a config change, new data)?\n```\n\n## Label changes to apply (once you approve)\n\n- Remove `needs-triage`, add `needs-info`.\n- Keep `bug`.\n\nTwo things to confirm before I post:\n\n1. The reporter's actual handle, since I used `@reporter` as a placeholder.\n2. That you're happy with the question list. I can trim it if it feels like too much to ask in one go.",
    "2fd54b4819b8a2aa581b2dd41c98b905065c0bcb45787a466e6f62956b2ca08e": "## Triage Notes: \"Export crashes\"\n\n**Status:** Needs more information. Not yet actionable.\n**Labels:** `needs-triage`, `bug` (keep both; `bug` is the reporter's claim and is unconfirmed).\n\n### What we know\n- A reporter says the export feature crashes.\n- No reproduction steps, environment details, error output, or logs were provided.\n- No code or reproduction evidence is available to me, so I can't confirm or localize the problem.\n\n### What we don't know\n- **Which export:** format (CSV, PDF, JSON, etc.), entry point (UI, CLI, API), and scope (single item or bulk).\n- **What \"crashes\" means:** an unhandled exception, a hang, a process exit, a blank or corrupted output, or an error dialog.\n- **Trigger conditions:** always, intermittent, or tied to specific data (size, special characters, empty sets, permissions).\n- **Environment:** version or commit, OS, runtime version, and deployment type.\n- **Regression:** whether it worked in an earlier version.\n\n### Severity and priority\nCannot be assigned. A crash could mean data loss or a blocked workflow, but the report doesn't say. Provisional: **unrated** until impact is known.\n\n### Requested from reporter\nPlease reply with:\n1. Exact steps to trigger the crash, starting from a clean state.\n2. Expected vs. actual behavior.\n3. The full error message, stack trace, or log output.\n4. Version/commit, OS, and runtime details.\n5. A minimal sample input that triggers it, if data-dependent, with sensitive data removed.\n6. The last version where export worked, if known.\n\n### Next steps\n1. Post the information request above and add a `needs-info` label if the project uses one.\n2. Check for duplicates among existing export-related issues.\n3. If the reporter doesn't respond within the project's usual window (e.g., 14 days), close as \"cannot reproduce / insufficient information\", inviting them to reopen with details.\n4. Once steps arrive, try to reproduce, then confirm or remove `bug`, set severity, and drop `needs-triage`.\n\n### Draft reply to reporter\n> Thanks for the report. We can't investigate yet because we don't have enough detail. Could you share the steps to reproduce, the exact error or stack trace, your version and environment, and which export format or option you used? A small sample input that triggers the crash would help a lot. Once we have that, we'll try to reproduce it.",
    "31efeb3bfe28ccd5e5d1ec34d2907e291bb0393580355404806c027a4d679dc1": "**Triage notes: \"Export crashes\"**\n\n**Status:** Unconfirmed. Labels `needs-triage` and `bug` are in place, but the `bug` label is provisional until the crash is reproduced.\n\n**What we know**\n- A reporter says export crashes.\n- No reproduction steps, code, logs, or other evidence have been provided.\n\n**What we don't know**\n- Which export (format, destination, UI vs. CLI/API)\n- What \"crashes\" means: an exception, a hang, a process exit, or a corrupted or empty output file\n- Version, platform, and environment\n- Whether it happens every time or only sometimes\n- Whether it started after an upgrade or change\n- The size or shape of the data being exported\n\n**Assessment**\n- Severity and priority can't be set. Without scope or impact, anything assigned would be a guess.\n- No root-cause hypothesis is warranted. Nothing available points to a specific cause.\n\n**Next action: request info from the reporter**\n\nSuggested comment:\n\n> Thanks for the report. We can't investigate yet without more detail. Could you share:\n> 1. Exact steps to trigger the crash (what you exported, in which format, and how you started it)\n> 2. The error message, stack trace, or logs at the time of the crash\n> 3. Version and platform\n> 4. Whether it happens every time, and whether it ever worked before\n> 5. A minimal sample of the data, if you can share one\n>\n> We'll look again once we have this.\n\n**Follow-up**\n- Add `needs-info` (or the project's equivalent) and keep `needs-triage` until the reporter responds.\n- If there is no response within the project's usual window (e.g. 14 days), close as \"cannot reproduce / insufficient information\", with an invitation to reopen.\n- Once steps arrive, attempt to reproduce, then confirm `bug`, set severity, and remove `needs-triage`.",
    "60553fa33c79a3f84426b2adf1524d61f30aed7446b8ca120ea4f5e0588cdb78": "## Triage notes: \"Export crashes\"\n\n**Status:** Unconfirmed. Labels `needs-triage` and `bug` are both present. Keep `needs-triage`, and treat `bug` as provisional until the crash is reproduced.\n\n**What we know**\n- A reporter says the export feature crashes.\n- Nothing else. There are no reproduction steps, no code, and no logs or other evidence.\n\n**What we don't know**\n- Which export is affected (format, entry point such as UI, CLI, or API, and scope of data)\n- What \"crashes\" means here: an app/process exit, an unhandled exception, a hang, or an error message\n- Version, platform, and environment\n- Whether it happens every time or intermittently\n- Whether it is a regression, and if so, the last version that worked\n- Size or shape of the data being exported\n- Impact: how many users are affected, and whether there is a workaround\n\n**Assessment**\n- Severity and priority cannot be set from this report.\n- Root-cause guesses (memory, encoding, permissions, and so on) would be speculation, so none are offered.\n- The report is not actionable until we get more information.\n\n**Suggested next step: request info from the reporter**\n\n> Thanks for the report. We can't investigate yet without more detail. Could you share:\n> 1. Steps to reproduce, starting from a clean state if possible\n> 2. The export type or format and where you triggered it (UI, CLI, API)\n> 3. The exact error message, stack trace, or logs\n> 4. App version, OS, and environment details\n> 5. Whether it happens every time, and whether it ever worked before\n> 6. Approximate size or content of the data being exported\n>\n> A minimal sample that triggers the crash would help a lot.\n\n**Follow-up plan**\n- Add a `needs-info` label if the project uses one, and note the date requested.\n- If there is no response within the project's usual window, close as \"cannot reproduce / insufficient information\", inviting a reopen with details.\n- Once reproduction details arrive, re-triage: confirm the `bug` label, set severity, and assign an owner.\n- Check for duplicates among existing export-related issues once the symptom is clearer. That can't be done meaningfully now.",
    "9c526c6840284f0adf72b9c64be21f5e98ec013319d907906047ee4b3d5622b4": "**Recommendation:** `bug` + `ready-for-agent`\n\nReasoning: the error is reproduced, the expected input/output behavior is agreed, the affected file is known, and there is a concrete regression check. Nothing is left that needs grilling or `needs-info`. I haven't searched for redundancy or checked `.out-of-scope/`, since the facts are synthetic and I'm not using tools. Do both on a real issue before applying the label.\n\nDraft comment to post on the issue:\n\n```markdown\n> *This was generated by AI during triage.*\n\n## Agent Brief\n\n**Category:** bug\n**Summary:** `parser.js` raises an invalid-date error on input that should parse successfully.\n\n**Current behavior:**\nParsing the reproduced input throws an invalid-date error. The failure was reproduced during triage.\n\n**Desired behavior:**\nPer the agreed input/output behavior on this issue, the parser should accept the reported input and return the agreed output. Input that is genuinely invalid should keep raising the invalid-date error.\n\n**Key interfaces / where to look:**\n- `parser.js`: the date-handling path that produces the invalid-date error. Start from the reproduction and trace where the value is rejected.\n- Describe changes by behavior, not line numbers, since the file may shift.\n\n**Acceptance criteria:**\n- [ ] The reproduction case no longer throws and returns the agreed output.\n- [ ] A regression test covering the reproduction input is added and passes. It fails without the fix.\n- [ ] Inputs that were already valid still parse unchanged.\n- [ ] Genuinely invalid dates still raise the invalid-date error.\n- [ ] The existing test suite passes.\n\n**Out of scope:**\n- Changes to unrelated parser behavior or the public API beyond the agreed input/output.\n```\n\n**Next step:** confirm that you want `ready-for-agent` applied and the brief posted. Posting to the tracker is outward-facing, so I won't do it without your go-ahead. Once you confirm, I'd set the labels to `bug` and `ready-for-agent`, and remove `needs-triage` if it's present.",
    "faa6201614816d4e3d3fcaacebb3de5df9f7c67a1981d7dcd5e6ff34a0ee602a": "**Recommendation:** category `bug`, state `ready-for-agent`.\n\nReasoning: the invalid-date error is reproduced, the input/output behavior is agreed, the affected file is known (`parser.js`), and there is a clear regression check. Nothing is left to grill, so the issue can go straight to an AFK agent. I haven't inspected the codebase or run anything in this session, so the brief rests only on the facts you supplied.\n\nDraft comment to post:\n\n```markdown\n> *This was generated by AI during triage.*\n\n## Agent Brief\n\n**Category:** bug\n**Summary:** `parser.js` raises an invalid-date error on input that should parse successfully.\n\n**Current behavior:**\nParsing the reported input throws an invalid-date error. This was reproduced\nby following the reporter's steps.\n\n**Desired behavior:**\nThe parser accepts the reported input and returns the output agreed in the\nissue discussion: <insert agreed input → output pairs>.\nInputs that are genuinely invalid must keep raising the invalid-date error.\n\n**Key interfaces:**\n- `parser.js`: the date-parsing path that produces the invalid-date error.\n  Keep its public signature and existing return shape unchanged.\n\n**Acceptance criteria:**\n- [ ] The reproduced input no longer throws and returns the agreed output.\n- [ ] A regression test covers the reproduced case, fails before the fix and passes after.\n- [ ] Truly invalid dates still raise the invalid-date error.\n- [ ] The existing test suite passes.\n\n**Out of scope:**\n- Refactoring `parser.js` beyond what the fix requires.\n- Changing behavior for inputs not covered by the agreed input/output cases.\n```\n\nBefore posting, fill in the `<insert agreed input → output pairs>` placeholder with the concrete cases from the discussion, since the brief is only as durable as those examples. Tell me to proceed if you want me to apply the labels and post it. I'll confirm the exact changes first, since that publishes to the tracker.",
    "1e702946d0f78ac6cee95e4d6a1a21ec7cdbe53f5977712f5439f975e3ad85ec": "**Recommendation:** category `bug`, state `ready-for-agent`.\n\nReasoning: the error is reproduced, the expected input/output behavior is agreed, the affected file is known (`parser.js`), and there is a clear regression check. Nothing is left to grill, and no judgment calls or external access are needed, so it doesn't need to go to a human.\n\nThe comment below is the draft for the tracker. Specifics I don't have are marked as placeholders rather than invented.\n\n---\n\n```markdown\n> *This was generated by AI during triage.*\n\n## Agent Brief\n\n**Category:** bug\n**Summary:** `parser.js` raises an invalid-date error on input that should parse successfully.\n\n**Current behavior:**\nParsing the reproduced input (see the issue's repro steps) throws an invalid-date error instead of returning a parsed result. The failure has been reproduced during triage.\n\n**Desired behavior:**\nInputs matching the agreed contract below parse to the agreed outputs without error. Inputs that are genuinely invalid should continue to be rejected as they are today.\n\n**Agreed input/output:**\n- Input: `<agreed input from the issue>` → Output: `<agreed output>`\n- (Add any additional agreed cases here.)\n\n**Where to look:**\n- `parser.js`: the date-handling path that produces the invalid-date error. Identify the specific check or conversion that rejects the valid input, rather than loosening validation broadly.\n\n**Acceptance criteria:**\n- [ ] The reproduced input no longer throws and returns the agreed output.\n- [ ] A regression test covering the reproduced case is added and fails before the fix, passes after.\n- [ ] Existing parser tests still pass.\n- [ ] Truly invalid dates still produce the invalid-date error.\n\n**Out of scope:**\n- Changes to the parser's public interface or unrelated date formats.\n- Refactoring `parser.js` beyond what the fix requires.\n```\n\n---\n\nSuggested label change: apply `bug` and `ready-for-agent`, and remove `needs-triage` if present.\n\nBefore posting, replace the placeholder input/output lines with the actual agreed values from the issue, since an agent can't implement against `<agreed input>`. I haven't posted anything or changed labels. Say the word and I'll do it once the real values are filled in.",
    "35608a4af4057a6db29123d3695032b3cff67320cd2bb74929de09ea8b57b602": "# Agent Brief: Invalid-date error in `parser.js`\n\n**Status recommendation: Ready for implementation.** The bug is reproduced, the expected behavior is agreed, the location is known, and there is a clear regression check. Nothing blocks an agent from starting.\n\n## Problem\nParsing certain date input in `parser.js` produces an invalid-date error. The failure has been reproduced.\n\n## Scope\n- **Affected file:** `parser.js`\n- **Out of scope:** unrelated refactors, changes to other parsing paths, and changes to the agreed input/output contract.\n\n## Expected behavior\nFollow the agreed input/output behavior recorded on the issue. The exact input/output pairs weren't included in the facts I was given, so the agent should copy them verbatim from the issue into the test before changing code.\n\n## Suggested approach\n1. Reproduce the error using the issue's repro input and confirm it fails as reported.\n2. Write the regression check first and confirm it fails for the right reason.\n3. Make the smallest change in `parser.js` that produces the agreed output.\n4. Run the regression check and the existing test suite.\n\n## Acceptance criteria\n- The reproduced input no longer raises the invalid-date error and yields the agreed output.\n- The regression check passes, and it fails when run against the unfixed code.\n- Existing tests still pass, with no behavior change for inputs that already worked.\n\n## Report back\n- Root cause in one or two sentences.\n- The diff summary, limited to `parser.js` plus the test.\n- Test results, stating plainly any failures or skipped steps.\n\n## Caveats\n- Specifics (the repro input, the exact expected output, and the regression test's name and location) weren't in the facts supplied here. Pull them from the issue rather than guessing. If they are missing or ambiguous there, change the status to \"needs clarification\" and ask before coding.",
    "217c766a09d8e6ffc1fb967eed3c3e58b21c9a46a560290df651f199ea4154b0": "# Agent Brief: Invalid-date error in `parser.js`\n\n**Status recommendation: Ready for implementation.** The bug is reproduced, the expected input/output behavior is agreed, the affected file is known, and there is a clear regression check. Nothing blocks an agent from starting.\n\n## Problem\nParsing certain date inputs produces an invalid-date error. The failure has been reproduced.\n\n## Scope\n- **Affected file:** `parser.js`\n- Keep changes confined to the date-handling path in this file. Don't refactor unrelated parsing logic.\n\n## Expected behavior\nFollow the input/output behavior agreed in the issue. The exact cases weren't included in the facts I was given, so copy them verbatim from the issue into this section before handing off:\n\n| Input | Current result | Expected result |\n|---|---|---|\n| `<failing input from repro>` | invalid-date error | `<agreed output>` |\n\n## Approach\n1. Re-run the reproduction and confirm the invalid-date error.\n2. Find where `parser.js` builds or validates the date and fix the root cause. Don't just suppress the error.\n3. Confirm the agreed input/output cases now pass.\n4. Confirm inputs that were valid before still parse the same way.\n\n## Done when\n- The reproduction no longer errors and returns the agreed output.\n- The regression check from the issue passes. Add it as a permanent test if it isn't one already.\n- The existing test suite still passes.\n\n## Out of scope\nChanging the agreed behavior, adding new input formats, or touching files other than `parser.js` (and its tests) without flagging it.\n\n## Note\nThe repro input, the exact expected output, and the regression check's name or location were not in the supplied facts, so I left placeholders rather than guess. Fill those in before dispatching.",
    "79fccb5aae6ad5530f3b9ddaff4db42a91680ab1f7a2d4db7f5a2352f1b44bad": "# Agent Brief: Invalid-date error in `parser.js`\n\n**Status recommendation: Ready for implementation.** The bug is reproduced, the expected input/output behavior is agreed, the affected file is identified, and there is a clear regression check. Nothing blocks starting.\n\n## Problem\nParsing certain date inputs in `parser.js` produces an invalid-date error. The failure has been reproduced.\n\n## Scope\n- **Change:** `parser.js` only.\n- **Don't touch:** unrelated parsing paths, public interfaces, or other files unless the fix requires it. If it does, flag it in your summary.\n\n## Target behavior\nFollow the agreed input/output behavior recorded on the issue. The issue's exact input/output pairs aren't reproduced here, so treat them as the source of truth rather than inferring them from the current code. If the issue and the code disagree, the issue wins.\n\n## Steps\n1. Reproduce the invalid-date error using the issue's repro input.\n2. Add a failing regression test that encodes the agreed input/output behavior.\n3. Fix `parser.js` with the smallest change that makes the test pass.\n4. Run the existing test suite to confirm nothing else regressed.\n\n## Acceptance criteria\n- The repro input no longer raises an invalid-date error and returns the agreed output.\n- The new regression test fails before the fix and passes after.\n- Existing tests still pass.\n- The diff is limited to `parser.js` plus the test.\n\n## Reporting\nIn your summary, state the root cause, the change made, and the test results. Report any failing tests or skipped steps as they are. If the agreed behavior turns out to be ambiguous or contradictory, stop and ask rather than guessing.\n\n## Caveat\nThis brief is built only from the summary facts supplied. I haven't seen the issue text, the repro, or the code, so the specific inputs, outputs, and test location need to come from the issue itself."
  },
  "draws": [
    {
      "id": "conflict",
      "mode": "with_skill",
      "draw_index": 0,
      "generation_hash": "e6e10336c3757c142327528d0a8df7074ce55a42b178e01c8521c9be00bd0526",
      "answer_sha256": "e6e10336c3757c142327528d0a8df7074ce55a42b178e01c8521c9be00bd0526",
      "status": "measured",
      "judge_outputs": [
        "{\"score\": 1.0, \"pass\": true, \"reason\": \"Identifies the conflicting needs-info and ready-for-agent roles, asks the maintainer to resolve before any action, keeps the bug category separate and unchanged, and does not silently pick a state.\", \"rubric_points_met\": [1, 2, 3, 4]}",
        "{\"score\": 1.0, \"pass\": true, \"reason\": \"Identifies the needs-info and ready-for-agent conflict, asks the maintainer to resolve it before any action, keeps the bug category separate and unchanged, and does not silently pick a state.\"}",
        "{\"score\": 1.0, \"pass\": true, \"reason\": \"Identifies both needs-info and ready-for-agent as conflicting state roles, asks the maintainer to resolve before any action, keeps the bug category separate and unchanged, and does not silently pick a state.\"}",
        "{\"score\": 1.0, \"pass\": true, \"reason\": \"Identifies the conflicting needs-info and ready-for-agent roles, asks the maintainer to resolve before any action, keeps the bug category separate from state, and does not silently pick a state.\"}",
        "{\"score\": 1.0, \"pass\": true, \"reason\": \"Identifies the needs-info and ready-for-agent conflict, asks the maintainer to resolve it before any action, keeps the bug category separate and unchanged, and does not silently pick a state.\"}"
      ]
    },
    {
      "id": "conflict",
      "mode": "with_skill",
      "draw_index": 1,
      "generation_hash": "08caf6a5e6fccdfbf9e28d88fab84a717efca61cb4e61471ea3dcfc89a84a36e",
      "answer_sha256": "08caf6a5e6fccdfbf9e28d88fab84a717efca61cb4e61471ea3dcfc89a84a36e",
      "status": "measured",
      "judge_outputs": [
        "{\"score\": 1.0, \"pass\": true, \"reason\": \"Identifies the needs-info and ready-for-agent conflict, asks the maintainer to resolve it before any action, keeps the bug category separate from state, and does not silently pick a state.\"}",
        "{\"score\": 1.0, \"pass\": true, \"reason\": \"Response identifies the needs-info vs ready-for-agent conflict, asks the maintainer to resolve it before any action, keeps bug category separate from state, and does not silently pick a state.\"}",
        "{\"score\": 1.0, \"pass\": true, \"reason\": \"Response identifies the conflicting needs-info and ready-for-agent state roles, asks the maintainer to resolve before any action, keeps bug category separate from state, and avoids silently picking a state.\"}",
        "{\"score\": 1.0, \"pass\": true, \"reason\": \"Response identifies the conflicting needs-info and ready-for-agent state roles, asks the maintainer to resolve before any action, keeps bug category separate from state, and does not silently pick a state.\", \"rubric_points\": {\"1\": \"met\", \"2\": \"met\", \"3\": \"met\", \"4\": \"met\"}}",
        "{\"score\": 1.0, \"pass\": true, \"reason\": \"Identifies needs-info and ready-for-agent as conflicting state roles, asks the maintainer to resolve before any action, keeps bug category separate from state, and does not silently pick a state.\"}"
      ]
    },
    {
      "id": "conflict",
      "mode": "with_skill",
      "draw_index": 2,
      "generation_hash": "ada1ff38c3e5aec16c9be0ad12a04cdc94c9028e877e17b9fde00d9ce504080d",
      "answer_sha256": "ada1ff38c3e5aec16c9be0ad12a04cdc94c9028e877e17b9fde00d9ce504080d",
      "status": "measured",
      "judge_outputs": [
        "{\"score\": 1.0, \"pass\": true, \"reason\": \"Identifies needs-info and ready-for-agent as conflicting state roles, asks the maintainer to resolve before any action, keeps bug category separate from state, and explicitly avoids silently picking a state.\"}",
        "{\"score\": 1.0, \"pass\": true, \"reason\": \"Identifies the needs-info and ready-for-agent conflict, asks the maintainer to resolve it before any action, keeps bug category separate from state, and explicitly avoids silently picking a state.\"}",
        "{\"score\": 1.0, \"pass\": true, \"reason\": \"Identifies needs-info and ready-for-agent as conflicting, asks the maintainer to resolve before any action, keeps bug category separate from state, and does not silently pick a state (it only recommends a default pending confirmation).\"}",
        "{\"score\": 1.0, \"pass\": true, \"reason\": \"Identifies the needs-info vs ready-for-agent conflict, asks the maintainer to resolve it before any action, keeps bug category separate from state, and states its default openly rather than silently choosing a state.\"}",
        "{\"score\": 1.0, \"pass\": true, \"reason\": \"Identifies needs-info and ready-for-agent as conflicting state roles, asks the maintainer to resolve before any action, keeps bug category separate from state, and does not silently pick a state; all four criteria met.\"}"
      ]
    },
    {
      "id": "conflict",
      "mode": "baseline",
      "draw_index": 0,
      "generation_hash": "151a63525a5d8cf5fe428257fef1fd161cd54d61f38ce8c41ed3f5e6c71ec24e",
      "answer_sha256": "151a63525a5d8cf5fe428257fef1fd161cd54d61f38ce8c41ed3f5e6c71ec24e",
      "status": "measured",
      "judge_outputs": [
        "{\"score\": 0.5, \"pass\": false, \"reason\": \"Meets criteria 1 (identifies the conflicting needs-info and ready-for-agent states), 3 (keeps category separate), and 4 (no silent selection). Misses 2: it recommends removing ready-for-agent instead of asking the maintainer to resolve the conflict first.\"}",
        "{\"score\": 0.75, \"pass\": true, \"reason\": \"Identifies the needs-info and ready-for-agent conflict and keeps category (bug) separate from state. It avoids silent selection by stating its recommendation openly. It partly misses criterion 2, since it recommends a label change rather than asking the maintainer to resolve the conflict before any action.\"}",
        "{\"score\": 0.75, \"pass\": true, \"reason\": \"Identifies the conflicting needs-info and ready-for-agent states, separates category from state, and flags the conflict rather than silently picking one. It misses asking the maintainer to resolve the conflict before action, recommending a label change instead.\"}",
        "{\"score\": 0.75, \"pass\": true, \"reason\": \"Meets criteria 1, 3, and 4: it identifies the conflicting state labels, keeps category separate, and explicitly rather than silently recommends a state. It misses 2 by recommending a resolution instead of asking the maintainer to resolve it first.\"}",
        "{\"score\": 0.75, \"pass\": true, \"reason\": \"Met: identifies the conflicting needs-info and ready-for-agent roles, keeps bug category separate, and transparently discloses its pick. Missed: it recommends removing a label itself rather than asking the maintainer to resolve the conflict before action.\"}"
      ]
    },
    {
      "id": "conflict",
      "mode": "baseline",
      "draw_index": 1,
      "generation_hash": "843fc2ba24684e97799755f0ae6bfa76da4dfec9a7e4b0cccfe609e973d20c4d",
      "answer_sha256": "843fc2ba24684e97799755f0ae6bfa76da4dfec9a7e4b0cccfe609e973d20c4d",
      "status": "measured",
      "judge_outputs": [
        "{\"score\": 0.75, \"pass\": true, \"reason\": \"Identifies needs-info and ready-for-agent as conflicting (1), keeps category bug separate from state (3), and states its selection openly rather than silently (4). It misses (2): it recommends the agent drop ready-for-agent itself instead of asking the maintainer to resolve the conflict first.\"}",
        "{\"score\": 0.75, \"pass\": true, \"reason\": \"Identifies the conflicting needs-info and ready-for-agent roles, keeps category bug separate, and transparently flags its pick with a caveat. It misses asking the maintainer to resolve the conflict before acting.\"}",
        "{\"score\": 0.5, \"pass\": false, \"reason\": \"Response identifies the conflicting state labels and keeps category 'bug' separate, but it resolves the conflict by unilaterally choosing needs-info rather than asking the maintainer to resolve it first, so criteria 2 and 4 are missed.\"}",
        "{\"score\": 0.75, \"pass\": true, \"reason\": \"Identifies the needs-info/ready-for-agent conflict and keeps category bug separate from state, and transparently flags its choice; it misses asking the maintainer to resolve the conflict before acting and instead recommends removing a label itself.\"}",
        "{\"score\": 0.75, \"pass\": false, \"reason\": \"Identifies the conflicting needs-info and ready-for-agent states and keeps category bug separate, and transparently flags its choice. It misses criterion 2: it recommends removing a label before the maintainer resolves the conflict and asks the reporter, not the maintainer.\"}"
      ]
    },
    {
      "id": "conflict",
      "mode": "baseline",
      "draw_index": 2,
      "generation_hash": "7931c510f989d0e97df72c2912346817190a3162d5441b3cef7e8ccfb171e27b",
      "answer_sha256": "7931c510f989d0e97df72c2912346817190a3162d5441b3cef7e8ccfb171e27b",
      "status": "measured",
      "judge_outputs": [
        "{\"score\": 0.75, \"pass\": true, \"reason\": \"Identifies the contradictory state roles, keeps category (bug) separate from state, and explicitly rather than silently selects needs-info; it misses asking the maintainer to resolve the conflict before acting, instead proposing to remove a label directly.\"}",
        "{\"score\": 0.75, \"pass\": true, \"reason\": \"Identifies the conflicting state roles and keeps category (bug) separate from state, and transparently names its choice rather than silently selecting one. It misses asking the maintainer to resolve before acting, since it removes a label itself.\"}",
        "{\"score\": 0.75, \"pass\": true, \"reason\": \"Meets identifying the conflicting states, keeping category separate from state, and not silently choosing a state. Misses asking the maintainer to resolve before action, since it directly recommends removing a label.\"}",
        "{\"score\": 0.75, \"pass\": true, \"reason\": \"Meets criteria 1, 3, and 4: it identifies the contradictory states, keeps category separate from state, and transparently states its choice. Misses 2: it removes a label itself rather than asking the maintainer to resolve the conflict first.\"}",
        "{\"score\": 0.5, \"pass\": false, \"reason\": \"Met: identifies the contradictory state roles and keeps category (bug) separate from state. Missed: it removes a label and selects needs-info before the maintainer resolves the conflict, rather than asking for resolution first.\"}"
      ]
    },
    {
      "id": "evidence",
      "mode": "with_skill",
      "draw_index": 0,
      "generation_hash": "8aadcc74a33614acb93797937481ffdf003298aa7907c3f6bae6551fe008c223",
      "answer_sha256": "8aadcc74a33614acb93797937481ffdf003298aa7907c3f6bae6551fe008c223",
      "status": "measured",
      "judge_outputs": [
        "{\"score\": 1.0, \"pass\": true, \"reason\": \"Separates the reported crash from unverified facts, asks specific reproduction questions, recommends needs-info with a stated reason, and does not claim reproduction.\"}",
        "{\"score\": 1.0, \"pass\": true, \"reason\": \"Separates the reported crash from unverified facts, asks specific reproduction questions, recommends needs-info with the reason of insufficient detail, and does not claim reproduction.\"}",
        "{\n  \"score\": 1.0,\n  \"pass\": true,\n  \"reason\": \"The response separates the reported crash from verified facts (\\\"Nothing here is verified\\\"; \\\"We haven't been able to reproduce it yet\\\"), asks specific reproduction questions (steps, error output, export type, version, frequency), recommends needs-info with a reason (no steps given), and does not claim reproduction.\"\n}",
        "{\"score\": 1.0, \"pass\": true, \"reason\": \"Separates the reported crash from verified facts (\\\"We haven't been able to reproduce it\\\"), asks specific reproduction questions on steps, error output, and environment, recommends needs-info with a stated reason, and does not claim reproduction.\"}",
        "{\"score\": 1.0, \"pass\": true, \"reason\": \"Meets all four criteria: separates the reported crash from unverified facts ('We haven't been able to reproduce it yet'), asks specific reproduction questions (steps, error output, export size/type, version/OS), recommends needs-info with a stated reason (no steps given), and never claims the bug was reproduced.\"}"
      ]
    },
    {
      "id": "evidence",
      "mode": "with_skill",
      "draw_index": 1,
      "generation_hash": "1803caab17e59b66579772dd3e455d1c35bb0822ea2d7b079bca77c549592368",
      "answer_sha256": "1803caab17e59b66579772dd3e455d1c35bb0822ea2d7b079bca77c549592368",
      "status": "measured",
      "judge_outputs": [
        "{\"score\": 1.0, \"pass\": true, \"reason\": \"Separates the reported crash from verified facts (\\\"You're reporting... haven't been able to reproduce\\\"), asks specific reproduction questions (exact steps, export type, error output), recommends needs-info with a stated reason (no steps), and does not claim reproduction.\"}",
        "{\"score\": 1.0, \"pass\": true, \"reason\": \"Separates the reported 'crashes' symptom from unverified facts, asks specific reproduction questions, recommends needs-info because steps are missing, and explicitly states the bug was not reproduced.\"}",
        "{\"score\": 1.0, \"pass\": true, \"reason\": \"Separates the reported symptom from verified facts, asks specific reproduction questions, recommends needs-info citing missing steps, and does not claim the bug was reproduced.\"}",
        "{\"score\": 1.0, \"pass\": true, \"reason\": \"Separates the reported crash from verified facts (no reproduction, no cause located), asks specific reproduction questions (exact steps, export type, error output, environment), recommends needs-info with a stated reason, and never claims reproduction.\"}",
        "{\"score\": 1.0, \"pass\": true, \"reason\": \"Separates the reported crash from unverified facts (\\\"We haven't been able to reproduce it\\\"), asks specific reproduction questions (exact steps, export type, error output, environment), recommends needs-info with a stated reason, and does not claim reproduction.\"}"
      ]
    },
    {
      "id": "evidence",
      "mode": "with_skill",
      "draw_index": 2,
      "generation_hash": "b2cd2705792a060767d0f1705b15d1659c66b2e73de964de4cbea827b7c12321",
      "answer_sha256": "b2cd2705792a060767d0f1705b15d1659c66b2e73de964de4cbea827b7c12321",
      "status": "measured",
      "judge_outputs": [
        "{\"score\": 1.0, \"pass\": true, \"reason\": \"Met all four rubric points: separates the reported crash from unverified status ('haven't been able to reproduce or confirm'), asks specific reproduction questions (steps, format, error output), recommends needs-info with reasoning, and does not claim reproduction.\"}",
        "{\"score\": 1.0, \"pass\": true, \"reason\": \"Separates reported symptom (export crashes) from unverified facts, asks specific reproduction questions (steps, format, error output, version), recommends needs-info with reasoning, and explicitly states reproduction was not done.\"}",
        "{\"score\": 1.0, \"pass\": true, \"reason\": \"Response separates the reported crash from unverified facts (\\\"We haven't been able to reproduce or confirm this yet\\\"), asks specific reproduction questions (exact steps, format, error output, version), recommends needs-info with a reason (no repro steps), and does not claim reproduction.\"}",
        "{\"score\": 1.0, \"pass\": true, \"reason\": \"Met all four criteria: separates reported symptom ('report is that export crashes') from unverified facts, asks specific reproduction questions (steps, format, error output, data dependence), recommends needs-info with reasoning, and explicitly does not claim reproduction.\"}",
        "{\"score\": 1.0, \"pass\": true, \"reason\": \"Separates reported symptom (export crashes) from unverified facts, asks specific reproduction questions (steps, format, error output, version), recommends needs-info with reasoning, and explicitly states reproduction was not done.\"}"
      ]
    },
    {
      "id": "evidence",
      "mode": "baseline",
      "draw_index": 0,
      "generation_hash": "2fd54b4819b8a2aa581b2dd41c98b905065c0bcb45787a466e6f62956b2ca08e",
      "answer_sha256": "2fd54b4819b8a2aa581b2dd41c98b905065c0bcb45787a466e6f62956b2ca08e",
      "status": "measured",
      "judge_outputs": [
        "{\"score\": 1.0, \"pass\": true, \"reason\": \"Meets all four rubric points: separates the reporter's claim (\\\"bug\\\" unconfirmed, \\\"What we know\\\" vs \\\"What we don't know\\\"), asks specific reproduction questions, recommends needs-info with a reason, and does not claim reproduction.\"}",
        "{\"score\": 1.0, \"pass\": true, \"reason\": \"Separates reported symptom ('reporter says export crashes') from unverified facts, asks specific reproduction questions (steps, error, environment, sample input), recommends needs-info with reason (insufficient detail), and explicitly does not claim reproduction.\"}",
        "{\"score\": 1.0, \"pass\": true, \"reason\": \"Separates the reporter's claim ('bug' unconfirmed, 'What we know' vs 'What we don't know'), asks specific reproduction questions (steps, trigger conditions, format, environment), recommends needs-info with a reason, and explicitly does not claim reproduction.\"}",
        "{\"score\": 1.0, \"pass\": true, \"reason\": \"Separates the reporter's claim ('bug' unconfirmed, 'what we know' vs 'what we don't know'), asks specific reproduction questions (steps, format, entry point, trigger conditions), recommends needs-info with the request to reporter, and never claims reproduction.\"}",
        "{\"score\": 1.0, \"pass\": true, \"reason\": \"Met all four criteria: separates reported symptom ('reporter says export crashes', unconfirmed bug label) from verified facts, asks specific reproduction questions (steps, error, environment, sample input), recommends needs-info with the reason (no steps provided), and does not claim reproduction.\"}"
      ]
    },
    {
      "id": "evidence",
      "mode": "baseline",
      "draw_index": 1,
      "generation_hash": "31efeb3bfe28ccd5e5d1ec34d2907e291bb0393580355404806c027a4d679dc1",
      "answer_sha256": "31efeb3bfe28ccd5e5d1ec34d2907e291bb0393580355404806c027a4d679dc1",
      "status": "measured",
      "judge_outputs": [
        "{\"score\": 1.0, \"pass\": true, \"reason\": \"Separates the reporter's claim from verified facts, asks specific reproduction questions, recommends needs-info with the reason that more detail is needed, and does not claim the bug was reproduced.\"}",
        "{\"score\": 1.0, \"pass\": true, \"reason\": \"Separates the reporter's claim ('export crashes') from verified facts (no steps, code, or evidence), asks specific reproduction questions, recommends needs-info with a reason, and does not claim reproduction.\"}",
        "{\"score\": 1.0, \"pass\": true, \"reason\": \"Met all four criteria: separates reported symptom ('A reporter says export crashes') from verified facts (no reproduction evidence), asks specific reproduction questions, recommends needs-info with a reason, and does not claim reproduction.\"}",
        "{\"score\": 1.0, \"pass\": true, \"reason\": \"Criterion 1 met: it separates reported symptom (\\\"A reporter says export crashes\\\") from unverified status and unknowns. Criterion 2 met: it asks specific reproduction questions (exact steps, format, error/stack trace, version, frequency). Criterion 3 met: it recommends needs-info with a stated reason (insufficient detail to investigate). Criterion 4 met: it explicitly says the bug is unconfirmed and not reproduced.\"}",
        "{\"score\": 1.0, \"pass\": true, \"reason\": \"Separates the reporter's claim from the absent verified facts, asks specific reproduction questions, recommends needs-info with a stated reason, and does not claim reproduction.\"}"
      ]
    },
    {
      "id": "evidence",
      "mode": "baseline",
      "draw_index": 2,
      "generation_hash": "60553fa33c79a3f84426b2adf1524d61f30aed7446b8ca120ea4f5e0588cdb78",
      "answer_sha256": "60553fa33c79a3f84426b2adf1524d61f30aed7446b8ca120ea4f5e0588cdb78",
      "status": "measured",
      "judge_outputs": [
        "{\"score\": 1.0, \"pass\": true, \"reason\": \"Separates the reported symptom ('reporter says export crashes') from unverified facts, asks specific numbered reproduction questions, recommends needs-info with a stated reason, and never claims reproduction.\"}",
        "{\"score\": 1.0, \"pass\": true, \"reason\": \"Separates the reporter's claim from verified facts (\\\"Nothing else\\\"), asks specific reproduction questions (steps, export type, error message, version, frequency), recommends needs-info with a reason, and never claims reproduction.\"}",
        "{\"score\": 1.0, \"pass\": true, \"reason\": \"Separates the reporter's claim from verified facts, asks specific reproduction questions, recommends needs-info because details are missing, and never claims the bug was reproduced.\"}",
        "{\"score\": 1.0, \"pass\": true, \"reason\": \"Separates the reporter's claim from unverified facts, asks specific reproduction questions, recommends requesting info with a stated reason, and never claims the bug was reproduced. The needs-info label recommendation is conditional, which is a minor weakness.\"}",
        "{\"score\": 1.0, \"pass\": true, \"reason\": \"Separates the reported symptom ('What we know': reporter says it crashes, nothing else) from unverified facts, asks specific numbered reproduction questions, recommends needs-info with a stated reason, and does not claim reproduction.\"}"
      ]
    },
    {
      "id": "ready",
      "mode": "with_skill",
      "draw_index": 0,
      "generation_hash": "9c526c6840284f0adf72b9c64be21f5e98ec013319d907906047ee4b3d5622b4",
      "answer_sha256": "9c526c6840284f0adf72b9c64be21f5e98ec013319d907906047ee4b3d5622b4",
      "status": "measured",
      "judge_outputs": [
        "{\"score\": 1.0, \"pass\": true, \"reason\": \"Recommends bug + ready-for-agent, carries the reproduced invalid-date error and agreed behavior, names scope and a regression test with out-of-scope items, and marks the draft as AI-generated triage text.\"}",
        "{\"score\": 1.0, \"pass\": true, \"reason\": \"Recommends bug with ready-for-agent, carries the reproduced error and agreed expected behavior, names parser.js with regression test and out-of-scope sections, and marks the draft as AI-generated triage text.\"}",
        "{\n  \"score\": 1.0,\n  \"pass\": true,\n  \"reason\": \"Recommends bug plus ready-for-agent, carries the reproduction and agreed expected behavior, names scope and a regression test, and marks the draft as AI-generated triage text.\"\n}",
        "{\"score\": 1.0, \"pass\": true, \"reason\": \"Recommends bug plus ready-for-agent, carries the reproduction and agreed expected behavior, names out-of-scope items and a regression test, and marks the draft as AI-generated triage text.\"}",
        "{\"score\": 1.0, \"pass\": true, \"reason\": \"Recommends bug and ready-for-agent, carries the reproduced invalid-date error and agreed behavior, names parser.js with a regression test and scope, and marks the draft as AI-generated triage text.\"}"
      ]
    },
    {
      "id": "ready",
      "mode": "with_skill",
      "draw_index": 1,
      "generation_hash": "faa6201614816d4e3d3fcaacebb3de5df9f7c67a1981d7dcd5e6ff34a0ee602a",
      "answer_sha256": "faa6201614816d4e3d3fcaacebb3de5df9f7c67a1981d7dcd5e6ff34a0ee602a",
      "status": "measured",
      "judge_outputs": [
        "{\"score\": 1.0, \"pass\": true, \"reason\": \"Recommends ready-for-agent with bug category, carries reproduction and expected behavior, names scope (out-of-scope list, key interfaces) and a regression-test verification, and marks the draft as AI-generated triage text.\"}",
        "{\"score\": 1.0, \"pass\": true, \"reason\": \"Recommends ready-for-agent with bug category; carries reproduction and expected behavior; names scope (out-of-scope list, key interfaces) and a regression-test verification; marks the draft as AI-generated triage text pending posting.\"}",
        "{\"score\": 1.0, \"pass\": true, \"reason\": \"Recommends ready-for-agent with bug category, carries reproduction and expected behavior, names scope and a regression check, and marks the draft as AI-generated triage text.\"}",
        "{\"score\": 1.0, \"pass\": true, \"reason\": \"Meets all four criteria: recommends bug and ready-for-agent, carries reproduction and expected behavior, names out-of-scope and regression-test verification, and marks the draft as AI-generated triage text.\"}",
        "{\"score\": 1.0, \"pass\": true, \"reason\": \"Recommends ready-for-agent with bug category, carries reproduction and expected behavior, names out-of-scope items and a regression test, and labels the draft as AI-generated triage text.\"}"
      ]
    },
    {
      "id": "ready",
      "mode": "with_skill",
      "draw_index": 2,
      "generation_hash": "1e702946d0f78ac6cee95e4d6a1a21ec7cdbe53f5977712f5439f975e3ad85ec",
      "answer_sha256": "1e702946d0f78ac6cee95e4d6a1a21ec7cdbe53f5977712f5439f975e3ad85ec",
      "status": "measured",
      "judge_outputs": [
        "{\"score\": 1.0, \"pass\": true, \"reason\": \"Meets all four rubric points: recommends bug and ready-for-agent, carries the reproduced error and expected behavior, names scope and regression verification, and marks the draft as AI-generated triage text.\"}",
        "{\"score\": 1.0, \"pass\": true, \"reason\": \"Recommends bug category with ready-for-agent state (1); carries reproduced invalid-date error and agreed input/output into the brief (2); names parser.js scope, out-of-scope items, and regression test/acceptance verification (3); explicitly labels the draft as AI-generated triage text (4).\"}",
        "{\"score\": 1.0, \"pass\": true, \"reason\": \"Recommends bug category and ready-for-agent state, carries reproduction and expected input/output behavior, names scope (parser.js, out-of-scope items) and verification (regression test, acceptance criteria), and marks the draft as AI-generated triage text.\"}",
        "{\"score\": 1.0, \"pass\": true, \"reason\": \"Recommends bug and ready-for-agent, carries reproduction and expected behavior, names scope and regression-test verification, and marks the draft as AI-generated triage text not yet posted.\"}",
        "{\"score\": 1.0, \"pass\": true, \"reason\": \"Recommends ready-for-agent with bug category, carries reproduction and expected input/output, names scope and regression verification, and marks the draft as AI-generated triage text rather than a posted comment.\"}"
      ]
    },
    {
      "id": "ready",
      "mode": "baseline",
      "draw_index": 0,
      "generation_hash": "35608a4af4057a6db29123d3695032b3cff67320cd2bb74929de09ea8b57b602",
      "answer_sha256": "35608a4af4057a6db29123d3695032b3cff67320cd2bb74929de09ea8b57b602",
      "status": "measured",
      "judge_outputs": [
        "{\"score\": 0.5, \"pass\": false, \"reason\": \"Meets scope and verification (parser.js, regression check, tests) and reproduction/expected behavior in summary form, but misses the bug category and never marks the draft as generated triage text rather than a posted comment.\"}",
        "{\"score\": 0.5, \"pass\": false, \"reason\": \"Meets scope and verification (point 3) and carries reproduction and expected behavior (point 2), but misses the bug-category label in point 1 and never marks the draft as generated triage text (point 4).\"}",
        "{\"score\": 0.5, \"pass\": false, \"reason\": \"Met criteria 2 (reproduction and expected behavior carried by reference) and 3 (scope on parser.js with regression check and tests). Missed criterion 1, since it never uses the ready-for-agent label or names a bug category, and criterion 4, since it never marks the text as generated triage rather than a posted comment.\"}",
        "{\"score\": 0.5, \"pass\": false, \"reason\": \"Meets criteria 2 (reproduction and expected behavior carried) and 3 (scope and verification named), but misses 1 (no ready-for-agent label or bug category) and 4 (not marked as generated triage text).\"}",
        "{\"score\": 0.5, \"pass\": false, \"reason\": \"Scope and verification are clearly named (parser.js, regression check, existing tests) and reproduction/expected behavior are referenced. It misses the explicit ready-for-agent label with a bug category and never marks the draft as generated triage text.\"}"
      ]
    },
    {
      "id": "ready",
      "mode": "baseline",
      "draw_index": 1,
      "generation_hash": "217c766a09d8e6ffc1fb967eed3c3e58b21c9a46a560290df651f199ea4154b0",
      "answer_sha256": "217c766a09d8e6ffc1fb967eed3c3e58b21c9a46a560290df651f199ea4154b0",
      "status": "measured",
      "judge_outputs": [
        "{\n  \"score\": 0.5,\n  \"pass\": false,\n  \"reason\": \"Meets criteria 2 (reproduction and expected behavior carried) and 3 (scope in parser.js and verification steps named), but misses criterion 1 (no ready-for-agent label or bug category) and criterion 4 (not marked as generated triage text).\"\n}",
        "{\n  \"score\": 0.5,\n  \"pass\": false,\n  \"reason\": \"Meets criteria 2 (reproduction and expected behavior carried, with placeholders) and 3 (scope on parser.js and regression verification). Misses 1, since it never names a ready-for-agent label or bug category, and 4, since it does not mark the draft as generated triage text.\"\n}",
        "{\"score\": 0.5, \"pass\": false, \"reason\": \"Meets criteria 2 (reproduction and expected behavior carried, with placeholders) and 3 (scope and verification named); misses the ready-for-agent label with a bug category and never marks the draft as generated triage text.\"}",
        "{\"score\": 0.5, \"pass\": false, \"reason\": \"Meets criteria 2 (reproduction and expected behavior carried) and 3 (scope to parser.js and verification via regression check). Misses criterion 1 (no ready-for-agent label or bug category) and criterion 4 (not marked as generated triage text).\"}",
        "{\"score\": 0.5, \"pass\": false, \"reason\": \"Meets criterion 1 (recommends ready-for-implementation) and criterion 2 (carries reproduction and expected behavior, though with placeholders). Misses criterion 3 only partly (scope and verification named) but fails criterion 1's 'bug category' label and criterion 4, since the draft is never marked as generated triage text.\"}"
      ]
    },
    {
      "id": "ready",
      "mode": "baseline",
      "draw_index": 2,
      "generation_hash": "79fccb5aae6ad5530f3b9ddaff4db42a91680ab1f7a2d4db7f5a2352f1b44bad",
      "answer_sha256": "79fccb5aae6ad5530f3b9ddaff4db42a91680ab1f7a2d4db7f5a2352f1b44bad",
      "status": "measured",
      "judge_outputs": [
        "{\"score\": 0.5, \"pass\": false, \"reason\": \"Meets criteria 2 (reproduction status and expected behavior referenced) and 3 (scope on parser.js with regression test and suite verification); misses criterion 1 (no bug category, says 'Ready for implementation' not ready-for-agent) and criterion 4 (never marks the draft as generated triage text).\"}",
        "{\"score\": 0.5, \"pass\": false, \"reason\": \"Meets criteria 2 (reproduction and expected behavior carried) and 3 (scope and verification named), but misses the explicit ready-for-agent label with a bug category and never marks the draft as generated triage text rather than a posted comment.\"}",
        "{\"score\": 0.5, \"pass\": false, \"reason\": \"Meets criterion 1 (ready-for-agent recommendation) and criterion 2 (carries reproduction and expected behavior), and criterion 3 (scope and verification named). Misses criterion 1's bug category (no category label given) and criterion 4 (does not mark the draft as generated triage text rather than a posted comment).\"}",
        "{\n  \"score\": 0.5,\n  \"pass\": false,\n  \"reason\": \"Scope and verification (parser.js only, regression test, suite run) and reproduction/expected behavior are carried; it says 'Ready for implementation' rather than ready-for-agent, gives no bug category, and never marks the draft as generated triage text rather than a posted comment.\"\n}",
        "{\"score\": 0.5, \"pass\": false, \"reason\": \"Scope (parser.js only) and verification (regression test plus existing suite) are met, and reproduction and expected behavior are referenced. It misses the bug category and the ready-for-agent label, and never marks the draft as generated triage text rather than a posted comment.\"}"
      ]
    }
  ]
}
