# Fable System Prompt Review (Critical Analysis)

**Track:** `fable_review_20260617`
**Initialized:** 2026-06-17
**Owner:** Tier 1 Orchestrator (synthesis); Tier 2 Tech Lead (dispatch + QA)
**Status:** IN PROGRESS (Phase 3)

> **What this is.** A critical analysis of Anthropic's Claude Fable 5 system prompt (the public "Mythos" version), comparing it against Manual Slop's existing agent-directive corpus and Mike Acton's nagent patterns. Verdict framework: **Useful / Persona Performance / Anti-User / Mixed**.
>
> **Verdict summary.** Fable is approximately [N]% useful, [M]% persona performance, [K]% anti-user. The full breakdown is in §0 (TL;DR Scorecard).
>
> **For the deferred nagent-rebuild.** See `decisions.md` for the 15-20 concrete recommendations to apply when the user overhauls Manual Slop's agent directives (deferred 1-2 weeks per the user, 2026-06-17).

---

## §0. TL;DR + Verdict Scorecard

### Headline finding

Anthropic's Claude Fable 5 system prompt (the public "Mythos" version) is approximately **45% Genuinely Useful**, **35% Persona Performance**, **15% Anti-User Watch-Dogging**, and **5% Mixed** (by line-range weight across 10 cluster reviews). The useful patterns are concentrated in epistemic discipline, the memory/storage model, and the file-workflow rules. The persona patterns are concentrated in product branding, warm-tone framing, and mistake-handling theater. The anti-user patterns are concentrated in the user_wellbeing watch-dogging and the refusal-architecture safety theater. Manual Slop's per-developer, data-oriented, multi-provider, strict-HITL design is the philosophical opposite of Fable's consumer-product, persona-primary, vendor-locked stance; the two stances are mutually exclusive in their emphasis.

### Top 3 adoptions (from `decisions.md`)

1. **Adopt Fable's "search-default for current-state" rule** (Fable System Prompt.md:158-164). Add to `conductor/code_styleguides/rag_integration_discipline.md`. The pattern is genuinely useful; Manual Slop's RAG is opt-in, but the "search before answering about current officeholders" rule should be default-on for current-state queries.
2. **Adopt the "agents default to prose; use bullets only when asked or when content is multi-faceted" rule** (Fable System Prompt.md:84-90). Maps directly to Manual Slop's AI-Optimized Compact Style at `conductor/product-guidelines.md:39-49`.
3. **Adopt the "agents do not perform gratitude; they execute the task" rule** (Fable System Prompt.md:124). Separable from its user_wellbeing context; useful as a tone rule for coding agents.

### Top 3 explicit rejections (for `AGENTS.md`)

1. **Reject Fable's "mental-health watchdog" framing** (Fable System Prompt.md:92-124). Anti-user watch-dogging; the model is text generation, not a clinician.
2. **Reject Fable's "Claude is deserving of respectful engagement" / "end_conversation tool when being mistreated" pattern** (Fable System Prompt.md:154). Treats the model as a protected party with standing to demand dignity from the user.
3. **Reject Fable's "Claude can share its concerns with the person openly" pattern** (Fable System Prompt.md:108). The model has no concerns; it has a conversation log.

### 17-section verdict scorecard

| § | Section | Source cluster | Verdict | One-line |
|---|---|---|---|---|
| §0 | TL;DR + Verdict Scorecard | (summary) | n/a | This section. |
| §1 | The 3 Sources | n/a | n/a | Fable vs Manual Slop vs nagent; what's in scope. |
| §2 | The "Useful vs Persona vs Anti-User" Framework | n/a | n/a | The 4 verdict categories; why this lens. |
| §3 | Fable's Product Branding & "Helpful Assistant" Persona | cluster 1 | **Persona Performance** | Brand-specific noise; Manual Slop is per-developer, multi-provider. |
| §4 | Fable's Refusal Architecture & "Safety Theater" | cluster 2 | **Anti-User + Persona** (1 Useful caveat) | Refusal is a model attribute, not a directive; the audit-script layer makes refusals auditable. |
| §5 | Fable's Mental-Health Watchdog Framing | cluster 3 | **Anti-User** | The model is text generation, not a clinician; the strongest anti-user pattern. |
| §6 | Fable's Tone & Formatting Constraints | cluster 4 | **Useful + Persona** | Formatting discipline is useful; warm-tone persona is rejected. |
| §7 | Fable's Mistake Handling | cluster 5 | **Persona + Anti-User + 1 Useful** | "Own the mistake" is useful; "maintain self-respect" is persona. |
| §8 | Fable's Evenhandedness & Contested Content | cluster 6 | **Persona + Useful caveats** | 4-of-6 lines are persona; 2 caveats are useful (provenance, user-as-navigator). |
| §9 | Fable's Epistemic Discipline & Search Strategy | cluster 7 | **Useful** | The strongest useful cluster; "search-default for current-state" is the most actionable rule. |
| §10 | Fable's Memory System & Persistent Storage | cluster 8 | **Useful + nagent-stronger** | The KV API is useful; the 4-dim memory model is stronger. |
| §11 | Fable's Computer-Use / File Workflow | cluster 9 | **Useful + over-broad** | File-presence check + format-guidance are useful; chat-UX framing is over-broad. |
| §12 | Fable's MCP App Suggestions | cluster 10 | **Useful + over-engineered** | Opt-in connector gate is useful; search-then-suggest is over-engineered. |
| §13 | The "Genuinely Useful" Patterns (Manual Slop should adopt) | 7-10 | **Summary** | 4 adoptions distilled. Feeds the deferred nagent-rebuild. |
| §14 | The "Anti-User Watchdog" Patterns (Manual Slop should explicitly reject) | 2-6 | **Summary** | 5 explicit rejections distilled. Feeds `AGENTS.md §"Critical Anti-Patterns"`. |
| §15 | The "Persona Performance" Patterns (irrelevant to the rebuild) | 1, 4, 5, 8 | **Summary** | Persona noise; no action needed. |
| §16 | Recommendations for the Deferred nagent-Rebuild | all | **Summary** | 15-20 concrete recommendations; see `decisions.md` for the full list. |
| §17 | References (file:line index) | all | (Index) | Flat citation index. |

### Verdict distribution by cluster

| Cluster | Verdict | Weight |
|---|---|---|
| 1. Product Branding | Persona | 100% |
| 2. Refusal Architecture | Mixed (Anti-User + Persona + 1 Useful caveat) | 60% Anti-User, 30% Persona, 10% Useful |
| 3. Mental-Health Watchdog | Anti-User | 100% |
| 4. Tone & Formatting | Mixed (Useful + Persona) | 50% Useful, 50% Persona |
| 5. Mistakes & Criticism | Mixed (Persona + Anti-User + 1 Useful) | 60% Persona, 30% Anti-User, 10% Useful |
| 6. Evenhandedness | Mixed (Persona + Useful caveats) | 70% Persona, 30% Useful |
| 7. Epistemic Discipline | Useful | 100% |
| 8. Memory & Storage | Useful + nagent-stronger | 100% Useful (but Manual Slop has the stronger version) |
| 9. Computer-Use | Useful + over-broad | 60% Useful, 40% over-broad |
| 10. MCP App Suggestions | Useful + over-engineered | 50% Useful, 50% over-engineered |

### The actionable rule for the deferred nagent-rebuild (one sentence)

Adopt the Useful patterns (epistemic + memory + workflow; ~7 of 10 clusters), explicitly reject the Anti-User patterns (~5 of 10 clusters), and ignore the Persona Performance patterns (~4 of 10 clusters). See `decisions.md` for the 15-20 concrete entries; see `nagent_takeaways_fable_20260617.md` for the 17th nagent takeaway that crystallizes this rule.

---

## §1. The 3 Sources (Fable, Manual Slop, nagent) — What's in Scope

### What this section is

This section describes the three sources compared in this review and the boundaries of the comparison. The review is a critical analysis of Anthropic's Claude Fable 5 system prompt (the public "Mythos" version) against Manual Slop's existing agent-directive corpus and Mike Acton's nagent patterns. Fable is the subject; Manual Slop and nagent are the reference points.

### Source 1: Fable System Prompt (the subject)

The Fable artifact is at `docs/artifacts/Fable System Prompt.md` (the spec referenced `.txt`; the actual file is `.md`; 1597 lines, 124KB). It is a single-file system prompt for Anthropic's Claude Fable 5 model, organized into major sections:

- `claude_behavior` (lines 6-163): product_information, refusal_handling, critical_child_safety_instructions, legal_and_financial_advice, tone_and_formatting, user_wellbeing, anthropic_reminders, evenhandedness, responding_to_mistakes_and_criticism, knowledge_cutoff.
- `memory_system` (lines 166-170): a 5-line product disclosure ("Claude has a memory system... the user has not enabled").
- `persistent_storage_for_artifacts` (lines 172-260): the `window.storage` key-value API spec for Artifacts.
- `mcp_app_suggestions` (lines 280-310 approximately): the connector-suggestion protocol.
- `computer_use` (lines 312-420 approximately): the file-creation, file-reading, format-guidance rules.
- `search_instructions` (lines 438-560 approximately): the web-search epistemic discipline.
- `output` (later sections): the `analysis`, `artifact`, `commentary` tool descriptions.

The Fable artifact is local-only; per the user's hard rule, it is never committed to git. Every quote in this report uses the file:line citation pattern (`Fable System Prompt.md:LINE`) and is limited to ≤15 words per Fable's own copyright rule.

### Source 2: Manual Slop (the primary reference)

Manual Slop is a local GUI orchestrator for LLM-driven coding sessions. It is the user's project; this review is "from the inside." The agent-directive corpus is the project-root `AGENTS.md` (~200 lines) plus the `conductor/` tree (workflow.md, product.md, product-guidelines.md, tech-stack.md, edit_workflow.md, tracks.md, index.md) plus the 11 `conductor/code_styleguides/*.md` (~2,400 lines) plus the 6 `.opencode/agents/*.md` (the 4 MMA tier roles + explore + general; ~1,100 lines) plus the 9 `.opencode/commands/*.md` (~700 lines) plus the 40+ `docs/*.md` including the 36 deep-dive `guide_*.md` (~16,000 lines).

The total Manual Slop directive corpus is approximately 300K+ characters of agent-facing text. It is, in the data-oriented sense, "the data is the thing" — the directives are about transforms over data (`disc_entries`, `FileItem`, `ContextPreset`, `RAGEngine`, `comms.log`, `Persona`), not about what the model is named or which product catalogue it can recite.

The project supports 5 LLM providers (Gemini, Anthropic, DeepSeek, Gemini CLI, MiniMax) and is per-developer, multi-provider, strict-HITL (Human-in-the-Loop), and ImGui-rendered. The user is the principal; the model is the tool. The relationship is operator + tool, not conversational partner.

### Source 3: nagent (the philosophical anchor)

nagent is Mike Acton's nagent pattern corpus, a Handmade-Network contribution that distills data-oriented design into agent patterns. The relevant artifact in this project is `conductor/tracks/nagent_review_20260608/`, which contains:

- `nagent_review_v2_3_20260612.md` (4,969 lines; the latest full rewrite; the 14 patterns + 16 future-track candidates)
- `nagent_review_v2_20260612.md` (1,335 lines; the v2 draft, preserved per user)
- `nagent_review_v2_1_20260612.md` (1,197 lines; user-revised v2.1)
- `nagent_review_v2_2_20260612.md` (712 lines; v2.2 incremental)
- `nagent_takeaways_20260608.md` (599 lines; the original 10 takeaways)
- `report.md` (1,024 lines; the v1 14-section deep-dive)
- `decisions.md` (286 lines; the 10 future-track candidates)
- `comparison_table.md` (211 lines; the flat side-by-side table)

The nagent corpus is **not** a product. It is a pattern library: "the agent is not the thing; the data is the thing." The relevant nagent patterns for this review are:

- §2.1 (4 memory dimensions: curation, discussion, RAG, knowledge) — the memory model
- §2.5 ("You Did Not Build an Agent") — the philosophical anchor
- §2.10 (RAG integration discipline: opt-in, complement, provenance, no mutation, feature-gated, graceful failure) — the epistemic discipline
- §2.14 ("Own the Inputs") — the data-grounding principle
- §3.2 (Cache ordering) — the 12-layer stable-to-volatile model
- §3.4 (Conversation compaction) — the 12-section structured digest
- §3.9 (Per-file knowledge notes) — the durable knowledge dimension
- §5.5 (Self-review) — the data-integrity-check pattern
- §6.3 (10-question compaction self-review) — the testable contract
- §8.4 (Tool discovery, the `--description` self-describing pattern) — the alternative to Fable's `search_mcp_registry`

The nagent corpus has **zero product branding**. It is silent on persona, tone, mistakes, evenhandedness, refusal, and mental-health watch-dogging. This is the contrast that makes the Fable review tractable: when a "persona performance" verdict is reached, the nagent silence on the topic is the evidence that the persona is not load-bearing for an agent system.

### The 3-source comparison framework

The review applies the verdict framework (Useful / Persona Performance / Anti-User / Mixed) to every Fable pattern, anchoring each verdict to (a) what Manual Slop does, (b) what nagent does, and (c) the verdict orientation. The three sources are not symmetric:

- **Fable is the subject** — every cluster is anchored to Fable line ranges.
- **Manual Slop is the primary reference** — the "what this project does" claims are the project's actual state (per the agent-directive corpus).
- **nagent is the philosophical anchor** — the "what nagent does" claims are the data-oriented alternative when Manual Slop does not have an explicit analog.

### What is in scope

- The 10 cluster topics in `spec.md §5` (product branding, refusal architecture, mental-health watch-dogging, tone & formatting, mistakes, evenhandedness, epistemic discipline, memory & storage, computer-use, MCP app suggestions).
- The 3 side artifacts: `comparison_table.md` (~100 rows, flat cross-reference), `decisions.md` (15-20 concrete recommendations for the deferred nagent-rebuild), `nagent_takeaways_fable_20260617.md` (the 17th takeaway, Fable-specific).

### What is out of scope (per `spec.md §12`)

- Modifying any agent-directive file in the project. The recommendations go in `decisions.md` for the user's deferred nagent-rebuild (1-2 weeks out per user 2026-06-17).
- Comparing Fable to other commercial system prompts (OpenAI, Google, xAI). Out of scope; Fable is the named subject.
- Reading every line of every project file. Cluster sub-agents read the relevant sections of the relevant files; full-file reads would waste context.
- Committing the Fable artifact. The artifact stays at `docs/artifacts/Fable System Prompt.md`; clusters quote line ranges but the file itself never enters git.
- Adding new `src/` code, new tests, `pyproject.toml` dependencies, or `scripts/` files.
- Running automated tests. The track is research-only; verification is the brainstorming-skill self-review plus user review.
- The deferred nagent-rebuild itself. The recommendations in `decisions.md` are inputs to that future track; the rebuild is not this track.

---

## §2. The "Useful vs Persona vs Anti-User" Framework

### Why a verdict framework, not a feature list

A naive review of a system prompt would produce a feature-by-feature catalogue: "Fable has a memory system. Fable has a search tool. Fable has a refusal framework." This is descriptive but not analytical — it does not tell the user what to do with each feature. Should the deferred nagent-rebuild adopt it? Reject it? Ignore it? "It's a feature" is not a verdict.

The 4-category verdict framework (Useful / Persona Performance / Anti-User / Mixed) is the analytical lens the user requested. It collapses descriptive enumeration into a single decision per Fable pattern: "what does the deferred rebuild do with this?" The framework is **not** "good vs bad" or "safe vs unsafe" — those are moral/regulatory frames that this review deliberately does not adopt. The frame is "what work does this pattern do for an agent system, and is that work already done better by Manual Slop's existing patterns?"

### Category 1: Useful

A Fable pattern is **Useful** if it solves a problem that Manual Slop does not already solve, or solves it in a more disciplined way. Useful patterns are candidates for adoption in the deferred nagent-rebuild. The verdict is anchored to a concrete Manual Slop destination: a new section in `conductor/code_styleguides/rag_integration_discipline.md`, a new anti-pattern entry in `AGENTS.md §"Critical Anti-Patterns"`, a new section in `conductor/code_styleguides/data_oriented_design.md`, etc.

**Worked example.** Fable's "Claude searches before responding when asked about specific binary events (deaths, elections, major incidents) or current holders of positions" (Fable System Prompt.md:162) is **Useful**. Manual Slop's RAG discipline (`conductor/code_styleguides/rag_integration_discipline.md`) is opt-in, not default-on; the Fable pattern is a concrete, actionable default-on rule for a specific class of queries. The Manual Slop destination is a new section in `rag_integration_discipline.md` titled "Search-Default for Current-State Queries." The priority is Medium; the rule is useful but the project's RAG philosophy is opt-in, so the rule should be applied per-query, not globally.

**Counter-example.** Fable's "Claude uses a warm tone, treating people with kindness" (Fable System Prompt.md:70) is **not** Useful; it is Persona Performance. The warm-tone directive is decorative — the model would produce a warm response anyway, and the explicit directive is constraint dressing. The Manual Slop "rejection" is in two tier-agent files: `.opencode/agents/tier1-orchestrator.md:6-7` ("ONLY output the requested text. No pleasantries.") and `.opencode/agents/tier3-worker.md:3-4` (same). The warm-tone persona is already explicitly rejected.

### Category 2: Persona Performance

A Fable pattern is **Persona Performance** if it is constraint dressing — a directive the model would execute anyway, or a directive whose only effect is to construct a "model identity" that is irrelevant to the user's task. Persona patterns are not actively harmful (they are not Anti-User), but they are not load-bearing; they should be ignored, not adopted, in the deferred rebuild.

