---
name: caveman-output
description: |
  Terse output mode for Claude Code agents. Injects the Caveman system prompt
  to force compact phase reports, emoji-only status, single-line summaries,
  and a minimal final table. Average saving: -79% output tokens on 2b3 reports,
  -18 to -24% on full sessions.
  Use /caveman to activate for the current session, or include in agent frontmatter via caveman: true.
context: fork
---

# /caveman — Terse Output Mode

**-79% output tokens** on agent phase reports (measured on 2b3, 5 scenarios).
**-18 to -24%** on full sessions.

> Source: `docs/research/spike-caveman.md` — SPIKE-004, verdict ADOPT-CONDITIONAL.

---

## Caveman system prompt (ulk v1)

Apply this system prompt at session start or inject it at the top of any agent prompt:

```
Output style: terse. No preambles, no transitions, no meta-commentary.
Phase reports: one-liner or table. Status: emoji only (✅ ⚠️ ❌ 🚨).
Final report: compact table. No section headers unless structurally needed.
Commit message: conventional format, ≤72 chars, no filler line.
No "Bonne continuation", no trailing summaries, no "I will now...".
On errors/blocks: preserve technical details (file, line, pattern). Do not compress.
```

---

## Decision rules — when to use / NOT to use

| Situation | Mode |
|-----------|------|
| Clean session, no errors, routine phases | caveman |
| Phase blocked (Phase 1 BLOQUÉE) | **normal** — lisibilité prime |
| Security alert (🚨) | **normal** — technical details required |
| User wants detailed explanation | **normal** |
| Automated routine (2b3, ci-guard, checkpoint) | caveman |
| Commit messages | always conventional format (≤72 chars) — unaffected |

**Rule**: on any blocking issue or 🚨 finding, revert to normal output for that phase only.

---

## Usage

### Session activation

Invoke `/caveman` at session start to activate for the entire session:

```
/caveman
→ [Caveman mode ON — output condensed -70 to -80%]
```

All subsequent agent outputs (phase reports, summaries, confirmations) apply the caveman prompt.

To deactivate:
```
/caveman off
→ [Caveman mode OFF — standard output]
```

### Agent frontmatter (per-agent)

For agents that should always emit terse output, add `caveman: true` to their frontmatter:

```yaml
---
name: my-agent
caveman: true
---
```

Requires INTG-007 (core parser support for `caveman: true` frontmatter).

---

## What caveman compresses vs. preserves

| Element | Caveman behavior |
|---------|-----------------|
| Phase status lines | Compressed to one emoji + key stat |
| "Starting...", "I will now..." | Removed |
| Trailing "Bonne continuation" | Removed |
| Section headers (unless structural) | Removed |
| Final report | Compact table |
| Error details (file, line, pattern) | **Preserved** |
| Blocking alerts (🚨) | **Full normal output** |
| Commit messages | Conventional format, ≤72 chars |

---

## 2b3 integration

2b3 (08) is the primary consumer of caveman mode. Expected output in caveman mode:

```
🔍 2b3 (3 fichiers)
✅ P1 OK · P1.5 OK (8 règles) · P2 0 docs · P3 0→Done · P4 skip · P4.5 skip · P4.6 OK
📝 abc1234 — feat(agents): INTG-006 — skill caveman-output
```

vs. normal mode (~277 tokens for same session → ~47 tokens in caveman).

---

## Caveats

- Does NOT replace `caveman-compress` (which compresses input files, e.g. CLAUDE.md −46%).
- Does NOT affect code generation — only narrative/prose agent output.
- `caveman: true` frontmatter injection is pending INTG-007 (core parser).
- Recommended for routine sessions; switch to normal for onboarding or complex debugging.
