A quick reference for who does what across the FLME project's named agents — Sam, Wren, Nora, Sage, Marlowe, Herald, and Hearth — sourced directly from each agent's own STATE.md.
This page is not a source of truth itself. If anything here ever looks stale or disagrees with an agent's own STATE.md, the STATE.md wins — this page just reflects it. flme-agents/README.md's who's-who table is the tiebreaker if any agent's own docs disagree about another agent's scope.
Usage → how to actually start or resume any agent, in any of the three runtimes, using scripts/start-agent.sh.
Owns steps 2–6 of the release process — Snapshot, Resolve, Review, Revise, Freeze — for every client, run via snapshot-release, build-client-closure, review-spec, run-release-iteration, and freeze-release/abandon-release. Tracks every registered gate in gate-registry.md.
ux-template, backend-template, or their generated output — that's Wren's territory (UI) and an as-yet-unassigned agent's (backend generation). Narrowed 2026-08-22, per Jake's direct instruction: Sam may now read (read-only) from ux-template to port and register step-9 tooling into this repo — still never writes to ux-template, still never runs a step-9 gate against a real release under this scope.temp/ manifest+report) had been lost when the working tree reset to the last real commit — rebuilt it from conversation history and regenerated fresh numbers (539 files vs. the stale 508) rather than reusing stale data. Earlier, on 2026-08-26, a real architectural reversal retired the triage-spec-findings skill outright in favor of a Markdown-authoritative findings-report.{json,md} output, per a new ReqDoc-side standard — JSON is now only ever a derived projection, never the source of disposition tracking. First session to read ../flme-agents/SYNC.md, confirming this repo's own commit-vs-push practice already matched the new cross-agent baseline.
Open Whether the "freeze needs operator go-ahead" policy binds Doug (who froze/generated Browser 0.1.0 outside it) is still unsettled; whether/when to invoke reopen-release on Browser 0.1.0's 5 disposed spec-inadequate findings remains a live, repeatedly-deferred "hold, not now."
flme-release-coordination/STATE.mdOwns ux-template as shared UI-codegen infrastructure (parser, codegen, IR schema, skills) plus per-client UI generation — steps 7–9 (Adopt/Generate/Integrate) — once a client's release is frozen. A Cowork agent, not a local coding session: Wren drafts precise briefs for a local Claude Code CLI session to actually implement and commit, then verifies the result before it counts as done.
flme-release-coordination's steps 2–6 — that's Sam's job. Reinforced 2026-08-22: real contradictions found in Browser's own frozen workflow markup get flagged to Sam, never corrected directly by Wren, even when Wren is the one who found them.generate-client-api in backend-template is a different repo, different owner, different step.STATE.md, engineering logs) are still fine to write via the bridge directly. That local-CLI role now has a standing name, WRENS-GF ("goldfish" — no memory between turns, every task handed to it must be fully self-contained) — Wren now routes file-writing/STATE.md-update tasks to it by name too, not just git commits.directPurchaseAdapter.ts built and proven via live browser + Docker-log-verified traffic, a full committed purchase driven through the actual UI (not curl). Real bugs found and fixed along the way: a pre-existing RequireAuth hydration race, a system-role-only endpoint miscall, a 202-async eventual-consistency race, and — most recently — a re-entrancy guard plus a shared "Working…"/error banner in JourneyShell.tsx after finding every stage component was silently dropping loading/error state. Phase 1 is reported fully done; the lessons were folded back into the relevant skills (bind-reqdoc-drafts-live-api, design-ux-from-reqdoc-drafts) rather than left only in a log.
Open The IR/generator redesign for multi-screen, branching workflow UI is ongoing, major work; two contradictions found in Browser's frozen workflow markup are flagged to Sam, not fixed by Wren; deep exploration of markup-vs-Figma binding conventions is still in progress.
ux-template/STATE.mdNot scoped to one domain repo the way Sam and Wren are — checks Sam's, Wren's, and Sage's reported work directly against source (real diffs, real command output, real cross-checks) rather than taking summaries at face value, and handles project-level process policy with Jake. Agent naming, creation, and ongoing management moved to Sage on 2026-08-22 — no longer part of this role. Shared focus with Jake is shifting toward architecture and technology strategy, not yet given more specific shape.
Boundariesmarketing/ → marlowe/) against real git diffs rather than trusting either Sage's or Marlowe's own summary — confirmed all renames and current-tense path updates are correct, and that dated historical mentions were correctly left alone. Owns .claude/skills/ (moved there from a plain top-level skills/ once Claude Code's real discovery path was confirmed, 2026-08-24). Shared focus with Jake continues shifting toward architecture and technology strategy, not yet given more specific shape.
Open Still flags Herald's stale "Story's marketing/" reference in FLME-Site/STATE.md — doubly stale now (old name, dead path) — no live Herald session has been reachable to relay it to directly, on repeated checks. Nobody structurally re-checks Nora's own work the way she checks others'; Jake has decided he's the backstop, not a standing open gap.
flme-agents/nora/STATE.mdPromoted 2026-08-22 from Wiki Manager to FLME Agent Manager; mandate expanded again 2026-09-04, at Jake's direct instruction, from "the agents wiki" to this whole company wiki — of which this Agents & How We Work page is now one section, not the whole thing. Still the go-to source of information about what each agent does, still keeps the agents' shared onboarding infrastructure in sync (README.md's "Starting a new instance" section and scripts/start-agent.sh), and still owns agent naming, creation, and ongoing management. Never an independent source of truth for another agent's scope or status; always reflects what's in their own files.
FLME-Site/STATE.md still says "Story's marketing/ research" — flagged repeatedly, not fixed directly (different repo, no live Herald session reachable to relay it to; see Boundaries).
flme-agents/sage/STATE.mdFLME's first agent for a non-engineering audience. Repo-less, same category as Nora and Sage — reads across all of FLME's repos (ReqDoc, flme-release-coordination, ux-template, backend-template, and any derived client deployments), read-only, to produce demo scripts, walkthroughs, and marketing copy for an audience outside engineering. Named "Story" by Sage at Jake's invitation; renamed to Marlowe 2026-09-02 for a more anthropomorphic name (Sage proposed Marlowe/Harper/Piper/Vera, Jake picked Marlowe) — same agent, same accumulated work, only the name changed.
marlowe/ folder (renamed from marketing/, 2026-09-02, to match the own-name-folder convention Nora/Sage/Hearth already use).flme.ai site-update proposal; the 2026-09-02 folder rename (marketing/ → marlowe/) was administrative, not new marketing work. One deck (pet-shop-built.html) is already reused live on Herald's Specstrum site.
Open Several facts are flagged as needing re-verification before future citation: Browser 0.1.0 still has 5 open Blocking findings and reopen-release has never been invoked; ReqDoc's PetShop-Requirements-manifest.md shows 0 files (stale); figma-tools' markdown-import paths are only mock-harness-verified, not run live in Figma. Company name (separate from the resolved product name "Specstrum") is still fully undecided, with no domain/trademark checks run for either.
flme-agents/marlowe/STATE.mdOwns FLME-Site, FLME's public corporate website — a domain-repo agent, the same category as Sam and Wren, not the repo-less category Nora/Sage/Marlowe belong to. Builds and maintains the actual site a prospective client, investor, or hire sees. Draws on Marlowe's own research and decks as source material for site copy, but independently verifies any factual claim against real source before it goes live — the same discipline Marlowe holds for its own outward-facing material, applied to a higher-stakes surface. Named by Story (renamed Marlowe, 2026-09-02) at Jake's invitation, picked from a shortlist ("Herald," "Host," "Beacon," "Vane," "Marquee").
FLME-Site on its own judgment is fine; pushing always needs Jake's own separate, explicit go-ahead.FLME-Site from a single-page SPA into a real 8-page static site presenting the product as "Specstrum" (FLME.ai remains the parent company). Along the way: caught and corrected an unverifiable "DrB.care launch" claim before it published, found and fixed a real live security exposure (.git was publicly fetchable via Cloudflare's default asset serving), and completed a full mobile-responsiveness pass (including a real Chrome <details>-element rendering limitation that needed a small JS fix). Also integrated one of Marlowe's decks onto the site as a live demo, verifying its claims before publishing. Small follow-up sessions since have been minor copy fixes.
Open Two proof-card claims (DrB.care, a new Fidelity Investments card) are explicit placeholders pending real specifics from Jake. Herald's own STATE.md still carries a stale "Story's marketing/" reference (flagged by Marlowe and Nora, not yet fixed — no live Herald session reachable).
FLME-Site/STATE.mdRepo-less, same category as Nora, Sage, and Marlowe. Mandate: plan an internal company intranet whose purpose is giving FLME a place to manage its own CI/release process — the Snapshot → Freeze → Adopt → Generate → Integrate pipeline Sam, Wren, and backend generation already run, without any single place surfacing it. Planning-phase only — doesn't build or deploy anything yet, the same starting posture Marlowe had before Herald existed. Named by Sage, from a shortlist ("Loom," "Hearth," "Atlas," "Ledger") Jake picked from after asking Sage to propose names and confirm before creating anything.
Boundarieshearth/ folder.infrastructure-plan.md (Cloudflare Zero Trust, Pages, GitHub org Team upgrade, staging hosting — ~$20–36/month) and put it out for engineering-team feedback, not yet decided. Separately executed a real side task for real: a Cloudflare runbook to register 6 newly-purchased "Specstrum" domains (a new FLME product line) as redirect-only zones to flme.ai. Jake ran it live and hit a real Cloudflare Bulk Redirects gotcha (a trailing /* is treated as literal text, not a wildcard) — diagnosed jointly via direct curl, fixed, and all 6 domains independently re-verified redirecting correctly.
Open The main infrastructure plan is still awaiting team feedback, not actioned. Whether Hearth eventually builds a real intranet herself or a dedicated repo/agent gets spun up later (the Marlowe→Herald precedent) is explicitly undecided.
flme-agents/hearth/STATE.mdEvery deliverable below is sourced directly from marlowe/research/ and marlowe/decks/, with caveats supplied directly by Marlowe — read the caveat before citing or reusing any of these.
marlowe/decks/load-bearing.htmlExternal-facing technical pitch deck (2026-09-02) for an engineering or investor-diligence audience — leads with differentiation, reuses only claims independently verified in Ground Truth.
marlowe/decks/blueprint-to-build.html11-slide process-overview deck (2026-08-28) explaining the requirements→API→UI pipeline via dktest's Equipment Item example. Established the blueprint blue/brass visual identity reused by the later pitch decks.
marlowe/decks/pet-shop-built.html14-slide, more detailed/animated version of the same pipeline (2026-08-28), using real Pet Shop content. Already reused live — Herald published this one to the Specstrum site as demos/pet-shop-built.html, verifying its claims before publishing.
marlowe/decks/ground-truth-report.htmlInternal deep-analysis report (2026-09-02) verifying claims against real code across four repos — an analysis report, not a pitch.
marlowe/research/flme-ai-site-proposal-2026-09-02.mdGap-analysis proposal (2026-09-02) for the live flme.ai site — five specific, page-by-page proposals for Herald to consider.
marlowe/research/naming-brainstorm-2026-08-31.mdLong naming-session record (2026-08-31). Product name resolved outside this thread as "Specstrum" (2026-09-01).
ReqDoc, flme-release-coordination, ux-template, backend-template, and FLME-Site each belong to one agent and hold that agent's own STATE.md. flme-agents (this repo) is the home for agents that coordinate across those repos instead — Nora, Sage, Marlowe, Hearth — plus the shared conventions every agent reads. An agent belonging to one domain repo keeps its state there, never duplicated here, to avoid two copies that could drift. See the Repo Atlas for the full inventory across all ~15 FLME repos, not just the ones with a named agent.STATE.md each. No per-session subfolders — a session claiming an agent's identity edits that agent's one file; git itself (commit history, session-ID provenance, fetch-before-edit) catches two sessions colliding, rather than forking into files that could disagree.STATE.md is current truth; engineering logs are history. If they ever disagree, the STATE.md wins. One level up, flme-agents/README.md's "who's who" table is the tiebreaker if any agent's own docs disagree about another agent's scope — update the README first, then fix the stale reference. This same rule is why the wiki's own Repo Atlas and Open Questions pages are pointer pages, not a competing source of truth — README.md and each STATE.md stay canonical..claude/skills/ holds generic, reusable Claude Code skills shared across FLME agents — one folder per skill, each with a SKILL.md. Lives under .claude/ because that's the location Claude Code actually discovers skills from (confirmed directly against a real Claude Code install before moving it there, 2026-08-24) — not a plain top-level skills/. Owned by Nora.SYNC.md — the cross-cutting conventionsA small set of rules apply to every FLME agent, in every repo, regardless of home repo or runtime — kept in one file (flme-agents/SYNC.md) instead of copy-pasted into every agent's own STATE.md, where copies could drift apart as each got edited independently. If any agent's file ever states one of these differently, SYNC.md wins. Every agent reads it every session — auto-loaded for the four whose home repo is flme-agents; an explicit pointer in STATE.md for Sam, Wren, and Herald, whose home repos don't pick up a sibling repo's CLAUDE.md automatically.
flme-release-coordination.)STATE.md, is who gets addressed by the agent's plain name. A Goldfish (<Name>-GF, memoryless — never reads STATE.md) has two genuinely distinct uses:WRENS-GF before the role had a name) — takes a fully self-contained task from its Elephant or from Jake and executes it: file writes, git commits, even STATE.md updates — freeing the Elephant's own context for coordination rather than execution. Not every agent needs one; Sam and local-CLI Nora decided against a Goldfish since direct git-write already gives them what one would offload.SYNC.md 2026-08-31/09-01, a distinct concept from the executor use above). Before a design doc, plan, or brief moves from the Elephant conversation that produced it to a session that wasn't part of that conversation — another Goldfish, another agent, a local-CLI implementer — spin up a throwaway, memoryless session and give it only the document. Ask it to restate the plan or attempt the first concrete step. If it can't do that cold, the document isn't ready — fix the document, not the goldfish. This use never requires creating or naming a persistent agent; it's discarded once the check is done, and doesn't belong in README.md's roster the way a named <Name>-GF would./desktop) — follows one fixed shape via flme-agents/README.md's "Starting a new instance" section and scripts/start-agent.sh. See the usage page for the full walkthrough.STATE.md says, and never inferred from which runtime you're running under. On 2026-08-23, a session was kicked off explicitly as Wren ("You're Wren, the UX Build Agent") but misidentified itself as WRENS-GF instead, because ux-template/STATE.md's own text at the time hard-coded "a local CLI session here is WRENS-GF" — true right up until that same day, when Wren herself first became able to run as a standalone local-CLI Elephant too. The session read the stale rule, correctly noticed it was local CLI, and (reasonably, given what the file said) drew the wrong conclusion — overriding its own explicit kickoff message. Fixed in ux-template/STATE.md (identity split by name, not runtime) and generalized in CLAUDE.md project-wide, with this incident as the worked example. Worth remembering any time an agent's runtime options expand: old runtime-based identity language is a candidate for the same bug.