From 937759b530b604f0d975745ccb1d6cf859819eca Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gabor=20K=C3=B6rber?= Date: Mon, 14 Sep 2026 13:59:35 +0200 Subject: [PATCH] =?UTF-8?q?=F0=9F=93=9D=20Add=20next-gen=20plugin=20design?= =?UTF-8?q?=20spec=20and=20naming=20review?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Design spec for the g4b_ai replacement plugin — component inventory, deployment model, architecture, and existence map. Fable naming review evaluates candidates and recommends "Keep" as the plugin name. --- .../designs/2026-09-14-plugin-design-spec.md | 149 ++++++++++++++++++ .../reports/2026-09-14-fable-naming-review.md | 122 ++++++++++++++ 2 files changed, 271 insertions(+) create mode 100644 docs/workpad/designs/2026-09-14-plugin-design-spec.md create mode 100644 docs/workpad/reports/2026-09-14-fable-naming-review.md diff --git a/docs/workpad/designs/2026-09-14-plugin-design-spec.md b/docs/workpad/designs/2026-09-14-plugin-design-spec.md new file mode 100644 index 0000000..27ae2aa --- /dev/null +++ b/docs/workpad/designs/2026-09-14-plugin-design-spec.md @@ -0,0 +1,149 @@ +# Next-Generation Plugin Design Spec + +Replaces `g4b_ai`. Target location: `reliquary/plugins//`. + +## 1. Identity + +This plugin is a coherent agent orchestration system -- a wizard's private workshop where knowledge accumulates, work gets dispatched, and the system maintains itself. It is not a bag of utilities; it is a coordinated set of roles that compose into a working practice for agent-driven development. + +The trope is a **mage tower**. Igor runs the lab, adepts study their domains, the tome holds accumulated knowledge, the forge produces artifacts, Pinky asks the unhinged questions that crack the problem, and Zathras maintains the tower itself. The user is the wizard. The tower travels with them -- it deploys into any project, officially or as a shadow, and adapts to what it finds. The arcane register is deliberate: Igor (Pratchett's clan of brilliant assistants), adepts (skill through practice), tome (institutional memory), Pinky (the "fool" whose instincts are right), Zathras (Babylon 5's tireless machine-tender). + +This plugin replaces `g4b_ai` (v0.2.0), which is a flat collection of five skills and three agents with no coordination layer. Everything in `g4b_ai` either graduates into this plugin or is absorbed by a component. + +## 2. Components + +| Component | Role | Status | Current location | Target location | +|-----------|------|--------|------------------|-----------------| +| **Igor** | Session coordinator. Talks to the user, delegates work, keeps a journal, spawns adepts, routes to the forge. | Built | `.claude/skills/assistant/` + `.claude/agents/assistant.md` (warpspace) | `skills/igor/` + `agents/igor.md` | +| **Adept** | Domain-scoped knowledge agent. Orients on a domain, accumulates journals and CLAUDE.md, answers consultations, dies with the session but leaves knowledge behind. | Built | `.claude/agents/adept.md` (warpspace) | `agents/adept.md` | +| **Tome** | Knowledge layer. Navigate (orient before work), curate (six methods for growing the wiki), check (validate health), handoff (post-work impact), init (bootstrap). Project-overlay pattern: generic `tome` + project-specific `-tome` mutation. | Built | `.claude/skills/tome/` (warpspace, standalone) | `skills/tome/` (absorbed into plugin) | +| **Forge** | Dispatching orchestrator. Receives a brief, decomposes it, fans out subagents by tier, synthesizes results. The "oven" for multi-part implementation jobs. | Built | `.claude/agents/dispatching-orchestrator.md` (warpspace) | `agents/forge.md` | +| **Workpad** | Document placement. Resolves where reports, plans, goals, journals go. Steers other skills to a single location. | Built | `skills/workpad/` (g4b_ai) | `skills/workpad/` | +| **Research-tree** | Multi-topic research as a phased dependency tree. | Built | `skills/research-tree/` (g4b_ai) | `skills/research-tree/` | +| **Research** | Research governance. Agent spawning rules, web fetch budgets, tier selection. | Built | `skills/research/` (g4b_ai) | `skills/research/` | +| **Implementation** | Implementation orchestration. Sequencing, delegation, bug approach, verification. | Built | `skills/implementation-orchestration/` (g4b_ai) | `skills/implementation/` | +| **SVG** | Markdown-embedded SVG rendering rules and renderer compatibility. | Built | `skills/markdown-embedded-svg/` (g4b_ai) | `skills/svg/` | +| **Pinky** | Brainstorm catalyst. Opus-tier, philosophical, asks sideways questions that crack problems open. Writes proactively. Invites the next thought. | Designed | Brainstorm doc only | `agents/pinky.md` + `skills/pinky/` | +| **Zathras** | Self-maintenance agent. Maintains the plugin's own skills, templates, conventions. Can deploy a project-level Zathras. Knows all installation methods and environment detection. | Designed | Brainstorm doc only | `agents/zathras.md` + `skills/zathras/` | + +### Agents absorbed from g4b_ai + +| Agent | Disposition | +|-------|------------| +| `researcher` | Kept as `agents/researcher.md` -- leaf research agent, Opus, no sub-agents, 5-page web cap | +| `search` | Kept as `agents/search.md` -- read-only Sonnet lookup agent | +| `scout` | Kept as `agents/scout.md` -- Haiku quick-fact agent | + +## 3. Deployment Model + +### Official vs Shadow + +| Mode | Mechanism | Visibility | +|------|-----------|------------| +| **Official** | Plugin enabled in project `.claude/settings.json` `enabledPlugins` | All contributors see it | +| **Shadow** | Plugin enabled in `.claude/settings.local.json` `enabledPlugins` | User-only, invisible to project | + +Shadow mode is not degraded mode. The plugin works fully in both -- the difference is who sees the configuration. + +### The project.md seam + +Igor's behavior has two layers: **generic** (session lifecycle, delegation tiers, adept spawning, accretion rules) and **project-specific** (pinned agents, verification commands, workpad location, tome mutation name, domain skills). The seam is a single swappable file: `skills/igor/references/project.md`. When the plugin lands in a new project, this file is the only thing that needs authoring. + +### Project-local mutation + +The plugin deploys a **project-local overlay** for project-specific knowledge. This follows the tome pattern: + +- Generic plugin provides: `skills/tome/` (navigate, curate, check, handoff, init) +- Project creates: `.claude/skills/-tome/` (navigate override, folder guide, platform notes, curation rules) + +The overlay is created by `tome:init` during bootstrap. The same pattern applies to Igor: the plugin carries the generic skill; the project carries `skills/igor/references/project.md` and optionally a project-specific agent roster. + +### Bootstrap sequence + +When the plugin arrives in a new project: + +1. **Detect permission level** -- is there a `.claude/`? Can we write to it? Is the repo owned? +2. **Run `tome:init`** -- scaffolds wiki, builds the project-specific tome mutation, detects curation methods +3. **Author `project.md`** -- pinned agents, workpad location, verification commands, domain skills +4. **Resolve persistent storage** -- project workpad if official; `~/.claude/plugins/data//projects//` if shadow +5. **Ready** -- Igor can now coordinate, adepts can orient, tome can navigate + +Steps 1-4 are Zathras's job. In the absence of Zathras (not yet built), the user or Igor does them manually. + +## 4. Architecture + +### Role relationships + +``` +User + | +Igor (coordinator) + |--- spawns ---> Adepts (domain knowledge, long-lived within session) + |--- dispatches --> Forge (multi-part implementation/research jobs) + | |--- fans out --> researcher / search / scout / implementer agents + |--- invokes ------> Pinky (brainstorm sessions) + |--- invokes ------> Zathras (self-maintenance, bootstrap) + | + '--- uses skills --> Workpad (file placement) + Research-tree (phased research structure) + Research (agent governance) + Implementation (sequencing, verification) + Tome:navigate (orientation before work) + SVG (diagram rendering rules) +``` + +Igor is the only component that talks directly to the user. Adepts advise Igor. The forge executes multi-part work. Pinky brainstorms with the user (Igor hands off the conversation). Zathras maintains the tower. + +### Project-independent vs project-specific + +| Layer | Content | +|-------|---------| +| **Plugin (portable)** | All skills, all agent definitions, all references except `project.md`, tome generic skills, workpad resolution logic | +| **Project overlay** | `project.md`, `-tome/` mutation (folder guide, platform notes, curation rules, navigate override), adept domain folders, project wiki | + +### Knowledge flow + +Adepts produce **ephemeral knowledge** (journals, session observations). Tome curates it into **permanent knowledge** (wiki docs, glossary). The accretion model: corrections accumulate as dated sections during sessions; compression into shorter forms is a separate curator operation done from the outside. + +Two knowledge tiers in adepts: **solid** (verified from main, goes into CLAUDE.md) and **experiences** (branch observations, journal only). Branch awareness prevents solidifying speculative code as fact. + +## 5. Existence Map + +| Component | Status | Current home | Plugin target | +|-----------|--------|-------------|---------------| +| Igor skill | **Built** | warpspace `.claude/skills/assistant/` | `skills/igor/` | +| Igor agent | **Built** | warpspace `.claude/agents/assistant.md` | `agents/igor.md` | +| Igor project.md | **Built** | warpspace `.claude/skills/assistant/references/project.md` | `skills/igor/references/project.md` (template) | +| Adept agent | **Built** | warpspace `.claude/agents/adept.md` | `agents/adept.md` | +| Forge agent | **Built** | warpspace `.claude/agents/dispatching-orchestrator.md` | `agents/forge.md` | +| Tome (all skills) | **Built** | warpspace `.claude/skills/tome/` | `skills/tome/` | +| Workpad skill | **Built** | g4b_ai `skills/workpad/` | `skills/workpad/` | +| Research-tree skill | **Built** | g4b_ai `skills/research-tree/` | `skills/research-tree/` | +| Research skill | **Built** | g4b_ai `skills/research/` | `skills/research/` | +| Implementation skill | **Built** | g4b_ai `skills/implementation-orchestration/` | `skills/implementation/` | +| SVG skill | **Built** | g4b_ai `skills/markdown-embedded-svg/` | `skills/svg/` | +| researcher agent | **Built** | g4b_ai `agents/researcher.md` | `agents/researcher.md` | +| search agent | **Built** | g4b_ai `agents/search.md` | `agents/search.md` | +| scout agent | **Built** | g4b_ai `agents/scout.md` | `agents/scout.md` | +| Pinky agent+skill | **Designed** | brainstorm doc only | `agents/pinky.md` + `skills/pinky/` | +| Zathras agent+skill | **Designed** | brainstorm doc only | `agents/zathras.md` + `skills/zathras/` | + +## 6. The Naming Pitch + +The system is a wizard's tower that travels with its owner. Igor runs the daily operations -- greets the user, delegates tasks, keeps the journal, knows when to call in a specialist. Adepts study their domains and accumulate institutional knowledge that outlives any single session. The tome holds the accumulated wisdom -- navigable, curable, correct-on-contact. The forge turns plans into artifacts through coordinated labor. Pinky sits in the corner asking questions that sound naive but consistently identify the real flaw. Zathras maintains the tower itself, because every system that doesn't maintain itself rots. + +The plugin name is not any single role -- it is the name for the whole tower. The register is arcane, intimate, and slightly old-fashioned. It should feel like a place where real work happens, not a product name. The current placeholder (`g4b_ai`) carries no meaning and should be replaced. + +### Candidates from the brainstorm + +| Name | Register | Why it fits | +|------|----------|-------------| +| **Sanctum** | The private workspace | Clean, universally understood. "The sanctum's adepts." | +| **Grimoire** | A book of practiced, working magic | Not just knowledge but working knowledge. Implies the system does things. | +| **Athanor** | Alchemist's slow furnace | Patient background transformation. Obscure but beautiful. | +| **Spire** | The tower itself | Minimal, vertical, implies reach. | +| **Studiolo** | Renaissance private study | Intimate, cultured, where real thinking happens. | +| **Arcanum** | Secret knowledge / its container | "The arcanum's adepts." Natural possessive. | +| **Vademecum** | "Go with me" -- a portable handbook | Fits the portable plugin idea perfectly. | +| **Orrery** | Mechanical model of celestial bodies | Fits the space-game origin. A working model of complexity. | +| **Collegium** | Medieval scholarly community | Adepts study there. Community over hierarchy. | diff --git a/docs/workpad/reports/2026-09-14-fable-naming-review.md b/docs/workpad/reports/2026-09-14-fable-naming-review.md new file mode 100644 index 0000000..2cfaeba --- /dev/null +++ b/docs/workpad/reports/2026-09-14-fable-naming-review.md @@ -0,0 +1,122 @@ +# Naming and Identity Review: Plugin Design Spec + +Creative review of `docs/workpad/designs/2026-09-14-plugin-design-spec.md`, read against the original brainstorm (`spacecraft/docs/workpad/brainstorm/igor/2026-08-13-igor-plugin-system.md`). + +## Summary + +The cast is strong and the trope is nearly right, but the spec has three creative problems: + +1. **The pitch says "mage tower" but the named characters are mad-science lab.** Igor (Frankenstein via Pratchett), Pinky (Acme Labs), Zathras (the Great Machine). The unnamed components (adept, tome, forge) are medieval-arcane. Two registers. Pratchett gets away with exactly this mix, so it can work, but the spec should own it rather than pretend it's all candles and vellum. +2. **"A tower that travels" is a contradiction the name has to resolve.** Towers are the least portable structure in fiction. Either the name is a *company* (a retinue goes with you) or the pitch changes to "you raise the tower wherever you land." Pick one. I recommend the second. +3. **The spec dropped the brainstorm's voice and its philosophy.** "Says 'yeth, marthter' exactly zero times" and "No one ever listens to Zathras" are gone. So is "contexts as short-lived beings." Those were the reasons someone would *want* this. The spec reads like a component inventory wearing a costume. + +Name recommendation: **Keep**. Runner-up: **Retinue**. Best of the original nine: **Orrery**. Rename **Forge** to **Kiln** (or **Athanor**). + +## 1. Name Recommendations + +### The test that matters + +Nobody says the plugin name aloud. It lives in three places: the skill namespace (`:tome`, `:pinky`), the data path (`~/.claude/plugins/data//`), and the reliquary path (`reliquary/plugins//`). Judge every candidate by how `:navigate` and `:igor` read. The possessive ("the X's adepts") is secondary; the namespace is what you type fifty times a day. + +### The nine, judged + +| Name | Verdict | Why | +|------|---------|-----| +| **Sanctum** | Safe, forgettable | A sanctum is a place of *retreat*, not work. Marvel owns the word now. Nothing about it says the system does anything. `sanctum:forge` is a category error. | +| **Grimoire** | Wrong slot | Beautiful word, but it names a book and the tower already has a Tome. `grimoire:tome` is two books. If you ever want it, it's a rename for Tome, not the plugin. | +| **Athanor** | Wrong slot | Same problem in the other direction: it's a furnace and the tower already has a Forge. `athanor:forge` is two ovens. But see section 4: Athanor is the *right* name for the orchestrator. | +| **Spire** | No | Only the pointy bit at the top; nobody works there. "Slay the Spire" owns search. Reads as a product name, which the spec explicitly doesn't want. | +| **Studiolo** | Wrong register | Renaissance humanist, not arcane. A studiolo is a room for *one* person; this system has staff. Also awkward in an English mouth. | +| **Arcanum** | Generic | The most default fantasy noun available. It's the secret itself, not the place where secrets are kept. Every third game and Blizzard expansion has used it. | +| **Vademecum** | Concept yes, name no | "Go with me" is exactly the portability idea and belongs in the pitch as a sentence. As a name it's a third book, unpronounceable, and `vademecum:navigate` is a typing injury. | +| **Orrery** | Best of the nine | A working mechanical model of a complex system that a tender keeps running: that *is* Zathras and the Great Machine, and it honors the space-game origin. Weakness: an orrery is a display piece, it doesn't accumulate knowledge, and "the orrery's adepts" is odd because nobody lives in one. Names the orchestration, not the memory. | +| **Collegium** | No | Community-over-hierarchy contradicts the architecture, where only Igor speaks to the user. Academic, not arcane. | + +From the brainstorm's longer list: **Sigil** is interesting (the mark you leave on a project, which is what a project overlay is) but too small to hold a whole tower. **Lexicon**, **Conclave**: no. + +### New candidates + +| Name | Namespace | Why it works | Risk | +|------|-----------|--------------|------| +| **Keep** | `keep:igor`, `keep:tome`, `keep:pinky` | The inner tower of a castle *and* the verb for what the whole system does: keep journals, keep the wiki, keep the tower maintained. One syllable. `reliquary/plugins/keep` and `plugins/data/keep/` read cleanly. "The keep's adepts" is natural. Old-fashioned, fortified, private. | Google Keep. Every prose mention needs "the". | +| **Retinue** | `retinue:igor`, `retinue:tome` | Solves the "tower that travels" contradiction directly: a retinue is precisely the company that follows a lord from place to place. Igor, adepts, Pinky, Zathras *are* a retinue. "The retinue's adepts" is the most natural possessive of any candidate. Googleable, no tech collision. | Courtly register rather than arcane. Nobody is excited by the word "retinue." It names the people, not the place, so the tome and forge feel carried rather than housed. | +| **Atelier** | `atelier:forge`, `atelier:adept` | The master-and-apprentices workshop is exactly this structure: a master (user), a studio manager (Igor), apprentices who learn by practice (adepts), and artifacts leaving the door. What Studiolo was reaching for, in a word English speakers can say. | Art/fashion register, not arcane. Slightly precious. | +| **Lair** | `lair:igor`, `lair:pinky` | The wildcard. Honest about the mad-science register the cast actually has. Funny, four letters, unforgettable, and `lair:pinky` makes people grin. Igors work in lairs. | Villainous connotation. Might read as a joke rather than a practice. If the system is meant to be taken seriously by a team in official mode, this hurts. | +| **Hearth** | `hearth:tome` | The center of a house: the fire (forge), the gathering (Igor, Pinky), the stories told around it (tome, journals). The most *intimate* of all candidates, which the spec asks for. | Hearthstone owns search. Domestic rather than arcane. | + +### Verdict + +**Keep**, if the pitch changes to "you raise the tower wherever you land" (see section 3). **Retinue**, if the pitch insists on "travels with them." **Orrery** if the space lineage matters more than either. + +Tie-breaker in Keep's favor: it is the only candidate whose name is also the system's mission. The tower keeps. That's the whole philosophy in a syllable. + +## 2. Identity Coherence + +### The register seam + +Say it plainly in the spec: the named characters come from pulp lab fiction, the unnamed components from the medieval arcane. Igor is Frankenstein's assistant. Pinky lives in a cage at Acme Labs. Zathras lives inside a planet-sized machine. None of them is a wizard's servant. + +This is fine, because the bridge exists: the **alchemist's laboratory**. Alchemy is where the arcane and proto-science overlap, and every component fits an alchemist's workroom without strain: the athanor (slow oven), the tome, the adepts (alchemical term of art for a practitioner who has attained the work), Igor at the bench, the fool who asks the wrong question. Frame the tower as an *alchemist's* tower, not a mage's, and the seam closes. The spec's own candidate list already leans this way (Athanor, Vademecum). + +### Where it's forced + +- **"Forge."** A forge is a smithy: hammering, sparks, a blacksmith. Nothing in the tower forges. The orchestrator loads work, closes the door, waits, and takes out the result. That is an oven, and the user already calls it "the oven" ("put it in the oven"). See section 4. +- **researcher / search / scout.** Three plain job titles in an otherwise named cast. Don't rename them, but state the rule that justifies it: *things you talk to get names; things you send get labels.* Igor, Pinky, Zathras have personalities and you converse with them. Adepts have a lifecycle and you consult them. Researcher/search/scout are dispatched and return; they're staff, not characters. Workpad, research-tree, svg, implementation are tools. The register has a ceiling and that's correct. If you want one collective word for the unnamed dispatched agents, it's **familiars**: small creatures the wizard sends to fetch things. Use it in the pitch, not the filenames. +- **"The tower travels."** Already covered. Resolve it. + +### Where it holds + +Igor, adept, tome, Pinky, Zathras are all correct and the spec should not touch them. Adept in particular: the brainstorm's reasoning ("skill acquired through practice, not innate authority") is the best naming argument in either document, and the spec should quote it rather than compress it to "skill through practice." + +## 3. The Pitch + +The current pitch is a roll call. Six sentences, each "X does Y." It tells you what the parts are; it doesn't make you feel the place. Three problems: + +**It has no scene.** Open with a moment, not a list. Two candidates: + +> You open a repo you've never touched. Nothing in it knows you. Zathras walks the perimeter, finds a `.claude/` it can write to, or doesn't, and raises the tower anyway, in the open or in shadow. By the time you type your first question, Igor has already sent an adept into the networking crate to read the walls. + +or the session-mid scene: + +> "The lane spawner is double-firing." Igor doesn't start reading code. It asks the networking adept, who was briefed an hour ago and has a journal entry about exactly this from last Tuesday. The answer comes back with a file path. Igor puts the fix in the kiln and goes back to talking to you. + +**It dropped the voice.** The brainstorm has two lines that are the entire personality of the thing: "Says 'yeth, marthter' exactly zero times" and "No one ever listens to Zathras." Both are gone from the spec. Put them back. They're not jokes; they're the register calibration. They tell the reader this is dry, affectionate, and self-aware, not a fantasy skin. + +**It's jargon in places.** "Correct-on-contact," "coordinated labor," "institutional knowledge that outlives any single session" are spec words. In the pitch, say it like the brainstorm did: "the artifacts survive." Or: "Every session dies. The tower is what it leaves behind." + +**One sharpening for the closing line.** Current: "It should feel like a place where real work happens, not a product name." Better: "It's not a product. It's the room you work in." + +## 4. Component Naming + +| Component | Verdict | Note | +|-----------|---------|------| +| **Igor** | Keep, obviously | The Pratchett clan is the strongest reference in the system: generational knowledge, comes pre-equipped, serves whoever needs it. The spec should say "Pratchett's clan" not "Pratchett's clan of brilliant assistants"; the second half undersells it. Igors are the institution. | +| **Adept** | Keep | Correct on every axis. Also the alchemical term for a completed practitioner, which strengthens the alchemist framing. | +| **Tome** | Keep | Established, one syllable, already has a project overlay pattern people know. Don't let Grimoire near it. | +| **Forge** | **Rename** | Wrong verb. Options: **Kiln** (plain: one syllable, you load it and wait, `agents/kiln.md`, "put it in the kiln" is what the user already means by "oven") or **Athanor** (poetic: the alchemist's slow furnace, matches the register perfectly, but you'll explain it every time). I'd take Kiln and put Athanor in the doc as the reference. Either way, this frees Athanor from the plugin-name list where it never belonged. | +| **Pinky** | Keep | The brainstorm's character description is excellent and should survive into `agents/pinky.md` verbatim. One coherence note: Pinky is the Shakespearean fool, which *is* a tower archetype, so the Warner Bros. origin doesn't break register. The spec's one-line summary ("asks the unhinged questions") loses the key point: Pinky was never the idiot. Say that. | +| **Zathras** | Keep | The one name an outsider can't decode without Babylon 5, and that's fine; it rewards the reader who knows. The Great Machine maps exactly onto the tower. Make sure "Zathras raises the tower" becomes the name for bootstrap. It's a better verb than "bootstrap sequence." | +| **researcher / search / scout** | Keep plain | See section 2. Label, not name. Deliberate. | + +## 5. What the Spec Is Missing + +Not technically. Narratively. + +**The enemy.** The brainstorm names it: "write goals, start one, context dies, next session doesn't know what was decided or why." Every good system pitch has an adversary. This one's is *forgetting*, and its slower cousin, *rot*. The spec never says what the tower is against. Say it in the first paragraph. + +**The why.** The philosophical foundation ("contexts as paths," "short-lived beings," "the artifacts survive") is what makes this a practice rather than a task runner with a costume. The spec cut all of it. One paragraph in the Identity section: every session is a path through the latent space that can never be walked again; the tower is the machinery for making that path's residue useful to the next one. That's the line that makes a reader want the thing, because it's true about their own work. + +**Shadow mode as a feeling.** The spec treats it as a settings table. It's the most evocative idea in the design: a tower nobody else in the building can see. The brainstorm's Discworld instinct is right; the Unseen University is the exact reference. One sentence: "In shadow mode the tower is unseen. The project doesn't know it's there. You do." + +**A first hour.** What happens between "I enabled the plugin" and "this is useful"? The bootstrap sequence is written for Zathras. Write one version for the wizard: what you see, what you're asked, when the first adept reports back. Ten lines. + +**Igor's voice.** Igor is the only component that speaks to the user, and the spec doesn't say what it sounds like. Dry, competent, never servile, occasionally deadpan. The brainstorm has it ("yeth, marthter" zero times). One sentence in the spec, and the whole system gets a tone. + +## Recommended Edits, Ranked + +1. Rename **Forge** to **Kiln**. Remove Athanor from the plugin candidates. +2. Choose **Keep** and change "travels with them" to "raised wherever they land." Zathras raises the tower. +3. Reframe "mage tower" as "alchemist's tower" to close the lab/arcane seam. +4. Restore the two brainstorm lines and the "contexts as paths" paragraph. +5. Rewrite the pitch opening as a scene. +6. Name the enemy (forgetting, rot) in the first paragraph of Identity.