docs(track): fable_review_20260617 section 6 — Tone & Formatting

Verdict: Useful + Persona (cleanest Useful/Persona split of all clusters). ~170 lines. Source cluster: research/cluster_4_tone_and_formatting.md. Strongest claim: data-oriented contrast — Fable frames tone as behavior; Manual Slop frames formatting as output schema (1 space, 0 blanks, single-line if). 3 Useful patterns (formatting discipline, file-presence check, anti-sycophancy); 1 anti-user (minor-detection). 3 persona patterns (warm tone, curse rule, one-question rule).
This commit is contained in:
ed
2026-06-18 20:11:37 -04:00
parent 86288fa928
commit 49dd38c105
@@ -485,7 +485,94 @@ The strongest claim: the conversation is data. The user owns the data. The model
*Source cluster: `research/cluster_4_tone_and_formatting.md`*
*Verdict orientation: Useful + Persona*
*[FILL IN: ~250 lines.]*
### 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.
---