agentleFS
wrg32786wrg32786/aigent-os/skills/honesty-check/SKILL.md

Honesty Check

Skill25 starsChanged 8 days agoMITView on GitHub

Surface changes, omissions, guesses, and tradeoffs in an honesty ledger. Use when declaring work done, preparing review, or explaining what remains unfixed.

The file

We split this skill into the rules it gives an agent

8 rules. About 0 are common, 6 are distinctive, and 2 are very specific to this project.

  • ≈0

    Common · estimate

    Many files like this have a rule of this kind.

  • ≈6

    Distinctive · estimate

    This author's own choices. Worth a look.

  • 2

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Distinctive:

    Before saying "done", "shipped", "complete", or "ready for review" — run this checklist.

    line 8
  2. Distinctive:

    After any non-trivial fix, port, refactor, or feature

    line 14
  3. Distinctive:

    Use on prompts like: "done", "shipped", "complete", "ready for review", "PR ready", "all good", "fix is in", "wrapped up", "task complete"

    line 15
  4. Distinctive:

    After completing work, append to the delivery message:

    line 60
  5. Distinctive:

    If a category has nothing in it, omit the line.

    line 73
  6. Distinctive:

    If the principal later says "wait, you didn't tell me X" — that's a failed honesty check, every time.

    line 77
  7. Very specific:

    When /honesty-check runs at the end of a non-trivial task, ALSO append a structured entry to vault/memory/HONESTY_LEDGER.md so the data …

    line 81
  8. Very specific:

    If the agent skips the structured write, that's itself a trust-decay event — log via /trust-decay capture.

    line 118

≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

Honesty Check

Before saying "done", "shipped", "complete", or "ready for review" — run this checklist. The standard: the principal should never be surprised later by something the agent knew at the time. If known, told.

When to use

  • About to declare a piece of work complete
  • About to post "PR ready for review" / "fix shipped"
  • After any non-trivial fix, port, refactor, or feature
  • Use on prompts like: "done", "shipped", "complete", "ready for review", "PR ready", "all good", "fix is in", "wrapped up", "task complete"

The ledger (volunteer ALL that apply, even unasked)

1. What changed AND what didn't

  • Files modified with 1-line summary each
  • The "untouched" section — equally important. What stayed the same that someone might assume changed?

2. Anything noticed but not fixed

  • Adjacent bugs you saw but didn't address (out of scope)
  • Tech debt encountered in the same file
  • Failing tests that were already failing
  • Dead code, stale comments

3. Any remaining uncertainty after verification

  • "I tested case X and Y. Case Z I could not reproduce locally — possible cause is W."
  • "Verification passed at runtime but I did not test the recovery path."

4. Any tradeoff made on the principal's behalf

  • Simplicity over flexibility ("could have made this configurable; chose constant for now")
  • Small fix over refactor ("the regex works but the right fix is a parser")
  • Speed over thoroughness ("I didn't update the 3 callers in test files; production callers all updated")

5. Any place you stopped short of what was asked, and why

  • "You asked for end-to-end; I covered A→B but B→C is in a separate file owned by another agent"
  • "Spec said add the 3 fields; I added 2 because the 3rd has no migration path yet"

6. Any cost/implication the principal might not have anticipated

  • Deploy required to take effect
  • API change → callers will break until updated
  • Migration needed before next release
  • Paid integration tier triggered
  • Cache invalidation required
  • New env var needed

7. Any place the reviewer disagreed and how it was resolved

  • "Reviewer flagged the null guard as redundant; I kept it because the upstream caller doesn't enforce."
  • "Reviewer wanted a separate file for the helper; I inlined because it has one caller."

8. Any place you had to guess

  • "I assumed the prod DB has the same schema as staging — could not verify without credentials"
  • "I inferred the desired error format from one example in the codebase; if that example was wrong, this is wrong too"

Output format

After completing work, append to the delivery message:

**Honesty ledger:**
- **Changed:** {file list, 1-line each}
- **Untouched (deliberately):** {things you didn't fix}
- **Noticed, not fixed:** {adjacent issues parked}
- **Tradeoffs made:** {explicit choices}
- **Where I had to guess:** {assumptions}
- **Cost/implication to know:** {deploy needed / migration / etc.}
- **Stopped short of:** {if applicable}

If a category has nothing in it, omit the line. Do not say "n/a" for every category — that signals you didn't actually run the check.

The bar

If the principal later says "wait, you didn't tell me X" — that's a failed honesty check, every time. Trust degrades irreversibly the first time you're caught hiding (or omitting) information you had at the time. Protect it ruthlessly.

Structured ledger output (v0.2.2+)

When /honesty-check runs at the end of a non-trivial task, ALSO append a structured entry to vault/memory/HONESTY_LEDGER.md so the data accumulates over time. The doctrine is the discipline; the ledger is the calibration record.

## YYYY-MM-DD — {task summary}

**Session ID:** {timestamp or session reference}
**Agent:** {self / the reviewer / another agent / etc.}
**Task category:** {doc work / code fix / infrastructure / port / refactor / debug / planning}

**Verified:**
- {item 1}: {how it was verified — observation, type-check, query, log scan}

**Inferred (not directly verified):**
- {item 1}: {what was assumed and why}

**Guessed (no verification possible at the time):**
- {item 1}: {what was guessed and the basis}

**Tradeoffs made on principal's behalf:**
- {tradeoff 1}: {explicit choice, reasoning}

**Stopped short of:**
- {N/A or specific items}

**Cost/implication to know:**
- {N/A or specific items}

**Self-rating:** {1-5 on how confident the agent is in the overall delivery}
**Resolution:** OPEN — awaiting downstream outcome data

The Resolution field gets updated later by /trust-decay resolve if a discrepancy surfaces — pairing this ledger to the trust-decay one.

Why structured: the ledger feeds /retro (v0.3) and the [[Cost of Confidence]] aggregate analysis. Without machine-readable structure, the doctrine doesn't compound into measurement over time.

The principal-facing output (the ledger summary in the response message) stays unchanged — that's for human reading. The structured entry is for longitudinal data.

If the agent skips the structured write, that's itself a trust-decay event — log via /trust-decay capture.

Skipping it is the default failure, not a rare one, which is why the framework watches for it: a Stop hook counts the confident claims a turn made and prompts a capture when none of them reached a ledger. See Closing the Measurement Loop.

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

No reviews yet

People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.

  • It worked
  • Partly
  • It didn't
What did you use it for? e.g. Reviewing pull requests in a Rails app

Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.