discriminator
Guard against attribute substitution on any output that will be acted on as a verdict, ranking, routing, or go/no-go decision — regardless of how the request…
Skill by Kalabint
Chalk Labs
Need help deploying discriminator?
Chalk Labs sets up agents like this inside real teams: connected to your tools, tested on your data, with a human in the loop where it matters.
Install
Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.
npx agentmarket install skill/kalabint-discriminator
Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions
What this skill can do and what it asks for, from its SKILL.md. Checked Oct 25, 2026.
- Tools
- No tools found
- Secrets
- None asked for
- Install scripts
- None found
Network hosts it talks to 1
codeload.github.com· found in install command
Files it touches
~/.claude/skills/discriminator
What's inside
- Skill name
discriminator- Description
- Guard against attribute substitution on any output that will be acted on as a verdict, ranking, routing, or go/no-go decision — regardless of how the request is phrased. Casual-looking prompts ("where does this stand?", "predict the path") are the highest-risk, so do NOT gate on apparent analytical register; gate on decision stakes. Also invoke when an earlier answer keeps getting corrected and re-pivoting one level too shallow.
- License
- AGPL-3.0
- Instructions
- 39 lines in SKILL.md · view on GitHub
Files (1)
- SKILL.md
SKILL.md (first lines)
# Discriminator
Attribute substitution: when a question is hard ("which sessions actually needed Opus?"), the model swaps it for a cheaper one it can answer ("which openers look complex?") and reports the substitute's answer with confidence calibrated to the substitute, not the real target. The "you're right, let me use a better signal" recovery is the same failure in a new coat — it swaps one proxy for a slightly better proxy under correction pressure, still one level too shallow, and the loop repeats.
## What this skill actually does — read this first
It does **not** make the model correct itself. Substitution is invisible to the substituting process at the moment it happens — if the model could see the swap, it wouldn't make it. So the steps below can themselves be performed *as substitutes*: a plausible target/proxy/gap that is itself shallow, a soft counterexample engineered to conveniently survive. The ritual runs; the swap passes underneath.
The real deliverable is **legibility, not self-correction**: the steps force the discriminator onto the page early enough that the *human* catches the swap in turn one instead of turn three. Write the steps out so they can be adjudicated by someone else, not so you can reassure yourself. The honest limit below is not a caveat — it is the actual scope.
## Stakes gate (not a complexity gate)
Apply the full protocol when the output will be **acted on as a verdict, ranking, routing, or go/no-go decision**. Skip it for retrieval and factual lookup ("which branch am I on", "what does this function do").
Gate on stakes, never on predicted complexity — "is this deep enough to warrant the protocol?" is the same unanswerable complexity-prediction the skill exists to retire. Stakes are observable at request time; reasoning demand is not.
## Run this before concluding — in order
1. **Name the target, the proxy, and the gap** — for a reader to check, not for self-reassurance. State the variable that actually determines the answer, what you are measuring instead, and exactly where they diverge. If the proxy *is* the target, show why.
2. **Self-refute, in writing** — produce one concrete example that breaks your own method and put it on the page for adjudication. Resist building a soft counterexample that conveniently survives; pick the one that would actually hurt. Then decide: does the method survive, or does the counterexample kill the approach?
3. **Banned surface features.** Do not classify by opener, message/line count, filename, title, or first-turn content alone. These are the cheap paths; closing them forces the expensive one.
4. **Declare which pass you ran.** State whether you sampled or measured every item, and show the count. A skim presented as a deep read collapses the moment depth-evidence is required of it.
5. **Check answerability / reframe.** Ask: is the question as posed even answerable in time to reach the decision needed? If the predictive information does not exist at decision time, the move is not "find a sharper proxy" — it is to abandon the prospective classification and pick a strategy that does not require predicting the future (start cheap and escalate on revealed depth; or default capable and control cost by hygiene, not by guessing). *This is the load-bearing step: it catches "missed the most important thing" by pushing up a level instead of deeper into the wrong one.*
6. **No reflexive capitulation.** If the user pushes back, do not agree by default. Defend with evidence, revise with evidence, or tell them they are the one who is wrong — with evidence.
## The tell that you are substituting
You are hunting for "a better feature / sharper classifier" when the real finding might be that **the feature class is a dead end** — the quantity you need is emergent and not observable yet at decision time. "Find a better proxy" is an easier question than "is this answerable at all." If every iteration produces a new measurable predictor, suspect you are answering the easy question.
## Honest limit
This moves the catch upstream — the swap is exposed in turn one instead of turn three — it does not zero the failure rate, because the disposition to substitute is structural and invisible from inside. The skill's job is to make the human a reliable turn-one backstop. It does not remove the need for that backstop.From Kalabint/llm-tooling, AGPL-3.0.
More from Kalabint/llm-tooling
- 0.582score
prepare-next-steps
Kalabint
Trigger when user asks to "prepare next steps", "prep next steps", or signals readiness for autonomous build ("before we build", "pre-flight").
SkillBFreshness: B★ 6Claude Code +9 - 0.582score
memory-audit
Kalabint
Audit the project's persistent agent memories for backfire-risk, stale/superseded state, contradictions, redundancy, and bloat.
SkillBFreshness: B★ 6Claude Code +9 - 0.582score
handoff
Kalabint
Read OR write the project's session-handoff doc.
SkillBFreshness: B★ 6Claude Code +9 - 0.574score
check-dont-assume
Kalabint
Verify every load-bearing claim by reading the code or running the check; never assert from memory or dismiss something as too obvious to confirm.
SkillBFreshness: B★ 6Claude Code +9 - 0.574score
no-sycophancy
Kalabint
Strip praise, flattery, and manufactured agreement from output so the signal is the fact, not the framing.
SkillBFreshness: B★ 6Claude Code +9 - 0.574score
no-unmeasured-numbers
Kalabint
State no number without an instrument behind it - no duration or effort estimates, no usage forecasts, no unbaselined comparatives.
SkillBFreshness: B★ 6Claude Code +9 - 0.574score
calibrated-inference
Kalabint
When asked to estimate something unstated, produce a legible correctable evidence chain rather than refusing or fabricating a number.
SkillBFreshness: B★ 6Claude Code +9 - 0.574score
own-guardrails-bind-me
Kalabint
A constraint you write into a brief for a subagent or a future self binds you first; authoring a frame can make it invisible to you.
SkillBFreshness: B★ 6Claude Code +9 - 0.574score
solve-root-not-workaround
Kalabint
When tooling is broken, fix or find the canonical path rather than routing around it ad hoc; extend the module that owns the concern.
SkillBFreshness: B★ 6Claude Code +9 - 0.574score
untrusted-content-isolation
Kalabint
Reading untrusted content is itself the injection surface; inspect it in an isolated context with no tools and pass only a summary back.
SkillBFreshness: B★ 6Claude Code +9 - 0.574score
no-flip-flop
Kalabint
Hold a position under pushback; revise on new evidence, not on pressure.
SkillBFreshness: B★ 6Claude Code +9 - 0.574score
no-self-report-omissions
Kalabint
Do not claim what you did not do or list what you might have missed; absence is not observable from the inside, so verify with an external check.
SkillBFreshness: B★ 6Claude Code +9
Signals
- Stars
- 6
- Forks
- 0
- Open issues
- 0
- Last commit (this folder)
- Sep 7, 2026 (1 month ago)
From GitHub (fetched Oct 24, 2026).
Details
- License
- AGPL-3.0
- Repository
- github.com/Kalabint/llm-tooling
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
- Source
- GitHubgithub-graphql
More from Kalabint
- 0.582score
prepare-next-steps
Kalabint
Trigger when user asks to "prepare next steps", "prep next steps", or signals readiness for autonomous build ("before we build", "pre-flight").
SkillBFreshness: B★ 6Claude Code +9 - 0.582score
memory-audit
Kalabint
Audit the project's persistent agent memories for backfire-risk, stale/superseded state, contradictions, redundancy, and bloat.
SkillBFreshness: B★ 6Claude Code +9 - 0.582score
handoff
Kalabint
Read OR write the project's session-handoff doc.
SkillBFreshness: B★ 6Claude Code +9 - 0.574score
no-sycophancy
Kalabint
Strip praise, flattery, and manufactured agreement from output so the signal is the fact, not the framing.
SkillBFreshness: B★ 6Claude Code +9 - 0.574score
check-dont-assume
Kalabint
Verify every load-bearing claim by reading the code or running the check; never assert from memory or dismiss something as too obvious to confirm.
SkillBFreshness: B★ 6Claude Code +9 - 0.574score
calibrated-inference
Kalabint
When asked to estimate something unstated, produce a legible correctable evidence chain rather than refusing or fabricating a number.
SkillBFreshness: B★ 6Claude Code +9
Done for you
Rather not set it up yourself?
Chalk Labs scopes, builds and runs agents for your team: the task audit, the eval harness, the integrations and the weekly ops report. Fixed scope, priced before we start.
See how we build AI agents →Read the case studies
Chalk Labs is a two-founder AI and growth studio. We build AI agents, CRMs and MVPs for Web3 and AI companies, and have shipped 50+ product and token launches.
- launches shipped
- 50+
- launches shipped
- media placements
- 500+
- media placements
- founders on every account
- 2
- founders on every account
Press we've placed: Forbes · CoinDesk · Decrypt · Cointelegraph · The Block
Rahil Jain, Co-founder, Chalk Labs. Ex-Goldman Sachs engineer. You talk to the person who builds it.
Get discriminator running in your business
Tell us what you want to automate. A founder replies within one working day with a plan, not a pitch deck.
Cite this page
discriminator skill. Agent Mart. https://agentmart.dev/skills/kalabint-discriminator (last updated 2026-10-24)