Simplify Trueup README for Clarity

Claude Code·Opus 5.5·Jennycruzy·5d ago·5min·1 Checkpoint·2 file changes·+54/-37·5.7K tokens

You are working in the Trueup repository (this folder). Foreground only. Do not commit, push or post. Edit README.md only. Finish within 8 minutes.

Make README.md lead with what makes Trueup strong, and remove every internal word and bit of jargon.

  1. Right under # Trueup Witness, before the CI badge, put: Your dashboard said OK. Your agent crashed. Then one sentence: Trueup Witness checks your AI agent's records against what really happened, warns you inside neatlogs when they disagree, and fixes the tracing code that got it wrong. Then a short "Why it matters" list of 4 bullets, plain and punchy, facts only from the repo:
    • Proven live with real Claude calls: 2 wrong records before Trueup's fixes, 0 after, and 0 false alarms in 40 normal calls.
    • neatlogs' own daily email said 6.2% of our test runs failed; really 11.1% had crashed (test runs we crashed on purpose).
    • The fix we sent Arize was reviewed by their head of open source, and neatlogs runs that same code for agents, so one fix repairs both.
    • Built with all three tools: neatlogs recorded every run and caught our own agent's mistakes, Entire recorded how each fix was made, cfo.ai built the business plan from measured costs. Keep the CI badge after this block.
  2. Keep the "For judges, start here" link list, but plain words: "Fixes sent upstream" -> "Fixes sent to the companies that make these tools"; "the fixer session" -> "the session where Trueup's agent wrote its first fixes"; "checkpoint" may stay (it is Entire's own word) but add nothing else technical.
  3. Quick start code: replace the comment "# one unit of work" with "# one job your agent does"; keep the code exactly working (check src/trueup/witness/core.py). Change the command block to:
    and say above it: "From the project folder:".
  4. How it works: replace "status, errors, stream end" with "did the call fail, did the reply finish". "Trueup's lab" -> "Trueup's test lab".
  5. Search the whole README for: span, upstream, stream, unit of work, payload, instrumentation, lead, scenario, harness, adapter, fixture, root, OTel, deterministic, evidence. Rewrite any you find in plain words (product names TRACE DISAGREE, "AI step", "Agent workflow" in the result table may stay: they are what neatlogs shows). Keep it under about 480 words. Run uv run pytest -q; fix only README wording if a test needs it. Print the word count, the test result, and any word from step 5 still present.
5d ago·4m

I rewrote README.md as you asked and changed no other file. Nothing was committed, pushed or posted.

  • Word count: the reader-facing text is 426 words, under your ~480 limit. A raw wc -w gives 506 because it also counts the code blocks and link addresses. To get there I cut some repeated wording: the second mention of "40 normal calls, 0 false alarms", the repeated "reviewed by Arize's head of open source" in the judges list, and the extra line after the 6.2% email link. I also shortened the "Our mistake with Entire" line to "20 updates went unrecorded; we said so and faked nothing", and merged steps 2 and 3 of "How it works" into one step.
  • Tests: uv run pytest -q gives 447 passed, 19 deselected, 7 warnings. No test checks the README, so I didn't need to change any wording for the tests.
  • Quick start code: I checked it against src/trueup/witness/core.py and it still works as written. watch() and run(name) both exist, and the result has disagreements.

Two words from your step 5 list are still there, and both can't be changed:

  • Line 22, "span": it's inside a link to a real file path (fixes/openinference-run_status-openai-agents-top-level-span-status-ok/PROVENANCE.md). Changing it would break the link.
  • Line 53, "instrumentation": it's the name of a setting in neatlogs' own setup code (instrumentations=["openai"]). Renaming it would break the code.

All the other words on the list are gone, including "upstream", "stream" and "unit of work".

live/server.py was already modified before I started, and I left it as it was.