> For the complete documentation index, see [llms.txt](https://faction-os.gitbook.io/faction-os-docs/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://faction-os.gitbook.io/faction-os-docs/docs/game-design/09-risk-boredom-and-integrity-audit.md).

# Risk, Boredom, And Integrity Audit

**Project:** FactionOS — The War Effort **Document role:** Design risk audit / integrity constraints

## 14. The Boredom Audit — Where This Design Fails in Practice (third pass)

A skeptical-designer sweep: the realistic sessions where the design as written would be boring, illegible, or annoying — each with its fix, adopted in-place. These are now constraints, not suggestions.

### 14.1 Dead air (the most common minute)

**Failure:** an agent "working" is mostly *silence* — long thinking gaps between tool calls, or no agents running at all. A board that only moves on events is a dead board most of the time, and Fun Law 2 says the glance must always deliver state. **Fix — ambience is driven by state, not events.** Two tiers: (a) *world ambience* keyed to projection state (camp fires flicker, banners flutter, keep smoke) — always on, meaningless by design, clearly non-work; (b) *the scrying posture*: a hero whose mission is active but has emitted no tool event for >20s shifts to a visible "channeling" stance (rune circle, slow pulse). Silence becomes legible state — "she's thinking hard" — instead of ambiguity between thinking, stalled, and disconnected. Empty roster = the keep, the last war state, and a single summon call-to-action; never a blank board.

### 14.2 One hero, not twelve (the most common roster)

**Failure:** the design romances an *army*, but the modal real user runs one or two agents. One standee on a 16:9 board with 30 camps reads as lonely and hopeless — the fantasy collapses exactly for the newest users. **Fix — Champion Mode is the design floor, not an edge case.** At roster ≤2: per-hero juice scales *up* (richer strike detail, subagent peons become co-stars, the hero's patrol/scrying is foregrounded), and the visible Legion scales *down* — only the top-K camps nearest the hero's active sectors render (K scales with roster size; the full census lives in the Quest Board). Copy goes singular ("your champion", not "your armies"). The army fantasy is the *growth* fantasy, unlocked by actually running more agents.

### 14.3 Tiny hobby repo / giant monorepo (map extremes)

**Failure (tiny):** 3 top-level dirs = 3 sectors = a trivial map cleared in a day. **Failure (huge):** 400 packages = unreadable sector soup, and a first full scan minting 500 camps reads as noise *and* despair. **Fix — the map has a fixed legibility budget.** Sector count is capped (\~24 cells): small repos split one directory level deeper until the board is interesting; huge repos group by workspace globs with the long tail aggregated into a single "Borderlands" sector. Camps **coalesce**: one camp marker per sector, tiered by aggregate issue mass (camp → fort → citadel), HP = Σ severity weights — so 500 findings render as a handful of big fortresses, not 500 sprites. Progress is always framed as *frontline delta* ("you pushed the line west"), never remaining-total, so big codebases feel like a long war, not a lost one.

### 14.4 The 45-minute mission (juice fatigue)

**Failure:** a long-running agent fires hundreds of tool events. Hammer-flash number 300 means nothing; repeated SFX becomes a mute-the-tab reason — strike spam turns the best moment (§5A combat) into strobe. **Fix — repetition escalates instead of repeating.** Strikes within a short window merge into *combo strikes* (visual grows through stages, sound does not re-fire); per-category SFX is rate-limited to silence after N/minute while visuals continue; and long sieges get **stage props**: at duration milestones the hero visibly digs in (siege ladders, trenches accumulate on the camp), so minute 40 *looks different* from minute 5 — a long fight reads as escalation, not a loop. The mana/supply meter provides the slow arc on top.

### 14.5 Flare fatigue (urgency inflation)

**Failure:** a chatty agent raising `awaiting_input` every two minutes makes the "single most urgent visual in the game" constant — trained blindness, the exact failure Fun Law 3 exists to prevent. **Fix — ceremony budget mirrors marginal urgency.** The first flare in a while gets full ceremony (sting + pulse). When flare frequency is high, later flares keep full *priority* (top of the alert ladder, always answerable) but render at reduced ceremony, and the Swift Command bonus scales down with frequency. The work signal is never suppressed; only its fanfare is recalibrated so a *rare* flare still spikes adrenaline.

### 14.6 One board, one pulse (alert legibility)

**Failure:** flare + gate + siege + three skirmishers at once = Christmas tree; nothing is legible in the 1-second glance. **Fix — the projection computes a single `alertFocus`.** Priority ladder: flare > gate > siege > ram > skirmisher > new camp. Exactly one thing on the board pulses at any moment; everything else holds its static badge state. Clearing the focus promotes the next. This is enforced in `gameProjection` (one authority), not per-component.

### 14.7 The immortal camp (learned blindness)

**Failure:** a TODO from 2022 the user will never fix is a camp that never dies — permanent enemies become wallpaper, and wallpaper rots the whole enemy metaphor. **Fix — camps entrench, then return as bosses.** A camp un-engaged for X consecutive scans "entrenches": shrinks, mutes, moves to the sector edge — acknowledged debt, no longer shouting — and drops out of Dawn Report mentions. Entrenched camps feed the weekly **Blight Titan** pool (§10), so ancient debt re-emerges as one *chosen*, dramatic fight instead of ambient guilt. Dismissing an issue is the **Banish** verb: the camp vanishes with a deliberately dry, loot-less puff — never satisfying enough to become the clean-the-map strategy (extends §9).

### 14.8 Wraith spam (flaky-environment errors)

**Failure:** the same environment error 30 times spawns 30 wraiths — and per §9 the player can't even enjoyably kill them. **Fix — wraiths stack, never multiply.** One wraith per hero (a stack-count badge grows with repeats and its silhouette darkens), board-wide wraith cap of 3; the stack resets when the underlying mission verifies. A tall wraith stack is genuinely useful information: *this* hero is fighting its environment, not its task.

### 14.9 Reconnect/replay must not mint progress (honesty bug)

**Failure (found while sketching §15A):** shared replay links (`bootShareReplay`) and reconnect hydration re-dispatch events through the same `applyEvent` path. A naive projection would re-mint essence, XP, and kills from replayed events — a direct Fun Law 1 violation you could farm. **Fix:** `gameProjection` honors the existing `replayingSinceMs` flag (the store already sets it during replays) and treats snapshot-style events (`mission_state`, `roster_update`, `suggestion_update`) as *reconciliation*, never accumulation. Acceptance-tested in Phase A (§13A criterion 5).

## Asset References For Risk Fixes

`manifest.md` tracks generated assets that already support several adopted risk fixes. Use them before requesting new art, but keep the risk constraints above authoritative:

* Dead-air ambience and map legibility: `assets/generated/game-design/phase07/territory-map/territory-map-base.png` and `assets/generated/game-design/phase07/home-sector/home-sector-building-dressings.png` provide base/backdrop material; live state, labels, fog, counters, and reduced-motion equivalents still need DOM implementation.
* Combat readability and motion fatigue: `assets/generated/game-design/phase03/live-enemies/live-enemy-effects-sheet.png`, `assets/generated/game-design/phase03/strike-vocabulary/strike-vocabulary-effects-sheet.png`, and `assets/generated/game-design/phase03/reduced-motion/reduced-motion-static-badges-sheet.png` provide source sheets for enemy/effect readability and static equivalents; runtime slicing still must preserve honesty, caps, and accessible labels.
* Flare and ceremony budgets: `assets/generated/game-design/phase05/banners-regalia/banners-regalia-sheet.png`, `assets/generated/game-design/phase05/class-icons/class-icons-and-flares-sheet.png`, `assets/generated/game-design/phase04/town-crier/town-crier-toast-chrome-sheet.png`, and `assets/generated/game-design/phase04/command-ceremony/command-ceremony-props-sheet.png` provide crop-ready ceremony chrome and command props without changing urgency priority rules.
* Alliance/social legibility: `assets/generated/game-design/phase10/alliance-war/alliance-war-visuals-sheet.png` is available for shared-front markers, league emblems, Banners Unite polish, and cooperative badges without weakening redaction or War Room boundaries.
* Season and demo clarity: `assets/generated/game-design/phase11/seasons-saga/seasons-saga-visuals-sheet.png` and `assets/generated/game-design/phase12/war-games/war-games-demo-presentation-sheet.png` are available for season/saga and progress-inert demo presentation; runtime use still needs no-fake-progress labels and public-demo parity checks.
* Long siege escalation and static twins: `assets/generated/game-design/phase09/siege/siege-set-piece-static.png` is available as a reduced-motion static treatment for later siege work.
* Entrenched-camp boss payoff: `assets/generated/game-design/phase09/bosses/blight-titan-standee.png` is available for the Blight Titan pool when the owning boss phase promotes it.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://faction-os.gitbook.io/faction-os-docs/docs/game-design/09-risk-boredom-and-integrity-audit.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