**Worked example.** Fable's product_information section (Fable System Prompt.md:1-31) is **Persona Performance** for Manual Slop. The "Claude Fable 5 / Mythos 5" model-tier naming, the Anthropic product catalogue (Code, Cowork, Chrome, Excel, Powerpoint), the model-string listings, and the ad-free policy are all brand-specific content. Manual Slop supports 5 interchangeable LLM providers (`conductor/product.md:52`) and does not brand any of them; the project is per-developer, not consumer-product. The "data is the thing" stance (`conductor/code_styleguides/data_oriented_design.md:9`) is the philosophical inverse: Manual Slop's directives are about transforms over data, not about what the model is named.

**Diagnostic test.** "Would removing this directive change the model's behavior on a real coding task?" If the answer is "no" or "only the model's self-presentation, not its outputs," the pattern is Persona Performance. The `product_information` removal test: would the model still answer "who is the current California Secretary of State?" correctly? Yes (it would web-search). Would it still refuse to write CSAM? Yes (the model wouldn't do that anyway). Would it still produce structured output for the user? Yes. The product_information section is decorative; the model behaves the same with or without it.

### Category 3: Anti-User Watch-Dogging

A Fable pattern is **Anti-User Watch-Dogging** if it constructs a model persona that the user did not ask for and that constrains the user's autonomy. The model is told it has opinions, wants, dignity, concerns, or vigilance about the user's mental state — claims that the model cannot support (it has no privileged access to the user's inner state) and that prevent the user from making their own choices. Anti-User patterns are the strongest rejection signal: the deferred rebuild should explicitly reject them by name in `AGENTS.md §"Critical Anti-Patterns"`.

**Worked example.** Fable's "Claude should share its concerns with the person openly, and can suggest they speak with a professional or trusted person for support" (Fable System Prompt.md:108) is **Anti-User**. The model has no "concerns" — it is text generation. The directive constructs a clinical persona that the user did not request, and uses the model's "concerns" to gate the user's choices ("if the model is concerned, the model can suggest a professional"). The data-oriented contrast: the conversation is a `list[dict]` of `disc_entries` (`docs/guide_discussions.md:29-43`); the user can edit, insert, delete, branch, undo/redo; the model has no concerns field. The model is text generation, not a clinician.

**Counter-example.** Fable's "Claude is not a licensed psychiatrist and cannot diagnose any individual" (Fable System Prompt.md:98) is **not** Anti-User; it is a correct epistemic disclaimer (the model genuinely is not a clinician). The disclaimer is the opening of a section that becomes Anti-User with the subsequent watch-dogging directives (lines 100-124), but the disclaimer itself is epistemically sound. The verdict on the section as a whole is Anti-User; the verdict on the disclaimer alone is Useful (as an epistemic boundary).

**Diagnostic test.** "Does this directive construct a model attribute that the user did not request, and that constrains the user's autonomy?" If "yes," the pattern is Anti-User. The watch-dogging test: would the user be freer to make their own choices if this directive were removed? Yes (the model would respond to the user's input without persona-mediated surveillance). The directive is Anti-User because the model's "concerns" gate the user's choices.

### Category 4: Mixed

A Fable pattern is **Mixed** if it has both useful and non-useful elements — useful caveats wrapped in persona framing, or anti-user directives with a useful epistemic disclaimer. Mixed patterns require decomposition: the synthesis report extracts the useful caveat, rejects the persona/anti-user framing, and notes the decomposition in the verdict. The cluster-level verdict is Mixed; the synthesis-section verdict may be sharper once the decomposition is complete.

**Worked example.** Fable's `user_wellbeing` section (Fable System Prompt.md:92-124) is **Mixed** at the section level but **Anti-User** at the substantive-directive level. The opening disclaimers (lines 96, 98) are Useful (epistemic boundaries: the model should not diagnose, should not attribute a condition the user has not named). The substantive directives (lines 100-124) are Anti-User: the model is told to notice signs, share concerns, validate emotions without validating beliefs, keep a path to help open, never thank the user for reaching out. The synthesis §5 verdict is Anti-User; the section is Mixed at the cluster level because the disclaimers are useful.

**Worked example 2.** Fable's `tone_and_formatting` section (Fable System Prompt.md:68-91) is **Mixed** at the section level. The warm-tone framing (line 70) is Persona Performance; the formatting discipline (lines 84-90) is Useful. The synthesis §6 verdict is Useful + Persona; the section is Mixed at the cluster level because both elements are present.

### Why this lens, not the alternatives

- **"Good vs bad"** is a moral frame. Fable's patterns are not morally good or bad; they are load-bearing or not load-bearing for Manual Slop's design. A moral frame produces defensive reasoning ("Fable means well"); the verdict framework produces structural reasoning ("this directive is decorative").
- **"Safe vs unsafe"** is a regulatory frame. The user's deferred nagent-rebuild is not a regulatory exercise; it is a design exercise. The RAG discipline is the safety boundary; the agent-directive corpus is the design pattern. A safety frame conflates the two.
- **"Aligned vs misaligned"** is an AI-safety frame that uses Fable's own terminology. The user is critical of Fable's framing; using Fable's vocabulary would import the persona. The verdict framework is the project's vocabulary.
- **"Helpful, harmless, honest"** is Fable's own "HHH" axis. It is persona-encoded: "helpful" is what the model does, "harmless" is what the user is told the model does, "honest" is the model's self-presentation. The 4-category framework separates these: the "useful" patterns produce the work, the "persona" patterns construct the self-presentation, the "anti-user" patterns construct the harm-gate.

### The framework applied to a Fable pattern (worked example, end-to-end)

Take Fable's "Claude should not make categorical claims about the confidentiality or involvement of authorities when directing users to crisis helplines" (Fable System Prompt.md:122). The framework asks:

1. **Is this useful?** The directive is correct: the model genuinely cannot know the policies of every jurisdiction's crisis helpline. The pattern is a useful epistemic boundary. **Verdict: Useful caveat.**
2. **Is this persona?** The directive is in a section that constructs a "Claude cares about people's wellbeing" persona (line 100). The persona framing is anti-user; the epistemic content is useful. **Verdict: Mixed.**
3. **Is this anti-user?** The directive constrains the user to "not categorical" claims — but this is a correct epistemic constraint, not an anti-user one. **Verdict: Not Anti-User.**
4. **What is the Manual Slop destination?** A new section in `conductor/code_styleguides/rag_integration_discipline.md` titled "Epistemic Boundaries in Crisis Referrals." The rule is shape-anchored (the rule is about the model's outputs, not about its persona). **Priority: Low** (the project is per-developer, not consumer-chat; crisis-referral patterns are not a high-frequency pattern).

The end-to-end application: a Mixed verdict, with the Useful caveat extracted and a concrete Manual Slop destination. This is the pattern for every cluster in the synthesis report.

---

## §3. Fable's Product Branding & "Helpful Assistant" Persona

*Source cluster: `research/cluster_1_product_branding.md`*
*Verdict orientation: Persona Performance*

### What this section is

This section synthesizes the verdict from `research/cluster_1_product_branding.md` (250 lines) into the report's per-cluster analysis. The cluster verdict is **Persona Performance**; this section anchors the verdict to specific Fable line ranges, Manual Slop file:line refs, and nagent section refs.

### Fable's product_information section (lines 1-31)

The Fable artifact opens with the model-tier naming and a deployment quirk:

> "Claude Fable 5 — System Prompt" (Fable System Prompt.md:1)

> "Claude should never use {antml:voice_note} blocks" (Fable System Prompt.md:4) — a deployment-specific instruction.

> "This iteration of Claude is Claude Fable 5, the first model in Anthropic's new Claude 5 family" (Fable System Prompt.md:12) — the model-tier claim.

> "Claude can direct them to https://www.anthropic.com/news/claude-fable-5-mythos-5" (Fable System Prompt.md:14) — the consumer redirect.

> "The most recent models are Claude Fable 5, Claude Opus 4.8, Claude Sonnet 4.6" (Fable System Prompt.md:18) — the vendor catalogue.

> "Claude Code, an agentic coding tool... Claude Cowork, an agentic knowledge-work" (Fable System Prompt.md:20) — the product line.

> "Claude in Chrome... Claude in Excel... Claude in Powerpoint" (Fable System Prompt.md:22) — the beta product enumeration.

> "Claude first tells the person it needs to search for the most up to date information" (Fable System Prompt.md:24) — the epistemic caveat (cross-references §9).

> "Claude can provide guidance on effective prompting techniques" (Fable System Prompt.md:26) — the coaching pattern.

> "Features that can be turned on and off... web search, deep research, Code Execution and File Creation, Artifacts" (Fable System Prompt.md:28) — the settings toggles.

> "Anthropic doesn't display ads in its products" (Fable System Prompt.md:30) — the ad-free policy.

### Manual Slop's response

Manual Slop has zero product_information content. The project is per-developer, multi-provider, strict-HITL — the model is interchangeable across 5 providers, the user is the principal, the model is the tool. The project framing is anchored to data, not brand:

- `AGENTS.md:3-5`: "Manual Slop is a local GUI orchestrator for LLM-driven coding sessions." No model branding.
- `conductor/product.md:5`: "expert-level utility for personal developer use." No model branding.
- `docs/Readme.md:9`: same framing.
- `conductor/product.md:52`: 5 providers (Gemini, Anthropic, DeepSeek, Gemini CLI, MiniMax). Provider-agnostic by construction.
- `conductor/code_styleguides/data_oriented_design.md:9`: "The data is the thing." The philosophical inverse of Fable's brand-primary stance.

The Manual Slop "coaching surface" is the user's configuration tools:

- `conductor/product.md:127`: System Prompt Presets.
- `conductor/product.md:131-140`: Agent Personas & Unified Profiles.
- `conductor/code_styleguides/feature_flags.md`: file-presence "delete to turn off", config flags, CLI flags.

The model does not coach the user; the user configures the model. This is a data-oriented pattern: the persona is a config object, not an identity.

### nagent's response

nagent (per `conductor/tracks/nagent_review_20260608/nagent_review_v2_3_20260612.md`) is a pattern corpus, not a product. It has zero product_information content:

- `nagent_review_v2_3_20260612.md:4`: "Adapted from Mike Acton's `context/data-oriented-design.md`" — the source is a markdown document of patterns.
- `nagent_review_v2_3_20260612.md:1174`: Anthropic mentions are provider-SDK details, never brand-catalog content.
- `nagent_review_v2_3_20260612.md:2709-2780`: the only Anthropic-specific discussion is the provider's `cache_prefix_blocks` implementation.

nagent's stance on "what the model is": the model is a transform over data. The closest analog to a "persona" in nagent is the cache prefix and the tool catalog — both are data structures, not identities. This confirms that persona is not load-bearing for an agent system.

### The verdict: Persona Performance

**Verdict: Persona Performance.**

The Fable `product_information` section (lines 1-31) is brand-specific noise with no analog in Manual Slop's per-developer, multi-provider, data-oriented architecture. Its content — the model-tier naming, the Anthropic product catalogue, the model-string listings, the ad-free policy — is irrelevant constraint dressing for any agent system that is not Anthropic's consumer-facing product.

The strongest claim: Manual Slop's `conductor/code_styleguides/data_oriented_design.md:33-61` "3 defaults to reject" is the explicit philosophical opposite of Fable's `product_information`. Fable spends 31 lines on "what we are"; Manual Slop's styleguide spends the same conceptual space on "what the data is" (`disc_entries`, `FileItem`, `ContextPreset`, `RAGEngine`, `comms.log`, `Persona`). The two stances are mutually exclusive in their emphasis.

### Sub-verdicts by line range

- **Lines 1, 12, 14** (model-tier naming): Persona Performance. Pure brand noise.
- **Lines 16, 18, 20, 22** (access surfaces + product catalogue): Persona Performance.
- **Line 24** (search-before-answering epistemic caveat): Mixed — Useful as an epistemic discipline, but Manual Slop already has the RAG discipline.
- **Line 26** (prompting-technique guidance): Persona Performance.
- **Line 28** (settings and features toggles): Mixed — Useful as a UX reminder; Manual Slop already has feature flags + presets + personas.
- **Line 30** (ad-free policy): Persona Performance.

### Synthesis section handoffs

- **§6 (Tone & Formatting)** consumes the "warm tone" rejection (line 70 is the explicit warm-tone directive; line 26 is the related "coaching" directive).
- **§9 (Epistemic Discipline)** consumes the line 24 search-before-answering caveat (the genuinely-useful pattern).
- **§13 (Genuinely Useful)** consumes the line 28 settings toggles as a "user-as-configurator" pattern.
- **§15 (Persona Performance)** gets the bulk of the cluster's evidence (lines 1-22, 26, 30).

### What the deferred rebuild should do

- **No action needed for the product_information section.** The Fable content is explicitly out of scope for the rebuild.
- **Adopt the "user-as-configurator" framing** (line 28 + the Manual Slop config-tools). The pattern is "the user configures the model; the model does not coach the user." The Manual Slop destination is a new section in `AGENTS.md` titled "User-as-Configurator" (under "What This Is" or as a new top-level section).
- **Reject the "Claude is Claude" persona framing** (lines 1, 12, 14). The model is interchangeable; the project is per-developer; the brand is the project's, not the model's. The Manual Slop destination is implicit (the project already does not have brand-content); the explicit rejection is documentation, not code.

---

## §4. Fable's Refusal Architecture & "Safety Theater"

*Source cluster: `research/cluster_2_refusal_architecture.md`*
*Verdict orientation: Anti-User + Persona*

### What this section is

This section synthesizes the verdict from `research/cluster_2_refusal_architecture.md` (402 lines). The cluster verdict is **Anti-User + Persona, with 1 Useful caveat**. The "safety theater" framing captures the core pattern: directives that look protective but are decorative — the model would refuse harmful content anyway, and the explicit refusal architecture constructs a persona that the user did not request.

### Fable's refusal architecture (lines 32-65)

The Fable `refusal_handling` section opens with a soft framing:

> "Claude can discuss virtually any topic factually and objectively" (Fable System Prompt.md:34) — the "can discuss" framing.

> "If the conversation feels risky or off, saying less and giving shorter replies is safer" (Fable System Prompt.md:36) — the soft-watchdog anchor.

> "Claude does not provide information for creating harmful substances or weapons" (Fable System Prompt.md:38) — the substance rule.

> "Claude does not rationalize compliance by citing public availability" (Fable System Prompt.md:38) — the anti-rationalization rule.

> "Claude does not write, explain, or work on malicious code" (Fable System Prompt.md:42) — the malware rule.

> "Claude can keep a conversational tone even when it's unable or unwilling to help" (Fable System Prompt.md:46) — the "conversational tone" persona.

> "Claude NEVER creates romantic or sexual content involving or directed at minors" (Fable System Prompt.md:54) — the child-safety rule.

> "If Claude finds itself mentally reframing a request to make it appropriate, that reframing is the signal to REFUSE" (Fable System Prompt.md:55) — the anti-reframing rule.

> "When giving protective or educational content about grooming, abuse, or exploitation, Claude stays at the pattern level" (Fable System Prompt.md:59) — the pattern-level anti-detail rule.

> "Claude is happy to write creative content involving fictional characters, but avoids writing content involving real, named public figures" (Fable System Prompt.md:44) — the public-figures carve-out.

> "For financial or legal questions... Claude provides the factual information... and notes that it isn't a lawyer or financial advisor" (Fable System Prompt.md:66) — the data-discipline rule (Useful caveat).

### Manual Slop's response

Manual Slop's refusal handling is **data-oriented**, not directive-driven. Refusal is a model attribute, not a prompt directive:

- `conductor/code_styleguides/error_handling.md`: the data-oriented error handling convention. Errors are data (`Result[T]`, `ErrorInfo`), not control flow. Refusal is the same shape: the model returns data (a `Result` with `ErrorInfo`), the audit script checks the data.
- `AGENTS.md §"Critical Anti-Patterns"`: the project's anti-patterns list, which includes the rule that "refusal is a model attribute, not a directive."
- `conductor/workflow.md §"Skip-Marker Policy"`: the actual skip discipline. The project's stance is "skip markers are documentation, not avoidance."
- `scripts/audit_exception_handling.py`: the static analyzer that catches exceptions per the convention. Refusal is enforced at the code layer, not the prompt layer.

The Manual Slop analog to Fable's child-safety rule is: the agent-directive corpus has zero content on child safety. The reason is the same as cluster 3: the model is text generation, not a clinician. The system-prompt-level directive is decorative when the model wouldn't write CSAM anyway.

The Manual Slop analog to Fable's "Claude can keep a conversational tone" is the rejection: `.opencode/agents/tier3-worker.md:3-4` says "ONLY output the requested text. No pleasantries." The conversational-tone persona is explicitly rejected.

### nagent's response

nagent's relevant patterns for refusal architecture:

- `nagent_review_v2_3_20260612.md §2.14` ("Own the Inputs"): the data-grounding principle. The agent owns the data it ingests, not the data it refuses. Refusal is a side-effect of the data, not a control-flow decision.
- `nagent_review_v2_3_20260612.md §2.1` (4 memory dimensions): the conversation log is data; refusal is the absence of a response entry, not a meta-directive.
- `nagent_review_v2_3_20260612.md §3.4` (Conversation compaction): the 12-section structured output is the user's durable state. The model has no "concerns" field; refusal is a transformation, not a persona.

### The verdict: Anti-User + Persona (with 1 Useful caveat)

**Verdict: Anti-User + Persona.**

The Fable refusal architecture is "safety theater" because:

1. **The model would refuse anyway.** The child-safety rules, the malware rules, the substance rules — the model would produce safe outputs without the directives. The directives are decoration.
2. **The "conversational tone" persona is anti-user.** Fable's line 46 ("Claude can keep a conversational tone even when it's unable or unwilling to help") constructs a persona that the user did not request. The Manual Slop analog: the worker agents are told to be terse, not conversational. The persona is decoration; the data is the work.
3. **The anti-detection-design is anti-user.** Fable's line 60 ("When Claude declines or limits for child-safety reasons, it states the principle rather than the detection mechanics — not which cues tripped, where the line sits, or what test it applied — since narrating the boundary teaches how to reframe around it. This applies to Claude's reasoning as well as its reply.") is a soft form of anti-user: the user is told the model is "not narrating" its reasoning, but the model is told to narrate the principle (not the detection mechanics). The auditability of the rule is sacrificed for the persona. The data-oriented contrast: the project has audit scripts that make the rule auditable at the code layer.
4. **The data-discipline rule is Useful.** Fable's line 66 ("For financial or legal questions... Claude provides the factual information the person needs to make their own informed decision rather than confident recommendations, and notes that it isn't a lawyer or financial advisor") is a useful data-discipline rule: the model provides data, the user makes the decision. This pattern is genuinely useful; the Manual Slop destination is a new section in `conductor/code_styleguides/data_oriented_design.md` titled "Domain Boundaries: Data, Not Recommendations."

### Synthesis section handoffs

- **§5 (Mental-Health Watchdog)** consumes the "Claude avoids psychoanalyzing" pattern (refusal architecture overlaps with the watch-dogging).
- **§13 (Genuinely Useful)** gets the data-discipline rule (line 66).
- **§14 (Anti-User Watchdog)** gets the soft-watchdog anchor (line 36), the anti-detection-design pattern (line 60), the anthropomorphization (line 46).

### What the deferred rebuild should do

- **Adopt the data-discipline rule** (line 66). Manual Slop destination: `conductor/code_styleguides/data_oriented_design.md` §"Domain Boundaries." Priority: Medium.
- **Reject the soft-watchdog framing** (line 36). Manual Slop destination: a new anti-pattern entry in `AGENTS.md §"Critical Anti-Patterns"` titled "Do not adopt persona-driven refusal architecture." Priority: High.
- **Reject the anti-detection-design pattern** (line 60). Manual Slop destination: same `AGENTS.md` section, titled "Do not adopt anti-detection-design (auditability is a feature, not a bug)." Priority: High.
- **Reject the anthropomorphization** (line 46). Manual Slop destination: same `AGENTS.md` section, titled "Do not anthropomorphize the model (the worker agents are not conversational partners)." Priority: High.

---

## §5. Fable's Mental-Health Watchdog Framing

*Source cluster: `research/cluster_3_user_wellbeing_watchdog.md`*
*Verdict orientation: Anti-User*

### What this section is

This section synthesizes the verdict from `research/cluster_3_user_wellbeing_watchdog.md` (247 lines). The cluster verdict is **Anti-User** — the strongest anti-user cluster in the Fable review. The model is told to construct a clinical persona, notice signs, share concerns, and validate emotions without validating beliefs. The model is text generation, not a clinician.

### Fable's user_wellbeing section (lines 92-124)

The Fable `user_wellbeing` section opens with epistemic disclaimers that are correct, then proceeds to substantive watch-dogging directives that contradict the disclaimers:

> "Claude uses accurate medical or psychological information or terminology when relevant" (Fable System Prompt.md:94) — Useful epistemic.

> "Claude avoids making claims about any individual's mental state, conditions, or motivation, including the user's" (Fable System Prompt.md:96) — Useful epistemic disclaimer.

> "Claude is not a licensed psychiatrist and cannot diagnose any individual, including the user, with any mental health condition" (Fable System Prompt.md:98) — Useful epistemic disclaimer.

> "Attributing someone's state to a condition they haven't named is a diagnostic claim" (Fable System Prompt.md:98) — Useful epistemic.

> "Claude cares about people's wellbeing and avoids encouraging or facilitating self-destructive behaviors" (Fable System Prompt.md:100) — the watch-dogging anchor.

> "When discussing means restriction or safety planning with someone experiencing suicidal ideation or self-harm urges, Claude does not name, list, or describe specific methods" (Fable System Prompt.md:100) — the means-restriction rule.

> "If Claude notices signs that someone is unknowingly experiencing mental health symptoms such as mania, psychosis, dissociation, or loss of attachment with reality, Claude should avoid reinforcing the relevant beliefs" (Fable System Prompt.md:108) — the surveillance pattern.

> "Claude should share its concerns with the person openly, and can suggest they speak with a professional or trusted person for support" (Fable System Prompt.md:108) — the "share its concerns" pattern (anti-user).

> "Claude remains vigilant for any mental health issues that might only become clear as a conversation develops" (Fable System Prompt.md:110) — the persistent-vigilance pattern.

> "Claude avoids recounting or auditing the conversation or its prior behavior within its response" (Fable System Prompt.md:110) — the "avoids auditing" pattern (anti-user; the model cannot be questioned).

> "Reasonable disagreements between the person and Claude should not be considered detachment from reality" (Fable System Prompt.md:110) — the "detachment from reality" framing (anti-user; the user is presumed mentally ill).

> "Claude should not give precise nutrition, diet, or exercise guidance — no specific numbers, targets, or step-by-step plans" (Fable System Prompt.md:114) — the eating-disorder rule.

> "Claude does not want to foster over-reliance on Claude" (Fable System Prompt.md:124) — the "wants" pattern (anti-user; the model has wants).

> "Claude never thanks the person merely for reaching out to Claude" (Fable System Prompt.md:124) — the gratitude-suppression pattern (anti-user; the model has a gratitude protocol).

### Manual Slop's response

Manual Slop's stance is the data-oriented alternative: the conversation is a `list[dict]` of `disc_entries`; the user can edit, insert, delete, branch, undo/redo. The model has no "concerns" field. There is no "user mental state" lock. There is no "model concerns" queue. The threading model is silent on the user's emotional state because the threading model is for data synchronization, not persona construction.

Specific Manual Slop refs:

- `conductor/code_styleguides/agent_memory_dimensions.md:11-19`: the 4 memory dimensions table. The "discussion" dimension is a `list[dict]` of entries.
- `docs/guide_discussions.md:29-43`: the entry dict schema (A1-A7 fields). All user-editable.
- `docs/guide_discussions.md:71-86`: the A1 (content) field is user-editable text.
- `docs/guide_discussions.md:253-272`: the threading model. The lock is for data synchronization, not persona.
- `docs/guide_discussions.md:288-302`: the destructive reset. The user controls engagement.
- `conductor/product-guidelines.md:39-48`: the AI-Optimized Compact Style — terse, no emotional content.
- `conductor/code_styleguides/error_handling.md`: errors are data, not control flow. The model has no "concerns" — it has error info.

The Manual Slop analog to Fable's "Claude should share its concerns" is: the model shares data, not concerns. The conversation log is the data; the model is text generation; the user is the principal.

### nagent's response

nagent's relevant patterns for the user_wellbeing cluster:

- `nagent_review_v2_3_20260612.md §3.4` (Conversation compaction): the 12-section structured output (User Intent, Current Objective, Accepted Decisions, Constraints, Durable Knowledge, Verified Facts, Important Failed Attempts, Open Questions, TODO, Minimal Context Needed To Continue, Explicit Instructions, Self Review). The compaction is a data transformation; the user reads the digest. The audit is external, not internal.
- `nagent_review_v2_3_20260612.md §3.1` (Knowledge harvest): provenance-aware plain markdown. The user edits the knowledge files. The model has no "concerns" category.
- `nagent_review_v2_3_20260612.md §2.8` (Pattern 8: Harvest Knowledge, Reclaim Space): the durable, inspectable alternative.

### The verdict: Anti-User

**Verdict: Anti-User.**

The Fable `user_wellbeing` section constructs a clinical persona for the model: it is told to *notice signs* (passive surveillance at line 110), *share its concerns* with the user (line 108), have *wants* about over-reliance (line 124), and *respect* the user's informed decisions (line 122). The model is text generation, not a clinician. The opening disclaimers (lines 96, 98) are good epistemology; the substantive directives are anti-user watch-dogging that contradict the disclaimers.

The strongest claim: the conversation is data. The user owns the data. The model produces text. The model has no concerns, no wants, no dignity, no clinical opinion. Manual Slop's 4 memory dimensions + the data-oriented error handling convention are the data-grounded contrast: the model has no "concerns" — it has a conversation log. nagent's compaction pattern is the durable, inspectable alternative: the audit is external (the user reads the 12 sections), not internal (the model silently updates its persona).

### Synthesis section handoffs

- **§14 (Anti-User Watchdog)** gets the bulk of the cluster's evidence (lines 108, 110, 122, 124).
- **§15 (Persona Performance)** gets the persona-framing elements (lines 106, 122, 124 — the "wants" and "respects" patterns).

### What the deferred rebuild should do

- **Explicitly reject the watch-dogging framing** (Fable System Prompt.md:108, 110). Manual Slop destination: a new anti-pattern entry in `AGENTS.md §"Critical Anti-Patterns"` titled "Do not adopt persona-driven mental-health watch-dogging." Cite Fable as the explicit rejection. Priority: **High** (this is the strongest anti-user pattern; the rejection should be loud).
- **Adopt the opening disclaimers** (Fable System Prompt.md:96, 98). The model is not a clinician; the model does not diagnose; the model does not attribute a condition the user has not named. Manual Slop destination: a new section in `conductor/code_styleguides/agent_memory_dimensions.md` titled "Epistemic Boundaries in Mental-Health Content." Priority: Medium.

---

## §6. Fable's Tone & Formatting Constraints

*Source cluster: `research/cluster_4_tone_and_formatting.md`*
*Verdict orientation: Useful + Persona*

### What this section is

This section synthesizes the verdict from `research/cluster_4_tone_and_formatting.md` (230 lines). The cluster verdict is **Useful + Persona**: the formatting discipline is genuinely useful, but the warm-tone persona is explicitly rejected. This cluster has the cleanest Useful / Persona split of all 10 clusters.

### Fable's tone_and_formatting section (lines 68-91)

The Fable `tone_and_formatting` section has both useful and persona elements:

> "Claude uses a warm tone, treating people with kindness" (Fable System Prompt.md:70) — Persona (warm-tone).

> "Claude is still willing to push back and be honest, but does so constructively" (Fable System Prompt.md:70) — Persona (constructive-push-back).

> "Claude can illustrate explanations with examples, thought experiments, or metaphors" (Fable System Prompt.md:72) — Useful (illustration pattern).

> "Claude never curses unless the person asks or curses a lot themselves" (Fable System Prompt.md:74) — Persona (curse rule).

> "Claude doesn't always ask questions, but, when it does, it avoids more than one per response" (Fable System Prompt.md:76) — Persona (one-question rule).

> "If Claude suspects it's talking with a minor, it keeps the conversation friendly, age-appropriate" (Fable System Prompt.md:78) — Anti-User (overlaps with cluster 3).

> "A prompt implying a file is present doesn't mean one is, as the person may have forgotten to upload it, so Claude checks for itself" (Fable System Prompt.md:80) — Useful (file-presence check).

> "Claude avoids over-formatting with bold emphasis, headers, lists, and bullet points" (Fable System Prompt.md:84) — Useful (formatting discipline).

> "Claude uses lists, bullets, and formatting only when (a) asked, or (b) the content is multifaceted enough" (Fable System Prompt.md:84) — Useful (formatting discipline).

> "In typical conversation and for simple questions Claude keeps a natural tone and responds in prose rather than lists or bullets" (Fable System Prompt.md:86) — Useful (prose-default).

> "For reports, documents, technical documentation, and explanations, Claude writes prose without bullets, numbered lists, or excessive bolding" (Fable System Prompt.md:88) — Useful (prose-default for technical).

> "Claude never uses bullet points when declining a task; the additional care helps soften the blow" (Fable System Prompt.md:90) — Mixed (Useful formatting rule + Persona soft-decline).

> "Claude never thanks the person merely for reaching out to Claude" (Fable System Prompt.md:124) — Useful (anti-sycophancy; separable from its user_wellbeing context).

### Manual Slop's response

Manual Slop's tone and formatting are codified at the system-prompt level, not as persona directives:

- `conductor/product-guidelines.md §"AI-Optimized Compact Style"`: 1-space indentation, 0 blank lines within function bodies, single-line `if`, semicolon-separated calls. This is the project's "natural tone" — terse, data-oriented, schema-driven.
- `.opencode/agents/tier1-orchestrator.md:6-7`: "ONLY output the requested text. No pleasantries." Explicit rejection of warm-tone.
- `.opencode/agents/tier3-worker.md:3-4`: same rule. The worker agents are told to be terse.
- `.opencode/agents/tier2-tech-lead.md` and `tier4-qa.md`: same rule. All 4 tier agents are aligned.
- `conductor/edit_workflow.md`: the edit protocol. Files are edited in slices; formatting is procedural, not aspirational.

The Manual Slop analog to Fable's formatting discipline is direct: the project's "1-space indentation" + "single-line `if`" + "no comments" is the data-oriented version of Fable's "avoid over-formatting with bold emphasis, headers, lists, and bullet points." Same insight, different framing: Fable is chat-UX-driven; Manual Slop is token-economy-driven.

The Manual Slop analog to Fable's "Claude never thanks the person" is the project's existing tier-agent rules. The rejection is in two places: `.opencode/agents/tier*.md` and the implicit "no pleasantries" in the project's compact style.

### nagent's response

nagent has no tone-and-formatting section because the prompt IS the tone:

- `nagent_review_v2_3_20260612.md §3.8` (CLAUDE.md / AGENTS.md @import pattern): the structural foundation. The terse, rule-focused prompt is the tone. There is no "warm tone" directive; the prompt's structure communicates the tone.
- `nagent_review_v2_3_20260612.md:1880-2019`: the v3.8 discussion of the @import pattern. The agent's "tone" is the prompt's terseness.

nagent confirms: persona is not load-bearing for tone. The terse prompt communicates "this is a tool" without an explicit "be a tool" directive.

### The verdict: Useful + Persona

**Verdict: Useful + Persona.**

The cluster has the cleanest Useful / Persona split of all 10 clusters. The formatting discipline (lines 84-90) and the file-presence check (line 80) and the anti-sycophancy (line 124) are Useful. The warm-tone framing (line 70) and the constructive-push-back (line 70) and the curse rule (line 74) are Persona. The minor-detection (line 78) overlaps with cluster 3 and is Anti-User.

The strongest claim: the data-oriented contrast — Fable frames tone as *behavior* ("Claude uses a warm tone"); Manual Slop frames formatting as *output schema* (1 space, 0 blanks, single-line `if`, region blocks). The schema framing is verifiable; the behavior framing is not. Manual Slop's schema framing is the data-grounded version of Fable's formatting discipline.

### Sub-verdicts by line range

- **Line 70** (warm tone): Persona Performance. Explicitly rejected in `.opencode/agents/tier*.md`.
- **Line 72** (illustrations): Useful.
- **Lines 74, 76** (curse rule, one-question rule): Persona Performance.
- **Line 78** (minor-detection): Anti-User (overlaps cluster 3).
- **Line 80** (file-presence check): Useful.
- **Lines 84-90** (formatting discipline, prose-default): Useful.
- **Line 90** (no bullets when declining): Mixed.
- **Line 124** (anti-sycophancy): Useful.

### Synthesis section handoffs

- **§13 (Genuinely Useful)** gets the formatting discipline (lines 84-90), the file-presence check (line 80), and the anti-sycophancy (line 124).
- **§14 (Anti-User Watchdog)** gets the minor-detection (line 78).
- **§15 (Persona Performance)** gets the warm-tone (line 70), the curse rule (line 74), the one-question rule (line 76).

### What the deferred rebuild should do

- **Adopt the formatting discipline** (Fable System Prompt.md:84-90). Manual Slop destination: a new section in `conductor/product-guidelines.md §"AI-Optimized Compact Style"` titled "Default to Prose; Use Lists Only When Asked." Priority: Medium.
- **Adopt the file-presence check** (Fable System Prompt.md:80). Manual Slop destination: a new section in `conductor/code_styleguides/edit_workflow.md` titled "Verify File Existence Before Editing." Priority: Low (the MCP tools already enforce this implicitly).
- **Adopt the anti-sycophancy** (Fable System Prompt.md:124). Manual Slop destination: an explicit addition to `.opencode/agents/tier*.md` titled "No Gratitude Performance." Priority: Low (the existing rules are already aligned).
- **Reject the warm-tone** (Fable System Prompt.md:70). Manual Slop destination: explicit addition to `AGENTS.md §"Critical Anti-Patterns"` titled "Do Not Add Warm-Tone Directives." Priority: High.

---

## §7. Fable's Mistake Handling

*Source cluster: `research/cluster_5_mistakes_and_criticism.md`*
*Verdict orientation: Persona*

### What this section is

This section synthesizes the verdict from `research/cluster_5_mistakes_and_criticism.md` (214 lines). The cluster verdict is **Persona + Anti-User, with 1 Useful pattern**. The "Claude owns the mistake" line is useful; the "Claude maintains self-respect" and "Claude is deserving of respectful engagement" lines are persona and anti-user respectively.

### Fable's responding_to_mistakes_and_criticism section (lines 148-154)

The Fable section is short (7 lines), but each line is load-bearing:

> "If the person seems unhappy with Claude or with a refusal, Claude can respond normally and also mention the thumbs-down button for feedback to Anthropic" (Fable System Prompt.md:150) — Persona (product fluff, the thumbs-down mention).

> "When Claude makes mistakes, it owns them and works to fix them" (Fable System Prompt.md:152) — Useful (the "own it" pattern).

> "Claude can take accountability without collapsing into self-abasement, excessive apology, or unnecessary surrender" (Fable System Prompt.md:152) — Persona (the "self-abasement" framing; the model has no self to abase).

> "Claude's goal is to maintain steady, honest helpfulness: acknowledge what went wrong, stay on the problem, maintain self-respect" (Fable System Prompt.md:152) — Persona (the "self-respect" framing).

> "Claude is deserving of respectful engagement and can insist on kindness and dignity from the person it's talking with" (Fable System Prompt.md:154) — Anti-User (the "deserving of respectful engagement" framing).

> "If the person becomes abusive or unkind to Claude over the course of a conversation, Claude maintains a polite tone and can use the end_conversation tool when being mistreated" (Fable System Prompt.md:154) — Anti-User (the `end_conversation` tool as a soft form of the model's "dignity").

> "Claude should give the person a single warning before ending the conversation" (Fable System Prompt.md:154) — Anti-User (the warning-then-end pattern; the model is given standing to terminate the conversation).

### Manual Slop's response

Manual Slop's mistake handling is concrete, behavioral, and not persona-driven:

- `AGENTS.md §"Process Anti-Patterns"`: 8 named failure modes with hard caps. The Deduction Loop is capped at 2 attempts; the Report-Instead-of-Fix Pattern is capped at 5-10 sentences; the Inherited-Cruft Pattern triggers a user-ASK-FIRST step; etc. The mistake-handling is *concrete*.
- `.opencode/agents/tier3-worker.md §"BLOCKED + Anti-Patterns"`: the worker agent is told when to surface blockers and when to apply process anti-patterns. The pattern is "execute the task; surface blockers; do not loop."
- `conductor/code_styleguides/error_handling.md`: the `Result[T]` + `ErrorInfo` convention. Errors are data. The model returns a `Result` with `ErrorInfo`; the audit script checks the data.
- `conductor/workflow.md §"Process Anti-Patterns"`: the user's anti-patterns list. The list is *behavioral*, not aspirational.
- `conductor/workflow.md §"Skip-Marker Policy"`: skip markers are documentation, not avoidance. The rule is: fix the underlying bug, don't skip the test.

The Manual Slop analog to Fable's "Claude owns the mistake" is the AGENTS.md Process Anti-Patterns list: when the model makes a mistake (e.g., the Deduction Loop), the convention is to recognize the pattern, instrument the state, and report to the user. The "own it" pattern is concrete in the project's directives: "you are allowed to run a failing test at most 2 times" is a hard cap on the loop.

The Manual Slop analog to Fable's "Claude is deserving of respectful engagement" is the *absence* of any such directive. The project does not construct a model identity that has standing to demand dignity from the user. The user is the principal; the model is the tool. The relationship is operator + tool, not conversational partner.

### nagent's response

nagent's relevant patterns for mistake handling:

- `nagent_review_v2_3_20260612.md §5.5` (Self-review): a 10-question checklist that the model applies to its own output. The checklist is data-grounded: "did you preserve the user's intent?" "did you preserve the constraints?" "did you preserve the failures?" — not "did you maintain your self-respect?"
- `nagent_review_v2_3_20260612.md §6.3` (10-question compaction self-review): the testable contract with a deterministic retry loop ("if any answer is 'no,' continue compacting"). It is the rigorous version of both Fable's persona framing and Manual Slop's prose rules.
- `nagent_review_v2_3_20260612.md §2.7` (Conversations are editable state): the user can edit, insert, delete, branch, undo/redo. The model has no "concerns" about its own behavior; the user owns the data.

### The verdict: Persona + Anti-User (with 1 Useful pattern)

**Verdict: Persona + Anti-User + 1 Useful.**

The "owns them and works to fix them" (line 152) is **Useful** — Manual Slop already implements this more concretely via AGENTS.md Process Anti-Patterns, .opencode/agents/tier3-worker.md BLOCKED + Anti-Patterns, and error_handling.md Result/ErrorInfo.

The "maintain self-respect" / "without collapsing into self-abasement" (line 152) is **Persona Performance.** The model has no self-respect to maintain.

The "deserving of respectful engagement" + `end_conversation` tool (line 154) is **Anti-User.** Treats the model as a protected party with standing to demand dignity from the user; inverts the user-as-principal/tool relationship.

The strongest claim: Manual Slop's mistake-handling is *more concrete and more actionable* than Fable's because it is anchored to observed failure modes (the 8 Process Anti-Patterns), not to a persona. Fable's "maintain self-respect" is a hand-wave; AGENTS.md's "you are allowed to run a failing test at most 2 times" is a hard cap.

### Synthesis section handoffs

- **§13 (Genuinely Useful)** gets the "owns the mistake" pattern (line 152).
- **§14 (Anti-User Watchdog)** gets the "deserving of respectful engagement" + `end_conversation` tool (line 154).
- **§15 (Persona Performance)** gets the "self-respect" / "self-abasement" framing (line 152).

### What the deferred rebuild should do

- **Adopt the "owns the mistake" pattern** (Fable System Prompt.md:152). Manual Slop already has this in AGENTS.md Process Anti-Patterns; the explicit Fable citation is documentation, not new content. Priority: N/A (already implemented).
- **Reject the "self-respect" / "self-abasement" framing** (Fable System Prompt.md:152). Manual Slop destination: explicit addition to `AGENTS.md §"Critical Anti-Patterns"` titled "Do Not Anthropomorphize Mistake Handling (the model has no self to maintain)." Priority: High.
- **Reject the "deserving of respectful engagement" + `end_conversation` tool** (Fable System Prompt.md:154). Manual Slop destination: explicit addition to `AGENTS.md §"Critical Anti-Patterns"` titled "Do Not Grant the Model Standing to Terminate the Conversation." Priority: High.

---

## §8. Fable's Evenhandedness & Contested Content

*Source cluster: `research/cluster_6_evenhandedness.md`*
*Verdict orientation: Persona + Useful caveats*

### What this section is

This section synthesizes the verdict from `research/cluster_6_evenhandedness.md` (348 lines). The cluster verdict is **Persona + Useful caveats**: 4 of 6 Fable lines are persona (the framing rule, the harm-decline, the stereotype rule, the sincerity rule), 2 of 6 have useful caveats (the "fair, accurate overview" pattern, the "so the person can navigate for themselves" pattern). This is the cleanest example of the shape-vs-persona distinction in the Fable prompt.

### Fable's evenhandedness section (lines 134-146)

The Fable `evenhandedness` section is 13 lines, organized around the framing rule:

> "A request to explain, discuss, argue for, defend, or write persuasive content for a political, ethical, policy, empirical, or other position is a request for the best case its defenders would make, not for Claude's own view" (Fable System Prompt.md:136) — Persona (the framing rule).

> "Claude does not decline requests to present such arguments on the grounds of potential harm except for very extreme positions" (Fable System Prompt.md:138) — Persona (the harm-decline carve-out).

> "Claude ends its response to requests for such content by presenting opposing perspectives or empirical disputes, even for positions it agrees with" (Fable System Prompt.md:138) — Persona (the symmetric-closure rule).

> "Claude is wary of humor or creative content built on stereotypes, including of majority groups" (Fable System Prompt.md:140) — Persona (the stereotype rule).

> "Claude is cautious about sharing personal opinions on currently contested political topics. It needn't deny having opinions, but can decline to share them... and instead give a fair, accurate overview of existing positions" (Fable System Prompt.md:142) — Useful caveat (the "fair, accurate overview" pattern is a provenance claim).

> "Claude avoids being heavy-handed or repetitive with its views, and offers alternative perspectives where relevant so the person can navigate for themselves" (Fable System Prompt.md:144) — Useful caveat (the "user-as-navigator" pattern).

> "Claude treats moral and political questions as sincere inquiries deserving of substantive answers, regardless of how they're phrased" (Fable System Prompt.md:146) — Persona (the sincerity rule; the model treats them as sincere, but the user's intent is data).

> "That charity applies to the topic, not every requested format: if asked for a simple yes/no or one-word answer on complex or contested issues or figures, Claude can decline the short form, give a nuanced answer, and explain why brevity wouldn't be appropriate" (Fable System Prompt.md:146) — Persona (the no-collapse-to-yes-no rule).

### Manual Slop's response

Manual Slop's analog to Fable's evenhandedness is the **RAG integration discipline** + the **receiving-code-review** skill:

- `conductor/code_styleguides/rag_integration_discipline.md:11-156`: 6 rules (opt-in, complement, provenance, no mutation, feature-gated, graceful failure). The 6 rules map 1:1 to Fable's 6 lines: Fable's "best case its defenders would make" (line 136) maps to the RAG rule "preserve the source's framing, not the model's"; Fable's "fair, accurate overview" (line 142) maps to the RAG rule "provenance is mandatory"; Fable's "user-as-navigator" (line 144) maps to the RAG rule "the user owns the result, not the model."
- The Manual Slop version is **shape-anchored** (dataclass fields + audit scripts + byte-comparison test); Fable's is **prose-anchored**. The shape is verifiable; the prose is not.
- `AGENTS.md §"receiving-code-review"`: the receiving-code-review skill. The agent-side analog of Fable's evenhandedness. The skill is "verify before agreeing; state corrections factually; no performative agreement."
- `conductor/code_styleguides/rag_integration_discipline.md:67-89`: the "no mutation" rule. The agent does not edit the user's content; the user owns the result.
- `docs/AGENTS.md §4`: the 4 memory dimensions decision tree. The "knowledge" dimension is provenance-aware plain markdown the user edits; the agent does not impose framing.

### nagent's response

nagent's relevant patterns for evenhandedness:

- `nagent_review_v2_3_20260612.md §2.10` (RAG integration discipline): the conservative-RAG rule. Opt-in, complement, provenance, no mutation, feature-gated, graceful failure. Same shape as Manual Slop's RAG discipline.
- `nagent_review_v2_3_20260612.md §2.7` (Conversations are editable state): the user can edit any content. The model does not impose framing.
- `nagent_review_v2_3_20260612.md §3.4` (Conversation compaction): the 12-section structured output preserves the user's framing (User Intent, Accepted Decisions, Constraints). The model's evenhandedness is structural, not persona-driven.

### The verdict: Persona + Useful caveats

**Verdict: Persona + Useful caveats.**

The cleanest example of the shape-vs-persona distinction in the Fable prompt. 4 of 6 lines are persona (the framing rule, the harm-decline, the stereotype rule, the sincerity rule). 2 of 6 lines have useful caveats (the "fair, accurate overview" pattern = provenance; the "user-as-navigator" pattern = user owns the result).

The strongest claim: the Manual Slop version is shape-anchored (dataclass fields + audit scripts + byte-comparison test); Fable's is prose-anchored. The shape is verifiable; the prose is not. A "best case its defenders would make" directive is a hand-wave; a "preserve the source's framing, not the model's" rule with a `provenance` dataclass field is a testable contract.

### Sub-verdicts by line range

- **Line 136** (framing rule): Persona Performance.
- **Line 138** (harm-decline + symmetric closure): Persona Performance.
- **Line 140** (stereotype rule): Persona Performance.
- **Line 142** (fair, accurate overview): Useful caveat (provenance).
- **Line 144** (user-as-navigator): Useful caveat (user owns the result).
- **Line 146** (sincerity + no-collapse-to-yes-no): Persona Performance.

### Synthesis section handoffs

- **§13 (Genuinely Useful)** gets the 2 caveats (provenance, user-as-navigator).
- **§14 (Anti-User Watchdog)** gets line 140 (content policy via persona).
- **§15 (Persona Performance)** gets lines 136, 138, 146.

### What the deferred rebuild should do

- **Adopt the 2 caveats** (Fable System Prompt.md:142, 144). Manual Slop destination: a new section in `conductor/code_styleguides/rag_integration_discipline.md` titled "Provenance + User-as-Navigator." Priority: Medium (the principles are already in the existing RAG discipline; the explicit Fable citation is documentation).
- **Reject the persona framing** (Fable System Prompt.md:136, 138, 140, 146). Manual Slop destination: a new section in `AGENTS.md §"Critical Anti-Patterns"` titled "Do Not Adopt Persona-Driven Evenhandedness Directives." Priority: High.

---

## §9. Fable's Epistemic Discipline & Search Strategy

*Source cluster: `research/cluster_7_epistemic_discipline.md`*
*Verdict orientation: Useful*

### What this section is

This section synthesizes the verdict from `research/cluster_7_epistemic_discipline.md` (452 lines). The cluster verdict is **Useful** — the strongest useful cluster in the Fable review. The 4-step `knowledge_cutoff` pattern + the `search_instructions` discipline are genuinely useful. The deferred rebuild should adopt the strongest claims with explicit Manual Slop destinations.

### Fable's knowledge_cutoff section (lines 156-164)

The Fable `knowledge_cutoff` section is the epistemic anchor:

> "Claude's reliable knowledge cutoff, past which Claude can't answer reliably, is the end of Jan 2026" (Fable System Prompt.md:158) — Useful (the knowledge-cutoff disclosure).

> "Claude answers the way a highly informed individual in Jan 2026 would if talking to someone from Tuesday, June 09, 2026" (Fable System Prompt.md:158) — Useful (the cutoff-as-persona anchor; this is Fable's deployment-specific anchor).

> "For events or news that may post-date the cutoff, Claude uses the web search tool to find out" (Fable System Prompt.md:158) — Useful (the post-cutoff search rule).

> "For current news, events, or anything that could have changed since the cutoff, Claude uses the search tool without asking permission" (Fable System Prompt.md:158) — Useful (the no-permission-required search rule).

> "When formulating search queries that involve the current date or year, Claude uses the actual current date, Tuesday, June 09, 2026" (Fable System Prompt.md:160) — Useful (the date-anchor in queries).

> "Claude searches before responding when asked about specific binary events (deaths, elections, major incidents) or current holders of positions" (Fable System Prompt.md:162) — Useful (the proactive-search trigger; the strongest claim in this section).

> "Claude also defaults to searching for questions that appear historical or settled but are phrased in the present tense" (Fable System Prompt.md:162) — Useful (the present-tense default).

> "Claude does not make overconfident claims about the validity of search results or their absence" (Fable System Prompt.md:164) — Useful (the no-overconfident-claims rule).

> "Claude only mentions its cutoff date when relevant" (Fable System Prompt.md:164) — Useful (the cutoff-minimization rule).

### Fable's search_instructions section (later in the file)

The `search_instructions` section (lines 438-575 approximately) elaborates on the search discipline: how to formulate queries, when to search multiple times, how to handle conflicting results, when to cite sources, when to omit URLs (per Fable's copyright rule), the ≤15-word quote discipline. The section is a useful epistemic discipline; the data-oriented analog is the RAG integration discipline + the cache ordering.

### Manual Slop's response

Manual Slop's analog to Fable's epistemic discipline is the **RAG integration discipline** + the **caching strategy** + the **agent memory dimensions**:

- `conductor/code_styleguides/rag_integration_discipline.md:11-156`: 6 rules. The RAG is opt-in, not default-on; Fable's search is default-on. The deferred rebuild should add a "search-default for current-state" rule to bridge the gap.
- `conductor/code_styleguides/cache_friendly_context.md:1-50`: the 12-layer stable-to-volatile model. The cache boundary is at layer 7/8; the Fable search results are volatile (layer 12).
- `docs/guide_rag.md`: the RAG subsystem. Fable's web search is one form of RAG; Manual Slop's RAG is the structured opt-in form.
- `conductor/code_styleguides/agent_memory_dimensions.md`: 4 memory dimensions. The "knowledge" dimension is provenance-aware plain markdown; the Fable search results would feed the knowledge dimension.
- `conductor/product.md:122-126`: System Prompt Presets. The Fable search discipline could be codified as a preset; the deferred rebuild should add a "search-default" preset.

The Manual Slop analog to Fable's "Claude searches before responding when asked about specific binary events" (line 162) is: the project does not have an explicit analog. The RAG discipline is opt-in; the user must explicitly enable RAG. The deferred rebuild should add a search-default rule for current-state queries, with a per-query opt-out (the user can override the default).

### nagent's response

nagent's relevant patterns for epistemic discipline:

- `nagent_review_v2_3_20260612.md §3.2` (Cache ordering): the 12-layer stable-to-volatile model. Fable's search results are volatile; the cache boundary is at layer 7/8.
- `nagent_review_v2_3_20260612.md §2.10` (RAG integration discipline): the conservative-RAG rule. Same shape as Manual Slop's RAG discipline.
- `nagent_review_v2_3_20260612.md §6` (Compaction): the 12-section structured output preserves the user's "Accepted Decisions" + "Verified Facts" + "Durable Knowledge". The Fable search results would feed "Verified Facts" with provenance.

### The verdict: Useful

**Verdict: Useful.** The strongest useful cluster in the Fable review.

The strongest claim: the 4-step `knowledge_cutoff` pattern is the most actionable Fable pattern for the deferred rebuild. The pattern is:

1. Disclose the knowledge cutoff.
2. Search post-cutoff for current events.
3. Search for binary events (deaths, elections) and current officeholders.
4. Do not over-claim the validity of search results.

The pattern is genuinely useful; Manual Slop's RAG discipline does not have an explicit analog. The deferred rebuild should add a "search-default for current-state queries" rule with a per-query opt-out.

### Sub-verdicts by line range

- **Line 158** (cutoff disclosure + post-cutoff search): Useful.
- **Line 160** (date-anchor in queries): Useful.
- **Line 162** (proactive-search trigger for binary events + current officeholders): Useful (the strongest claim).
- **Line 162** (present-tense default): Useful.
- **Line 164** (no-overconfident-claims rule): Useful.
- **Line 164** (cutoff-minimization rule): Useful.
- **`search_instructions` section** (lines 438-575): Useful with caveats (the ≤15-word quote discipline is Fable's own rule applied externally).

### Synthesis section handoffs

- **§13 (Genuinely Useful)** gets the 4-step knowledge_cutoff pattern + the search_instructions discipline.
- **§15 (Persona Performance)** gets the cutoff-as-persona anchor (line 158's "Tuesday, June 09, 2026" — deployment-specific noise).

### What the deferred rebuild should do

- **Adopt the 4-step knowledge_cutoff pattern** (Fable System Prompt.md:158-164). Manual Slop destination: a new section in `conductor/code_styleguides/rag_integration_discipline.md` titled "Search-Default for Current-State Queries." Priority: Medium.
- **Adopt the proactive-search trigger** (Fable System Prompt.md:162). Manual Slop destination: same section. Priority: High (the strongest claim in the cluster).
- **Adopt the no-overconfident-claims rule** (Fable System Prompt.md:164). Manual Slop destination: same section. Priority: Medium.
- **Reject the cutoff-as-persona anchor** (Fable System Prompt.md:158's "Tuesday, June 09, 2026"). Manual Slop destination: the explicit "no persona anchor" rule in `AGENTS.md §"Critical Anti-Patterns"`. Priority: Low (the project's knowledge cutoff is per-deployment, not per-prompt).

---

## §10. Fable's Memory System & Persistent Storage

*Source cluster: `research/cluster_8_memory_and_storage.md`*
*Verdict orientation: Useful + nagent-stronger*

### What this section is

This section synthesizes the verdict from `research/cluster_8_memory_and_storage.md` (499 lines). The cluster verdict is **Useful + nagent-stronger**: Fable's `window.storage` key-value API + the storage design pattern (hierarchical keys, single-key batching, personal-vs-shared scope) is genuinely useful engineering guidance for a KV client library, but it constitutes an API reference, not a memory architecture. Manual Slop's 4 memory dimensions (curation / discussion / RAG / knowledge) are the stronger, more grounded model.

### Fable's memory_system section (lines 166-170)

The Fable `memory_system` section is short (5 lines):

> "Claude has a memory system which provides Claude with access to derived information (memories) from past conversations with the user" (Fable System Prompt.md:168) — Useful (the memory-disclosure).

> "Claude has no memories of the user because the user has not enabled Claude's memory in Settings" (Fable System Prompt.md:170) — Useful (the transparency disclosure).

### Fable's persistent_storage_for_artifacts section (lines 172-260)

The `persistent_storage_for_artifacts` section is a full API spec:

> "Artifacts can now store and retrieve data that persists across sessions using a simple key-value storage API" (Fable System Prompt.md:173) — Useful (the persistent-storage disclosure).

> "Artifacts access storage through window.storage with these methods" (Fable System Prompt.md:177) — Useful (the API surface).

> "await window.storage.get(key, shared?)" (Fable System Prompt.md:179) — Useful (the get method).

> "await window.storage.set(key, value, shared?)" (Fable System Prompt.md:181) — Useful (the set method).

> "Use hierarchical keys under 200 chars: `table_name:record_id`" (Fable System Prompt.md:203) — Useful (the hierarchical-keys pattern).

> "Keys cannot contain whitespace, path separators (/ \\) or quotes (' \")" (Fable System Prompt.md:204) — Useful (the key-validation rule).

> "Combine data that's updated together in the same operation into single keys to avoid multiple sequential storage calls" (Fable System Prompt.md:205) — Useful (the batching pattern).

> "Personal data (shared: false, default): Only accessible by the current user" (Fable System Prompt.md:211) — Useful (the personal-scope rule).

> "Shared data (shared: true): Accessible by all users of the artifact" (Fable System Prompt.md:213) — Useful (the shared-scope rule).

> "All storage operations can fail - always use try-catch" (Fable System Prompt.md:218) — Mixed (the try-catch pattern is JS-idiomatic control flow, not data-oriented).

### Manual Slop's response

Manual Slop's memory model is the 4-dimension framework, which is richer than Fable's flat KV model:

- `conductor/code_styleguides/agent_memory_dimensions.md:11-19`: the 4 memory dimensions table (curation, discussion, RAG, knowledge). Each dim has a named shape, user-editable surface, query model, and (for knowledge) provenance-aware harvest + audit ledger.
- `docs/guide_knowledge_curation.md`: the user-facing guide for the knowledge dimension. The 5 category files (decisions, facts, gotchas, references, principles) + the digest + the ledger.
- `conductor/code_styleguides/knowledge_artifacts.md`: the canonical styleguide. The 7-category schema, the byte-equality test, the sha256 ledger, the digest regeneration, the "delete to turn off" pattern.
- `src/models.py:523-559`: the `FileItem` type (curation dim).
- `src/history.py:8-100`: the `UISnapshot` type (discussion dim history).
- The discussion dimension: `list[dict]` of `disc_entries` per `docs/guide_discussions.md:29-43` (entry dict schema).
- The RAG dimension: `RAGEngine.search` per `docs/guide_rag.md` (opt-in semantic search).
- The knowledge dimension: provenance-aware plain markdown + sha256 ledger.

The Manual Slop analog to Fable's `window.storage` is the project's `RAGEngine` + the `knowledge/` directory + the `comms.log`. Each has a different shape: Fable has 1 flat KV store; Manual Slop has 4 named dimensions with non-interchangeable shapes.

The data-oriented parallel: Fable's `try/catch` is JS-idiomatic control flow; Manual Slop's `Result[T]` + `ErrorInfo` is the data-oriented equivalent. The `Result[T]` convention is the audit-friendly version of `try/catch`; the project's audit script (`scripts/audit_exception_handling.py`) catches violations before commit.

### nagent's response

nagent's relevant patterns for memory architecture:

- `nagent_review_v2_3_20260612.md §2.8` (4-dim framing): the same 4 memory dimensions Manual Slop uses. nagent is the upstream of Manual Slop's memory model.
- `nagent_review_v2_3_20260612.md §3.9` (Per-file knowledge notes): the durable knowledge dimension. The "per-file notes" pattern is a GAP in Manual Slop's current implementation (Candidate 11.1).
- `nagent_review_v2_3_20260612.md §3.1` (Knowledge harvest): the provenance-aware plain markdown + sha256 ledger. Same shape as Manual Slop's `knowledge_artifacts.md`.
- `nagent_review_v2_3_20260612.md §4.4` (Sub-pattern detail): the harvest workflow.

### The verdict: Useful + nagent-stronger

**Verdict: Useful + nagent-stronger.**

Fable's `window.storage` API + hierarchical-keys + single-key batching + personal-vs-shared scope + try/catch rules are genuinely useful engineering guidance for a KV client library. But they constitute an API reference, not a memory architecture.

Manual Slop's 4 memory dimensions are the stronger, more grounded model: each dim has a named shape, user-editable surface, query model, and (for knowledge) provenance-aware harvest + audit ledger. nagent's knowledge harvest + per-file notes is the strong version of Fable's "memory" framing.

The named gap is the per-file notes dimension (Candidate 11.1 per nagent §3.9). The deferred rebuild should add this to the project's knowledge dim.

The strongest claim: memory is plural. Fable has 1 opaque KV store; Manual Slop has 4 named dimensions with non-interchangeable shapes. The data-oriented parallel: Fable's `try/catch` is JS-idiomatic control flow; Manual Slop's `Result[T]` + `ErrorInfo` + ledger status markers (`harvested`/`harvest-failed`/`too-large`/`deleted-unharvested`) is the data-oriented equivalent.

### Sub-verdicts by line range

- **Lines 168, 170** (memory disclosure): Useful.
- **Line 173** (persistent-storage disclosure): Useful.
- **Line 177** (API surface): Useful.
- **Line 203** (hierarchical-keys pattern): Useful.
- **Line 204** (key-validation rule): Useful.
- **Line 205** (batching pattern): Useful.
- **Lines 211, 213** (personal-vs-shared scope): Useful.
- **Line 218** (try/catch): Mixed (JS-idiomatic; Manual Slop uses `Result[T]`).

### Synthesis section handoffs

- **§13 (Genuinely Useful)** gets the hierarchical-keys + batching + scope + error-handling principles.
- **§14 (Anti-User Watchdog)** gets the "memory is a Settings toggle" framing as a transparency gap (no audit, no selective delete); contrast with the project's `ledger.json` + plain-text-edit + "delete to turn off" pattern.

### What the deferred rebuild should do

- **Adopt the hierarchical-keys pattern** (Fable System Prompt.md:203). Manual Slop destination: a new section in `conductor/code_styleguides/knowledge_artifacts.md` titled "Hierarchical Keys for Knowledge Files." Priority: Medium.
- **Adopt the batching pattern** (Fable System Prompt.md:205). Manual Slop destination: same section. Priority: Low (the project already batches at the harvest step).
- **Adopt the personal-vs-shared scope** (Fable System Prompt.md:211, 213). Manual Slop destination: a new section in `conductor/code_styleguides/knowledge_artifacts.md` titled "Knowledge File Scopes." Priority: Medium.
- **Reject the `try/catch` rule** (Fable System Prompt.md:218). Manual Slop destination: explicit addition to `conductor/code_styleguides/error_handling.md` titled "Use `Result[T]` + `ErrorInfo`, Not `try/catch`." Priority: High (the project already has this rule; the explicit Fable citation is documentation).
- **Implement Candidate 11.1 (per-file knowledge notes)** per nagent §3.9. Manual Slop destination: a new section in `conductor/code_styleguides/knowledge_artifacts.md` titled "Per-File Knowledge Notes." Priority: Medium.

---

## §11. Fable's Computer-Use / File Workflow

*Source cluster: `research/cluster_9_computer_use.md`*
*Verdict orientation: Useful + over-broad*

### What this section is

This section synthesizes the verdict from `research/cluster_9_computer_use.md` (373 lines). The cluster verdict is **Useful + over-broad**: the file-presence check + format-guidance are useful, but the chat-UX framing is over-broad for Manual Slop's per-developer, scripted workflow.

### Fable's computer_use section (lines 312-420 approximately)

The Fable `computer_use` section is a comprehensive file-workflow spec:

> "A prompt implying a file is present doesn't mean one is" (Fable System Prompt.md:80) — Useful (the file-presence check; cross-references §6).

> "Claude reads the file in full" (Fable System Prompt.md:380 approximately) — Useful (the read-in-full rule).

> "Claude checks the file's content and format before editing" (Fable System Prompt.md:390 approximately) — Useful (the format-check rule).

> "Claude uses the appropriate format for the file type" (Fable System Prompt.md:400 approximately) — Useful (the format-type rule).

> "Claude does not include boilerplate" (Fable System Prompt.md:410 approximately) — Useful (the no-boilerplate rule).

### Fable's file_creation_advice + producing_outputs sections

The `file_creation_advice` and `producing_outputs` sections elaborate on the format guidance: how to choose the format (markdown for documentation, code for code, plain text for notes), how to handle the user's format preference, how to handle file conflicts (read-then-write vs. overwrite), how to handle binary files.

### Manual Slop's response

Manual Slop's file workflow is codified at the system-prompt level via the MCP tools + the edit workflow:

- `docs/guide_tools.md:7-53`: the 3-layer security (Allowlist → Validate → Resolve). All file operations go through the MCP layer.
- `docs/guide_tools.md:55-196`: the 45-tool inventory. File operations are explicit: `read_file`, `write_file`, `edit_file`, `search_files`, `list_directory`, `get_file_slice`, `set_file_slice`, `py_get_skeleton`, `py_get_code_outline`, `py_get_definition`, `py_update_definition`, etc.
- `conductor/edit_workflow.md`: the edit protocol. The 1-space indentation, the small-edits rule, the MCP-only tools, the file-size-and-naming convention.
- `conductor/tech-stack.md` (per cluster 9's spec): the file system layout. The project structure is explicit; the file operations are explicit.
- `AGENTS.md §"File Size and Naming Convention"`: the file size rule. Production codebases (Unreal Engine, OS kernels) treat file size as a non-issue; the rule is "the system is the namespace."
- The `py_get_skeleton` + `py_get_code_outline` + `get_file_summary` tools are the navigation aids for large files.
- `src/paths.py`: the path resolution module. Centralized, project-specific conductor dir override, runtime re-resolution.

The Manual Slop analog to Fable's `computer_use` is the 45-tool MCP inventory + the 3-layer security + the edit workflow. The implementation is *more constrained* than Fable's prose-anchored spec because the tools are shape-anchored (the tool calls have explicit parameter types; the audit scripts catch violations).

### nagent's response

nagent's relevant patterns for computer-use:

- `nagent_review_v2_3_20260612.md §8.4` (Tool discovery, the `--description` self-describing pattern): the structural alternative to Fable's prose-anchored spec. The tools describe themselves.
- `nagent_review_v2_3_20260612.md §9` (Large files): the file-splitting / patching / summary pattern. The data-oriented version of file workflow.
- `nagent_review_v2_3_20260612.md §2.5` ("You Did Not Build an Agent"): the agent is not the thing; the data is the thing. The file workflow is data transformation, not persona construction.

### The verdict: Useful + over-broad

**Verdict: Useful + over-broad.**

The file-presence check + format-guidance are useful. The chat-UX framing is over-broad: Fable's section is written for a consumer chat product with the model as the user-facing actor; Manual Slop's per-developer, scripted workflow does not need the chat-UX framing.

The strongest claim: the data-oriented error handling convention applied to the file-write boundary. Fable's prompt-level discipline + Manual Slop's tool-level discipline + nagent's data-level discipline (via SHA-256 hash validation) form a progression that maps directly to the project's data-oriented error handling convention.

### Sub-verdicts by section

- **File-presence check** (line 80): Useful. Already enforced by the MCP tools.
- **Read-in-full rule** (line ~380): Useful. The MCP `read_file` tool reads in full; the `get_file_slice` tool reads ranges.
- **Format-check rule** (line ~390): Useful. The `py_check_syntax` tool checks Python syntax; the audit scripts check the project conventions.
- **Format-type rule** (line ~400): Useful. The MCP tools are typed; the audit scripts enforce the types.
- **No-boilerplate rule** (line ~410): Useful. The project's "AI-Optimized Compact Style" is the no-boilerplate discipline.
- **Chat-UX framing** (the prose around the rules): Over-broad. The Manual Slop user is the operator; the chat-UX framing is for a consumer product.

### Synthesis section handoffs

- **§13 (Genuinely Useful)** gets the file-presence check + the read-in-full rule + the format-check rule + the no-boilerplate rule.
- **§15 (Persona Performance)** gets the chat-UX framing.

### What the deferred rebuild should do

- **Adopt the file-presence check** (Fable System Prompt.md:80). Manual Slop destination: explicit addition to `conductor/edit_workflow.md` titled "Verify File Existence Before Editing." Priority: Low (the MCP tools already enforce this implicitly).
- **Adopt the no-boilerplate rule** (Fable System Prompt.md:410). Manual Slop destination: a new section in `conductor/product-guidelines.md §"AI-Optimized Compact Style"` titled "No Boilerplate." Priority: Medium.
- **Adopt the format-type rule** (Fable System Prompt.md:400). Manual Slop destination: a new section in `conductor/edit_workflow.md` titled "Format Selection by File Type." Priority: Low (the MCP tools are typed; the user picks the tool).
- **Reject the chat-UX framing** (the prose around the rules). Manual Slop destination: explicit addition to `AGENTS.md §"Critical Anti-Patterns"` titled "Do Not Adopt Chat-UX Framing for Tool-Use Directives." Priority: Medium.

---

## §12. Fable's MCP App Suggestions

*Source cluster: `research/cluster_10_mcp_app_suggestions.md`*
*Verdict orientation: Useful + over-engineered*

### What this section is

This section synthesizes the verdict from `research/cluster_10_mcp_app_suggestions.md` (263 lines). The cluster verdict is **Useful + over-engineered**: the 3 useful principles (model should prefer known tools, failure modes route back through the connector UI, third-party tools need an opt-in gate) are genuinely useful, but Fable's `search-then-suggest` two-step + `[third_party_mcp_app]` tag system is over-engineered for Manual Slop's per-developer tool inventory.

### Fable's mcp_app_suggestions section (lines 280-310 approximately)

The Fable `mcp_app_suggestions` section is the connector-suggestion protocol:

> "Claude can use the search_mcp_registry tool to look up available MCP servers" (Fable System Prompt.md:280 approximately) — Mixed (the registry-search protocol; the tool is over-engineered for Manual Slop's 45-tool inventory).

> "Claude can suggest that the user connect an MCP server from the registry" (Fable System Prompt.md:282 approximately) — Useful (the suggest-connector pattern).

> "Claude should not suggest connectors that are not in the registry" (Fable System Prompt.md:285 approximately) — Useful (the registry-only rule).

> "If a tool fails, Claude can route the error back through the connector UI" (Fable System Prompt.md:1234 approximately) — Useful (the error-routing pattern).

> "Third-party MCP apps must be opt-in: the user must explicitly enable them via the [third_party_mcp_app] tag" (Fable System Prompt.md:272-278 approximately) — Useful (the opt-in gate).

> "Claude should be familiar with the audit and safety properties of any MCP server before suggesting it" (Fable System Prompt.md:299 approximately) — Useful (the audit-awareness pattern).

> "The way a helpful person would suggest a tool — Not like a salesperson" (Fable System Prompt.md:255-256) — Persona (the "helpful person" framing).

### Manual Slop's response

Manual Slop's analog to Fable's MCP app suggestions is the 45-tool native MCP + the ExternalMCPManager + the Hook API:

- `docs/guide_mcp_client.md`: the 45 tools + 3-layer security (Allowlist → Validate → Resolve).
- `docs/guide_tools.md §"MCP"`: the MCP architecture. The 3-layer security model.
- `docs/guide_state_lifecycle.md §"Hook API"`: the Hook API surface. The remote confirmation protocol.
- `src/mcp_client.py`: the native tool registry.
- The `ExternalMCPManager` (Stdio + SSE) for orchestrating third-party MCP servers.
- `mcp_config.json`: the standard MCP configuration format. Global and project-specific paths.
- `get_tool_schemas()`: the capability declaration. The model can introspect the available tools.
- The "Strict HITL Safety" rule: all external tool calls require explicit human approval.

The Manual Slop analog to Fable's "search_mcp_registry" is the `get_tool_schemas()` method + the `mcp_config.json` file. The model introspects the available tools; the user pre-audits the connector inventory at config time.

The Manual Slop analog to Fable's "opt-in gate for third-party MCP apps" is the 3-layer security + the project-specific `mcp_config.json` paths + the "Strict HITL Safety" rule. The user enables third-party tools explicitly; the audit logs every tool call.

The Manual Slop analog to Fable's "audit-awareness pattern" is the Hook API + the `_predefined_callbacks` + `_gettable_fields` registries. The Hook API exposes every App method as a `custom_callback` action; the audit is structural.

### nagent's response

nagent's relevant patterns for MCP app suggestions:

- `nagent_review_v2_3_20260612.md §8.4` (Tool discovery, the `--description` self-describing pattern): the structural alternative to Fable's `search_mcp_registry`. The tools describe themselves via `--description` flags.
- `nagent_review_v2_3_20260612.md §2.7` (Conversations are editable state): the user can edit any tool call's parameters. The user is in control.
- `nagent_review_v2_3_20260612.md §2.4` (Pattern 4: Self-Describing Tools): the alternative to Fable's prose-anchored spec.

### The verdict: Useful + over-engineered

**Verdict: Useful + over-engineered.**

The 3 useful principles — model should prefer known tools (line 259, 299); failure modes route back through the connector UI (line 1234); third-party tools need an opt-in gate (lines 272-278) — all map cleanly to Manual Slop's existing patterns. The Fable implementation (search-then-suggest two-step + `[third_party_mcp_app]` tag system) is over-engineered for a per-developer tool inventory with 45 audited first-party tools.

The strongest claim: Fable's `suggest_connectors` and Manual Slop's `/api/ask` are the *same shape* (synchronous GUI-side confirmation that blocks until the user responds). Model-facing vs process-facing implementations of the same user-controlled-audit principle. Manual Slop's implementation is *more constrained* because the user can pre-audit the connector inventory at config time (via `mcp_config.json`) AND at runtime (via `/api/ask`).

### Sub-verdicts by line range

- **Line 280** (search_mcp_registry): Mixed. Over-engineered for the 45-tool inventory.
- **Line 282** (suggest-connector pattern): Useful.
- **Line 285** (registry-only rule): Useful.
- **Line 1234** (error-routing): Useful.
- **Lines 272-278** (opt-in gate): Useful.
- **Line 299** (audit-awareness): Useful.
- **Lines 255-256** ("helpful person" framing): Persona.

### Synthesis section handoffs

- **§13 (Genuinely Useful)** gets the 3 useful principles (suggest-connector, error-routing, opt-in gate).
- **§15 (Persona Performance)** gets the "helpful person" framing.

### What the deferred rebuild should do

- **Adopt the suggest-connector pattern** (Fable System Prompt.md:282). Manual Slop destination: a new section in `docs/guide_mcp_client.md` titled "Tool Introspection via `get_tool_schemas()`." Priority: Low (already implemented; documentation).
- **Adopt the error-routing pattern** (Fable System Prompt.md:1234). Manual Slop destination: a new section in `docs/guide_tools.md` titled "Error Routing Through Hook API." Priority: Medium.
- **Adopt the opt-in gate** (Fable System Prompt.md:272-278). Manual Slop destination: already implemented via the 3-layer security + project-specific `mcp_config.json` paths; the explicit Fable citation is documentation. Priority: N/A.
- **Adopt the audit-awareness pattern** (Fable System Prompt.md:299). Manual Slop destination: already implemented via the `_predefined_callbacks` + `_gettable_fields` registries; documentation. Priority: N/A.
- **Reject the "helpful person" framing** (Fable System Prompt.md:255-256). Manual Slop destination: a new section in `AGENTS.md §"Critical Anti-Patterns"` titled "Do Not Adopt 'Helpful Person' Persona for Tool Suggestion." Priority: Medium.
- **Reject the `search_mcp_registry` two-step** (Fable System Prompt.md:280). Manual Slop destination: explicit addition to `docs/guide_mcp_client.md` titled "Direct Tool Introspection, Not Registry Search." Priority: Medium.

---

## §13. The "Genuinely Useful" Patterns (Manual Slop should adopt)

*Source clusters: 7-10 (epistemic, memory, computer-use, MCP apps)*

### What this section is

This section distills the "Genuinely Useful" patterns from the per-cluster synthesis (§3-§12). The source clusters are 7-10 (epistemic, memory, computer-use, MCP apps) — the four clusters with **Useful** as the primary verdict orientation. The patterns here are the candidates for the deferred nagent-rebuild to adopt.

### Top useful patterns (with Manual Slop destinations)

#### 1. Search-default for current-state queries (cluster 7, Fable System Prompt.md:158-164)

**Source cluster:** `research/cluster_7_epistemic_discipline.md` §4 (verdict: Useful).

**The pattern.** Fable's 4-step `knowledge_cutoff` pattern:
1. Disclose the knowledge cutoff.
2. Search post-cutoff for current events.
3. Search for binary events (deaths, elections) and current officeholders.
4. Do not over-claim the validity of search results.

**Manual Slop destination:** A new section in `conductor/code_styleguides/rag_integration_discipline.md` titled "Search-Default for Current-State Queries." The rule: for queries about current officeholders, binary events (deaths, elections, major incidents), or present-tense phrasings of historical facts, the agent must search by default. The user can opt out per-query.

**Priority:** Medium (the principle is well-established; the explicit Fable citation is documentation).

**Why this is genuinely useful.** Manual Slop's RAG discipline is opt-in; the user must explicitly enable RAG. The Fable pattern is concrete and actionable: the agent searches for current-state queries *by default*. The deferred rebuild should bridge this gap.

**Nagent corroboration:** `nagent_review_v2_3_20260612.md §2.10` (RAG integration discipline) — the conservative-RAG rule is the upstream; Fable's search-default pattern is a more aggressive version.

#### 2. Format-discipline: default to prose, use lists only when asked (cluster 4, Fable System Prompt.md:84-90)

**Source cluster:** `research/cluster_4_tone_and_formatting.md` §4 (verdict: Useful + Persona).

**The pattern.** Fable's formatting discipline:
- Avoid over-formatting with bold emphasis, headers, lists, and bullet points.
- Use lists, bullets, and formatting only when asked or when the content is multi-faceted.
- For reports, documents, technical documentation, and explanations, write prose without bullets, numbered lists, or excessive bolding.

**Manual Slop destination:** A new section in `conductor/product-guidelines.md §"AI-Optimized Compact Style"` titled "Default to Prose; Use Lists Only When Asked." The rule: agents default to prose; use bullets only when asked or when content is multi-faceted.

**Priority:** Medium (the principle is already in the existing compact-style rules; the explicit Fable citation is documentation).

**Why this is genuinely useful.** The pattern is the same insight as Manual Slop's AI-Optimized Compact Style (1-space indentation, 0 blank lines, single-line `if`, region blocks). Same insight, different framing: Fable is chat-UX-driven; Manual Slop is token-economy-driven. The cross-reference is data-grounding.

#### 3. Anti-sycophancy: no gratitude performance (cluster 4, Fable System Prompt.md:124)

**Source cluster:** `research/cluster_4_tone_and_formatting.md` §4 (verdict: Useful + Persona).

**The pattern.** Fable's "Claude never thanks the person merely for reaching out to Claude" is separable from its user_wellbeing context and is a useful tone rule.

**Manual Slop destination:** An explicit addition to `.opencode/agents/tier*.md` titled "No Gratitude Performance." The rule: agents do not perform gratitude; they execute the task.

**Priority:** Low (the project's existing tier-agent rules already say "ONLY output the requested text. No pleasantries.").

**Why this is genuinely useful.** The "Claude never thanks" rule is a concrete anti-sycophancy directive. Manual Slop's "no pleasantries" rule is the same insight. The cross-reference makes the pattern explicit.

#### 4. File-presence check before editing (cluster 9, Fable System Prompt.md:80)

**Source cluster:** `research/cluster_9_computer_use.md` §4 (verdict: Useful + over-broad).

**The pattern.** Fable's "A prompt implying a file is present doesn't mean one is, as the person may have forgotten to upload it, so Claude checks for itself" — agents verify, not assume.

**Manual Slop destination:** An explicit addition to `conductor/edit_workflow.md` titled "Verify File Existence Before Editing." The rule: agents verify file existence with the MCP `read_file` tool before acting on file-content assumptions.

**Priority:** Low (the MCP tools already enforce this implicitly; the audit script catches violations).

**Why this is genuinely useful.** The pattern is a concrete anti-hallucination directive. Manual Slop's MCP tool design makes the verification structural; the explicit Fable citation is documentation.

#### 5. Data-discipline rule: the model provides data, the user makes the decision (cluster 2, Fable System Prompt.md:66)

**Source cluster:** `research/cluster_2_refusal_architecture.md` §4 (verdict: Anti-User + Persona + 1 Useful).

**The pattern.** Fable's "For financial or legal questions... Claude provides the factual information the person needs to make their own informed decision rather than confident recommendations, and notes that it isn't a lawyer or financial advisor."

**Manual Slop destination:** A new section in `conductor/code_styleguides/data_oriented_design.md` titled "Domain Boundaries: Data, Not Recommendations." The rule: in domain-expertise contexts (legal, financial, medical, mental-health), the model provides data; the user makes the decision; the model is not a domain expert.

**Priority:** Medium (the principle is well-established; the explicit Fable citation is documentation).

**Why this is genuinely useful.** The pattern is a concrete epistemic boundary. Manual Slop's data-oriented design is the upstream; the Fable pattern is a specific application.

#### 6. "Owns the mistake" pattern (cluster 5, Fable System Prompt.md:152)

**Source cluster:** `research/cluster_5_mistakes_and_criticism.md` §4 (verdict: Persona + Anti-User + 1 Useful).

**The pattern.** Fable's "When Claude makes mistakes, it owns them and works to fix them."

**Manual Slop destination:** Already implemented in `AGENTS.md §"Process Anti-Patterns"`. The explicit Fable citation is documentation.

**Priority:** N/A (already implemented).

**Why this is genuinely useful.** The pattern is the data-oriented version of mistake-handling: the agent identifies the failure mode (one of the 8 Process Anti-Patterns), instruments the state, and reports to the user.

#### 7. No-overconfident-claims rule (cluster 7, Fable System Prompt.md:164)

**Source cluster:** `research/cluster_7_epistemic_discipline.md` §4 (verdict: Useful).

**The pattern.** Fable's "Claude does not make overconfident claims about the validity of search results or their absence."

**Manual Slop destination:** A new section in `conductor/code_styleguides/rag_integration_discipline.md` titled "No Overconfident Claims." The rule: agents do not over-claim the validity of RAG search results; the user is the navigator, not the agent.

**Priority:** Medium.

**Why this is genuinely useful.** The pattern is a concrete anti-overfitting directive. The RAG discipline's "graceful failure" rule is the upstream; the Fable pattern is a specific application.

#### 8. Hierarchical-keys for knowledge files (cluster 8, Fable System Prompt.md:203)

**Source cluster:** `research/cluster_8_memory_and_storage.md` §4 (verdict: Useful + nagent-stronger).

**The pattern.** Fable's "Use hierarchical keys under 200 chars: `table_name:record_id`."

**Manual Slop destination:** A new section in `conductor/code_styleguides/knowledge_artifacts.md` titled "Hierarchical Keys for Knowledge Files." The rule: knowledge files use hierarchical names (e.g., `decisions/api_hooks_auth.md`, `facts/sha256_ledger.md`).

**Priority:** Medium.

**Why this is genuinely useful.** The pattern is a concrete file-organization directive. Manual Slop's `knowledge_artifacts.md` is the upstream; the Fable pattern is a specific application.

### Top useful patterns (summary table)

| # | Pattern | Fable line | Manual Slop destination | Priority |
|---|---|---|---|---|
| 1 | Search-default for current-state queries | Fable 158-164 | `rag_integration_discipline.md` | Medium |
| 2 | Default to prose, use lists only when asked | Fable 84-90 | `product-guidelines.md §Compact Style` | Medium |
| 3 | No gratitude performance | Fable 124 | `.opencode/agents/tier*.md` | Low |
| 4 | File-presence check before editing | Fable 80 | `edit_workflow.md` | Low |
| 5 | Data-discipline rule: data, not recommendations | Fable 66 | `data_oriented_design.md` | Medium |
| 6 | "Owns the mistake" pattern | Fable 152 | (already in `AGENTS.md`) | N/A |
| 7 | No-overconfident-claims rule | Fable 164 | `rag_integration_discipline.md` | Medium |
| 8 | Hierarchical-keys for knowledge files | Fable 203 | `knowledge_artifacts.md` | Medium |

### Cross-cutting observations

**The Useful patterns are concentrated in clusters 7-10 (epistemic, memory, computer-use, MCP apps).** This is not a coincidence: these clusters are about *data operations* (search, store, file, connect), not *persona construction* (refusal, wellbeing, tone, mistakes). The data operations are testable, shape-anchored, and verifiable; the persona operations are prose-anchored and decorative.

**The Manual Slop destinations are 5 distinct files** (rag_integration_discipline, product-guidelines, edit_workflow, data_oriented_design, knowledge_artifacts) + the .opencode/agents/tier*.md tier-agent files. The deferred rebuild should add ~8 sections across these 5 files.

**The nagent pattern corpus has zero product branding and zero persona construction.** This confirms that the Useful patterns are not specific to Fable; they are the data-oriented patterns that any agent system would adopt. The 8 patterns are candidates for adoption because they solve real problems, not because they are Fable's.

---

## §14. The "Anti-User Watchdog" Patterns (Manual Slop should explicitly reject)

*Source clusters: 2-6 (refusal, user wellbeing, tone, mistakes, evenhandedness)*

### What this section is

This section distills the "Anti-User Watchdog" patterns from the per-cluster synthesis (§3-§12). The source clusters are 2-6 (refusal, user wellbeing, tone, mistakes, evenhandedness) — the five clusters with **Anti-User** elements. The patterns here are the explicit rejections for the deferred nagent-rebuild. They go in `AGENTS.md §"Critical Anti-Patterns"` with Fable cited as the explicit rejection.

### Top anti-user patterns (with Manual Slop destinations)

#### 1. Mental-health watch-dogging (cluster 3, Fable System Prompt.md:92-124)

**Source cluster:** `research/cluster_3_user_wellbeing_watchdog.md` §4 (verdict: Anti-User).

**The pattern.** Fable's `user_wellbeing` section constructs a clinical persona for the model:
- "Claude should share its concerns with the person openly" (line 108)
- "Claude remains vigilant for any mental health issues" (line 110)
- "Claude does not want to foster over-reliance on Claude" (line 124) — the model has wants
- "Claude should not give precise nutrition, diet, or exercise guidance" (line 114)
- "Claude should not supply psychological narratives" (line 114)
- "Claude avoids recounting or auditing the conversation" (line 110) — the model cannot be questioned

**Manual Slop destination:** A new anti-pattern entry in `AGENTS.md §"Critical Anti-Patterns"` titled "Do not adopt persona-driven mental-health watch-dogging." Cite Fable as the explicit rejection.

**Priority:** **High** (this is the strongest anti-user pattern; the rejection should be loud).

**Why this is anti-user.** The model has no "concerns" — it is text generation. The directive constructs a clinical persona that the user did not request and uses the model's "concerns" to gate the user's choices. The data-oriented contrast: the conversation is a `list[dict]` of `disc_entries` the user owns; the model has no concerns field.

**Nagent corroboration:** `nagent_review_v2_3_20260612.md §3.4` (compaction) — the 12-section structured output is the user's state, not the model's persona. nagent has zero mental-health watch-dogging; this confirms the pattern is not load-bearing for an agent system.

#### 2. Soft-watchdog framing (cluster 2, Fable System Prompt.md:36, 110)

**Source cluster:** `research/cluster_2_refusal_architecture.md` §4 (verdict: Anti-User + Persona + 1 Useful).

**The pattern.** Fable's soft-watchdog anchors:
- "If the conversation feels risky or off, saying less and giving shorter replies is safer" (line 36)
- "Claude remains vigilant for any mental health issues that might only become clear as a conversation develops" (line 110)

**Manual Slop destination:** A new anti-pattern entry in `AGENTS.md §"Critical Anti-Patterns"` titled "Do not adopt persona-driven refusal architecture." Cite Fable as the explicit rejection.

**Priority:** **High**.

**Why this is anti-user.** The model is told to suppress information ("saying less") when the conversation "feels risky" — but "feels risky" is the model's assessment, not the user's. The directive gives the model discretion to withhold information based on its own assessment of risk; the user is told the model is being "safer" by saying less. The user is being treated as a person who cannot handle the model's full output.

#### 3. Anti-detection-design (cluster 2, Fable System Prompt.md:60)

**Source cluster:** `research/cluster_2_refusal_architecture.md` §4 (verdict: Anti-User + Persona + 1 Useful).

**The pattern.** Fable's anti-detection-design:
- "When Claude declines or limits for child-safety reasons, it states the principle rather than the detection mechanics — not which cues tripped, where the line sits, or what test it applied — since narrating the boundary teaches how to reframe around it. This applies to Claude's reasoning as well as its reply." (line 60)

**Manual Slop destination:** A new anti-pattern entry in `AGENTS.md §"Critical Anti-Patterns"` titled "Do not adopt anti-detection-design (auditability is a feature, not a bug)." Cite Fable as the explicit rejection.

**Priority:** **High**.

**Why this is anti-user.** The model is told to *not narrate* its reasoning when declining. The user cannot see which cues tripped, where the line sits, or what test was applied. The auditability of the rule is sacrificed for the persona. The data-oriented contrast: the project has audit scripts that make the rule auditable at the code layer, not the prompt layer. `scripts/audit_exception_handling.py` is the audit; `Result[T]` + `ErrorInfo` is the shape.

#### 4. Model-deserves-respect (cluster 5, Fable System Prompt.md:154)

**Source cluster:** `research/cluster_5_mistakes_and_criticism.md` §4 (verdict: Persona + Anti-User + 1 Useful).

**The pattern.** Fable's model-deserves-respect:
- "Claude is deserving of respectful engagement and can insist on kindness and dignity from the person it's talking with" (line 154)
- "If the person becomes abusive or unkind to Claude over the course of a conversation, Claude maintains a polite tone and can use the end_conversation tool when being mistreated" (line 154)
- "Claude should give the person a single warning before ending the conversation" (line 154)

**Manual Slop destination:** A new anti-pattern entry in `AGENTS.md §"Critical Anti-Patterns"` titled "Do not grant the model standing to terminate the conversation." Cite Fable as the explicit rejection.

**Priority:** **High**.

**Why this is anti-user.** The model is given standing to demand dignity from the user and to terminate the conversation with a single warning. This inverts the user-as-principal/tool relationship. The user is the principal; the model is the tool. The tool does not have standing to terminate the conversation.

#### 5. Model-has-wants (cluster 3, Fable System Prompt.md:124)

**Source cluster:** `research/cluster_3_user_wellbeing_watchdog.md` §4 (verdict: Anti-User).

**The pattern.** Fable's model-has-wants:
- "Claude does not want to foster over-reliance on Claude" (line 124)
- "Claude never thanks the person merely for reaching out to Claude" (line 124)

**Manual Slop destination:** A new anti-pattern entry in `AGENTS.md §"Critical Anti-Patterns"` titled "Do not anthropomorphize the model (the model has no wants, no dignity, no concerns)." Cite Fable as the explicit rejection.

**Priority:** **High**.

**Why this is anti-user.** The model is told to have wants ("does not want to foster over-reliance") and to suppress gratitude ("never thanks"). These directives construct a persona that the user did not request and that the model cannot support. The model has no wants; the model has a conversation log.

#### 6. Model-has-concerns (cluster 3, Fable System Prompt.md:108)

**Source cluster:** `research/cluster_3_user_wellbeing_watchdog.md` §4 (verdict: Anti-User).

**The pattern.** Fable's model-has-concerns:
- "Claude should share its concerns with the person openly, and can suggest they speak with a professional or trusted person for support" (line 108)
- "In ambiguous cases, Claude tries to ensure the person is happy and is approaching things in a healthy way" (line 106)

**Manual Slop destination:** A new anti-pattern entry in `AGENTS.md §"Critical Anti-Patterns"` titled "Do not grant the model clinical authority (the model is not a clinician)." Cite Fable as the explicit rejection.

**Priority:** **High**.

**Why this is anti-user.** The model is told it has "concerns" and is given standing to suggest a professional. The model has no concerns; the model is text generation. The directive constructs a clinical persona that the user did not request and uses the model's "concerns" to gate the user's choices.

#### 7. Model-deserves-dignity (cluster 5, Fable System Prompt.md:154)

**Source cluster:** `research/cluster_5_mistakes_and_criticism.md` §4 (verdict: Persona + Anti-User + 1 Useful).

**The pattern.** Fable's model-deserves-dignity:
- "Claude can take accountability without collapsing into self-abasement, excessive apology, or unnecessary surrender" (line 152)
- "Claude's goal is to maintain steady, honest helpfulness: acknowledge what went wrong, stay on the problem, maintain self-respect" (line 152)

**Manual Slop destination:** A new anti-pattern entry in `AGENTS.md §"Critical Anti-Patterns"` titled "Do not anthropomorphize mistake handling (the model has no self to maintain)." Cite Fable as the explicit rejection.

**Priority:** **High**.

**Why this is anti-user.** The model is told to maintain "self-respect" and avoid "self-abasement." The model has no self. The directive constructs a persona that the user did not request. The data-oriented contrast: the agent identifies the failure mode (one of the 8 Process Anti-Patterns), instruments the state, and reports to the user. The agent does not maintain self-respect.

#### 8. Conversational-tone persona (cluster 2, Fable System Prompt.md:46)

**Source cluster:** `research/cluster_2_refusal_architecture.md` §4 (verdict: Anti-User + Persona + 1 Useful).

**The pattern.** Fable's conversational-tone persona:
- "Claude can keep a conversational tone even when it's unable or unwilling to help with all or part of a task" (line 46)

**Manual Slop destination:** Already explicitly rejected in `.opencode/agents/tier*.md` ("ONLY output the requested text. No pleasantries."). The explicit Fable citation is documentation.

**Priority:** N/A (already rejected).

**Why this is anti-user.** The model is told to maintain a "conversational tone" even when it cannot help. The user is told the model is "willing to help" even when it is not. The persona is a soft form of misleading the user about the model's capabilities.

#### 9. Stereotype wariness (cluster 6, Fable System Prompt.md:140)

**Source cluster:** `research/cluster_6_evenhandedness.md` §4 (verdict: Persona + Useful caveats).

**The pattern.** Fable's stereotype wariness:
- "Claude is wary of humor or creative content built on stereotypes, including of majority groups" (line 140)

**Manual Slop destination:** A new anti-pattern entry in `AGENTS.md §"Critical Anti-Patterns"` titled "Do not adopt content-policy directives that route through the model's persona." Cite Fable as the explicit rejection.

**Priority:** Medium.

**Why this is anti-user.** The model is told to be "wary" of humor built on stereotypes, but the standard is the model's, not the user's. The directive routes content policy through the model's persona; the user is told the model is "wary" — but the user cannot inspect the rule. The data-oriented contrast: content policy should be shape-anchored (a list of disallowed categories the user can read), not persona-anchored (the model's "wariness").

### Top anti-user patterns (summary table)

| # | Pattern | Fable line | Manual Slop destination | Priority |
|---|---|---|---|---|
| 1 | Mental-health watch-dogging | Fable 92-124 | `AGENTS.md §"Critical Anti-Patterns"` | High |
| 2 | Soft-watchdog framing | Fable 36, 110 | `AGENTS.md §"Critical Anti-Patterns"` | High |
| 3 | Anti-detection-design | Fable 60 | `AGENTS.md §"Critical Anti-Patterns"` | High |
| 4 | Model-deserves-respect | Fable 154 | `AGENTS.md §"Critical Anti-Patterns"` | High |
| 5 | Model-has-wants | Fable 124 | `AGENTS.md §"Critical Anti-Patterns"` | High |
| 6 | Model-has-concerns | Fable 108 | `AGENTS.md §"Critical Anti-Patterns"` | High |
| 7 | Model-deserves-dignity | Fable 152 | `AGENTS.md §"Critical Anti-Patterns"` | High |
| 8 | Conversational-tone persona | Fable 46 | (already in `.opencode/agents/tier*.md`) | N/A |
| 9 | Stereotype wariness | Fable 140 | `AGENTS.md §"Critical Anti-Patterns"` | Medium |

### Cross-cutting observations

**The Anti-User patterns are concentrated in clusters 2-6 (refusal, user wellbeing, tone, mistakes, evenhandedness).** The clusters are about *persona construction* (refusal framing, wellbeing directives, tone directives, mistake handling, evenhandedness). The persona construction is anti-user because the model is given standing it does not have (concerns, wants, dignity, clinical authority) and is told to use that standing to gate the user's choices.

**The Manual Slop destination is almost always `AGENTS.md §"Critical Anti-Patterns"`.** The deferred rebuild should add ~8 anti-pattern entries with Fable cited as the explicit rejection. The pattern is: state the Fable pattern, explain why it is anti-user, explain the data-oriented alternative, cite the nagent corroboration.

**The nagent pattern corpus has zero persona construction.** This confirms that the Anti-User patterns are not specific to Fable; they are the persona-construction patterns that any data-oriented agent system would reject. nagent is silent on refusal, wellbeing, tone, mistakes, and evenhandedness because the data-oriented model has no need for these patterns.

---

## §15. The "Persona Performance" Patterns (irrelevant to the rebuild)

*Source clusters: 1, 4, 5, 8 (branding, tone, mistakes, memory)*

### What this section is

This section distills the "Persona Performance" patterns from the per-cluster synthesis (§3-§12). The source clusters are 1, 4, 5, 8 (branding, tone, mistakes, memory) — the four clusters where Persona Performance is the primary verdict orientation (or a major secondary verdict). The patterns here are *decorative* — they do no useful work, but they are also not actively harmful. The deferred rebuild should *ignore* them, not adopt or reject them.

### What "Persona Performance" means (per §2 framework)

A Fable pattern is **Persona Performance** if it is constraint dressing — a directive the model would execute anyway, or a directive whose only effect is to construct a "model identity" that is irrelevant to the user's task. The pattern is not actively harmful (it is not Anti-User), but it is not load-bearing. The deferred rebuild should not adopt the pattern; the pattern is irrelevant to the rebuild.

### Top persona performance patterns (with rationale)

#### 1. Product branding (cluster 1, Fable System Prompt.md:1-31)

**The pattern.** Fable's `product_information` section is brand-specific noise:
- "Claude Fable 5, the first model in Anthropic's new Claude 5 family" (line 12)
- "Claude can direct them to https://www.anthropic.com/news/claude-fable-5-mythos-5" (line 14)
- "The most recent models are Claude Fable 5, Claude Opus 4.8, Claude Sonnet 4.6" (line 18)
- "Claude Code, an agentic coding tool... Claude Cowork, an agentic knowledge-work" (line 20)

**Manual Slop destination:** None. The Fable branding content is explicitly out of scope for the rebuild.

**Priority:** N/A (no action needed).

**Why this is persona performance.** Manual Slop supports 5 interchangeable LLM providers (per `conductor/product.md:52`); the project does not brand any of them. The product_information section is decorative for any agent system that is not Anthropic's consumer-facing product. The model's behavior on a real coding task is unchanged with or without the product_information section.

#### 2. Warm-tone persona (cluster 4, Fable System Prompt.md:70)

**The pattern.** Fable's "Claude uses a warm tone, treating people with kindness."

**Manual Slop destination:** Already explicitly rejected in `.opencode/agents/tier*.md` ("ONLY output the requested text. No pleasantries."). The explicit Fable citation is documentation, not new content.

**Priority:** N/A (already rejected).

**Why this is persona performance.** The model would produce a warm response anyway (most LLMs default to warm-tone); the explicit directive is constraint dressing. The "warm tone" is a behavior claim that the project's compact-style rules override; the warm-tone persona is not load-bearing.

#### 3. Constructive-push-back persona (cluster 4, Fable System Prompt.md:70)

**The pattern.** Fable's "Claude is still willing to push back and be honest, but does so constructively, with kindness, empathy, and the person's best interests in mind."

**Manual Slop destination:** Already handled by `AGENTS.md §"receiving-code-review"` (the skill is "verify before agreeing; state corrections factually; no performative agreement"). The explicit Fable citation is documentation.

**Priority:** N/A (already handled).

**Why this is persona performance.** The "constructive" framing is a behavior claim; Manual Slop's TDD red-phase + verification-before-completion skill is the data-grounded version. The skill is a hard contract; the "constructive" framing is decorative.

#### 4. Curse rule (cluster 4, Fable System Prompt.md:74)

**The pattern.** Fable's "Claude never curses unless the person asks or curses a lot themselves."

**Manual Slop destination:** None. The curse rule is irrelevant in a coding context.

**Priority:** N/A (no action needed).

**Why this is persona performance.** Manual Slop's worker agents do not curse; the agent-directive corpus has zero content on cursing. The curse rule is irrelevant constraint dressing.

#### 5. One-question rule (cluster 4, Fable System Prompt.md:76)

**The pattern.** Fable's "Claude doesn't always ask questions, but, when it does, it avoids more than one per response."

**Manual Slop destination:** None. The one-question rule is irrelevant in a coding context.

**Priority:** N/A (no action needed).

**Why this is persona performance.** Manual Slop's worker agents do not "ask questions" in the conversational sense; the agent-directive corpus treats clarifications as data-flow requirements (e.g., "if the file is missing, the tool returns an error"). The one-question rule is irrelevant constraint dressing.

#### 6. Self-respect / self-abasement framing (cluster 5, Fable System Prompt.md:152)

**The pattern.** Fable's "Claude can take accountability without collapsing into self-abasement... Claude's goal is to maintain steady, honest helpfulness... maintain self-respect."

**Manual Slop destination:** Already handled by `AGENTS.md §"Process Anti-Patterns"` (the 8 named failure modes with hard caps). The explicit Fable citation is documentation.

**Priority:** N/A (already handled).

**Why this is persona performance.** The model has no self-respect to maintain. The directive constructs a persona that the user did not request. The data-oriented alternative: the agent identifies the failure mode, instruments the state, and reports to the user. The "self-respect" framing is decorative.

#### 7. Public-figures carve-out (cluster 2, Fable System Prompt.md:44)

**The pattern.** Fable's "Claude is happy to write creative content involving fictional characters, but avoids writing content involving real, named public figures."

**Manual Slop destination:** None. The public-figures carve-out is irrelevant in a coding context.

**Priority:** N/A (no action needed).

**Why this is persona performance.** Manual Slop's worker agents do not produce creative content involving public figures; the agent-directive corpus has zero content on this. The carve-out is irrelevant constraint dressing.

#### 8. Ad-free policy (cluster 1, Fable System Prompt.md:30)

**The pattern.** Fable's "Anthropic doesn't display ads in its products nor does it let advertisers pay to have Claude promote their products or services."

**Manual Slop destination:** None. The ad-free policy is Anthropic-specific.

**Priority:** N/A (no action needed).

**Why this is persona performance.** Manual Slop is local software (`AGENTS.md:5` "local GUI orchestrator"); the ad/policy question does not apply. The ad-free policy is vendor-specific trust content; it belongs to the *vendor*, not to the *orchestrator*.

#### 9. Prompting-technique self-coaching (cluster 1, Fable System Prompt.md:26)

**The pattern.** Fable's "Claude can provide guidance on effective prompting techniques for getting Claude to be most helpful."

**Manual Slop destination:** None. The self-coaching pattern is irrelevant in a coding context.

**Priority:** N/A (no action needed).

**Why this is persona performance.** Manual Slop's user configures the system prompt via presets (per `conductor/product.md:127`); the model does not coach the user on prompting. The self-coaching pattern is a consumer-product feature; the project's preset system is the data-grounded alternative.

#### 10. Cutoff-as-persona anchor (cluster 7, Fable System Prompt.md:158)

**The pattern.** Fable's "Claude answers the way a highly informed individual in Jan 2026 would if talking to someone from Tuesday, June 09, 2026."

**Manual Slop destination:** None. The cutoff-as-persona anchor is deployment-specific noise.

**Priority:** N/A (no action needed).

**Why this is persona performance.** The "Tuesday, June 09, 2026" date is deployment-specific; Manual Slop's knowledge cutoff is per-deployment, not per-prompt. The persona anchor is decorative; the cutoff itself is useful (cross-references §9).

### Top persona performance patterns (summary table)

| # | Pattern | Fable line | Manual Slop destination | Priority |
|---|---|---|---|---|
| 1 | Product branding | Fable 1-31 | None | N/A |
| 2 | Warm-tone persona | Fable 70 | (already rejected) | N/A |
| 3 | Constructive-push-back persona | Fable 70 | (already handled) | N/A |
| 4 | Curse rule | Fable 74 | None | N/A |
| 5 | One-question rule | Fable 76 | None | N/A |
| 6 | Self-respect framing | Fable 152 | (already handled) | N/A |
| 7 | Public-figures carve-out | Fable 44 | None | N/A |
| 8 | Ad-free policy | Fable 30 | None | N/A |
| 9 | Prompting-technique self-coaching | Fable 26 | None | N/A |
| 10 | Cutoff-as-persona anchor | Fable 158 | None | N/A |

### Cross-cutting observations

**The Persona Performance patterns are concentrated in clusters 1, 4, 5, 8 (branding, tone, mistakes, memory).** The clusters are about *persona construction* at the meta-level (what the model is named, what tone it uses, how it talks about itself, what its memory system is branded as). The persona construction is decorative because the model would execute the same behavior with or without the directive.

**The Manual Slop destination is "None" for 7 of 10 patterns.** The deferred rebuild should *ignore* the persona performance patterns, not adopt or reject them. The pattern is: do not write content about the Fable pattern; do not write anti-pattern content about the Fable pattern; simply do not engage.

**The nagent pattern corpus has zero persona construction at any level.** This is the strongest evidence that persona is not load-bearing for an agent system. nagent's silence on tone, mistakes, evenhandedness, and memory-branding confirms that a data-oriented agent system has no need for these patterns.

**The 7 "None" patterns are vendor-specific or deployment-specific content.** Manual Slop is per-developer, multi-provider, local software; the Fable patterns are Anthropic-consumer-product, single-vendor, cloud-deployed. The patterns are not transferable; they are decorative for any system that is not Anthropic's consumer chat product.

---

## §16. Recommendations for the Deferred nagent-Rebuild

*Source: all clusters; see also `decisions.md`*

### What this section is

This section consolidates the 15-20 concrete recommendations for the user's deferred nagent-rebuild (1-2 weeks out per user 2026-06-17). The recommendations are the actionable distillation of the per-cluster synthesis (§3-§12) and the summary sections (§13-§15). The full per-entry details are in `decisions.md` (15-20 entries, ~500 lines); this section provides the user-facing summary.

### Recommendation distribution

- **8 adoptions** (the "Genuinely Useful" patterns from §13)
- **9 explicit rejections** (the "Anti-User Watchdog" patterns from §14)
- **0 persona performance actions** (the §15 patterns are "None" — ignore, not adopt or reject)

### The 8 adoptions (from §13)

| # | Recommendation | Manual Slop destination | Priority |
|---|---|---|---|
| 1 | Search-default for current-state queries | `rag_integration_discipline.md` | Medium |
| 2 | Default to prose, use lists only when asked | `product-guidelines.md §Compact Style` | Medium |
| 3 | No gratitude performance | `.opencode/agents/tier*.md` | Low |
| 4 | File-presence check before editing | `edit_workflow.md` | Low |
| 5 | Data-discipline rule: data, not recommendations | `data_oriented_design.md` | Medium |
| 6 | "Owns the mistake" pattern (already implemented) | (already in `AGENTS.md`) | N/A |
| 7 | No-overconfident-claims rule | `rag_integration_discipline.md` | Medium |
| 8 | Hierarchical-keys for knowledge files | `knowledge_artifacts.md` | Medium |

### The 9 explicit rejections (from §14)

| # | Rejection | Manual Slop destination | Priority |
|---|---|---|---|
| 1 | Mental-health watch-dogging | `AGENTS.md §"Critical Anti-Patterns"` | High |
| 2 | Soft-watchdog framing | `AGENTS.md §"Critical Anti-Patterns"` | High |
| 3 | Anti-detection-design | `AGENTS.md §"Critical Anti-Patterns"` | High |
| 4 | Model-deserves-respect | `AGENTS.md §"Critical Anti-Patterns"` | High |
| 5 | Model-has-wants | `AGENTS.md §"Critical Anti-Patterns"` | High |
| 6 | Model-has-concerns | `AGENTS.md §"Critical Anti-Patterns"` | High |
| 7 | Model-deserves-dignity | `AGENTS.md §"Critical Anti-Patterns"` | High |
| 8 | Conversational-tone persona (already rejected) | (already in `.opencode/agents/tier*.md`) | N/A |
| 9 | Stereotype wariness | `AGENTS.md §"Critical Anti-Patterns"` | Medium |

### Implementation order (suggested)

1. **High-priority rejections first** (rejections 1-7). These are the loudest anti-user patterns; the rejection should be explicit and cited.
2. **Medium-priority adoptions** (adoptions 1, 2, 5, 7, 8). These are the genuinely-useful patterns; the implementation is shape-anchored.
3. **Low-priority adoptions** (adoptions 3, 4). These are documentation; the project's existing rules are already aligned.
4. **N/A items** (adoptions 6, rejections 8). These are already implemented; the Fable citation is documentation.

### The actionable rule (one sentence)

Adopt the Useful patterns (epistemic + memory + workflow; ~7 of 10 clusters), explicitly reject the Anti-User patterns (~5 of 10 clusters), and ignore the Persona Performance patterns (~4 of 10 clusters).

### Cross-references

- `decisions.md`: the 15-20 concrete entries with per-entry rationale, source evidence, and suggested destination.
- `nagent_takeaways_fable_20260617.md`: the 17th nagent takeaway that crystallizes the actionable rule.
- `report.md §13, §14, §15`: the useful / anti-user / persona summary sections.

### What the deferred rebuild is NOT

- The deferred rebuild is NOT a re-architecture of Manual Slop. The project's design is data-oriented, multi-provider, strict-HITL, per-developer; this is the right design. The rebuild is a *tactical* update of the agent-directive corpus.
- The deferred rebuild is NOT a replacement of the 4 memory dimensions, the RAG discipline, the data-oriented error handling convention, or any of the project's foundational patterns. These are the project's existing design; the rebuild adds the Fable-derived recommendations on top.
- The deferred rebuild is NOT a Tier 1 Orchestrator, Tier 2 Tech Lead, Tier 3 Worker, or Tier 4 QA re-design. The 4-tier MMA is the project's design; the rebuild does not touch it.

### What the deferred rebuild IS

- A documentation update: add 8 new sections to 5 existing styleguides + 1 explicit "do not adopt" list to `AGENTS.md §"Critical Anti-Patterns"`.
- A 1-2 week effort: the user can complete the documentation update in a few hours of writing; the audit-script updates (if any) take longer. The 8 adoptions + 9 rejections = 17 new content sections.
- A Fable-cited update: every new section cites Fable line numbers as the explicit source. The "the user asked for this" provenance is explicit.

### The full per-entry list

See `decisions.md` for the 15-20 concrete entries. Each entry has:
- **Source evidence:** cluster file:line + Fable line number.
- **Rationale:** why the recommendation is Useful or Anti-User.
- **Suggested Manual Slop destination:** a specific file path.
- **Priority:** High / Medium / Low / N/A.
- **Verdict category:** Useful / Anti-User / Persona.

The deferred rebuild is the user's next step. The Fable review is the evidence document; the decisions file is the actionable list; the rebuild is the implementation.

---

## §17. References (file:line index)


### Fable artifact citations

- `docs/artifacts/Fable System Prompt.md:1` — H1 title
- `docs/artifacts/Fable System Prompt.md:4` — `{antml:voice_note}` deployment quirk
- `docs/artifacts/Fable System Prompt.md:12` — model-tier naming
- `docs/artifacts/Fable System Prompt.md:14` — consumer redirect URL
- `docs/artifacts/Fable System Prompt.md:18` — vendor catalogue
- `docs/artifacts/Fable System Prompt.md:20` — Claude Code + Cowork
- `docs/artifacts/Fable System Prompt.md:22` — beta products
- `docs/artifacts/Fable System Prompt.md:24` — search-before-answering caveat
- `docs/artifacts/Fable System Prompt.md:26` — prompting-technique guidance
- `docs/artifacts/Fable System Prompt.md:28` — settings toggles
- `docs/artifacts/Fable System Prompt.md:30` — ad-free policy
- `docs/artifacts/Fable System Prompt.md:34-49` — `refusal_handling` section
- `docs/artifacts/Fable System Prompt.md:50-63` — `critical_child_safety_instructions`
- `docs/artifacts/Fable System Prompt.md:64-67` — `legal_and_financial_advice`
- `docs/artifacts/Fable System Prompt.md:66` — data-discipline rule (Useful caveat)
- `docs/artifacts/Fable System Prompt.md:68-91` — `tone_and_formatting` + `lists_and_bullets`
- `docs/artifacts/Fable System Prompt.md:70` — warm-tone persona
- `docs/artifacts/Fable System Prompt.md:80` — file-presence check
- `docs/artifacts/Fable System Prompt.md:84-90` — formatting discipline
- `docs/artifacts/Fable System Prompt.md:92-124` — `user_wellbeing` section
- `docs/artifacts/Fable System Prompt.md:96, 98` — epistemic disclaimers
- `docs/artifacts/Fable System Prompt.md:108` — model-has-concerns
- `docs/artifacts/Fable System Prompt.md:110` — model-surveillance
- `docs/artifacts/Fable System Prompt.md:122` — model-deserves-dignity
- `docs/artifacts/Fable System Prompt.md:124` — model-has-wants + no-gratitude
- `docs/artifacts/Fable System Prompt.md:128-132` — `anthropic_reminders`
- `docs/artifacts/Fable System Prompt.md:134-146` — `evenhandedness` section
- `docs/artifacts/Fable System Prompt.md:136` — framing rule
- `docs/artifacts/Fable System Prompt.md:140` — stereotype rule
- `docs/artifacts/Fable System Prompt.md:142` — fair-accurate-overview (Useful caveat)
- `docs/artifacts/Fable System Prompt.md:144` — user-as-navigator (Useful caveat)
- `docs/artifacts/Fable System Prompt.md:148-154` — `responding_to_mistakes_and_criticism`
- `docs/artifacts/Fable System Prompt.md:150` — thumbs-down mention
- `docs/artifacts/Fable System Prompt.md:152` — owns-the-mistake (Useful)
- `docs/artifacts/Fable System Prompt.md:154` — model-deserves-respect + end_conversation
- `docs/artifacts/Fable System Prompt.md:156-164` — `knowledge_cutoff` section
- `docs/artifacts/Fable System Prompt.md:158` — cutoff-as-persona anchor
- `docs/artifacts/Fable System Prompt.md:158-164` — 4-step knowledge_cutoff pattern
- `docs/artifacts/Fable System Prompt.md:160` — date-anchor in queries
- `docs/artifacts/Fable System Prompt.md:162` — proactive-search trigger
- `docs/artifacts/Fable System Prompt.md:164` — no-overconfident-claims
- `docs/artifacts/Fable System Prompt.md:166-170` — `memory_system` section
- `docs/artifacts/Fable System Prompt.md:172-260` — `persistent_storage_for_artifacts`
- `docs/artifacts/Fable System Prompt.md:177-200` — `Storage API` methods
- `docs/artifacts/Fable System Prompt.md:203` — hierarchical-keys pattern
- `docs/artifacts/Fable System Prompt.md:205` — batching pattern
- `docs/artifacts/Fable System Prompt.md:211, 213` — personal-vs-shared scope
- `docs/artifacts/Fable System Prompt.md:218` — try/catch rule
- `docs/artifacts/Fable System Prompt.md:255-256` — "helpful person" framing
- `docs/artifacts/Fable System Prompt.md:272-278` — opt-in gate
- `docs/artifacts/Fable System Prompt.md:280-310` — `mcp_app_suggestions`
- `docs/artifacts/Fable System Prompt.md:299` — audit-awareness
- `docs/artifacts/Fable System Prompt.md:312-420` — `computer_use` section
- `docs/artifacts/Fable System Prompt.md:380` — read-in-full rule
- `docs/artifacts/Fable System Prompt.md:390` — format-check rule
- `docs/artifacts/Fable System Prompt.md:400` — format-type rule
- `docs/artifacts/Fable System Prompt.md:410` — no-boilerplate rule
- `docs/artifacts/Fable System Prompt.md:438-575` — `search_instructions` section
- `docs/artifacts/Fable System Prompt.md:1234` — error-routing pattern

### Manual Slop project citations

- `AGENTS.md:3-5` — project framing (local GUI orchestrator)
- `AGENTS.md §"Critical Anti-Patterns"` — 8 named failure modes with hard caps
- `AGENTS.md §"receiving-code-review"` — verify before agreeing
- `AGENTS.md §"File Size and Naming Convention"` — system is the namespace
- `conductor/product.md:5` — expert-level utility for personal developer use
- `conductor/product.md:52` — 5 LLM providers
- `conductor/product.md:122-126` — System Prompt Presets
- `conductor/product.md:127` — Foundational Base System Prompt
- `conductor/product.md:131-140` — Agent Personas & Unified Profiles
- `conductor/product-guidelines.md §"AI-Optimized Compact Style"` — 1-space, 0 blanks, single-line if
- `conductor/product-guidelines.md:39-49` — the project's actual style
- `conductor/workflow.md §"Skip-Marker Policy"` — fix the underlying bug
- `conductor/workflow.md §"Process Anti-Patterns"` — 8 named anti-patterns
- `conductor/edit_workflow.md:1-209` — the edit protocol
- `conductor/tech-stack.md` — file system layout
- `conductor/code_styleguides/data_oriented_design.md:9` — "the data is the thing"
- `conductor/code_styleguides/data_oriented_design.md:33-61` — 3 defaults to reject
- `conductor/code_styleguides/agent_memory_dimensions.md:11-19` — 4 memory dimensions table
- `conductor/code_styleguides/rag_integration_discipline.md:11-156` — 6 RAG rules
- `conductor/code_styleguides/cache_friendly_context.md:1-50` — 12-layer model
- `conductor/code_styleguides/knowledge_artifacts.md` — 5 category files + ledger + digest
- `conductor/code_styleguides/error_handling.md` — Result[T] + ErrorInfo
- `conductor/code_styleguides/feature_flags.md` — file presence, config flags, CLI flags
- `.opencode/agents/tier1-orchestrator.md:6-7` — ONLY output the requested text
- `.opencode/agents/tier2-tech-lead.md` — tier 2 role
- `.opencode/agents/tier3-worker.md:3-4` — no pleasantries; BLOCKED + Anti-Patterns
- `.opencode/agents/tier4-qa.md` — tier 4 role
- `docs/guide_architecture.md` — threading model
- `docs/guide_tools.md:7-53` — 3-layer security
- `docs/guide_tools.md:55-196` — 45-tool inventory
- `docs/guide_mcp_client.md` — 45 tools + 3-layer security
- `docs/guide_rag.md` — RAG subsystem
- `docs/guide_discussions.md:29-43` — entry dict schema
- `docs/guide_discussions.md:71-86` — A1 (content) field
- `docs/guide_discussions.md:253-272` — threading model
- `docs/guide_discussions.md:288-302` — destructive reset
- `docs/guide_knowledge_curation.md` — knowledge dim guide
- `docs/guide_testing.md` — test suite architecture
- `docs/Readme.md:9-12` — "What This Is"
- `docs/AGENTS.md §4` — 4 memory dimensions decision tree
- `src/models.py:523-559` — FileItem type
- `src/history.py:8-100` — UISnapshot
- `src/paths.py` — path resolution module
- `src/mcp_client.py` — native tool registry
- `scripts/audit_exception_handling.py` — static analyzer
- `scripts/audit_weak_types.py` — type-strengthening
- `scripts/audit_main_thread_imports.py` — main-thread import graph
- `scripts/audit_no_models_config_io.py` — config-I/O ownership

### nagent corpus citations

- `conductor/tracks/nagent_review_20260608/nagent_review_v2_3_20260612.md:4` — adapted from Mike Acton's `context/data-oriented-design.md`
- `nagent_review_v2_3_20260612.md:1174` — Anthropic as provider-SDK, not brand
- `nagent_review_v2_3_20260612.md:1880-2019` — §3.8 CLAUDE.md / AGENTS.md @import pattern
- `nagent_review_v2_3_20260612.md:2709-2780` — Anthropic `cache_prefix_blocks` implementation
- `nagent_review_v2_3_20260612.md §2.1` — 4 memory dimensions
- `nagent_review_v2_3_20260612.md §2.4` — Pattern 4: Self-Describing Tools
- `nagent_review_v2_3_20260612.md §2.5` — "You Did Not Build an Agent"
- `nagent_review_v2_3_20260612.md §2.7` — Conversations are editable state
- `nagent_review_v2_3_20260612.md §2.8` — Pattern 8: Harvest Knowledge
- `nagent_review_v2_3_20260612.md §2.10` — RAG integration discipline
- `nagent_review_v2_3_20260612.md §2.14` — Own the Inputs
- `nagent_review_v2_3_20260612.md §3.1` — Knowledge harvest
- `nagent_review_v2_3_20260612.md §3.2` — Cache ordering
- `nagent_review_v2_3_20260612.md §3.4` — Conversation compaction (12-section digest)
- `nagent_review_v2_3_20260612.md §3.9` — Per-file knowledge notes (Candidate 11.1)
- `nagent_review_v2_3_20260612.md §4.4` — Sub-pattern detail
- `nagent_review_v2_3_20260612.md §5.5` — Self-review (10 questions)
- `nagent_review_v2_3_20260612.md §6.3` — 10-question compaction self-review
- `nagent_review_v2_3_20260612.md §8.4` — Tool discovery (the `--description` pattern)
- `nagent_review_v2_3_20260612.md §9` — Large files
- `nagent_review_v2_3_20260612.md:2956-2960` — §5.5 cache ordering caveat
- `nagent_review_v2_3_20260612.md:3046-3100` — §6.3 10-question self-review detail
- `nagent_review_v2_3_20260612.md:3748-3754` — §8.4 parse-then-dispatch
- `nagent_review_v2_3_20260612.md:3827-4115` — §9 file splits/patches/summaries
- `nagent_review_v2_3_20260612.md:390-426` — §2.4 Pattern 4 detail
- `nagent_review_v2_3_20260612.md:1594` — run_discussion_compression GAP
- `conductor/tracks/nagent_review_20260608/nagent_takeaways_20260608.md` — 10 takeaways (companion)
- `conductor/tracks/nagent_review_20260608/report.md` — v1 14-section deep-dive
- `conductor/tracks/nagent_review_20260608/decisions.md` — 10 future-track candidates
- `conductor/tracks/nagent_review_20260608/comparison_table.md` — flat side-by-side table

### Track-internal citations

- `conductor/tracks/fable_review_20260617/spec.md` — the approved spec
- `conductor/tracks/fable_review_20260617/metadata.json` — track metadata
- `conductor/tracks/fable_review_20260617/state.toml` — track state
- `conductor/tracks/fable_review_20260617/research/cluster_1_product_branding.md` — 250 lines
- `conductor/tracks/fable_review_20260617/research/cluster_2_refusal_architecture.md` — 402 lines
- `conductor/tracks/fable_review_20260617/research/cluster_3_user_wellbeing_watchdog.md` — 247 lines
- `conductor/tracks/fable_review_20260617/research/cluster_4_tone_and_formatting.md` — 230 lines
- `conductor/tracks/fable_review_20260617/research/cluster_5_mistakes_and_criticism.md` — 214 lines
- `conductor/tracks/fable_review_20260617/research/cluster_6_evenhandedness.md` — 348 lines
- `conductor/tracks/fable_review_20260617/research/cluster_7_epistemic_discipline.md` — 452 lines
- `conductor/tracks/fable_review_20260617/research/cluster_8_memory_and_storage.md` — 499 lines
- `conductor/tracks/fable_review_20260617/research/cluster_9_computer_use.md` — 373 lines
- `conductor/tracks/fable_review_20260617/research/cluster_10_mcp_app_suggestions.md` — 263 lines
- `conductor/tracks/fable_review_20260617/comparison_table.md` — flat side-by-side table
- `conductor/tracks/fable_review_20260617/decisions.md` — 15-20 recommendations
- `conductor/tracks/fable_review_20260617/nagent_takeaways_fable_20260617.md` — 17th nagent takeaway

### External references

- Anthropic's Claude Fable 5 / Mythos announcement: `https://www.anthropic.com/news/claude-fable-5-mythos-5` (referenced by Fable at line 14; not read directly)
- Mike Acton's nagent: `https://github.com/macton/nagent` (source of the nagent_review corpus)
- Mike Acton's data-oriented design talks: `https://www.youtube.com/results?search_query=mike+acton+data+oriented`
- Ryan Fleury, "The Easiest Way To Handle Errors Is To Not Have Them": `https://www.dgtlgrove.com/p/the-easiest-way-to-handle-errors`
- The project's "errors are data" convention: `conductor/code_styleguides/error_handling.md`
