Skip to content

Fix rules that never fired, drop mention rules, add Jules - #2

Merged
ejntaylor merged 1 commit into
mainfrom
prod-evidence-rule-fixes
Sep 27, 2026
Merged

ejntaylor merged 1 commit into
mainfrom
prod-evidence-rule-fixes

Conversation

@ejntaylor

Copy link
Copy Markdown
Contributor

Evidence

Old vs new rules run through Coderbuds' production matcher over 5,169 pull requests (180 days, demo repos excluded; description/title/branch rules only):

Change PRs
none → Jules +172
none → Claude Code +9
none → Cursor +4
none → OpenAI Codex +4 (2 via the task link, 2 via title/branch)
OpenAI Codex → none, Dependabot bumps of @openai/codex −9
OpenAI Codex → none, other −4 (.codex/config.toml, "docs: add Codex MCP setup", two stacked PRs whose base was a codex/ branch)

Rule changes

  • Jules (new) — "PR created automatically by Jules for task", jules.google.com/task/ link, jules-<id> branches. 172 PRs in one tracked repo, none attributed before.
  • Codex — removed bare codex/ / codex- mentions in title/description (they matched dependency bumps and config paths, never an agent's own PR). Added [Codex Task](https://chatgpt.com/codex/cloud/tasks/…) link and [codex] title prefix. Kept branch patterns and label.
  • Claude Code — ^claude/ branches (Claude Code web/desktop worktrees); Co-Authored-By matched case-insensitively (git writes Co-authored-by).
  • Cursor — ^cursor/ background-agent branches.
  • Aider / WindSurf — branch patterns were regexes without regex: true, so compared as literal ^aider[-/] and never matched. Aider's aider: prefix is anchored to a commit-message line start (it matched "raider:"); dropped the bare "aider" / "WindSurf" / "Replit AI" mention rules.
  • Replit — bot_authors used pattern/location and labels used pattern, none of which the matcher reads. Now username / email / name.
  • v0.dev — dropped a text pattern that was a regex without regex: true (dead; the footer rule already covers it).

Guard rails

  • scripts/validate_rules.py + .github/workflows/validate.yml: rejects keys the matcher never reads, regex-looking patterns without regex: true, invalid regexes and # (the production delimiter). Run against main it reports every bug above.
  • fixtures/cases.yml: 17 real PR shapes with the tool each must — or must not — be attributed to. All pass under both the Python reference matcher and Coderbuds' PHP CheckYamlRulesAction.

README

Dropped the 98–100% accuracy badge and per-tool accuracy column — on our own data Codex CLI recall was 0/10, because it signs nothing. Added: no marker ≠ human-written. Fixed the contributing schema example, which taught the unread bot_authors keys. Brand spelled Coderbuds.

Not in this package

The app still scores any match as "Definitive 100" regardless of a marker's confidence; that's CheckYamlRulesAction in the Coderbuds app, not these rules.

🤖 Generated with Claude Code

Measured against 5,169 pull requests in Coderbuds' production data:
+172 Jules, +9 Claude Code, +4 Cursor and +4 Codex attributions, and 13
false Codex attributions removed (9 of them Dependabot bumps of
@openai/codex).

- Jules (new): signature, task link, jules-<id> branches.
- Codex: drop bare "codex/" / "codex-" title and description mentions,
  which matched dependency bumps and `.codex/` paths; add the Codex
  cloud task link and the "[codex]" title prefix.
- Claude Code: `claude/` branches; co-author trailers matched without
  regard to case, since git trailers are case-insensitive.
- Cursor: `cursor/` background-agent branches.
- Aider, WindSurf, Replit: fix rules that could never match (regex
  without `regex: true`, keys the matcher never reads) and drop rules
  that fired on a tool's name rather than its signature.
- scripts/validate_rules.py + fixtures/cases.yml, run in CI: rejects
  unread keys and unflagged regexes, and checks real PR shapes against
  the tool they must or must not be attributed to.
- README: drop accuracy figures the data does not support, say plainly
  that no marker does not mean a person wrote it, fix the schema example
  that taught the unread keys.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
@ejntaylor
ejntaylor merged commit 9bc9f84 into main Sep 27, 2026
1 check passed
@ejntaylor
ejntaylor deleted the prod-evidence-rule-fixes branch September 27, 2026 06:06
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant