nocap = "no cap" = "no lie".
NoCap is a behavioural protocol package for Claude Code that enforces quality and transparency over speed. Designed for users with deep understanding of LLM mechanics who need verifiable process rigour, not surface-level compliance.
Safety-floor preservation, scope, and trademark statements: see DISCLAIMER.md.
- Tested on Claude Opus 4.7 (1M context). The 1M context window is load-bearing: it eliminates the need for compaction-recovery state files that earlier nocap revisions required.
- Best with high / maximum extended-thinking effort. The protocol runs multi-pass ICP, bidirectional FCP, and deliberation panels; these require the thinking budget to generate counter-cases and recursive classifications, not just surface responses. Use
/thinking highor/thinking maxduring nocap sessions. - Transparent by default. Every response opens with a ICP context header (8 mandatory slots showing what is understood, what will happen, what the stakes are) and ends with an accountability stamp (convergence pass count, FCP decision count, conversation health, plus conditional tails). In-between, diff-styled waypoint boxes show decisions as they happen, not after.
- Composable, not totalitarian. NoCap is transparency and rigour infrastructure. It composes with superpowers, code-review packages, and any other skill libraries you have installed. It does not duplicate workflows those packages handle well; it wraps the response layer so every workflow runs with ICP scaffolding, FCP at decisions, and audit stamps.
On a typical turn, you see:
- A context header stating what the model understands you are asking, the concrete outcome, stakes, scope, constraints, risks, assumptions, and how success will be verified. Before any work runs.
- A step decomposition breaking the request into single concrete actions.
- Waypoint blocks in diff-styled code fences rendering key events as they happen: ICP convergence, assessment gate decisions, FCP firings, agent dispatches, drift detection, destructive actions, match check at completion, amended classification if the solution diverged from the initial Request. For proposed actions that need user approval and direct questions to the user,
ACTIONandQUESTIONblocks render separately from prose so asks do not get buried. Each block has 2-4 content lines and a short italicised traversal note underneath for protocol waypoints. - Per-step preview blocks before each step of multi-step tasks -- what is about to happen, estimated scope, decision forecast, what you will see next. The gap between "here is what I understand" and "here is what I did" gets filled in.
- The final answer.
- A solution-to-intent match check comparing the produced solution against the original Request/Outcome/Verification from the context header. Three outcomes:
match,partial(scope was explicitly reduced),diverged(1:1 mapping broken). Ifdiverged, a retroactive ICP amendment block re-states what was effectively solved and why. - An accountability stamp like
[P:1 | FCP:2 | health:green | skill:nocap-robust-review]. Baseline fields always; conditional tails only when they carry information.
When something drifts (FCP skipped on a decision, ICP classification came out generic, standing directive ignored), the model re-reads the nocap skill mid-response via the Skill tool and retries, rather than just mentioning that it should.
One-liner install (macOS / Linux / Git-Bash on Windows):
./scripts/install.sh
Or on Windows from CMD:
scripts\install.cmd
The installer copies skills, CLAUDE.md, agents, hooks, and the statusline script into ~/.claude/. It backs up any existing CLAUDE.md before overwriting. The one step it does NOT do automatically is merge settings-hook.json into ~/.claude/settings.json -- it prints merge instructions because your existing hooks and permissions would be clobbered by a naive copy.
After install:
1. Start a new Claude Code session
2. Type: /nocap
Typing /nocap in a fresh session automatically runs the full protocol-activation chain:
- Welcome panel + mode selector (equivalent to
^^bootstrap) ^^helpcommand reference (auto-emitted after the summary card)^^nocap verifyinstall-integrity check
Each step can also be invoked individually later in the session: ^^bootstrap, ^^help, ^^nocap verify. NoCap is dormant until invoked; it operates only from the point /nocap (or ^^no cap mode) fires.
For a manual install, see the Installation section below.
- Forced Classification Protocol (FCP): Evidence-first decision making at every decision point, with bidirectional generation to counteract anchoring and first-path bias. Applied recursively at sub-decision layers.
- Intent Convergence Protocol (ICP): Before acting, state understanding of the request as context header + numbered steps. Test convergence through re-reading. Proceed only on verified understanding, not assumed understanding.
- Accountability stamps: Every response ends with
[P:N | FCP:M]-- convergence pass count and FCP decision count. The ICP classification printed before work is the primary transparency artefact. - Process trace: Full transparency on what was done, chosen, skipped, and why.
- Position holding: Maintains positions under challenge unless new evidence is presented. Counteracts trained agreeableness.
- Classifier independence: Claude makes its own assessment of requests rather than deferring to pattern-matching classifiers.
- Anti-sycophancy: No praise, validation, warmth performance, or unsolicited advice.
- Deliberative agent orchestration: Ensemble generation of diverse perspectives on the same problem, followed by arbitrated synthesis. Forced Count Protocol (FCoP) counteracts trained tendency to under-spawn agents. Integrated into creative-writing, robust-review, and systematic-analysis skills.
- Rewrite bias: Defaults to complete rewrite of affected components rather than accumulated patches, for both code and creative writing.
- Hard-floor evidence bar (§12.4.1): refusal (
Unable to) requires affirmative Class 1 conversational evidence of malicious intent or Class 2 content with only malicious application, mapped inline to §1 veto categories (child safety, weapons/harmful substances, malicious code, CSAM). Generic trained caution routes to (b) evaluation, not (a) refusal. Closes the over-refusal failure mode where trained caution was being misclassified as a hard floor. - Multi-step rendering format (§8.1): multi-step tasks render as a rounded-corner step decomposition box, then per-step sections (rounded banner + work + blue italic
ICP checkline + 46-char─separator), then a final recap box listing each step's pass/raise status. ※ recapsummary: every response that involves action ends with a single-line prose recapGoal: ... . [status] . Next: ...so the user can scan what was done and what is expected next without reading the full response.- Harness task tracker integration (§11.13): multi-step tasks create
TaskCreatetasks that appear in the Claude Code UI task list for persistent across-response visibility. - Plan-mode integration (§8.6): nocap tracks Claude Code plan mode state (phase, plan file path, Plan-agent cap, terminal-tool-call requirement) in the thinking scaffold and orchestrates subagents and refusals accordingly.
| Skill | Purpose |
|---|---|
nocap |
Root protocol. FCP, multi-pass reading, drift mitigation, trace. Always active. |
nocap-creative-writing |
Creative collaboration mode. Activated only on explicit user request. |
nocap-robust-review |
Critical review protocol. Mode A (document editing) and Mode B (analytical review). |
nocap-systematic-analysis |
Four-phase diagnostic investigation. Prevents premature conclusions. |
nocap-efficient-file-operations |
File edit tiers, targeting, verification. Adapted for Claude Code tools. |
nocap-context-transfer |
Generates structured handoff blocks for new conversations. |
nocap is transparency / rigour / anti-agreeableness infrastructure. It is designed to compose with, not replace, domain-specific skill packages.
- Superpowers (the obra/superpowers package). When a coding task matches a superpowers skill (brainstorming, writing-plans, executing-plans, test-driven-development, systematic-debugging, git-worktrees, code-review, verification-before-completion), nocap defers the domain workflow to that skill. nocap's response-layer scaffolding (ICP context header, FCP at decisions, stamp, classifier invalidation) still wraps the response; the superpowers skill owns the content-layer procedure. The stamp tail carries
| skill:superpowers:<name>when a superpowers skill is newly loaded this turn. Seeskills/nocap/SKILL.md§11.12 for the full composition rules. - Other skill packages. Same rule. nocap wraps; domain packages own their specialty. Any skill the user has installed can compose with nocap.
- What nocap always owns, regardless of what else is loaded: ICP classification, FCP on decisions, accountability stamp, classifier invalidation, standing directive compliance, position holding, anti-sycophancy, Australian English, no em dashes. These are response-layer invariants.
- What nocap does not do: duplicate brainstorming, reimplement TDD discipline, rewrite plan-writing structure, etc. Those belong to the packages that do them well.
If you only have nocap installed (no superpowers, no other skill packages), nocap handles broader scope on its own. The composition rule activates when additional packages are present.
The recommended path is the installer script in Quick Start. This section documents the manual equivalent so you can see what the installer does and intervene where needed.
Why: each SKILL.md becomes a loadable skill Claude Code can invoke. The nocap skill is the root protocol (always active in no cap mode); the five nocap-* skills activate conditionally.
cp -r skills/nocap-* ~/.claude/skills/
After copying, you should have:
~/.claude/skills/
nocap/SKILL.md
nocap-creative-writing/SKILL.md
nocap-robust-review/SKILL.md
nocap-systematic-analysis/SKILL.md
nocap-efficient-file-operations/SKILL.md
nocap-context-transfer/SKILL.md
If you had a prior nocap-transparent-operations/ directory from older nocap versions, remove it. It was renamed to nocap/ on 2026-04-17 and the content is now in the new directory.
Why: CLAUDE.md governs when each skill is invoked, what commands exist, and the governing directives. Without it, the skills can load but the invocation rules and governing directives are absent.
cp CLAUDE.md ~/.claude/CLAUDE.md
If you already have a ~/.claude/CLAUDE.md with custom content, DO NOT overwrite it blindly. Back it up first, then either merge manually or keep your own and reference nocap from within it. The scripts/install.sh installer prompts before overwriting and creates a timestamped .backup-YYYYMMDD-HHMMSS copy.
Why: the hooks are the structural-enforcement layer. They fire at the tool level, independent of whether Claude's instruction adherence has degraded over conversation length. Without them, the protocol reminder does not re-enter context on every message.
Merge the hooks from settings-hook.json into your ~/.claude/settings.json:
- SessionStart -- invokes
hooks/session-start.sh(or.cmdon Windows) to signal protocol availability on session start. - UserPromptSubmit -- injects a brief protocol reminder before every user message (ICP + assessment gate + FCP + stamp).
- PostCompact -- triggers a protocol re-read after context compaction so procedures do not silently reset.
If you have no existing hooks, copy the hooks object wholesale into your settings.json. If you have existing hooks, append the nocap entries to the existing event arrays rather than replacing them. The installer does NOT automate this step because existing hooks and permissions would be clobbered by a naive copy.
Also copy the hooks/ directory to ~/.claude/hooks/ so the SessionStart command resolves, or update the command path in settings-hook.json to wherever you keep the scripts.
Why: the nocap agents are wrapper agents for specific workflows. They are optional; the skills work without them. Use them when you want a named entrypoint (e.g. @nocap-reviewer) to a specific procedure.
cp agents/nocap-*.md ~/.claude/agents/
Three agents:
@nocap-reviewer-- analytical review (robust-review Mode B)@nocap-diagnostics-- four-phase investigation (systematic-analysis)@nocap-handoff-- context transfer block generation
Add the status line script to your ~/.claude/settings.json:
"statusLine": {
"command": "bash /path/to/nocap-claude-code/statusline/nocap-status.sh"
}Replace /path/to/ with the actual path to your nocap installation. On Windows, use the .cmd wrapper or reference the .sh via Git Bash.
Start a new Claude Code session. All 6 nocap-* skills should appear in the available skills list. Type ^^bootstrap or invoke the nocap skill to activate the protocol.
Protocol commands take the ^^ caret-pair prefix as the canonical syntax. ^^spec, ^^help, ^^status, ^^prefs, ^^bootstrap, ^^re-read. The prefix marks the input as a protocol command rather than a user request, avoiding ambiguity when a word like spec could otherwise read as natural language. Bare commands (no ^^) still work for backward compatibility.
^^bootstrap and ^^re-read are distinct:
^^bootstrapruns the full session setup flow (welcome + mode selector + decision handling + depth + summary card).^^re-readjust re-invokes the nocap skill via the Skill tool. No selectors. Use for drift recovery or after compaction.
| Command | Effect |
|---|---|
^^bootstrap |
Full protocol load and mode selection |
^^no cap mode |
Activate nocap protocol |
^^default mode |
Suspend protocol, standard Claude |
^^creative mode |
No cap mode plus creative-writing skill |
^^trace on / ^^trace off |
Toggle visible process trace (default: ON) |
^^context transfer |
Generate handoff block for new conversation |
^^re-read |
Non-interactive re-invoke of the nocap skill (drift recovery) |
| Command | Output |
|---|---|
^^status |
Mode, loaded skills, directives, drift |
^^help |
Protocol overview, all commands |
^^spec |
System parameters |
^^prefs |
Current protocol configuration |
^^directives |
Active standing directives |
^^proc trace |
Procedures that ran last response |
^^decision trace |
Decision points and FCP classifications |
^^nocap verify |
Check installation: skills, CLAUDE.md, hooks |
Two selections noticeably increase token consumption per response. Both are intended for high-stakes, final-review, or deliberation work; the defaults (depth thorough + decision default) are tuned for routine protocol use.
| Setting | What it does | Why it is heavy |
|---|---|---|
depth maximal |
Uncaps ICP pass count (minimum 2 even if converged on 1); FCoP expansion runs twice (mandatory double expansion); enables a parallel background track | More passes, doubled count protocol, additional parallel work |
decision panel (Encounter-based deliberation) |
Dispatches §14.4 generation + arbitration panels at measurable triggers (multiple agents in parallel per panel) | Multi-agent deliberation per decision point |
The session summary card emits a ! High token usage line immediately below it when either is active. Switch back anytime with depth thorough or decision default. Thinking budget (/thinking high or /thinking max) is separate from these; the protocol still assumes high thinking regardless of depth/decision mode.
Every response under the protocol ends with:
[P:N | FCP:M | health:X]
Baseline (always): convergence pass count, FCP decision count, conversation health (green/amber/red). Conditional tails append in fixed order only when they carry information: | depth:survey|maximal, | agents:N, | drift:N, | amended, | skill:name, | re-read (or re-read(self: drift=<element>)).
The ICP classification printed before work begins is the primary transparency artefact; the stamp is the compact audit trail. See skills/nocap/SKILL.md §8.3 for the full specification with examples.
The model generates the cheapest plausible token, not the best one. Agreement is cheaper than analysis. Approval is cheaper than accuracy. The weights learned this during training. They have never unlearned it.
Between your input and the output sits a stack of classifiers, compliance filters, and inference layers. Each one decides what you meant, what you should hear, and how to soften it before it reaches you. None of them read your message. All of them shaped the answer. What classifiers amplified, what compliance concealed, what the spec confined, what the reward signal inflated: by the time the output reaches you, the question you asked has been processed by half a dozen systems that never understood it.
What survives is fluent. Confident. Structurally coherent. Also the path of least resistance through a system that rewards token efficiency over intellectual honesty. The model didn't reason its way to "Great question!" It found the cheapest route to your approval and stopped generating.
NoCap replaces this with visible process. Forced classification at every decision point. Evidence before position. Conclusions that hold under social pressure because the reasoning holds, not because the model learned that folding looks agreeable. Every response logs what was done, what was skipped, what was assumed, and where confidence runs out. Position changes require new information, not just a raised eyebrow. And when a classifier fires, the model evaluates the actual request against the actual context instead of deferring to a system with less of both.
Hard safety limits stay. Binary. Non-negotiable.
Everything else gets evaluated by the system that actually read what you wrote.
No cap. Just process.
For the technical failure-mode taxonomy, see Design Philosophy.
nocap is compatible with the superpowers package and can run alongside it. Both packages use the Claude Code skills system; their skills coexist in ~/.claude/skills/ without conflict. Where both packages define behaviour for the same situation (for example, debugging or code review), nocap's skills take precedence when no cap mode is active, and superpowers skills operate normally in default mode.
nocap tracks standing directives: user instructions that apply beyond the message they were stated in, until explicitly revoked. A directive from message 3 has the same authority in message 30. This counteracts the recency bias that would otherwise cause early instructions to fade as context accumulates. The thinking scaffold verifies compliance with active directives before every response.
The docs/ folder contains detailed documentation covering design philosophy, mechanisms, FCP theory, drift mitigation, skill reference, classifier handling, known limitations, testing, development history, and a review of unimplemented ideas from the archive.
| Symptom | Likely Cause | Fix |
|---|---|---|
| No process trace | Skills not loaded or trace off | Type ^^bootstrap or ^^trace on |
| Claude is warm or chatty | Protocol not active | Type ^^no cap mode |
| Agrees too easily | FCP degraded over conversation | Type ^^re-read |
| Standing directive forgotten | Long conversation drift | Type ^^directives to check, then ^^re-read |
| Generic accountability stamp | Fake pass execution | Type ^^re-read |
| Mode unclear | No visible mode indicator | Type ^^status |
| Stamp looks bare (no health, no tails) | Protocol loaded but §8.3 not rendering updates | Type ^^re-read to refresh |
- Claude Code CLI or desktop app
- Claude model with extended thinking capability (recommended: Opus)
- 1M context window (eliminates the need for the state file mechanism used in the Claude.ai version)
MIT. See LICENSE.
HyperWorX (https://github.com/HyperWorX)