Skip to content

Releases: prodBirdy/painpoints

painpoints 0.3.0

Choose a tag to compare

@prodBirdy prodBirdy released this 06 Oct 21:18
8dddb65

Minor release: any System One model, and findings that name concrete bad
decisions instead of only scoring how much of a quality a file has.

Models

  • Cloudflare Workers AI is a provider beside TypeSafe: CLOUDFLARE_API_TOKEN
    and CLOUDFLARE_ACCOUNT_ID select Clef, PAINPOINTS_PROVIDER picks when
    both credentials are set, and PAINPOINTS_MODEL overrides the model for
    either. Existing TYPESAFE_* setups behave as before.
  • The Cloudflare {result, success} envelope is unwrapped.
  • On Cloudflare, Clef-flash answers everything and Clef re-answers any
    bad-decision question Clef-flash put at 0.3 or above
    (PAINPOINTS_CONFIRM_MODEL, none to turn it off). Decisions answered
    that way carry confirmed_by.
  • Rule questions are sent as rule.<id> (was rule:<id>): Clef only accepts
    question names made of letters, digits, _, . and -. Answers keyed the
    old way are still read.
  • The model module is systemone, not jev.

Bad decisions

  • Ten existence questions with worked examples: query in a loop, unbounded
    read, swallowed error, unsafe retry, injection, missing ownership check,
    hardcoded secret, raw error shown to a user, speculative abstraction and
    data access or business rules inside UI. A detector at 0.75 or above is a
    bad:<id> finding; files with confirmed decisions or rule violations rank
    first. summary.by_decision counts them.
  • painpoints eval runs fourteen labelled files built into the binary
    through the configured model and prints how well each detector separates
    the planted problem from clean code, next to how many the dimension scores
    catch.

Coverage and noise

  • Long files are read whole, in overlapping windows of up to 8000 characters
    (at most six), instead of only their first 8000 characters. Scores take the
    worst window; decisions and rule verdicts carry the lines of the window
    they were found in.
  • A compiled rule that comes back broken on half or more of at least ten
    files is banded noisy, listed in summary.noisy_rules and the Markdown
    report, and left out of findings and ranking.
  • The Markdown report's file table no longer ends its separator row with an
    extra |.

Rules

  • Recompiling after an instruction file changes keeps hand-edited rules:
    every rule whose instruction text is still in the sources keeps its id,
    scope, phase, question and status, and thresholds are kept. Before, any
    change to AGENTS.md silently replaced the whole file with fresh
    scaffolds.
  • A single-file --json result and painpoints_file include every
    decisions and rule_verdicts entry with its probability, so a rewritten
    rule can be tested on a violating and a compliant file.
  • New painpoints-rules skill: how to bucket, scope, phrase and test rule
    questions for a System One model, from what painpoints eval and a real
    run measured.

painpoints 0.1.0

Choose a tag to compare

@prodBirdy prodBirdy released this 17 Sep 09:14

First release.

painpoints scores every source file in a repository on six architectural pain dimensions and hands AI coding agents a ranked, self-explaining report.

  • Six dimensions with levels written from published guidance: Google eng-practices, Google SRE, web.dev, the Amazon Builders' Library and OWASP. Every finding carries the URL of the standard it was judged against.
  • Three entry points sharing one cache: painpoints <file> --json for one atomic result, painpoints <repo> --json for the whole codebase, painpoints mcp for an MCP server exposing painpoints_file and painpoints_repo.
  • The JSON report is the cache. Unchanged files cost no tokens; a fully cached run needs no API key.
  • Native viewer (GPUI) with per-dimension distribution, heat cells and a panel that explains which level each score landed on.
  • Ships a Claude Code skill under .claude/skills/painpoints.

Needs a TypeSafe API key (TYPESAFE_API_KEY), or TYPESAFE_BASE_URL pointed at a gateway. Windows x64 binary attached; other platforms build with cargo build --release.