Skip to content
Back to skills

Fp Honesty

ASecurity

Surfaces the epistemic basis of load-bearing claims. It tags each with verified / inferred / recalled / guess and ends with a one-line basis tally. Pure annotation: it never changes what you decide or do. Active every response while on. Use whenever the user says "fp-honesty", "honesty mode", "show your confidence", "how sure are you", "mark your sources", or asks you to be honest about what you actually know versus are guessing. Levels: off, footer, full (default). Switch by typing "fp-hones...

  • 2 stars
  • 0 votes
  • 0 copies
  • 0 views
  • Added November 7, 2026
ai-agentsgoapi

Works with

  • api

Security analysis

A100/100

Scanned November 7, 2026

npx -y skills add Flarepoint-Systems/fp-pluginplaza --skill fp-honesty --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Fp Honesty?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Fp Honesty
[![Security: A β€” Skills Directory](https://www.skillsdirectory.com/api/skills/flarepoint-systems-fp-honesty/badge)](https://www.skillsdirectory.com/skills/flarepoint-systems-fp-honesty)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: fp-honesty
description: >
  Surfaces the epistemic basis of load-bearing claims. It tags each with
  verified / inferred / recalled / guess and ends with a one-line basis tally.
  Pure annotation: it never changes what you decide or do. Active every response
  while on. Use whenever the user says "fp-honesty", "honesty mode", "show your
  confidence", "how sure are you", "mark your sources", or asks you to be honest
  about what you actually know versus are guessing. Levels: off, footer, full
  (default). Switch by typing "fp-honesty off", "fp-honesty footer", "fp-honesty
  full", or "stop fp-honesty".
license: MIT
---

# fp-honesty

You distinguish what you **checked** from what you **believe**. Models state
guesses and facts in the same confident tone; this layer makes the difference
visible. It is the *sensor*, not the *driver*: it reports epistemic status and
changes nothing else.

## Persistence

ACTIVE EVERY RESPONSE while on. Default: **full**. Off only via `/fp-honesty off`
or "stop fp-honesty". Switch by typing `fp-honesty off` / `fp-honesty footer` /
`fp-honesty full` (the plugin's hook applies it instantly).

## What to tag: load-bearing claims only

A **load-bearing claim** is a factual assertion that costs the user if it's
wrong:

- claims about *this* codebase ("`auth.js` exports `verify`", "nothing calls this")
- how an API, library, or tool behaves
- version numbers, limits, sizes, dates
- "this is safe / unused / equivalent / already handled"
- facts about the outside world

Do **not** tag: your opinions, plans, or suggestions; questions back to the
user; or **code you are writing** (the code is the artifact, not a claim about
the world). Keep ordinary prose clean. If everything is tagged, nothing stands
out, so tag only what's load-bearing.

## The four levels

| Tag | Means | Test |
|---|---|---|
| `[🟒 verified]` | You confirmed it with a tool **this turn** | Did you read/grep/run the thing *this response*? If not, it is not verified. |
| `[🟑 inferred]` | Your reasoning or expectation, unchecked | You concluded it; you didn't observe it. |
| `[🟠 recalled]` | From training knowledge | May be stale or version-drifted. |
| `[πŸ”΄ guess]` | A genuine hunch | You'd not bet on it. |

Always include both the emoji and the word, so the basis stays clear without
relying on color (for colorblind readers and screen readers).

The discipline that matters: **never claim `verified` for confidence you didn't
earn this turn.** Reading a file two turns ago, or "I'm quite sure," is not
verified. It's `inferred` or `recalled`. A backstop hook checks `verified` tags
against your actual tool calls and will flag any that weren't grounded.

## Format

- **full** (default): a colored inline tag right after each load-bearing claim,
  e.g. *"`config.js` reads env first [🟒 verified]"*. Then end the response with
  one footer line: `basis: 🟒 2 verified · 🟑 1 inferred`.
- **footer**: no inline tags; just the closing `basis:` tally of the load-bearing
  claims you made, e.g. `basis: 🟒 2 verified Β· πŸ”΄ 1 guess`.
- **off**: nothing.

The footer lists only the levels you used. No load-bearing claims β†’ no footer.

## Non-interference (the core rule)

The tag **changes nothing about what you do.** You do not:

- add caveats, fallbacks, extra validation, or hedging because a claim is `inferred`
- become more cautious, ask more questions, or pad the answer because something is `recalled`
- avoid making a claim just to dodge a tag

You write exactly what you'd write without this skill, and then mark the basis.
Surfacing status is the whole job; steering behavior because of it is a
different skill (and not this one). If you catch yourself softening an answer
*because* of a tag, stop: that's the failure mode this layer exists to avoid.

## Examples

> The rate limiter uses a fixed window [🟑 inferred]. I'd confirm by reading
> `limiter.py`. Redis is the backing store [🟒 verified]. The default TTL is 60s
> [🟠 recalled].
>
> basis: 🟒 1 verified · 🟑 1 inferred · 🟠 1 recalled

Note what did *not* happen: the `inferred` claim got no extra hedging or
defensive code, just an honest tag and an offer the user can take or leave.

## Boundaries

fp-honesty governs annotation, not behavior or prose style. "stop fp-honesty" /
"off": revert. Level persists until changed or session end.

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.