Big Reef · Hermes Agent · Reference v2

Project Workflow Field Manual

Every command in your workflow, with its exact trigger words, what makes it distinct from its nearest sibling, what it loads, and a ready-to-paste prompt. The one-page cheat sheet + this field manual = full reference.

v2.0 2026-09-09 Routers project-type-router · code-task-router Pair with workflow-cheatsheet.html (overview)

How to read this

TriggerSay the words on the right — that is the input.
Don't confuse withIts nearest sibling, and the difference.
CautionGaps, traps, prohibitions — read before trusting.
Paste thisA ready prompt, or the exact commands.
ToolsThe real scripts, CLIs, APIs, crons behind the workflow.
RulesThe table under it decides the outcome.
00

The Golden Path

RESEARCH

Understand the field

Who's winning, what changed in 30 days.

competitive-intel
/ce:30days
ALIGN

Grill before building

Requirements locked in frontier rounds.

/ce:brainstorm
BUILD

Premium pipeline

Design → build → QA → perfection → deploy.

/ce:build
IMPROVE

Ideate off the audit

Scored report first, evaluated ideas after.

/ce:full → /ce:ideate
01

New Website / App

The orchestrator
ce:build <project>/ce:build · /coder-flow C1full pipelineSay: “ce:build <project>” · “premium build <project>” · “build me a website”
What it does

The whole premium build as ONE command: intake → research → design system → plan → build → ce:full QA → perfection loop → deploy. Hard phase gates; each phase writes a proof block before the next.

What it loads
  • design-intake-to-delivery · design-inspiration-capture
  • popular-web-designs · premium-website-designer
  • ce-plan · ce-work · ce-ideate · ce:full
  • web-motion-system · css-visual-treatments · web-3d-interactive
  • no-slop-design · web-quality-audit · vps-web-services
Best when

A new site/app from a brief, or an existing project elevated to premium. Cost-aware model routing is built in (heavy loop on kimi, paid model only at the synthesis gate).

Tools
  • skills/software-development/ce-build/SKILL.md
  • skill: creative/design-intake-to-delivery (Phase B1)
  • skill: creative/premium-website-designer (Phase B3/B5)
  • skill: ce-plan + ce-work (Phase B4-B5 build loop)
  • skill: codebase-audit (ce:full, Phase B6 QA)
  • skill: devops/web-quality-audit (QA gate)
  • /workspace/scripts/live-audit/live_audit.sh (Lighthouse runner)
Distinct from
  • design-intake-to-delivery: that is the DESIGN-side chain only. ce:build = design chain + CE code loop + quality engine + deploy — the superset.
  • ce-plan / ce-work: those are single phases. ce:build orchestrates all phases with gates.
Prompt

“ce:build arnow-website — premium marketing site for my AI/systems consultancy. Brief: dark, cinematic, real product imagery. I'll answer your intake rounds.”

Design-side chains (when you want design craft, not the full code loop)
design-intake-to-delivery/designer-flow D1design chainSay: “full design workflow” · “website from scratch” · “end to end design”
What it does

Chains: design-inspiration-capture (research) → premium-website-designer (design system) → web-motion-system + css-visual-treatments (surface) → web-quality-audit (QA). Research now browses the reference-site catalog (prompt libs · component libs · galleries) → shortlists 3-5 real references → you confirm direction before the build. Client brief → deployable website.

What it loads
  • design-research · premium-website-designer
  • reference-site catalog (prompt libs · component libs · galleries)
  • web-motion-system · css-visual-treatments
  • web-quality-audit
Best when

Design-first work where the visual system is the product (marketing, portfolio). Use as the intake when you want to control design before any code plan exists.

Tools
  • skills/creative/design-intake-to-delivery/SKILL.md
  • skill: research/design-inspiration-capture (Phase 2 research)
  • skill: creative/premium-website-designer (Phase 3)
  • skill: creative/web-motion-system + css-visual-treatments (P4)
  • skill: devops/web-quality-audit (Phase 5 QA)
  • /workspace/scripts/live-audit/live_audit.sh (Lighthouse)
  • skill: creative/design-md scripts (token extract/lift)
Distinct from
  • ce:build: no CE quality loop, no perfection iterations, no deploy orchestration. It ends at a designed, QA'd site — ce:build carries it through code + audit + polish.
  • premium-website-designer: that's the design METHOD for one page/system; intake-to-delivery is the multi-phase workflow that drives it.
Design method + discipline
premium-website-designerdesign methodSay: “make it look premium” · “client website” · “design like damien / creme digital”
What it does

The actual design philosophy + build recipe for premium, editorial, non-AI-looking output (Linear/Stripe/Wealthsimple-level craft). Token system, typography, layout, surface treatments.

What it loads
  • popular-web-designs (54 real systems to crib)
  • css-visual-treatments (glass, gradients, noise…)
Best when

Any client-facing page or system where “never looks AI-generated” is the bar.

Tools
  • skills/creative/premium-website-designer/SKILL.md
  • .../scripts/vision-qa.py (direct-Gemini image QA)
  • .../scripts/vision_qa_gemini.py (vision fallback)
  • skill: creative/popular-web-designs (54 design systems)
  • skill: creative/css-visual-treatments (surface effects)
  • skill: design/design-taste scripts/design-gate.py
  • CLI: python3 -m http.server + cloudflared tunnel (preview)
Distinct from
  • no-slop-design: that's the DISCIPLINE (research → moodboard → tokens → rules, plus rejection traps). This is the CRAFT (how to actually build premium). Discipline prevents slop; method produces premium.
  • popular-web-designs: that's a reference LIBRARY of 54 systems; this is the recipe for composing your own.
no-slop-designquality disciplineLoads with ce:build / any premium design work
What it does

Anti-slop gate: research first, moodboard, design tokens, platform rules — then generate. Carries your real rejection lessons (real generated art vs hand-drawn SVG, scope metaphors to hero, “did you do the phases?”).

What it loads
  • auto-attached on design pipelines
Best when

Always. It's the wrapper that keeps every other design skill honest.

Tools
  • /home/hermeswebui/.hermes/skills/design/no-slop-design/SKILL.md
  • .../references/signs-of-ai-design-field-guide.md
  • .../references/anti-repeat-variety-gate.md
  • .../templates/design-rules.md
  • skill: design/design-taste scripts/design-gate.py (gate)
  • CLI: npx -y impeccable detect <dir> (59 rules)
  • skill: creative/design-md scripts (token grounding)
Distinct from
  • premium-website-designer: discipline vs craft (see above). no-slop stops BAD output; premium-designer makes GOOD output.
  • unified-no-slop-page-redesign: no-slop is general; the unified one is a specific page-redesign recipe with authenticated capture.
02

Website Redesign

unified-no-slop-page-redesign/designer-flow D2unified pages onlyUse when: “redesign the <X> page on Unified”
What it does

Redesigns a Unified Platform page: AUTHENTICATED headless capture of the real page (never guesses) → inventory every feature → rebuild into a NEW preview file with approved dark-glass × navy tokens → deploy without overwriting → QA-verify with the same headless browser.

What it loads
  • headless capture (VPS /opt/webcapture)
  • admin JWT minting → localStorage injection
  • no-slop design tokens
Best when

Any Unified Platform page redesign (dashboard v2 pattern). Never redesign a Unified page without the real captured DOM.

Tools
  • skills/design/unified-no-slop-page-redesign/SKILL.md
  • .../scripts/mint-admin-jwt.js (admin JWT minting)
  • .../scripts/capture-page.js + capture-pages.js (headless)
  • .../scripts/qa-layout.js (programmatic layout QA)
  • .../scripts/vision-qa.py (screenshot vision QA)
  • VPS capture host: /opt/webcapture on 147.93.113.241 (playwright)
  • /home/hermeswebui/.hermes/scripts/pdf_sheet_qa.py (print QA)
Distinct from
  • design-research: that's open-ended look/feel exploration. THIS is a locked recipe for one known product page with real data capture — no guessing what the page contains.
  • ce:build: this is page-scoped, capture-first, never-overwrite. ce:build is greenfield pipeline.
Prompt

“redesign the reimbursement admin dashboard on Unified — capture the real page first, keep all features, dark-glass premium, new preview file, don't touch the live build.”

design-researchlook & feelSay: “design inspiration” · “what should this look like” · “redesign”
What it does

Analyzes what kind of product you're building, then collects REAL reference designs from actual products/galleries — including AI prompt libraries (sceneai.art, motionsites, uipromptlibrary) and Tailwind/component libraries. Shortlist 3-5 → you confirm direction → mockup iteration: HTML concepts → deploy preview → iterate on feedback.

What it loads
  • design-inspiration-capture (live browsing)
  • reference-site catalog (prompt libs · component libs · galleries · templates)
Best when

Standalone/consulting site redesigns where direction is open. Use it to gather 3-5 real directions before committing.

Tools
  • /home/hermeswebui/.hermes/skills/research/design-research/SKILL.md
  • skill: research/design-inspiration-capture (live browsing)
  • .../references/reference-site-catalog.md
  • skill: creative/design-md scripts/extract-design-system.mjs
  • /workspace/design-research/ (packs + store-catalog.json)
  • /workspace/design-vault/index.json (reference library)
  • browser tool + portal.srv1738752.hstgr.cloud (preview)
Distinct from
  • design-inspiration-capture: research asks “what SHOULD this look like”; capture is the tool that grabs live pages/screenshots/prompt-packs from URLs.
  • popular-web-designs: research goes to the live web; popular-web-designs is 54 pre-built HTML/CSS systems ready to clone instantly.
  • competitive-intel: research = visual direction; intel = business/positioning gaps.
Prompt

“redesign my Arnow inner pages — pull 3-5 references from the reference-site catalog (consulting/agency galleries + sceneai.art-style pieces), show real screenshots with notes on why each direction works, then we pick one.”

design-mddesign systemsSay: “extract <site> into a DESIGN.md” · “pull the design system from <url>”
What it does

Turns ANY live website into a Google-spec DESIGN.md — the spec file a coding agent must follow (colors, type, spacing, radii, components). Free and unlimited: extracted from the real computed styles, never guessed, then linted by the official CLI. Extracted specs + mirrored packs live in /workspace/design-research/.

Sources it pairs with
  • styles.refero.design — 2,000+ DESIGN.md examples from real products
  • designmd-store.com/packs — 51+ ready-made packs, free (7 already mirrored)
  • getdesign.md · typeui.sh — catalogs + agent prompts (optional)
Best when

Research picks a reference you like: extract its system and hand it to the build — output stops looking “AI-generic”. Also the tokens step of no-slop-design.

Tools
  • /home/hermeswebui/.hermes/skills/creative/design-md/SKILL.md
  • .../scripts/extract-design-system.mjs (computed-style extract)
  • .../scripts/build_design_md.py (emit DESIGN.md)
  • .../scripts/setup-fonts.sh (font fallback install)
  • CLI: npx -y @google/design.md lint/diff/export/spec
  • /workspace/design-research/ (mirrored packs + samples)
  • sources: styles.refero.design + designmd-store.com/packs
Distinct from
  • design-inspiration-capture: that grabs screenshots + visual direction; this extracts the exact token system as an agent-ready spec.
  • popular-web-designs: 54 pre-built systems to crib; design-md works on any URL — including your own references.
Prompt

“extract linear.app into a DESIGN.md, then use it as the design constraint for the trade-platform rebuild.”

03

Design Vault

design-vaultreference library we ownSay: “add <site> to the vault” · “pull references for this build” · “what do we have for <theme>?”
What it does

The private, login-gated reference gallery — capture any page into it (full-page shot, section crops, extracted palette roles, fonts, tone/function tags) filed by category: Websites · Apps · Motion · Code. Browse like Mobbin — search, tag & source filters, boards (collect a set, then Generate a mechanical reference brief; no AI in the loop). Every entry carries its provenance; references are internal study, never re-shipped.

What it loads
  • design-vault-harvest — the filing + crawl skill · _tools/vault-capture.cjs = one URL → full entry
  • viewer + boards: design-vault.srv1738752.hstgr.cloud (basic auth — values in credentials-vault)
Best when

Before direction is chosen on any build or redesign — pull 3-5 real references, not vibes. And when a find shows up mid-research — file it, so the next session starts from what we already own.

Tools
  • skill: design/design-vault-harvest (operating skill)
  • /workspace/design-vault/ (library: websites/apps/motion/code)
  • /workspace/design-vault/_tools/vault-capture.cjs (capture)
  • /workspace/design-vault/_tools/vault-index.py + index.json
  • /workspace/design-vault/_tools/range_server.py (boards API :8164)
  • /workspace/design-vault/_tools/publish.sh (rsync to VPS)
  • service: design-vault.srv1738752.hstgr.cloud (Traefik basic-auth)
Distinct from
  • design-research / design-inspiration-capture: those browse the live web for the task at hand; the vault is the standing library they file finds INTO — the next search starts from what we already have.
  • design-md / popular-web-designs: those extract a system to build with; the vault keeps the visual evidence — shots, crops, tokens.
  • repo vault: verdicts on repos and prompts; this one is pixels.
Prompt

“add <url> to the vault — websites, tag it dark editorial” · “pull 3-5 references for the Arnow redesign — finance, editorial”

design-vault · scanMon + Thu crawlSay: “run a vault scan” · “what's new in the vault?”
What it does

The twice-weekly crawl that keeps the library growing: sweeps Reddit · Hacker News · GitHub · design feeds (plus visibility-only X search), dissects each find — palette roles, fonts, observed-vs-inferred tones — files it with provenance, and full-captures the site finds (capped per run). A digest of each run goes out on Telegram; failed finds auto-retry, up to three attempts.

What it loads
  • cron “Design Vault — Harvest & Digest (Mon+Thu)”, 7 AM — dv_harvest.sh
  • _tools/harvest.py → vault-index.py → publish.sh (crawl → index → publish)
Best when

It runs itself — check it when a digest did not arrive, when a design push wants fresh material, or when a crawl source is being added or trimmed.

Tools
  • cron: Design Vault — Harvest & Digest (0 7 * * 1,4)
  • /home/hermeswebui/.hermes/scripts/dv_harvest.sh (no_agent script)
  • /workspace/design-vault/_tools/harvest.py (Reddit/HN/GitHub crawl)
  • /workspace/design-vault/_tools/vault-index.py (rebuild index)
  • /workspace/design-vault/_tools/publish.sh (rsync to VPS)
  • Telegram digest (cron no_agent stdout delivery)
Distinct from
  • design-vault (capture): one page, on demand, now; the scan is the batch — new finds on a schedule, filed the same way.
Prompt

“run the vault scan now” · “the vault digest did not arrive — check the harvest”

04

Brand Identity

brand-identitybrand from one briefSay: “build a brand for <X>” · “I need a logo / type / palette” · “branding”
What it does

From one brief, builds complete identity sets — logo mark drawn on a 100-unit grid from filled primitives, display + text type, palette — each set driven by one visual idea written down before anything gets chosen; you compare the identity cards side by side. Gates are measured (contrast, colour blindness, glyph coverage, font licences, small-size logo renders) and everything else is labelled judgement. You pick a set; the brand guidelines kit follows (PDF, logo files, tokens).

What it loads
  • design/brand-identity — scripts/brand.py command chain (identity cards → kit export)
  • headless Chromium shell for the rendered checks (house note at the top of the skill)
Best when

A brand from zero — before its site or portal gets built — or any ask that is even vaguely “branding”. The intake asks keep / refresh / new per part, so a mark you want to keep is never lost.

Tools
  • /home/hermeswebui/.hermes/skills/design/brand-identity/SKILL.md
  • .../scripts/brand.py (pipeline runner, per-command --help)
  • .../scripts/logo_audit.py + palette_audit.py + font_audit.py
  • .../scripts/kit_build.py + export_tokens.py (guidelines kit)
  • .../scripts/render_png.py (logo/card renders)
  • CLI: chrome-headless-shell via BRAND_IDENTITY_BROWSER
  • vendored from github.com/fatihaydost/brand-identity-skill
Distinct from
  • design-md / design-research: those take a LOOK from a reference for a site; this creates the brand itself — mark, type, palette — then measures it.
  • no-slop-design: the discipline for building pages; brand identity is the layer above any page.
Prompt

“build a brand identity for <the new thing> — sector, audience, the attributes that matter, these competitors. A few sets, cards side by side, then I pick.”

brand-identity · critiqueexisting brand auditSay: “critique our brand” · “is this logo any good” · “refresh the palette, keep the mark”
What it does

Audits an identity you already have — the same measured gates plus cohesion (do mark, type and colour pull one way) — with every finding labelled measured vs judgement. Refresh builds only the new parts; the parts you keep become constraints the new parts fit.

What it loads
  • same skill — critique mode + references/critique.md; works from the identity files or a site extract
Best when

Before investing in a rebrand — “what is actually weak?” — or a partial refresh with the mark kept.

Tools
  • .../brand-identity/references/critique.md (critique mode)
  • .../brand-identity/references/cohesion.md (mark/type/colour)
  • .../brand-identity/references/accessibility.md (measured gates)
  • .../brand-identity/scripts/palette_audit.py
  • .../brand-identity/scripts/logo_audit.py (mark audit)
  • skill: creative/design-md extract (site-extract input)
Distinct from
  • web-quality-audit: audits a site's code and UX; this audits the brand layer — mark, type, colour.
Prompt

“critique the Arnow Solutions brand — measured checks plus cohesion — and tell me what a refresh would change.”

logo design sprintprompt · brief to production specSay: “run the logo sprint for <X>” · “logo concepts before we design” · “which logo clichés should we avoid”
What it does

Runs a logo project as eight ordered stages — competitor and cliché audit, visual territory, three directions, construction geometry, small-size test, colourways, applications, production spec — stopping for your answer at each checkpoint. Stage 1 names the 5 brands your audience would compare you to and the clichés they share, so every direction afterwards starts from ground nobody occupies.

What it loads
  • prompt-hub entry Logo Design Sprint — Brief to Production Spec (grade A, so it appears in the page's default A-tier view)
  • slots you fill: [BRAND NAME] · [INDUSTRY] · [AUDIENCE] · [3 ATTRIBUTES] · [PRIMARY USE]
  • verbatim source set kept in PROMPT_LAB.md section 1 (8 prompts, @sofia3973 + @AiWithSania)
Best when

Before anything is drawn — deciding what the mark should be, killing the sector's clichés by name, and getting a written construction spec for the drawing step.

Tools
  • https://prompts.srv1738752.hstgr.cloud — search “logo sprint”
  • /workspace/prompt-hub/harvest.json (the live entry, credited as adapted)
  • /workspace/ai_knowledge_base/PROMPT_LAB.md (verbatim source prompts)
  • grade: prompt-hub/grading.py — A (12/14)
  • skill: productivity/prompt-library-and-refinery
Distinct from
  • brand-identity (above): that DRAWS the mark — SVG on a 100-unit grid — and measures it with real gates; this is the thinking prompt that decides what should be drawn. A text model returns descriptions and a spec, never logo files.
  • brand-identity · critique: that audits a mark you already have; this briefs one you do not have yet.
Prompt

“run the logo design sprint for <brand> — <industry>, audience <who>, should feel <3 words>, used mainly on <where>. Stop after the cliché audit so I can confirm the territory before you propose directions.”

05

Design Checks

broom · detect.mjsbroomdeterministic design checkSay: “run the design check on <project>” · “check this for design tells” · “is this clean before handoff”
What it does

A single Node script — built-ins only, no browser, no network — that scans a project's source and reports design tells as path:line findings, each with its named fix, plus a score band (Clean <3 · Light · Noticeable · Heavy ≥20). Flags come in three kinds — universal · drift · taste — e.g. native dialogs, unverified claim text, em dashes, clickable divs the keyboard cannot reach, gradient clutter, decorative 01/02 numbering, a second h1. It reads the project's own design system first: declared choices come back as “Kept as theirs”, never as findings.

What it loads
  • /workspace/tools/broom-design/scripts/detect.mjs — durable copy (from boburxd/broom-design); --changed = only just-edited files · --json = machines
  • ships with design.mjs — system generator from a brief or .fig (kept on the shelf, not wired in)
Best when

Before shipping or handing off design-heavy pages, and anywhere the wired slop gate does not run. First full pass: Ink & Ember — 40 findings fixed, re-run 0 findings / score 0.0. Status: trial — a scoped second pass, not yet wired into ce:full.

Tools
  • /workspace/tools/broom-design/scripts/detect.mjs (checker)
  • /workspace/tools/broom-design/SKILL.md (broom skill)
  • /workspace/tools/broom-design/commands/check.md + audit.md
  • CLI: node detect.mjs [dir] [--changed] [--json] (Node >=18)
  • skill: design/slop-gate-remediation references/broom-remediation.md
  • .../slop-gate-remediation/scripts/broom-alive-check.sh (liveness)
Distinct from
  • impeccable detector: the house-wired mechanical gate for universal AI tells; broom is the local, project-system-aware second pass — keep impeccable as the gate, add broom where it does not run.
  • no-slop-design: the discipline for writing designs; broom measures the result, offline.
Prompt

node /workspace/tools/broom-design/scripts/detect.mjs /workspace/<project>
or: “run the broom check on <project> and fix what it flags.”

broom · fix loopbroomsource-first workflowSay: “broom the shell” · “re-run the design check before the deploy”
What it does

Runs against the project's SOURCE (Ink & Ember: shell/* fragments), findings are fixed there, then the normal build and deploy run — and the check is re-run. A clean run is a baseline: re-run it whenever copy or clickables change.

What it loads
  • the project's build chain — e.g. build_v3.py → deploy/deploy.sh
Best when

Every copy/UI pass on a project that carries a known-clean baseline (start: Ink & Ember, 2026-10-06).

Tools
  • /workspace/ink-and-ember/build_v3.py (rebuild from shell/*)
  • /workspace/ink-and-ember/deploy/deploy.sh (build+gates+deploy)
  • /workspace/tools/broom-design/scripts/detect.mjs (re-run check)
  • /workspace/ink-and-ember/shell/* (fix SOURCE, never build)
  • skill: design/slop-gate-remediation (fix catalogue)
  • skill: creative/ink-and-ember (project build chain)
Hard rule
  • Fix the source, never the build: a finding answered in the built file is erased by the next build.
06

Industry Research

competitive-inteldeep structureSay: “do competitive intel on <industry>”
What it does

Two-phase deep-dive: Global Scan (top players worldwide) → Local Scan (regional/niche). Output: positioning map, gaps, opportunities → product strategy + feature prioritization. Built to run at project START, before ce-brainstorm.

What it loads
  • web research tooling · search fallbacks
Best when

New project kickoff or strategy question: “who's in this space and where's the opening?”

Tools
  • skill: research/competitive-intel
  • tool: web_search (global + local competitor scan)
  • tool: web_extract (scrape competitor site/pricing)
  • tool: browser_exec (JS-heavy competitor pages)
  • skill: productivity/tool-evaluation (companion)
  • output: /workspace/projects/<project>/research/competitive-intel.md
Distinct from
  • ce:30days / last30days-pro: intel = TIMELESS structure (players, positioning, gaps). 30days = RECENCY pulse (what changed this month). Intel for the map; 30days for the weather. Run intel first, 30days to refresh.
  • design-research: intel = business/strategy; design-research = visual direction.
Prompt

“do competitive intel on AI surgical-eval platforms — top 5 globally, any local players, their positioning, gaps I can exploit for the Montefiore tool.”

ce:30days <topic>/ce:30daysrecency pulseSay: “ce:30days <topic>” · “ce:30d <topic>” · “last30days <topic>”
What it does

Multi-source scan of the last 30 days: Reddit, Hacker News, GitHub, YouTube, web, Polymarket. Wrapper around last30days-pro — answers “what's trending / what changed / what's the current landscape”.

What it loads
  • last30days-pro
Best when

“What's hot in X right now?” — before ideation, before a build, monthly refreshes.

Tools
  • skill: software-development/ce-last30days
  • skill: last30days-pro (multi-source research)
  • /workspace/last30days-pro/last30days.py + sources/ (HN/GitHub/News)
  • py module: ddgs 9.14.4 (DuckDuckGo fallback SDK)
  • tool: web_search (Google News RSS fallback)
  • CLI: curl (news.google.com RSS search feed)
Distinct from
  • competitive-intel: weather vs map (above).
  • ai-design-intel-brief: 30days = any topic; ai-design-intel = a DAILY cron brief of AI design tools judged against the no-slop bar.
  • web-research-via-terminal: 30days = packaged multi-source report; web-research = raw digging when you need to drive the search yourself.
Prompt

“ce:30days AI video tools — what's new, what's gaining, anything I should test for the video pipeline.”

07

Audit · Ideas · Plan · Execute · Review

review pending
ce:full (codebase-audit)/ce:full · /coder-flow C4health scoreSay: “ce:full <project>” · “full audit” · “score this app”
What it does

Full-stack audit → scored HTML report + scorecard + backlog + roadmap + recommendations. 00-30 phase audit incl. design phases. The quality engine behind ce:build's B6 gate.

What it loads
  • codebase-audit · web-quality-audit
  • ce:full report template (score ring, heatmap, roadmap)
Best when

Before improving anything: “how good is this, where's the debt, what's the roadmap?” Also the pre-ideate gate.

Tools
  • skill: software-development/codebase-audit
  • skill: devops/web-quality-audit (00-30 QA phases)
  • skill: flows/coder-flow (MODE C4 staged run)
  • codebase-audit/scripts/health-extract-api-surface.py
  • codebase-audit/scripts/health-render-v7-report.py
  • /home/hermeswebui/.hermes/scripts/impeccable_detect.sh (Phase 10a)
  • /home/hermeswebui/.hermes/scripts/pdf_sheet_qa.py (Phase 35)
Distinct from
  • ce-review: ce:full audits the WHOLE system (state + roadmap). ce-review reviews a DIFF/PR (is this change right?). Audit = “how good is it?” · Review = “is this change correct?”
  • ce-ideate: ce:full reports current state; ce-ideate proposes the FUTURE from that report.
Prompt

“ce:full the Unified Platform — scored report with backlog + roadmap + forward-looking recommendations.”

ce-ideate/ce:ideateimprovement ideasSay: “ideate” · “what should I improve” · “give me ideas” · “surprise me with improvements”
What it does

Generates AND critically evaluates grounded improvement ideas — rejects weak ones, keeps the strong with effort/impact. Works best fed by a ce:full roadmap (that's ce:build phase B6.7).

What it loads
  • reads the ce:full backlog/roadmap when present
Best when

“What should I build next?” — after an audit, or standalone for feature direction.

Tools
  • skill: software-development/ce-ideate
  • ce-ideate/references/residency-progress-unification-example.md
  • skill: software-development/codebase-audit (reads ce:full roadmap)
  • tool: web_extract (grounding on real projects)
  • tool: browser_exec (JS-heavy SPA inspect, timeout 600s+)
  • CLI: git (clone + diff -r canonical version check)
  • output: .hermes/ce/ideations/{date}-{slug}.md
Distinct from
  • ce:full: full = where you ARE; ideate = where you COULD go.
  • ce-compound: ideate = new ideas; compound = document a SOLVED problem so it's never re-solved.
Prompt

“ideate on the eval-tracker — ground it in the last ce:full, give evaluated ideas with effort/impact, no weak filler.”

ce-brainstorm/ce:brainstormalign: WHATSay: “let's brainstorm <feature>” · “help me think through X”
What it does

Requirements dialogue in frontier rounds: numbered questions in dependency order, EACH with my recommended answer, facts researched by sub-agents (never asked of you). Ends in a right-sized requirements doc. v1.4 added the grilling format.

What it loads
  • domain-context-glossary (repo language)
Best when

Fuzzy feature/new build. Answer rounds like “Q1: a · Q2: your rec” — correcting beats composing.

Tools
  • skill: software-development/ce-brainstorm
  • ce-brainstorm/references/project-directory-map.md
  • ce-brainstorm/references/multi-system-integration.md
  • tool: delegate_task (parallel survey sub-agents)
  • tool: session_search (colloquial name -> real path)
  • skill: software-development/domain-context-glossary
  • CLI: scp (deploy mockup to VPS dist/)
Distinct from
  • ce-plan: brainstorm = WHAT (requirements). plan = HOW (approach, files, risks). Never drift into planning during a brainstorm.
  • ce-work: brainstorm never codes.
Prompt

“let's brainstorm a resident procedure-log feature on Unified — survey what exists first, then grill me in frontier rounds with your recs.”

ce-plan/ce:planplan: HOWSay: “plan this” · “create a plan” · “write a plan” · “plan the implementation”
What it does

Durable implementation plan from requirements: decisions not code, boundaries, files, dependencies, risks, test scenarios. Right-sized (small work → compact plan). Portable as living doc / review artifact / issue body.

What it loads
  • requirements doc from ce-brainstorm (source of truth)
Best when

Requirements are locked and you need the HOW before touching code.

Tools
  • skill: software-development/ce-plan
  • template: ce-plan/templates/plan-template.md
  • ce-plan/references/plan-quality-checklist.md
  • ce-plan/references/unified-platform-deploy.md
  • ce-plan/references/unified-admin-panel-pattern.md
  • skill: vendor-ponytail/ponytail (scope-cut ruling)
  • skill: software-development/mp-grilling + mp-to-spec + mp-tickets
Distinct from
  • ce-brainstorm: WHAT vs HOW (above).
  • ce-work: plan writes a document; work EXECUTES a plan/spec/bare prompt against real code.
ce-work/ce:workexecuteSay: “execute work” · “implement this plan” · “start working” · “ce-work”
What it does

Executes systematically from a plan doc, spec, or bare prompt — finishes features with quality. The build-loop worker inside ce:build's B4-B5.

What it loads
  • the plan/spec you point it at
Best when

“Here's the plan — go build it.”

Tools
  • skill: software-development/ce-work
  • CLI: npx tsc -p tsconfig.server.json (typecheck)
  • CLI: npx tsx (dev/prod server start)
  • tool: delegate_task (bounded build agents)
  • tool: execute_code (batch file reads/edits)
  • CLI: git (focused commits, one per change)
  • CLI: ssh + scp (VPS deploy, PID-kill pattern)
Distinct from
  • ce-plan: plan = document; work = code. execute-implementation-plans: use that when the user hands a VERBATIM plan to follow without second-guessing.
ce-review/ce:reviewdiff reviewSay: “review code” · “review my changes” · “code review” · “ce-review”
What it does

Multi-agent review: 17+ personas (correctness, security, performance…) → confidence-gated merge/dedup → report. v2.2 added the SEPARATE Spec axis (spec-reviewer): requirement-by-requirement verdicts against the originating spec, never merged into the standards pile.

What it loads
  • personas from references/reviewer-personas/
  • spec-reviewer when a spec/plan source exists
Best when

Before merge/commit: “is this change correct AND does it do what was asked?”

Tools
  • skill: software-development/ce-review
  • scripts: ce-review/scripts/resolve-base.sh
  • ce-review/references/reviewer-personas/ (11 files)
  • ce-review/references/reviewer-personas/spec-reviewer.md
  • tool: delegate_task (role=orchestrator, 17+ personas)
  • tool: execute_code (report-verification batch reads)
  • CLI: git merge-base (diff scope)
Distinct from
  • ce:full: whole-system audit vs diff review (above).
Prompt

“ce-review the coverage-reassign feature branch — spec is docs/plans/coverage.md, base origin/main.”

08

Premium Animation

Start here — let the job pick the skill
The jobLoadWhy not the neighbours
Add motion to a page I already haveweb-motion-system + premium-motion-designmechanics + taste — never one without the other
One cinematic hero with its own artpremium-hero-scene-builda hero is a project, not a motion tier
Real depth / WebGLweb-3d-interactiveonly when the concept needs it — never garnish
The whole site is the show — intro · scenes · soundflash-style-sitesscenes ARE the navigation; not for content sites
Scroll storytelling on a normal pageweb-motion-system Tier 3don't convert a content site into a stage
web-motion-systemtoolboxSay: “add animation” · “scroll animation” · “GSAP animation” · “motion system for <page>”
What it does

The HOW-TO library: 21 CSS transition patterns, GSAP/ScrollTrigger timelines, Lenis smooth scroll, IntersectionObserver scroll-reveal, cinematic scroll storytelling, reduced-motion guards. Framework-agnostic.

What it loads
  • patterns + easing recipes
Best when

You know you want motion, need the mechanics.

Tools
  • CSS transitions (transitions.dev, 21 patterns)
  • GSAP 3 + ScrollTrigger
  • Lenis smooth scroll
  • IntersectionObserver scroll-reveal
  • prefers-reduced-motion guard
Distinct from
  • premium-motion-design: toolbox vs taste. motion-system = HOW to animate (patterns). premium-motion = WHEN/what's cinematic (restraint, custom easing). Load BOTH: one gives you the parts, the other stops you from making it cheap.
premium-motion-designrestraint rulesLoads with any premium motion request
What it does

Rules for high-end cinematic UI animation: restraint, custom easing, no jank, when NOT to animate. The taste layer over the toolbox.

What it loads
  • easing standards
Best when

Any user-facing site that must feel expensive, not gimmicky.

Tools
  • Motion (motion.dev / Framer Motion)
  • GSAP custom timelines
  • PixiJS (2D)
  • BabylonJS (3D)
  • IntersectionObserver (native)
  • custom cubic-bezier easing
Distinct from
  • web-motion-system: taste vs toolbox (above).
  • premium-hero-scene-build: hero-scene = end-to-end cinematic hero with AI art + motion; motion-design = the motion rules applied anywhere.
web-3d-interactiveWebGL / 3DSay: “3D on this page” · “WebGL” · “interactive globe/scene”
What it does

Three.js setup, Matter.js 2D physics, globe.gl, particles, Vanta backgrounds, performance budgets for in-browser 3D.

Best when

The concept genuinely needs depth/interactivity that motion alone can't deliver.

Tools
  • Three.js
  • Matter.js 2D physics
  • globe.gl
  • Cobe.js
  • Vanta.js
  • Canvas 2D particles
  • GLTFLoader
Distinct from
  • web-motion-system: motion = 2D movement of real elements; 3D = actual WebGL scenes. Add 3D only when the design asks for it — not as default garnish.
premium-hero-scene-buildhero sceneSay: “cinematic hero” · “animated hero scene” · “mascot / vehicle in the hero”
What it does

End-to-end signature hero: concept lock → art direction → AI plates + deterministic SVG for anything precise (signage text is never AI) → CSP-safe motion → QA loop with headless captures. The train / mascot / X-ray playbook.

What it loads
  • references/redbird-front-spec.md — worked example
  • webcapture burst + vision pass before handover
Best when

One hero must carry the brand and the subject has to physically move.

Tools
  • AI image plates (image_generate)
  • deterministic SVG + real vector text
  • vanilla JS CSP-safe motion (no CDN)
  • Playwright webcapture burst
  • vision_analyze / blind-see.py pass
  • traefik URL provisioning
Distinct from
  • web-motion-system: reveals and scroll motion vs a bespoke scene with its own art pipeline.
  • ai-video-pipeline: the hero plays live in the page — nothing is rendered to MP4.
  • gaussian-splat-tours: rendered design vs a capture of a real place.
flash-style-siteswhole-site genreSay: “Flash-style site” · “animated intro, skippable” · “scenes / rooms navigation” · “interactive mixtape site”
What it does

The old Flash feeling, none of the old Flash faults: full-viewport stage, scenes/rooms with transitions, scored skippable intro, clickable + draggable objects, cursor choreography, opt-in sound. Ships a dependency-free starter (fail-open, reduced-motion, noscript) plus a mechanical fault gate for the seven things that killed real Flash sites.

What it loads
  • templates/stage-starter — working skeleton to clone
  • scripts/flash_gate.py <site-dir> — exit 2 = findings; fix or waive with a reason
Best when

The page itself IS the experience — album / band / portfolio / microsite. Not for content sites.

Tools
  • GSAP 3 (or vanilla WAAPI/CSS)
  • Rive (@rive-app/canvas)
  • Three.js / React Three Fiber
  • Phaser 3
  • Canvas 2D + Web Audio API
  • scripts/flash_gate.py gate
  • templates/stage-starter
Distinct from
  • web-motion-system: motion added to a conventional scrolling page vs a stage where navigation is scenes.
  • premium-hero-scene-build: one hero alone vs the whole site restructured around scenes.
09

Media Flow

The pipeline — one brief → one flow → one gated, premium piece
media-flow/media-flow M1–M5staged pipelineSay: “run the media flow for <piece>” · “make a film” · “make an image set”
What it does

The front door for every media piece — film, explainer, demo, image set, shorts. Five modes: M1 teaching/story film (the stills kit) · M2 production film & explainer (OpenMontage engine) · M3 screen & product demo (HyperFrames) · M4 image set · M5 shorts from long recordings. One skill per phase, an artifact per phase, a hard gate between — a failed gate redoes the phase, it never advances.

What it loads
  • media-flow — mode tables + the seven protocol rules
  • the phase skills named in each mode table (below)
  • runs write to /workspace/flows/<date>-<slug>/
Best when

Any new film, explainer, demo or image set. A one-off tweak inside an existing piece can still load the tool directly — the flow is what stacks the gates.

Tools
  • ai-video-pipeline (Mode M1)
  • OpenMontage engine (Mode M2)
  • HyperFrames (Mode M3)
  • image_generate (Mode M4)
  • monster-prompter prompt layer
  • ffprobe + live-URL gate
Prompt

run the media flow for <piece> — M2, ~90 seconds, teaching
resume media flow for <piece>, phase <id>; read 00-BRIEF.md + artifacts, load <skill>, run fully

Distinct from
  • coder-flow · designer-flow: code and websites. Media Flow is for the pieces people watch; sites stay in the D-lane.
  • loading ai-video-pipeline directly: right for a tweak; the flow is what guarantees one skill per phase + the gates.
monster-prompterthe prompt barSay: “premium-ize this prompt” · “prompt cards for the hero”
What it does

Mandatory for every asset prompt in every mode — the cards you run on your Gemini / Flow accounts and the prompts we generate with (image_generate, Seedance, OpenMontage providers). Builds each prompt in 6 layers (subject · style · lighting · composition · texture · color), runs the anti-slop tells check, and the pre-send self-critique before anything goes out.

What it loads
  • monster-prompter — 6-layer architecture + templates
  • ai-image-prompt-flow — the card contract (#media-handoff)
  • the Veo formula for clips: 8s units, one explicit camera move
Best when

Every time, every asset. No freehand prompts — freehand drifts to the generic-AI look; the refined card carries the bar.

Tools
  • monster-prompter 6-layer method
  • ai-image-prompt-flow (card contract)
  • image_generate
  • Replicate Seedance
  • Craig post-generation self-critique
Hard rule
  • Optimized prompts only: generating from original/un-refined prompts is rejected — it is the difference between “looks AI” and premium.
OpenMontagethe production engineSay: “film from real footage” · “animated explainer” · “montage”
What it does

Runs M2 end-to-end: agentic pipelines (documentary-montage · animated-explainer · talking-head · animation · screen-demo · …) over 16 free stock sources (Archive.org · NASA · Wikimedia · … — no keys), provider selection, budget caps ($10 total · $0.50 per-action approval pause), and its own quality gates — slideshow-risk scoring, delivery-promise enforcement, pre-compose validation, and a mandatory post-render self-review (ffprobe · frames · audio) — before it hands anything back.

What it loads
  • source /workspace/OpenMontage/openmontage-env.sh — required before any render phase
  • pipeline definitions from OpenMontage/pipeline_defs/
  • 44 verified tools — video_compose · hyperframes_compose · subtitles · free clip search · piper_tts
Best when

Any new film or explainer — footage-based or from scratch. Re-installed and re-verified 2026-10-09.

Tools
  • OpenMontage /workspace/OpenMontage
  • direct_clip_search (Archive.org/NASA/Wikimedia)
  • seedance_replicate (Replicate)
  • video_compose + hyperframes_compose
  • Remotion composer (npx remotion --gl swangle)
  • ffprobe post-render gates
Distinct from
  • the kit (#video): stills + narration teaching films — proven and stable; keep using it for M1.
  • HyperFrames (#htmlvideo): HTML compositions → MP4 for screens and product UI — not footage films.
The line you can trust
Runs itselfWaits for you
Every phase, in order, with gates that refuse bad output — a failed gate redoes the phaseDirection picks ⟡ · the generate clicks on your Gemini / Flow accounts · final approval
Prompt refinement (Monster Prompter) · free-stock pulls · budget caps · post-render review before handoffNothing else — after one clean run, a standing piece can be scheduled (worker flow W3)
10

Video Production

The kit — one brief → one manifest → one render
ai-video-pipelineumbrellaSay: “make a video” · “video from this brief” · “nursing video” · “voiceover”
What it does

Film production on the headless CPU box: scene brief → stills/clips + narration → MoviePy assembly (Ken Burns, caption bars, title card, credits, grain + vignette) → H.264 render → published gallery. Kit lives at /workspace/nursing-videos/pipeline. A new film is a new manifest, never a script edit.

What it loads
  • build_from_manifest.py
  • make_voiceover.py
  • scene_brief_template.md + manifest.example.json
  • publish.sh · range_server.py
Best when

Any narrative film from a scripted brief — training, safety huddle, department comms. Verified: a 122s 720p film renders in ~12 min.

Tools
  • MoviePy 2.1.2
  • Edge-TTS / ElevenLabs
  • faster-whisper word timestamps
  • build_from_manifest.py + manifest.json
  • make_voiceover.py + publish.sh
  • OpenMontage / Replicate clips
Commands

cd /workspace/nursing-videos/pipeline
cp scene_brief_template.md ../<project>/brief.md  # 1 write the brief
python3 make_voiceover.py ../<project>/script.txt ../<project>/voiceover.mp3  # 2 measure narration
cp manifest.example.json ../<project>/manifest.json  # 3 timeline
python3 build_from_manifest.py ../<project>/manifest.json --dry-run  # 4 check timeline
python3 build_from_manifest.py ../<project>/manifest.json  # 5 render + self-verify
./publish.sh --go  # 6 ship to the live URL

Distinct from
  • premium-motion-design / web-motion-system: those animate UI in a browser. This produces a real MP4 file.
  • premium-hero-scene-build: a hero scene on a page vs a standalone film with narration and a runtime.
Generate the pieces
image_generate (FLUX)scene stillsSay: “generate the scenes” · “make the hospital stills”
What it does

One still per scene, landscape. Each still becomes a scene with a slow Ken Burns zoom. The June films used 72 generations for this.

What it loads
  • aspect_ratio: landscape
  • prompt straight from the brief
  • download → <project>/assets/
Best when

No real footage exists and the brief describes situations you can't easily film.

Tools
  • image_generate tool (FLUX.2 / FAL)
  • aspect_ratio: landscape
  • nano_banana_gen.py fallback
  • Replicate FLUX 1.1 Pro
  • MoviePy Ken Burns zoom
Prompt formula

[shot type] of [subject] in [specific hospital area] + [action / controlled chaos] + blurred faces, no patient identifiers + documentary style, cinematic lighting, shallow depth of field

For prompt craft
  • prompt-library-and-refinery: when the prompt itself needs building rather than adapting the formula — search the whole library, or hand over your rough notes and get a finished prompt back. python3 /workspace/prompt-hub/search.py "<topic>" — say “find me a prompt for X” or “turn this into a prompt”.
  • ai-image-prompt-flow / monster-prompter: the image-specific path — Monster Prompter's 6 layers (subject, style, lighting, composition, texture, color). The refinery runs these automatically for image and video output.
  • gemini-nano-banana-image: when you want to generate stills from your own Gemini subscription instead of Hermes.
make_voiceover.pynarration — sets the runtimeSay: “add the voiceover” · “narrate this script”
What it does

Edge TTS narration (free, no key) and reports the real length of the mp3. That measurement becomes duration in the manifest — narration drives the film, not the other way round.

What it loads
  • --voice en-US-ChristopherNeural
  • --rate / --pitch / --volume
  • also: Hermes text_to_speech tool
Best when

Every film. A 60s brief legitimately became a 122s film because the narration said so.

Tools
  • Edge TTS (edge-tts 7.2.7, free)
  • make_voiceover.py --show-duration
  • imageio_ffmpeg duration probe
  • MoviePy AudioFileClip fallback
  • Hermes text_to_speech tool
Command

python3 make_voiceover.py script.txt voiceover.mp3 --voice en-US-ChristopherNeural --show-duration

Replicate — Seedance / HappyHorselive-motion clipsSay: “make motion clips” · “8-second clips for this scene”
What it does

Generates short live-motion clips to open or punctuate the film, instead of animating a still. Falls in as type: video scenes in the manifest.

What it loads
  • bytedance/seedance-2.5 (default)
  • alibaba/happyhorse-1.1 (alt)
  • real cost ≈ $0.20–0.68 per clip
Best when

The opening beat needs real movement — the original film opened on a Kling clip of escalating chaos.

Tools
  • Replicate API (api.replicate.com)
  • bytedance/seedance-2.5 (default)
  • alibaba/happyhorse-1.1 (alt)
  • seedance25_generate.py
  • fal.ai banned for video
Hard rule
  • fal.ai is banned for video generation — a Kling clip rendered through it came back black and unusable. Stills through image_generate are fine; video goes through Replicate.
  • Your own Kling exports and phone footage beat any generated clip — mix them in first.
Rules that decide whether it looks expensive
RuleWhy
Narration firstThe measured mp3 sets duration; scene timings are built to fit it, never the reverse.
Grain + vignette on every film~0.05 grain and ~0.45 vignette over the whole composite. Without them a still-driven film reads as a slideshow.
Captions on a translucent barFootage is bright and busy — text needs a black bar (opacity ~0.45) plus a stroke to stay legible.
Fit height, then cropMixed sources (720p clips, 480p phone video) must be scaled to frame height and centre-cropped, or the frame jumps aspect ratios mid-film.
Ken Burns zoom 0.04–0.08Below reads as static; above is a lurch. Paired with the phase-label colour arc (red → teal → blue → amber).
Serve MP4s with Range supportpython3 -m http.server ignores Range and breaks scrubbing. Use range_server.py; verify 206 over the public URL with curl -4.
ffmpeg is not on PATHMoviePy reaches it via imageio_ffmpeg.get_ffmpeg_exe(). MoviePy 2.x API only — with_duration, resized, subclipped.
Budget ~12 min per 2-min film720p, veryfast, 2500k, 4 threads on CPU. 1080p roughly triples it; ultrafast is ~5x faster for review cuts.
11

3D Character Animation (Meshy + Blender)

The paid lane — one character → rig → motions → rendered stills & clips
meshy-blender-animationlane SOP · render + animateSay: “animate drippy” · “render the 3D character” · “make the 3D animation”
What it does

The whole 3D character pipeline in one skill: the Meshy API turns an image into a mesh, rigs it, and drives it with motions from the 678-motion library (or text-to-motion) — plus headless Blender renders, deterministic clip capture, grading and the review page. Carries the four hard rules that ended the first animation round's debugging loop, so none of it gets re-derived.

What it loads
  • meshy-blender-animation — the four rules + pipeline recipes
  • lane home /workspace/flows/2026-10-10-3d-lane/ · meshy_api.py · viewer/ scripts
  • Blender only via blender/blender.sh — both lib farms required
Best when

Any still or clip of the character GLBs — a film beat, a new motion, an outfit fitting, a retarget. ≈47 credits per finished character; the mascot's art and colours stay untouchable.

Tools
  • Meshy API — image→3D · rigging · motion library · text-to-motion
  • Blender headless — Cycles CPU · 1600×1000 finals
  • viewer/clipshots.py — three.js frame capture → mp4
  • viewer/grade_final_our.py — measured warm grade
  • deploy-3d-test.sh — review page at media.srv1738752.hstgr.cloud/3d-test/
Prompt

animate drippy — Big Wave Hello, prune to the arm, render in the design1 studio
resume the 3D lane — read the tail of 01-report.md first (it freezes between sign-offs)

The four hard rules
  • Filter utility meshes: animated exports hide a stray Icosphere that hijacks camera framing — compute the bbox from the main mesh only, hide the rest.
  • Prune gestures to the limb: full-body curves crinkle this body — keep only the arm chain's f-curves; hips · spine · head · legs stay at rest.
  • Texture swap: never render the animated export — rigged GLB for the textures, animated GLB for its action only, then delete its meshes.
  • Local-basis retargeting: rotation quaternions per bone, pelvis translation scaled by the span ratio — world deltas shred the limbs.
Distinct from
  • media-flow (#media-flow): the staged pipeline that wraps the output — 3D clips land as beats in a piece; this is the character lane itself.
  • Premium Animation (#motion): browser motion and scroll work — this lane makes a real 3D character and renders stills and clips as files.
  • blender-asset-pipeline: hand-coded geometry and materials from primitives — this lane is hosted AI generation plus retargeting.
12

Product Films

A film made from the real product — no footage, no stock, no video model
video-shotcraftpromo film · RemotionSay: “make a promo film” · “product video for this site” · “30-second film”
What it does

Captures the real pages, picks motion from 124 shot recipes, storyboards them, cuts to the beat of the music and renders an MP4 with Remotion. Every frame is drawn in code from your own screenshots, so nothing in it can be invented.

What it loads
  • 124 shot cards across 10 families
  • 149 sound effects + a music bed
  • template/ — a working Remotion project
  • workbench + CapCut project export
Best when

There is a real product to show and the ask is a 30–60s film that looks expensive. Verified: 43s at 1080p with sound, about 11 minutes on CPU, no paid API.

Tools
  • Remotion 4.0.484 + node 22
  • chromium-libs-ensure.sh (run before first render)
  • references/shots/ — the recipe library
  • assets/audio/sfx — 13 MB sound kit
  • public/fonts + @font-face (mandatory on this box)
Commands

cp -r ~/.hermes/skills/media/video-shotcraft/template /workspace/projects/<slug>
bash /workspace/scripts/chromium-libs-ensure.sh  # after npm install, before the first render
npx remotion still <Comp> out/f120.png --frame=120  # inspect a beat in 10s
npx remotion render <Comp> out/<file>.mp4

Distinct from
  • ai-video-pipeline: footage plus narration assembled with MoviePy. This has no footage at all — it is a real page rendered as motion.
  • hyperframes-video: renders an HTML composition to MP4. Reach there for a title sequence or a data piece; reach here for a product storyboard with camera moves and sound design.
  • premium-motion-design / web-motion-system: animate a page in the browser. This ships a file you can post.
Shot-card cataloguebrowse the optionsSay: “show me every shot I can use” · “what sounds do we have”
What it does

A live gallery of all 124 recipes with an English gloss, duration and energy per card, and every one of the 149 sound effects playable in place. This is the page to read before briefing a film.

What it loads
  • shots-a/b/c.json — the indexed library
  • sfx.json — the sound inventory
  • family filters and energy badges
Best when

You want to name a look instead of describing one — “use the crash zoom on the hero” beats “make it punchier”.

diagram-designvisual explainerSay: “diagram this” · “architecture diagram” · “explain this visually”
What it does

Draws a real SVG diagram — 45 diagram types, brand profile first, exported to PNG through the same headless Chromium. The labels come from your system, never from a model's guess.

What it loads
  • references/style-guide.md
  • scripts/self_check.py (must pass)
  • scripts/export_png.py
  • assets/template.html
Best when

A system needs explaining on a page, in a deck or inside a film. Verified: the Unified request-path diagram, an 84,940-byte PNG.

Commands

python3 scripts/self_check.py diagram.html  # refuses to export a broken layout
python3 scripts/export_png.py diagram.html out.png

Distinct from
  • the chart layer: charts plot numbers; this explains the shape of a system.
  • excalidraw / architecture-diagram: hand-drawn and dark-SVG looks for throwaway sketches. This one is brand-configured output.
Rules that decide whether the film looks expensive
RuleWhy
Embed the typefacesThis container has no fontconfig — fc-list returns zero families, so Chrome silently swaps every serif for a generic sans. Ship TTFs, load them with @font-face + delayRender(), then confirm on a rendered frame.
Wrap Chromium firstA fresh project downloads its own headless Chrome into node_modules/.remotion/, unwrapped. Run the libs script after npm install or the first render dies on libnspr4.so.
Capture real, seeded buildsClient films never show live data. Point capture at a seeded or redacted build; a screenshot of a real patient record is a policy breach, not a design choice.
Look at frames before the full renderA still costs 10 seconds, a full render 11 minutes. Every layout fault so far — a strike spanning the column, a stamp over the line above it, captions over a screenshot — was visible in a still.
Sound is part of the editSix sparse cues (pen snap, stamp, page turns, camera clicks) do more than a music bed. Keep them low; a silent film reads unfinished.
Worked proof
Arnow Solutions — The Tuesday filmshipped exampleSay: “show me the Arnow film”
What it is

43 seconds, 1080p, with sound. Opens on the rewrite's own line, strikes it, stamps OURS; then the Tuesday argument, the five places a week leaks, four real client screens, and the stance that ends on “you keep your money”.

What it proves

The whole lane without a video model: real screenshots, paper-and-ink type, motion cut to the beat, rendered on our own CPU in about eleven minutes.

Open it

media.srv1738752.hstgr.cloud/arnow-film-2026-10-24

Project

/workspace/projects/arnow-film — composition ArnowPromo, 1290 frames

13

Media Handoff (Gemini + Flow)

Zero-spend route — prompts out · generated files back
prompt cardsimages · clipsSay: “give me the prompts for …” · “prompt cards for the hero — 16:9” · “I’ll run these in Gemini and Flow”
What it does

Hermes writes a paste-ready card per asset — the exact prompt, which platform, and the settings (model · aspect · clip length). You generate on your own Google AI Pro accounts — Gemini for stills, Flow for Veo clips — and hand the finished files back; they get wired into the page. First cards take 1–2 tune rounds: closer, tighter, then quiet.

What it loads
  • ai-image-prompt-flow — prompt craft; premium bar: ai-media-provider-options → references/image-prompt-craft.md
  • Gemini app — stills (Nano Banana)
  • Google Flow — clips (Veo); still → video: one of your stills becomes the first frame
  • Return path — attach the files (Drive when big) → integration
Best when

Hero and section imagery, product shots, short promo clips — anything the Pro allowance covers. No API spend, and nothing automated ever touches the accounts.

Tools
  • ai-image-prompt-flow card contract
  • monster-prompter 6 layers
  • Gemini app (Nano Banana stills)
  • Google Flow (Veo clips)
  • workflow page #media-handoff
The exchange

You say: “prompt cards for the Arnow hero — 16:9, dark editorial”
You get back: one card per asset — platform · settings · the exact PASTE text
You return: generate → download → hand the files over → wired in

Distinct from
  • Video Production (#video): that pipeline renders the film itself from stills + narration; this route is for sourcing the stills and clips — from your accounts, not ours.
  • image_generate (built-in tool): Hermes generates on its own accounts; prompt cards move every generation into your own subscription allowance instead — no API spend.
  • Flow automation tooling: rejected on purpose — driving Flow through your session risks the account; here you click generate, always.
Gemini app · Google Flowyour generation surfacesSay: “the stills are in Gemini, the clip in Flow” · “animate this still in Flow”
What it does

Gemini makes the stills — Nano Banana is strongest at believable product / UI / scene surfaces. Flow makes the video — Veo clips, with frames-to-video so a clip continues the exact look of the still it starts from. Both bill against your own Pro allowance: no per-image or per-clip spend.

What it loads
  • stills — the ratio rides on the brief: 16:9 heroes · 4:5 or 1:1 cards
  • clips — 8-second units; longer sequences come back for stitching
  • settings ride on the card: model tier · aspect · length
Best when

Every handoff request. A close-but-not-right first result is normal — keep it, say what’s off; the card gets a small rewrite, not a reroll of the whole idea.

Tools
  • Gemini app (Nano Banana stills)
  • Google Flow (Veo clips)
  • Veo frames-to-video
  • user's Google AI Pro allowance
  • human-click only (never automated)
Hard rules
  • No automation on these accounts — no session tools, no Flow-driving scripts. The subscriptions are the asset; generation stays a human click.
  • Card first, generate second — freehand prompts drift to the generic-AI look; the card carries the bar: believable product/UI imagery, one clear idea, never the “epic cinematic” cliché.
14

Rendered Video (HyperFrames)

The route — an HTML composition → a deterministic MP4
hyperframes-videoumbrellaSay: “make a demo video” · “render this as a video” · “product promo”
What it does

The video is written as an HTML/CSS/GSAP composition; the CLI seeks it frame-by-frame in headless Chrome and encodes with FFmpeg — same HTML → same MP4, every run. Repo at /workspace/hyperframes; each video is its own project folder under /workspace/<project>. No GPU, no screen recorder, no subscription.

What it loads
  • hyperframes CLI 0.8.36 · /workspace/hyperframes
  • chrome-headless-shell (cached) + static FFmpeg 7
  • nvm node — the ~/.local/bin npm shim is broken
Best when

Designed video — platform demos, promos, motion titles, stat call-outs. Verified: 7s @ 1080p30 renders in ~26s; a 27s five-screen demo in ~2 min. Budget ≈ 4× the runtime.

Tools
  • HyperFrames CLI 0.8.36 (npx hyperframes)
  • chrome-headless-shell (cached)
  • static FFmpeg 7.0.2
  • nvm node 22
  • GSAP 3 timeline
  • npm run check / npm run render
Commands

export PATH=$HOME/.nvm/versions/node/v22.23.1/bin:$PATH  # nvm first — npm shim is broken
cd /workspace && hyperframes init <project> --example blank  # 1 scaffold
cd <project>  # 2 author index.html — composition contract below
npm run check  # 3 lint + runtime + layout + motion + WCAG — fix ALL warnings
npm run render  # 4 → renders/<name>_<ts>.mp4

Distinct from
  • ai-video-pipeline (#video): that assembles stills, clips and narration into a film via MoviePy. This renders a designed page — deterministic frames, narration optional.
  • premium-motion-design / web-motion-system: those animate a page in a browser. This bakes the motion into a file you can send to a client.
composition contractauthoring rulesSay: “the render is blank” · “clips show too early” · “the pan is cropped”
What it does

Root div carries data-composition-id / width / height / duration; every timed element is class="clip" with data-start + data-duration; one paused GSAP timeline registers on window.__timelines["main"]. npm run check gates contrast, layout, motion and runtime errors before anything renders.

What it loads
  • repo skills: /workspace/hyperframes/skills (hyperframes-core + workflows)
  • GSAP 3 (CDN, cached after first fetch)
  • project AGENTS.md — written for agents
Best when

Every composition. Two traps worth their own line: initial hidden state needs an immediate gsap.set(…) — a zero-duration tl.set at t=0 does not render; screenshots need object-fit: contain inside the frame or the sidebar gets cropped.

Tools
  • data-composition-id / data-start / data-duration
  • window.__timelines['main'] paused GSAP
  • npm run check (lint+contrast+motion+runtime)
  • hyperframes-core repo skill
  • GSAP 3 (CDN, cached after first fetch)
  • project AGENTS.md
Frame-0 pattern

gsap.set(["#eyebrow","#headline"], { opacity: 0, y: 16 });  # immediate, outside the timeline
tl.to("#headline", { opacity: 1, y: 0, duration: 0.6, ease: "power4.out" }, 1.0);
window.__timelines["main"] = tl;

Caution
  • Verify with frames, not exit codes. Extract 1–2 stills (ffmpeg -ss T -i out.mp4 -frames:v 1 f.png) and look at them before shipping — “render complete” can still be the wrong picture.
Real screens → a demo a client can watch
puppeteer capturelive-app screenshotsSay: “demo the Unified Platform” · “walk a client through <feature>”
What it does

Logs into the live app, clicks through the modules and screenshots each at 1920×1080 — then the PNGs become scenes (browser chrome, field label, caption, slow pan) in the composition. Real product, no screen recording.

What it loads
  • puppeteer-core (ships inside hyperframes' node_modules)
  • ~/.local/bin/chromium (--no-sandbox + libs)
  • logins: obsidian-vault/Reference/ADMIN-LOGINS.md
Best when

Feature walkthroughs and client demos. Verified: the five-module Unified demo (27s) — capture, compose and render in one session. Check for patient-identifying content before publishing.

Tools
  • puppeteer-core (hyperframes node_modules)
  • ~/.local/bin/chromium --no-sandbox
  • capture_unified.cjs
  • 1920x1080 screenshots
  • ADMIN-LOGINS.md creds
  • HyperFrames composition scenes
Route

cd /workspace/unified-platform-demo && node capture_unified.cjs  # login → click each module → shots at 1920×1080
# compose per screen: topbar + FIELD label + framed img (object-fit: contain) + caption
npm run check && npm run render

Publish for review
  • MP4s ship behind the Range-capable server (206) at hyperframes-demo.srv1738752.hstgr.cloud — same rule as section 10: never plain python -m http.server.
Rules that decide whether the render lands
RuleWhy
nvm's node first on PATH~/.local/bin/npm is a stale shim (MODULE_NOT_FOUND) — every project command needs the nvm v22 bin dir prepended, or npm dies before the render starts.
Keep the cached browserRenders use the cached chrome-headless-shell under ~/.cache/hyperframes/chrome/. If it ever re-downloads, extraction fails (no unzip on the box) — extract the zip with python3 -m zipfile, or set HYPERFRAMES_BROWSER_PATH to the chromium shim as fallback.
check gates the rendernpm run check = lint + runtime + layout + motion + WCAG AA. Fix every warning — a defect at 12s is a visible defect for 18 more seconds.
Deterministic onlyNo Date.now(), no unseeded random, no infinite loops, no render-time fetches — every frame must reproduce from its timestamp alone.
Budget ≈ 4× runtime7s → ~26s; 27s → ~2 min on the 4-core box (1080p30, screenshot capture path). Treat a render as a terminal task, not a chat aside.
Ship via URL, verify by framePublish to /var/www/<name>/ behind the Range server; confirm 206 with curl -4 and eyeball an extracted frame before calling it done.
15

Animated Walkthroughs

A real screen, recorded as a tour people can watch
ce-demo-reel → record_walkthrough.py/ce:demo-reelthe animated site tourSay: “animated walkthrough of the platform” · “show people how to use this screen” · “make a tour GIF”
What it does

Playwright drives the real page and injects a moving cursor, a highlight ring around each target, a click ripple and a step caption bar into the DOM, screenshotting every animation tick and stitching the frames into one looping GIF. Because the overlay is injected at capture time, the target site needs no changes and nothing is baked into the live UI — it works on production, a staging build, or a local file:// page.

What it loads
  • software-development/ce-demo-reel → scripts/record_walkthrough.py
  • steps.json — one entry per step
  • Pillow + Playwright (already on the box)
Best when

An Epic-style onboarding tour of a real screen — “here is how you do this in the platform”, as something the viewer watches. Live example: walkthrough.srv1738752.hstgr.cloud — “an animated image that shows how to work a website” (walkthrough.gif, 4 steps, 880×546, 76 frames). The Unified Platform tour is already live at unified-tour.srv1738752.hstgr.cloud — sign-in gated, because the recording shows real staff names and figures. Built from /workspace/demo/steps_unified.json plus wt-mint.js for the logged-in session → walkthrough-unified.gif (960×600, 104 frames). Re-run it whenever a screen changes — the tour is a steps file, not a rebuild.

Tools
  • Playwright (sync_api) Chromium
  • record_walkthrough.py DOM overlay
  • Pillow GIF stitch (shared palette)
  • ffmpeg / MP4
  • steps.json + run.sh
Commands

[ {"caption":"1. Open Coverage", "selector":"#nav-coverage", "action":"click", "settle":700},
  {"caption":"2. Pick the day",   "selector":"#row-3",       "action":"click", "settle":500} ]
./run.sh "https://your-site.example.com" steps.json walkthrough.gif
 # action: click | hover | none  · settle = ms to wait for the page to react

Distinct from
  • 3D Walkthrough Tours (#tours): that is a real space you move through. This is a real screen you watch.
  • Rendered Video (#htmlvideo): that renders designed HTML into an MP4. This drives a live page and overlays the tour on it.
  • the in-app coach-mark tour: there the user clicks the steps themselves inside the app. Here the tour is a recording.
--inject-jsrecording an app behind a loginSay: “record the admin side” · “the tour needs a logged-in view”
What it does

Runs a JS file after the first load and reloads, before any frames are captured — so a session can be seeded without a password ever being typed. For Supabase apps the session lives in localStorage['sb-<ref>-auth-token']; mint it server-side from the app's own SUPABASE_JWT_SECRET.

What it loads
  • house token recipe: fixes-20260902/mint.js
  • the token file, read into the injected JS
Best when

The screen worth showing is behind auth — which is most admin surfaces. The recording never sees a credential.

Tools
  • record_walkthrough.py --inject-js
  • localStorage['sb-<ref>-auth-token']
  • mint.js (SUPABASE_JWT_SECRET)
  • Playwright page.evaluate + reload
Traps
  • Never echo the token into the transcript or the steps file; read it into the injected JS and keep it out of the run log.
  • They expire (~45 min) — mint one per recording run and delete it afterwards.
coach-mark spotlight tourthe interactive alternativeSay: “interactive tour inside the app” · “users should click through it themselves”
What it does

A Portal-based spotlight tour that runs inside the app: a glowing ring framed on the real element (positioned from getBoundingClientRect()), a tooltip anchored beside it with an arrow, Back/Next/Skip, a persisted “don't show again”, and a “?” button to reopen. Completion state and page-aware routing come with it.

What it loads
  • m4b-player-frontend-testing → references/coach-mark-onboarding.md (corrected CSS)
  • legacy-app-integration → references/tour-system.md (architecture, 13-tour predecessor)
Best when

New users should learn by doing, in the app, step by step — not by watching a clip.

Tools
  • getBoundingClientRect() spotlight
  • box-shadow 9999px cut-out ring (no blur)
  • localStorage 'm4bTourDone'
  • '?' help button (#helpBtn) reopen
  • m4b-player static/index.html JS
  • coach-mark-onboarding.md reference
Hard rules (both from his rejections)
  • Point at the real control. A centred modal cycling “step 1 of 16” text was rejected outright — every step must visually pinpoint the actual element.
  • Dim but keep everything sharp. No backdrop-filter: blur() anywhere on the mask, spotlight or tooltip — it fuzzed the app so the controls being taught were unreadable.
Rules that decide whether a walkthrough is usable
RuleWhy
Capture at device_scale_factor=2, then downsampleSmall UI text in a GIF is unreadable at 1× — the whole point of the tour is that someone can read the screen.
Never modify the live UI to make a demoThe overlay is injected at capture time precisely so the production page stays untouched. If a demo needs a change in the app, that is a bug, not a demo setting.
Hold longer on the result of each click (~200–240 ms)The travel frames are ~45 ms; a click whose result is not held reads as though nothing happened.
Keep the GIF under ~5 MB (10 fps for PR/Slack)It has to survive an email or a chat drop, or nobody watches it.
A recording is not an interactive tourIf the user is meant to click through it in the app, build the coach-mark spotlight instead. Choosing the wrong one is the difference between “that taught me” and “I watched a GIF”.
16

3D Walkthrough Tours

The pipeline — a real space → a link anyone walks through
gaussian-splat-toursumbrellaSay: “scan a house” · “make a 3D tour” · “publish this scan” · “3D walkthrough”
What it does

Phone capture → open-source reconstruction (3D Gaussian Splatting) → web-ready .sog → hosted viewer at tours.srv1738752.hstgr.cloud. The hub lists scenes from scenes.json; each scene carries its own opening camera. No app, no VR — a tab on a phone.

What it loads
  • /workspace/splat-tours (site/ · pipeline/ · docs/)
  • publish_scene.sh · video_to_splat.ipynb
  • /var/www/tours on the VPS (systemd static-tours :8148)
Best when

A client wants to walk through a real space — house, venue, shop floor, job site. Verified end to end: a 32.8 MB raw scan became a 12 MB web file in 6 s (CPU).

Tools
  • Scaniverse (phone capture)
  • @playcanvas/splat-transform
  • @playcanvas/supersplat-viewer
  • nerfstudio + COLMAP
  • publish_scene.sh
  • systemd static-server (VPS)
Commands

/workspace/splat-tours/pipeline/publish_scene.sh <file> <slug> "<Title>" "<Subtitle>"
 # converts to .sog, uploads, registers in scenes.json, verifies the URL
curl -4 -sk -o /dev/null -w '%{http_code}' https://tours.srv1738752.hstgr.cloud/scenes/<slug>.sog

Distinct from
  • ai-video-pipeline: that produces an MP4 you watch. This produces a space you move through.
  • premium-hero-scene-build: a hero on a page is rendered design. This is a capture of a real place.
Capture — two routes, both free
Scaniversefield capture — fastestSay: “what do I shoot with?” · “best way to scan a room”
What it does

Free iOS/Android app; processes on the phone; exports SPZ (small, sendable) + PLY (archive). No GPU anywhere in the loop.

What it loads
  • docs/capture-guide.md — motion + light rules
  • walk ~1–2 ft/s · overlap everything · no people/pets in frame
Best when

Every real-world capture. A room ≈ 5 min shoot + a few min processing; a 3-bed house ≈ 30–45 min on site.

Tools
  • Scaniverse (iOS/Android app)
  • SPZ export format
  • PLY archive format
  • on-device processing (no GPU)
  • docs/capture-guide.md
  • splat-transform (converts SPZ)
Field rules

Slow walk (coffee-cup rule) · angle the lens ~30–45°, never flat-on walls · two heights per room · lock exposure before the take · constant light — brightest the space gets.

video_to_splat.ipynbvideo → trained scene · free GPUSay: “train this walkthrough” · “video to splat”
What it does

4K walkthrough video → frames → COLMAP poses → nerfstudio splatfacto (30k iters) → point_cloud.ply. Runs free on Colab T4 / Kaggle (30 GPU-hrs/week).

What it loads
  • /workspace/splat-tours/pipeline/video_to_splat.ipynb
  • ~20–40 min training per space on a free T4
Best when

Repeatable quality across many properties, or the app scan came out rough. A quick single test doesn't need it.

Tools
  • Google Colab (free T4 GPU)
  • Kaggle (30 GPU-hrs/week)
  • nerfstudio
  • COLMAP
  • splatfacto (30k iters)
  • ns-export gaussian-splat
  • splat-transform
Format rule
  • The viewer loads .ply / .sog / .compressed.ply — never .splat/.ksplat. Convert first, always.
Convert + frame + publish
splat-transformconverter (MIT)Say: “convert this scan” · “make it load faster”
What it does

Any scan format → web .sog (15–20× smaller than PLY). Reads ply / compressed ply / sog / spz / splat / ksplat / lcc; writes sog / ply / glb / spz / html.

What it loads
  • /workspace/node_modules/.bin/splat-transform
  • -g cpu on GPU-less boxes
Best when

Always — .sog is the delivery format. Real numbers: 1M gaussians ≈ 6 s; 6.1M ≈ 30 s.

Tools
  • @playcanvas/splat-transform
  • Node.js / npm
  • SOG output format
  • SPZ/PLY/KSPLAT/LCC inputs
  • GLB/HTML writers
  • splat-transform --info (verify)
Commands

splat-transform --filter-nan -g cpu scan.spz scan.sog  # convert
splat-transform scan.sog --info null  # verify: gaussian count + format read back
splat-transform scan.ply --filter-sphere 0,0,0,30 -g cpu scan.sog  # trim far floaters

CPU box traps
  • --filter-floaters, --filter-cluster and --decimate need a GPU (WebGPU) — on a CPU box they crash. Use sphere / box / opacity filters instead.
Scene settings + publishframing & shippingSay: “the opening view is bad” · “publish it”
What it does

Each scene gets scenes/<slug>.settings.json — opening camera + quality flags — wired into scenes.json so hub links pass &settings=…&noanim.

What it loads
  • settings v2 schema (cameras · hpr · tonemapping)
  • camera values are mirrored: (x, −y, −z) vs raw stats
  • highPrecisionRendering:true when a scene looks flat
Best when

Every scene. &noanim freezes the viewer's auto-generated orbit so the opening pose is deterministic; visitors press ▶ to play the orbit.

Tools
  • SuperSplat Viewer (settings v2)
  • scenes/<slug>.settings.json
  • scenes.json manifest
  • publish_scene.sh
  • splat-transform --stats json
  • Playwright render scripts
  • &noanim URL param
Hard rules
  • Judge the settled frame, not the first seconds — the viewer synthesizes a camera animation when none is defined; without &noanim every screenshot is a random moment of that motion.
  • Verify poses with ?debug → window.getCameraState(), never by eye.
Rules that decide whether the tour sells
RuleWhy
Real scans beat every samplePublic research scenes (mip-NeRF 360 etc.) are recognizable but grubby. The demo that sells is your own Scaniverse capture — don't polish samples, ship scans.
Keep scenes under ~25 MBPhone-first pitch = instant load. Past ~30 MB the first impression dies on cellular.
Capture discipline beats processingSlow walk + angled passes + constant light is 90% of final quality; no trainer fixes blur or auto-exposure flicker.
Static files, range-capable server, systemd unittours.srv = /var/www/tours behind Traefik :8148 (static-tours). Additive uploads only; verify with curl -4 + content check.
Empty white rooms are hardestFlat white walls give the solver nothing to lock onto — capture furnished, textured spaces or stage with temp items.
17

Audio Production

review pending
The transcriber — one audio file → word-level timestamps
transcribe.pyengineSay: “transcribe this book” · “read-along is empty” · “regenerate the transcript”
What it does

faster-whisper (CTranslate2) on CPU with batched inference. Chunked + checkpointed + resumable, so a killed run continues instead of restarting. Emits data/transcript_<slug>.json — per-word timings that drive the read-along and the beta “skip silence”.

What it loads
  • scripts/transcribe.py
  • faster_whisper 1.2.1 + ctranslate2 4.8.1 (.venv)
  • shared model cache via pinned HF_HOME
Best when

A book has no transcript yet. small + batched = 4.4x realtime on 4 CPU cores — a 3-min clip in 41s.

Tools
  • faster-whisper 1.2.1
  • CTranslate2 4.8.1
  • WhisperModel (CPU int8)
  • BatchedInferencePipeline
  • ffmpeg (chunk split)
  • ffprobe (duration)
  • pinned HF_HOME model cache
Commands

cd /workspace/m4b-player
python3 scripts/transcribe.py "<Book.m4b>"  # small + batched (default)
python3 scripts/transcribe.py "<Book.m4b>" --model base  # faster, lower accuracy
python3 scripts/transcribe.py "<Book.m4b>" --max-chunks 2 --quiet  # bounded cron run
python3 scripts/transcribe.py all  # every untranscribed book

# full ops detail lives in m4b-player/runbook.md → “Transcription performance & quality”

Distinct from
  • ai-video-pipeline: that renders an MP4 film. This produces transcript JSON for the player.
  • audio-briefing-pipeline: text → TTS voice message. This is the reverse — audio → text.
Rules that decide transcript quality & speed (all measured)
RuleWhy
Batching is on by defaultBatchedInferencePipeline is 2.6x faster than sequential at identical quality — 1.7x → 4.4x realtime. Word timings are preserved, so the read-along is unaffected. --batch-size 1 only for debugging.
small, NOT base — don't “optimise” this backOn clean studio narration the two read near-identically, which makes base a tempting 2.6x shortcut. On noisy audio it is simply wrong: base heard “the mental strength you break to making them”, small heard “you bring”.
Test on one noisy clipAny future model comparison must include real-world audio (live recording, music, audience). A clean sample hides exactly the errors the larger model fixes.
Pin HF_HOMEThe model cache is $HOME-relative, and HOME differs between the cron gateway (.hermes/home) and interactive runs (profile home). Unpinned, the same 140–460 MB model is downloaded once per HOME.
Match --cpu-threads to nprocctranslate2's own default can oversubscribe a shared box.
Never stack two runsTranscription is CPU-bound: overlapping runs cost ~13% each (measured 4.5x alone vs 3.9x under contention). The lock + checkpoints make overlap safe, just slower.
Timeouts are realA batched large-v3 on 4 cores is slower than realtime. Prefer small + batching over a bigger model.
Auto-ingest — Drive folder → library, hourly
sync_and_transcribe_gdrive.pyhourly cron(runs itself · reports to Telegram · silent when idle)
What it does

Lists the shared Drive folder, diffs against books/ fuzzy by filename stem (so Verity (Unabridged).m4b matches the local Verity.m4b instead of re-downloading), downloads genuinely new files, then auto-transcribes anything without a transcript — launched as a detached daemon. Registers new books in data/players.db for granting.

What it loads
  • sync_and_transcribe_gdrive.py
  • scripts/transcribe.py
  • Google Drive API creds
Best when

Always — it's the pipeline that keeps the library current. It picks up the transcriber's defaults automatically, so batching gains apply with no wrapper change.

Tools
  • Google Drive API
  • google_api.py (gws CLI)
  • scripts/transcribe.py
  • Python double-fork daemon
  • SQLite accounts DB (players.db)
  • cron no_agent (hourly)
Knobs worth knowing
  • ~14 min compute per run now (was ~35 min before batching), throttled by --max-chunks 2.
  • Headroom: raising to --max-chunks 6 ≈ 41 min — still inside the hour, but 3x more audio per run, so a new book lands in roughly a third of the wall-clock time. Not applied; it changes production cadence.
The weekly roundup — NotebookLM with no daily cookie exports
refresh_nlm_cookies.pyauth refreshSay: “the podcast failed auth” · “NotebookLM is expired again”
What it does

Extracts fresh Google cookies from a persistent Chromium profile over CDP (Network.getAllCookies) and writes them in the LIST format the NotebookLM clients expect — but only after verifying them with a real API call. Reuses an already-open browser for that profile if one exists; otherwise launches its own headless instance.

What it loads
  • chrome-profiles/<name> (signed in once via the VNC desktop)
  • profiles/<name>/cookies.json
  • Chromium shim at ~/.local/bin/chromium
Best when

As step 0 of the consuming job — refresh before use, never after a failure. Already wired into the weekly podcast and the daily 06:00 health check.

Tools
  • Chromium headless (CDP)
  • Network.getAllCookies (CDP)
  • notebooklm_tools client
  • NotebookLMClient verify call
  • VNC desktop login
  • cookies.json (list format)
Commands

HOME=/home/hermeswebui/.hermes/home python3 ~/.hermes/scripts/refresh_nlm_cookies.py podcast
HOME=/home/hermeswebui/.hermes/home python3 ~/.hermes/scripts/refresh_nlm_cookies.py djake9488  # 2nd account

# first-time sign-in (once per account, needed only if the profile logs out):
bash /workspace/.vnc-data/launch-profile.sh <profile> 9303  # keep OFF ports 9222-9232
# then sign in at https://vnc.srv1738752.hstgr.cloud/vnc.html

Distinct from
  • Manual export (nlm login --manual --file): the old stopgap. A recurring manual step is the task not being automated.
  • nlm's own run_headless_auth(): present, but broken on this box three ways (no browser on PATH, a host-redirect bug, and a stale cookie file shadowing the refresh). Bypassed deliberately.
Why cookies “expired” daily — they never did
FactWhy it matters
Session cookies last ~1 yearMeasured: SID/SAPISID/__Secure-1PSID valid to 2027. The daily failure was never expiry.
The *PSIDRTS rotating tokens are the real constraintGoogle rotates them only while a live browser holds the session. A static export freezes rotation, so the server invalidates the session within ~24h. Exporting more often cannot fix it — it's structural.
Fix = a persistent browser, not fresher cookiesOne sign-in, then Chromium keeps the session alive and rotates the tokens itself. The profile is the durable asset; the cookie file is just a snapshot.
Never verify by cookie nameThe Google sign-in page itself sets SID/SAPISID, so a half-finished login passes any name check. Verify by listing notebooks.
A stale cookie file blocks recoverynlm's reload layer returns whenever any cached cookies exist, so its headless refresh never runs. Presence of the stale file — not its staleness — is what wedged it.
18

Charts & Reporting

The chart layer — one entry point, one theme, real numbers
data-vizumbrella — every chart, graph, sparklineSay: “add a chart” · “graph this” · “build a dashboard chart” · “visualize this data”
What it does

The house chart layer. Picks the surface (Recharts in-app, matplotlib for print), forces one token theme, requires every series to read the DB at render, chooses the chart type honestly, and runs the slop-gate chart passes before anything ships. Before it existed, chart knowledge was split across chartTheme.ts, the slop-gate skill, and four skills that mentioned recharts in passing — so each new chart re-derived the theme and re-hit the same defects.

What it loads
  • design/data-viz (SKILL.md + references/chart-theme.md)
  • app/src/lib/chartTheme.ts — useChartTheme() / getChartPalette()
  • the slop-gate skill's Data-viz passes
Best when

Any chart, graph, sparkline, KPI trend or dashboard panel in a web app — adding one, fixing one that renders wrong, or wiring one to live data. Also when asked to “visualize” a dataset.

Tools
  • Recharts (in-app)
  • matplotlib (print/PDF)
  • useChartTheme()
  • useApi() + DB snapshot routes
  • slop-gate-remediation passes
  • vision_analyze review
Prompt

“add a spend-by-fund chart to the admin dashboard”
“this bar chart looks wrong — fix it”  # loads data-viz + the slop-gate chart passes
“visualize the OR block-time data for the year”

Distinct from
  • graphify / code-review-graph: those graph a codebase. This graphs data. The word “graph” is the only thing they share.
  • architecture-diagram · excalidraw · baoyu-infographic: a diagram, not data — flows, org charts, timelines.
  • report-builder: the report around the chart; the chart itself still follows this skill.
chartTheme.tsthe one theme sourceSay: “the chart is the wrong colour in dark mode” · “match the chart to the brand”
What it does

Every in-app chart themes from one module: useChartTheme() returns grid / tick / accent / tooltip colours plus an 8-colour categorical palette, all derived from --accent-* and the semantic --shift-* tokens, and re-reads on the light/dark toggle via a MutationObserver on <html>.

What it loads
  • app/src/lib/chartTheme.ts
  • getChartPalette() · useReimbPalette()
  • token scales in src/styles/index.css
Best when

Always, for any chart inside the app. A chart that hardcodes its colours is the one thing that breaks on the next accent move.

Tools
  • React useChartTheme() hook
  • Recharts
  • MutationObserver (theme toggle)
  • CSS tokens (--accent-*, --shift-*)
  • getChartPalette()
  • useReimbPalette()
Hard rule
  • No hex literals in chart JSX. The platform accent scale already moved once (teal → Montefiore navy, Aug 2026); a baked #003da5 survives that move and a dark-mode flip looking fine in one theme and unreadable in the other.
Rules that decide whether a chart tells the truth
RuleWhy
Every number comes from the DB at renderNo embedded arrays, no fixed samples, no leftovers from a mockup. A fabricated series is a permanent lie in the UI — nobody downstream can tell a fake line from a real one. If the query returns nothing, render an honest empty state, not a plausible curve.
Bars are the default, not the answer for a centerpieceRecorded preference: vertical or horizontal bars on a focal graphic read as boring. Offer 2–3 genuinely different treatments of the same data (radial rose, dials, bead/unit matrix) and install the strongest one rather than presenting a menu.
Zero-based bars · pie ≤6 slices · one question per chartA truncated axis exaggerates difference, and a 12-slice pie communicates nothing. If the title needs an “and”, it is two charts.
Probe the geometry, never just presenceThe classic failure is an absolutely-positioned bar fill with no explicit width: it collapses to 0px and paints invisible while every DOM-presence check stays green. Assert the measured width, and probe the ancestor's opacity, not the child's.
vision_analyze never supplies a numberIt reviews layout, hierarchy and feel — and misreads small numerals (80 as “86”, 53 as “38”). Every numeric or mechanical claim about a chart comes from a DOM probe.
Napkin is not in the stack — and is not a candidateNapkin (napkin.ai) is a manual browser SaaS with no public API and a watermarked free tier, so it cannot be wired into a pipeline and does not fit the free-tools-only rule. Diagrams come from architecture-diagram / excalidraw / baoyu-infographic. Recorded so it stops being re-litigated.
Fewer than ~5 numbers is a table, not a chartDressing three values up as a graph adds ink and subtracts clarity.
19

Social Media

The generator — 8 mandatory phases, never write a post by hand
social-media-agent-orchestratorumbrellaSay: “write a post about X” · “month of content” · “repurpose this blog”
What it does

Runs every piece of content through a fixed chain — Brand → Hook → Create → A/B Compare → Story → Voice → QC → Schedule — backed by 44 Crewm8 sub-skills. The point is anti-generic: content that skipped the chain reads like every other program's feed.

What it loads
  • social-media-marketing-brand (voice + banned terms)
  • creation/hook-write · post-create · caption-draft · cta-craft · thread-create
  • strategy/brand-voice-system
  • planning/content-calendar · cadence-timing
Best when

Any post, caption, thread, or campaign for X / Instagram / LinkedIn / TikTok. Load only the phases the piece needs — a single IG post is Brand → Hook → Create → A/B → Voice → QC.

Tools
  • brand_pack.py (Phase 1: show/list/use)
  • skill: creation/hook-write + post-create
  • skill: creation/caption-draft + cta-craft + thread-create
  • skill: strategy/brand-voice-system
  • skill: planning/content-calendar + cadence-timing
  • xurl (X) + clinstagram (IG) posting connectors
  • social-media-marketing-brand (voice/banned terms)
Commands

# the day's posts, with assets resolved to real paths:
python3 ~/.hermes/scripts/social_campaign_today.py
python3 ~/.hermes/scripts/social_campaign_today.py --days 7  # week ahead
python3 ~/.hermes/scripts/social_campaign_today.py --json  # machine-readable

# campaign source of truth:
/workspace/social_media_assets/POSTING_SCHEDULE.md

Distinct from
  • claude-code-marketing-stack: full campaign (brief → carousel → video → email). This is the social-native chain.
  • content-repurposing-engine: long-form → platform posts. It feeds into this chain, not around it.
Rules that decide whether it lands
RuleWhy
A/B is mandatory — never ship one versionEvery post gets Option A (humble/human) and Option B (hook-driven) from different prompt strategies, presented side by side. A before/after diff of a single version is the exact thing that gets corrected.
Never write a post manuallyThe whole system exists to prevent generic AI output. Skipping the chain produces the thing it was built to avoid.
Don't run all 9 agents for one postUse the minimum chain. Loading all 37 Crewm8 skills at once just inflates tokens — cherry-pick by category.
Serve reports on a real URLA/B reports are interactive HTML with per-section Apply/Undo — deliver over https://, never a file path or localhost.
Marketing accounts ≠ research accountsSeparate apps, tokens and handles for posting vs monitoring. Never share credentials between them.
Swapping the brand — change the voice/content, keep the flow
brand_pack.pythe seamSay: “run this for <other brand>” · “change the voice”
What it does

The 8-phase pipeline is fixed; the brand is data. Phase 1 calls brand_pack.py show and gets the active brand's complete brief — voice traits, banned terms, pillar weights, platform cadence. Switching clients means switching folders, never rewriting phase logic or a skill.

What it loads
  • /workspace/social_media/brands/<slug>/
  • brand.yaml — identity, handles, colors
  • voice.md — voice + linguistic guardrails
  • pillars.md · platforms.md · playbook.md · assets.md
Best when

Running the same generator for a second brand/client, or changing a brand's voice without touching the pipeline.

Tools
  • brand_pack.py (list/use/show/check/new)
  • /workspace/social_media/brands/<slug>/
  • brand.yaml (identity) + voice.md
  • pillars.md + platforms.md + playbook.md + assets.md
  • PyYAML (parses brand.yaml)
  • active.txt (active brand pointer)
Commands

python3 ~/.hermes/scripts/brand_pack.py list
python3 ~/.hermes/scripts/brand_pack.py use <slug>
python3 ~/.hermes/scripts/brand_pack.py show  # exactly what Phase 1 reads
python3 ~/.hermes/scripts/brand_pack.py show --section voice
python3 ~/.hermes/scripts/brand_pack.py new <slug>  # scaffold a brand
python3 ~/.hermes/scripts/brand_pack.py check  # validate before use

The three layers
  • Flow — the 8 phases and this manual. Fixed.
  • Voice — voice.md + guardrails. Swappable.
  • Content — pillars.md, the schedule, the asset library. Swappable.
The live campaign — Interview Season 2026-27
POSTING_SCHEDULE.md24 weeks · 120+ postsSay: “what do I post today?” · “this week's content”
What it does

Runs Aug 3 2026 → Mar 15 2027 in 4 phases (Why Montefiore → What We Look For → Experience It → The Difference), with day, time ET, platform and asset per post.

social_campaign_today.py parses it, resolves each asset reference to a real path, and flags any that are missing so drift surfaces before posting day.

What it loads
  • POSTING_SCHEDULE.md (+ POSTING_SCHEDULE.html)
  • social_media_assets/ — 226 files
  • clips/ + clips/Vertical/ (22 verticals)
  • graphics/ — carousels, ig_photos, x_photos, stories
Best when

Every posting day. Run it first — it replaces reading a 388-line markdown table by hand.

Tools
  • /workspace/social_media_assets/POSTING_SCHEDULE.md
  • POSTING_SCHEDULE.html (rendered mirror)
  • social_campaign_today.py (parses it)
  • /workspace/campaigns/registry.json
  • social_media_assets/clips + clips/Vertical
  • social_media_assets/graphics (carousels/photos)
Known gaps (verify with the tool, don't assume)
  • No posting automation. The schedule is a plan, not a queue — nothing posts itself yet.
  • No connector credentials. xurl has no ~/.xurl, clinstagram is unauthenticated, and no FB_PAGE_* is set — so auto-posting is impossible until one is configured. LinkedIn has no connector at all despite being planned weekly.
  • Two asset gaps: the landscape clips for Schoenberg — What makes Montefiore special and Donnelly — How would you encourage a resident to join exist only as 1080×1920 verticals (others are 1920×1080). Those two posts need the vertical, a different faculty member, or a re-export from the original recording.
  • Asset references were drifting: four screenshot-N.jpeg refs pointed at names that don't exist on disk (real files carry a timestamp infix, e.g. screenshot-1784846896012-2.jpeg). Fixed — 21 of 23 refs now resolve.
  • Duplicate content: interview-season-campaign-2026/ (61 MB) holds the same week-1 images plus the A/B HTML reports as social_media_assets/.
  • No metrics loop. The Performance Analyst agent has no data source yet, so nothing measures whether the campaign works.
Starting a new campaign — the intake asks one question at a time
new-campaign-intakeskillSay: “start a new campaign” · “launch a campaign”
What it does

Walks the campaign brief one question at a time — never a batch form — then scaffolds everything mechanical. It asks the section first, then the brand within it: brands belong to verticals, so a brand list is only meaningful scoped to a section. Answers are written to /workspace/campaigns/_intake/<slug>.json as they arrive, so a dropped session resumes at the first unanswered question.

What it asks
  • A — section, brand, audience, the ONE goal, dates, platforms, credentials
  • B — if the brand is new: name, voice, audiences, pillars (weights = 100%), handles, banned terms
  • C — raw material, and it measures the files rather than trusting a description
  • D — which days it posts
Best when

Starting any campaign, for any brand, in any section — and the answer to “where do I start?” when a plan exists but nothing is scheduled.

Tools
  • new-campaign-intake skill
  • clarify tool (one question per turn)
  • brand_pack.py list (sections to brands)
  • new_campaign.py new --answers --dry-run
  • check_campaign_readiness.py (self-test)
  • social_campaign_today.py (verify dates)
  • ffprobe -> /workspace/m4b-player/bin/ffprobe
Commands

python3 ~/.hermes/scripts/new_campaign.py steps  # the 9-step checklist
python3 ~/.hermes/scripts/new_campaign.py new --answers /tmp/<slug>.json --dry-run
python3 ~/.hermes/scripts/new_campaign.py new --answers /tmp/<slug>.json
python3 ~/.hermes/scripts/social_campaign_today.py --campaign <slug> --days 7

Never
  • Never batch the questions. Every answer changes the next one — batching produces a generic template the user then has to fight.
  • Never invent an answer to keep moving. A guessed audience or goal poisons the brand pack, the pillars, and every caption after it.
  • Never trust “we have video.” Measure the aspect ratios — that is how you avoid planning landscape posts from vertical-only footage.
The launch chain — 9 steps, and only step 1 is mechanical
#StepWhat it produces / the gate
0The briefDecisions only. Vague answers here are what cause rewrites later.
1Brand packbrand_pack.py new → fill 6 layers. Gate: check must pass. Runs as one command together with the scaffolding.
2Inventory raw materialCONTENT_FLOW.md — every asset with its format and aspect ratio. The step that gets skipped and costs the most: it determines what the schedule can even ask for.
3Design the phases1 Launch (one asset/day) → 2 Deep dive (weeks 2–4, grouped by theme) → 3 Sustained (pillars + assets).
4Build the scheduleThe date grid is scaffolded for you. Every row must name a real asset — a dangling reference is worse than a missing post.
5Produce contentRun the 8-phase pipeline per post; A/B and pick a winner.
6Gate every postpre-flight-checklist.md — the 8 checks. Nothing goes live ungated.
7PublishCheck credentials first — see the connector gaps above. No credentials means a manual loop, not automation.
8MeasureNothing collects metrics automatically. Decide the review cadence up front or the targets stay aspirational.
Sections, campaigns & readiness — the multi-vertical layer
brand_pack.py · new_campaign.py · registry.jsonmulti-verticalSay: “this is for the music section”
Sections (verticals)

Brands carry a vertical: — healthcare · music · product · service and anything else. list groups by it, --vertical filters it. Verticals are free-form and emergent: there is no separate registry, so a new section costs nothing until a brand actually exists in it.

Campaigns

Every campaign is registered in /workspace/campaigns/registry.json with its brand, window and schedule path, and social_campaign_today.py reads any of them via --campaign. New campaigns get their own folder; existing live data is never moved to fit the tooling — the registry points at it in place.

Readiness

check_campaign_readiness.py is a 19-check end-to-end self-test of the entire chain — brand pack in a new vertical, gate, dry run, scaffold, schedule parses, registry, gates copied, then teardown asserting the live campaign is undisturbed. Run it before trusting the process.

Tools
  • brand_pack.py list [--vertical]
  • brand_pack.py new <slug> (scaffold brand)
  • new_campaign.py new --answers (+ --dry-run)
  • /workspace/campaigns/registry.json
  • social_campaign_today.py (reads any campaign)
Commands

python3 ~/.hermes/scripts/brand_pack.py list  # grouped by section
python3 ~/.hermes/scripts/brand_pack.py list --vertical music
python3 ~/.hermes/scripts/check_campaign_readiness.py  # 19/19 = ready
python3 ~/.hermes/scripts/social_campaign_today.py --list-campaigns

Traps found by the self-test — each one was silent
  • The week advance regenerated the same week. A 24-week grid came out as 24 copies of week 1. It looked plausible and listed fine; only parsing it into dates exposed it. Always verify a generated schedule prints real, distinct dates.
  • check blocked on cosmetics. Severity is now deliberate: TODO in voice.md / pillars.md blocks (the voice and content mix are undefined); TODO in visual / playbook / assets is a note. Don't silence it by deleting the markers.
  • ffprobe is not on PATH. A bare ffprobe returns nothing, which reads as “no video” when there is plenty. Use command -v ffprobe || /workspace/m4b-player/bin/ffprobe.
20

Capability Adoption

The ledger — what the stack learned, and where it should land
capability_ledger.pythe hubSay: “what’s new that we haven’t applied?” · “what should I retrofit?”
What it does

Records every capability that became available — usually from an upstream skill change — and tracks it to a decision. One source of truth with three consumers: the adapt queue (what to apply), this page (what to report), and the retrofit scan (what to improve in existing projects).

Why it exists

Detection without a ledger is a notification you forget. The upstream tracker found real improvements from Jun–Sep 2026 that were reported and then never applied — subagent-template.md had not changed since Jun 20. This closes that loop.

The key distinction

process capabilities improve how work is done and apply to every project equally. product capabilities are things you can add to a project. Only product ones belong in a per-project retrofit.

Commands

python3 ~/.hermes/scripts/capability_ledger.py queue  # unapplied
python3 ~/.hermes/scripts/capability_ledger.py scan  # retrofit backlog
python3 ~/.hermes/scripts/capability_ledger.py page  # changelog rows
python3 ~/.hermes/scripts/capability_ledger.py set <id> ported

Detected but not yet applied — 50 in the queue
Capability & what it addsPage section to re-read
Simplify can now find code that must change together, from git history and imports not adopted
Finds the code we forgot to change. When two places must move together but nothing in the code says so -- a rule copied into a second file, a server route and the page that mirrors it, two apps sharing one table -- it surfaces the pair with evidence from how the repo has actually changed, before the half-update ships.
—
Adversarial review is chosen by evidenced consequence, not diff size or file paths
Stops spending an independent second-model review on changes that are merely big -- a 600-line restyle no longer triggers it -- and keeps that review for changes where being wrong costs money, access or data. Less wasted review, same coverage where it counts.
#improve
Correctness review traces every writer of a lifecycle state, not just the diff
Catches the bug where two different pieces of code write the same status field and each one checks a different thing, so one marks a request approved while another quietly overwrites it. It builds a table of every writer and the ways they can interleave, instead of only reading the lines that changed.
#improve
ce-work: a progress update is never a reason to end the run
A run stops calling a checkpoint a finish line. Finishing intake, or getting halfway down a list, no longer reads as a reason to hand back and ask what next - the only accepted exit is a blocker it can name. That is the difference between a job that ends when it is done and one that ends when it gets tiring.
—
Simplify pass gains a file-boundary finding: one file, two unrelated jobs not adopted
A cleanup pass can now tell you a file is doing two unrelated jobs - but only when it can name both jobs and show the split actually helps, so long single-purpose files stop getting carved up for being long. In a diff-scoped pass it only touches mixing this change created, so a cleanup stops drifting into an unrequested refactor of the file next door.
—
Review stops filing newly exposed bugs as pre-existing
Real bugs stop disappearing because they live in old code. If a change starts passing user input into a function that was always broken, the review now reports it as this change's bug instead of filing it as 'pre-existing' and moving it out of the findings list. Same for a harm sitting behind a stub or a dependency nobody has built yet - it counts as reachable, not theoretical.
—
ce-simplify-code takes a caller-set size cutoff and runs one combined reviewer under it not adopted
Small changes stop paying for a panel. A twelve-line fix gets one reviewer applying all four lenses at once instead of four separate ones, and the summary says which mode ran and on what count, so you can see the pass happened and was sized on purpose.
—
ce-simplify-code defines what counts as code — and prose, skills and prompts are explicitly not it not adopted
Stops a cleanup pass from editing the instructions themselves. Our skills, personas and guardrails are all markdown, so a 'simplify this' run without this rule can trim a rule down to something shorter that no longer works — and shorter prose always looks like an improvement, which is why nobody catches it in review.
—
ce-doc-review splits round-2+ rules out and stops re-raising rejected findings not adopted
A second review pass stops showing you the same findings you already dismissed, and starts catching the ones where the 'fix' was reported but never actually landed. Both are things that make a re-review feel like a fresh set of eyes instead of a loop.
—
lfg sends one-pass changes straight to ce-work, no plan artifact
Small fixes stop paying for a planning ceremony. A one-line correction no longer produces a plan file nobody reads before it gets fixed. Same files, same review, just less paperwork on the way.
#work
ce-compound picks depth itself instead of asking; interactive defaults to Full
One less question in the middle of capturing a lesson, and a guarantee that the cheap mode only kicks in when the context is genuinely tight. Badly formed depth flags fail loudly instead of silently doing the wrong depth.
#compound
Capture may tighten an existing lint rule, not just add new ones
Small real fixes now actually get prevented. Before, the only allowed shapes were 'write a brand new rule' or 'write a test', so the common case — the repo already has a linter, the rule exists but is off — got reported as advice instead of fixed. Now turning it on counts.
#compound
Refresh may now create CONCEPTS.md; capture never does
A shared glossary of your project's own nouns (Reservation, Party, Block Time) that gets built the first time someone cleans up the learnings, instead of never getting built because nobody starts it. Every later skill reads the same definitions.
#compound, #brainstorm, #plan
Upstream merged ce-compound-refresh into ce-compound as a second job
One entry point for learning capture instead of two skills that had to be kept in step. If you have ever wondered whether a lesson should be re-audited, the answer is now the same command with a different word after it. Nothing changes until we port it: our ce-compound is still capture-only.
#compound
A measured number only counts as a result if it names its bound - sample count, workload, or threshold cleared not adopted
Stops a single unrepresentative measurement reading as a proven win. If something is '40% faster', the write-up says on what workload, over how many runs, against what threshold - or it says the number is inconclusive. That is the difference between a claim worth acting on and one that has to be re-tested.
—
One line in five skills: a spawned worker starts a new context and does not continue the parent conversation
Sub-agent briefs stop assuming the worker knows what the parent just read, which is the usual cause of a worker reviewing the wrong files or redoing an investigation. And when work starts from a ticket number, the title gets read back and shown before anything is built - so a wrong ticket reference is caught in the first sentence instead of at the end.
—
Planning skills stop asking permission questions that a yes declines the recommendation
Questions stop being ambiguous about what 'yes' means, so a run with a recommendation stops stalling on a yes/no that reads as 'yes, but do the other thing'. And every plan naming a test location must say what that test leaves uncovered - which is what stops a green suite passing for a plan nobody actually implemented.
—
ce-noslop catches figurative language and clipped sentences, and its pattern names become plain English not adopted
Our copy gate now flags metaphor used in place of a fact and sentences too clipped to follow, not only AI vocabulary and triplet rhythm. In practice 'the engine that drives your workflow', or a stack of four-word fragments presented as premium pacing, gets caught instead of shipping. Findings also read as English instead of grammar terminology.
—
ce-compound stops always writing a learning doc: it picks the cheapest form that prevents the repeat - test, lint rule, coding standard, then a learning
When a bug is already solved, the fix leaves behind the tightest thing that stops it recurring - usually a test that goes red on that defect, instead of a paragraph in a docs folder nobody re-reads. Fewer learning docs pile up restating what a test already enforces. This is close to something that has bitten us: our ce-compound always writes a solution doc, which is why the corpus drifts toward prose nobody opens.
—
New upstream skill ce-help: a router that reads your question and names the one CE skill to run next new upstream
A lookup table that says which of our process skills fits a job, plus a symptom table explaining why one misbehaved. The next time a run picks the wrong skill (plan instead of brainstorm, debug instead of work) or quietly does nothing, we stop guessing. It adds no new capability to run - it is navigation over skills we already have.
—
Compound Pack rules now enforced during ce-work and ce-debug, not only at review time not adopted
Your written house rules — the ones already stored as pack notes — get checked before code is written, not just when it is reviewed. Today a rule can only be caught after the fact; after this, the implementer reads the rule first and either follows it or stops and asks you.
—
Keep plan-local IDs (R1, KTD3, U7) out of the files the work writes; comment-only relaxation in the peer scripts
Plan numbering stops leaking into your code. A plan says 'U7 must do X'; without this rule the finished file can end up with a comment that only makes sense next to the plan, which reads as graffiti six months later.
—
ce-work: a multi-PR plan is built ahead of its dependencies and landed in merge order
When a piece of work has to ship as several pull requests, the agent can now build them in parallel ahead of time and merge them in the right order — instead of building one, waiting for it to land, and building the next. Each PR is labelled with the plan and group it came from, so a re-run can tell what is already done and never opens the same PR twice.
—
Non-interactive doc review records what it left open inside the document, and ce-plan clears entries as they are settled
Decisions still open get written into the plan document itself, so a later session that reads only the plan still sees them. It ends the case where a review leaves three open questions, the session ends, and the next run rebuilds the work without ever knowing they existed.
—
SFX sourced from Freesound, not a bundled library
Sound effects now come with a per-clip licence, author and measurement record for every promo film, instead of one blanket attribution file covering a shared folder.
#media
Fresh context window per subagent (upstream rule added to 8 skills)
A rule that keeps delegated work honest. Today our ported copies tell you to spawn subagents but never say they must start clean, so a helper can inherit your conclusions and agree with you instead of checking you. Porting this means a review or research subagent genuinely starts from zero and reports what it actually finds.
—
ce-dogfood: report template and phase instructions reworked for unattended runs not adopted
Same practical effect as the browser change: the app-testing skill can now run start-to-finish without stopping to ask a question mid-run, which is what makes it usable as a cron or delegated task rather than an interactive session.
—
ce-dogfood: prefer a built-in browser over the agent-browser CLI, and stop pausing to ask the user about isolation not adopted
The app-testing skill now runs on whatever browser the environment already has instead of demanding a separate install it could not use. For us that is the whole ballgame: this container has browser tooling but no agent-browser CLI, so before this change ce-dogfood could not run at all here without an install step.
—
validate-doc-claims: say WHERE it searched when a cited path is missing, instead of implying the path is fabricated
Stops the knowledge-base checker from accusing a correct citation of being wrong. When a learning points at a file that lives in a different repo or store, the checker now says 'I only looked here' instead of 'this path does not exist' — so the fix is to widen the search, not to delete a true citation.
—
Prototype sources: a kept prototype's run path now survives into the plan/brainstorm artifact and reaches implementation workers not adopted
When a design is settled by building a quick prototype, the plan now carries a receipt pointing back at that prototype — the decisions file and the exact screens that were chosen — so the people implementing it can see the thing that was agreed instead of a prose description of it. Previously the prototype was thrown away and the plan was the only survivor.
—
ce-ideate: remove the evidence-scout dispatch step, halving a run's agent cost with no grounding loss
An ideation run now costs roughly half the agents it used to — one fewer dispatch layer between 'here is the topic' and 'here are the ideas' — while still reading the repo for its evidence. Same output, cheaper and faster.
—
Cross-model transport: pin acpx as a RANGE (>=0.18.0 <=0.21.0) resolved via explicit --package, so npm release-age policies stop blocking peer reviews
Fixes cross-model review silently failing to start on machines with a supply-chain cooldown setting — npm refused the exact version and the peer was reported as unavailable with a misleading 'cache is stale' reason. It also sets a floor at a version that closed a real hazard: an agent peer could previously get ambiguous destructive commands approved.
—
ce-debug: distinguish the calling agent's own edits from the user's, so a pipeline run stops blocking on its own work not adopted
Fixes a self-inflicted deadlock: an orchestrating agent that had already made its own edits would trip its own safety check, and the debugging run would abort saying 'the user has uncommitted changes' when it was the agent's own work. After this the safety check still protects your uncommitted work, but the agent stops confusing its own hands for yours.
—
ce-debug: drop three reference files (-514 lines) after a 45-session usage audit, keeping only what gets read not adopted
The debugging playbook gets about 85% shorter without losing anything it actually used — the audit was 45 real debugging sessions, and those three files were almost never opened. Practical effect: when the agent does debug something, it spends its context on your code instead of on 500 lines of technique prose it skips.
—
ce-debug: run a bake-off between competing repairs before choosing one for a consequential bug not adopted
When a fix has more than one plausible shape and picking wrong is expensive to undo, the agent develops two or three candidate repairs and compares them on evidence before touching your code — instead of committing to the first reasonable idea. It also refuses to hold a bake-off when a quick experiment would answer the question, so it does not add ceremony to ordinary bugs.
—
Upstream gives brainstorming, planning, ideation and explain ONE shared rule for publishing a document copy
One written rule for how our agents hand a document to someone else — and it fixes the thing that most often goes wrong there. Right now each skill invents its own delivery, so an agent can quietly upload a client or department document to a public web page that anyone with the link can read and Google can index. After this, the agent must say 'this will be public' and get your yes first, and it must keep the real file as the record instead of replacing it with a URL.
—
Diagram Design — primary connectors get their own arrowhead colour
Architecture diagrams keep one consistent highlight colour from the line into its arrowhead, instead of the arrowhead drifting to the default accent.
—
Diagram Design — box plot variant for comparing distributions
A chart that shows several groups' spread side by side instead of just a median each, so a group whose middle looks fine but whose range is wide stands out immediately.
—
ce-code-review: read a staged diff once, in bounded parts, and keep the reviewer out of the parent transcript
When a review covers a lot of changed code, the reviewer stops loading the whole diff over and over and instead opens just the slices it needs, one time each. In plain terms: less of the model's memory spent re-reading the same code, so the review stays accurate on big changes instead of getting cut short or losing the thread. It fixes a failure that has bitten us — ce:full runs on large repos going vague or dropping findings once the diff outgrew the context window.
—
Invoking the pipeline is pre-approval to run the verification the change needs not adopted
Removes the deadlock where an unattended run stops to ask permission from nobody. If you kick off an automated build-and-ship run, it now goes ahead and actually tests the thing instead of skipping the proof because it could not get a yes. Also stops a half-finished run from opening with a cheerful recap that reads like the work is done.
—
Decline review findings that are real but outside the PR's purpose not adopted
Stops a review round from ballooning into an unrequested refactor. When you ask for a fix to one thing, the reviewer currently can keep piling on adjacent 'while you're in here' work; this gives the loop explicit permission to say 'good catch, different change' and hand it back as a follow-up instead of quietly widening the diff.
—
Old-PR intake: decide whether a stale PR still belongs before touching it not adopted
A check we do not have anywhere: when a branch or PR has sat for a while, something that actually reads what the trunk has done since and tells you whether the work is still worth keeping -- instead of just reporting conflict counts. It catches the case where the trunk already solved the same problem, so a clean-looking merge would quietly re-add code the team deliberately deleted. Nothing lands in the system until we adopt the skill that carries it.
—
Cloned house voice — briefings and film lines in a chosen voice, on our own CPU
One narrator voice across briefings, films and voice messages, generated on our own box from a short sample: no per-character cost and no audio sent to a vendor. Today the local lane has preset voices only, and the clone slot in config points at an engine that was never installed.
#audio
Cross-model peer hardening: fall back when a model is refused, isolate the codex peer from user plugins, pass effort to OpenCode 2.x
Fewer silent 'the second-opinion model just didn't answer' failures, and when it does fail you get told why (refused model, wrong model name, which ones are available) instead of an empty result. Also stops a second-opinion run from picking up your personal Codex plugin settings.
—
Reviewer sub-agents read their persona and schema files from disk by path instead of having them pasted into the prompt
Cheaper reviews on a multi-persona run. Instead of copying the same persona text and JSON schema into every one of 17 reviewer prompts before anyone starts, the reviewers open the files themselves. Less to send, and one place to fix when a persona changes.
—
Whole-file deletions no longer force a full review, but now get their own checked band: is anything still using the deleted file?
Reviews stop re-reading a whole deleted file as if it were code, and instead get told to hunt for whatever is still pointing at it. It is the difference between 'the file is gone, nothing to review' and catching the screen that still imports it, the route file still resolved by name, or the plugin silently no longer registered. On our kind of repo - 17 live apps with barrel files, route-by-filename and asset-path strings - deletion breakage is exactly the bug class that reaches production quietly.
—
ce-optimize runs become resumable across turns and context resets, and the loop is reformulated as ticks not adopted
Long jobs that survive being interrupted. Today a long optimization that gets cut off at a context reset or an end of turn loses its place and you start over. With this it writes its state down, and when it is woken again it picks up mid-experiment instead of redoing finished work.
—
ce-optimize can now optimize instruction text (prompts/skills), with a fixed eval set built from real failures not adopted
A way to improve our own prompt and skill text by measurement instead of by feel. You hand it real cases where a skill gave the wrong answer, and it rewrites the wording, keeps a change only when the score actually moves, and throws away wording that earns nothing. Right now we edit skills by opinion; this would let us say 'this skill got measurably better' and prove it.
—
ce-* skills: never dispatch a named specialist agent as a stand-in for a generic subagent
Stops a review or planning subagent from quietly being swapped for a different, pre-canned specialist agent that would override the brief we wrote for it. In practice: when I spawn a reviewer or researcher with specific instructions, the agent that runs is the one I described, not some other agent's opinion of the job.
—
Named/configured models now outrank the default subagent tier in ce-code-review
Our code review stops overriding a model you or the project deliberately chose for a reviewer role — before this, ce-review treated its built-in tier list as final, so a reviewer configured on purpose could still be dispatched on a cheaper or different model without saying so. Concretely: a rule in your instructions like 'run the security reviewer on X' now actually takes effect instead of being silently replaced by the skill's default.
—
In the system now — 99 applied
Capability & what it addsApplied
Phone feel gets a mechanical pass
A phone-specific check with the exact fix per symptom: inputs that zoom the page on tap, layout height that is wrong behind the browser bar, content that stops at the notch, taps that feel laggy, a stuck hover state after tapping, pull-to-refresh hijacking a scroll. Matters for the schedules and forms residents open on a phone.
2026-10-27
Motion gets reviewed against a hard craft bar, not just built
A review lane for animation code: ten non-negotiable standards (UI under 300ms, entering motion eases out, popovers scale from their trigger, nothing animated that fires on a keyboard shortcut, reduced-motion honoured) with an explicit block-or-approve verdict. Turns 'the animation works' into 'the animation is right'.
2026-10-27
Worst-case data pass: find the rows that break before the owner does
A QA lane that loads a screen with its realistic worst data instead of its showcase data — long names, unbreakable emails, a count of exactly 1, an empty list, a thousand rows — then reports every break with its cause and the CSS fix. Catches the squashed avatar, the pushed-off row menu, and the '1 members' that a happy-path check passes.
2026-10-27
Diagram self-check now catches a file that was cut off mid-write
A diagram deliverable that was truncated or encoding-damaged is rejected before it reaches anyone, instead of passing a check that only looks at the part still present.
2026-10-27
Diagram imports stop mangling labels and stop losing outer groups
Imported architecture diagrams keep their real labels and their outer groupings, so a diagram brought in from draw.io, Excalidraw or Mermaid draws what the source actually says instead of losing the parts a client would notice.
2026-10-27
One voice registry — films and briefings share named voices
A named voice list (engine, voice, speed, sample) that both the film lane and the briefing lane read, so choosing 'the warm female narrator' is one setting instead of editing a skill. Today Kokoro is wired for brand films only and briefings still default to Edge.
2026-10-24
TTS output gate — catch dropped or repeated words before audio ships
A check that compares the rendered audio against the script it came from — duration sanity plus a speech-to-text round trip — so a briefing or film voiceover that loses a sentence or loops a phrase is caught before delivery instead of being heard. Our speech-to-text and ffmpeg are already installed; nothing currently checks the audio.
2026-10-24
CPU voice bake-off — choose the briefing narrator on measurement
A repeatable way to pick a text-to-speech voice for briefings and films: the same passage rendered through each CPU engine, with load time, real-time factor and a blind listen page, so the choice is made by ear and by number instead of by star count. The first run already overturned an assumption — our installed Kokoro lane turned out to be the slowest option on this box.
2026-10-24
Repo & prompt feature harvest — element-level gap mining with a proof-backed backlog
Turns 'is this repo useful?' into a build plan: every mechanism in the repo or prompt pack is inventoried, checked against what we already run, and the missing ones come back ranked with the exact workflow each would improve. Stops both failure modes we have hit — importing a whole repo for two good ideas, and missing the small mechanic that would have fixed a recurring defect.
2026-10-24
Product films from real screens (video-shotcraft)
Turns a live product into a 40-second cinematic film — the real screens, 124 motion recipes, sound design, rendered to MP4 on our own box. No footage, no stock, no video model credits.
2026-10-24
Review output must state what happened to the cross-model peer
A machine-readable answer to 'did a second model actually review this?' Right now a cross-model pass that quietly never ran looks identical to one that ran and agreed. After this, every review report carries the honest label, so a clean report can no longer imply independent corroboration it never got.
2026-10-16
Host-family attestation stops trusting a copied harness env marker
Stops the peer reviewer from making a false claim of independence. Previously, if a session inherited another tool's environment marker, we would think the second opinion came from a different model family when it did not — so an agreeing reviewer would silently boost a finding's confidence for no reason. Now it reports 'independence unverified' instead of inventing it.
2026-10-16
ce-simplify-code gains comment-pruning and test-value reviewers, plus a pipeline/standalone split not adopted
A safe way to delete comments and dead tests from our code without breaking anything. Today our simplify-code skill only prunes unused imports and commented-out code (line 114); it has no rule for the thousands of narrating comments and false-confidence tests across the 17 deployed apps. This adds the guardrails that make those deletions trustworthy: a default-delete comment rule with an explicit keep list, plus a test rule that refuses to delete anything unless another test already covers the same behavior — which matters because deleting a passing test that nothing replaces is how silent regressions ship.
2026-10-15
ce-code-review maintainability persona: two new mechanical smells (unrequested surface, dependency-for-a-few-lines)
The reviewer now catches two things it used to wave through: code that quietly grows the public surface (new flags, endpoints, config keys) beyond what was asked for, and pulling in a dependency to do something a few lines of standard library or an existing helper already does. Practically: smaller diffs, fewer surprise config knobs, and fewer third-party packages to maintain.
2026-10-11
ce-noslop: plain rewrite must not firm up hedged claims, and a semicolon is not a dash substitute not adopted
A guard on our copy and prose rewrites: when we strip the marketing puffery out of a sentence, we are not allowed to make the claim sound more certain than the source did. If a draft said a tool 'may cut wait times', the cleaned version still says 'may'. Also stops the lazy fix of replacing a banned dash with a semicolon, which just swaps one tell for another.
2026-10-10
3D character animation SOP — the Meshy → Blender lane's hard rules ship as a skill
Character renders and animations stop costing a debugging loop: the four hard rules — Icosphere filtered from framing, gestures pruned to the limb, textures from the rigged export, local-basis retargeting — load before any Blender session, with clip capture, grading and the review page one command away.
2026-10-10
3D asset lane — Meshy AI free tier (image to 3D + rig/animate) feeding videos, web and game builds; Tripo 3D passed over
3D shapes, characters and props in videos and web pieces without a 3D artist: make a mesh from an image or a prompt, bring the GLB/FBX into the free Blender pipeline, and it lands in a video beat or a web scene. First planned use: a 3D cut of the Drippy mascot.
2026-10-10
Media flow — films, explainers, demos and image sets as one staged, gated pipeline
Any film, demo or image set now runs one front door with the same premium bar: every prompt monster-refined, every phase gated, every deliverable proven — and only direction picks, generate clicks and final approval wait for the user.
2026-10-09
OpenMontage video system — pipeline-driven video production, live again
New video and stills-based pieces run as pipelines with built-in quality gates — free stock footage, free narration, subtitles, anti-slideshow scoring, and a self-review pass — instead of hand-built scripts; long recordings can be batch-split into ranked short clips.
2026-10-09
Media handoff — prompt cards out, generated stills & clips back
Any page's imagery and short video can be produced with zero API spend — the subscription already being paid does the generation, the prompts carry the quality bar, and every generation stays a human click.
2026-10-08
Trading platform release — one command, verified file-by-file
A site release stopped being a manual FTP session: one command backs up, uploads, checks every file by size, and confirms the new bundle is the one live — with a restorable copy of what was there before.
2026-10-07
Role landing dashboards — composition from what the role's own account can reach
A repeatable way to land any role on the right screen: composition decided from what their own account can actually reach, approved as a preview before anything ships, and proven with three accounts so nobody else's board moves.
2026-10-07
Ask the Docs — the platform answers from its own knowledge, cited
Answers about how the platform works come from the platform's own documents — cited, streamed, and remembered across the conversation — no API key to paste and no notebook to know.
2026-10-07
Design Vault — private reference library, filled by every research run
Design references stop living in screenshots and browser tabs — any page can be filed into a library you own, browsed like Mobbin (boards · briefs · source filters), and a twice-weekly scan keeps new finds arriving tagged and digested.
2026-10-07
ce-setup health-checks a runtime prerequisite and can pre-warm the tool cache not adopted
A setup-health pattern we have nowhere: check the runtime a workflow depends on, report the exact version floor and the install link, and pre-warm the download so the first real run is not the one that waits. We have felt exactly this - container rebuilds that silently abandon pip installs, a Node-based skill that only fails at the moment it is invoked.
2026-10-07
Cross-model pass: a peer that cannot run now names why instead of going quiet
A distinction our cross-model pass does not make: today ours skips silently on a missing peer, a peer error and a peer timeout alike, so 'the peer never ran' and 'the peer ran and found nothing' look the same in our output. Upstream's rule is that silence is only correct for a pass that never started, and that an unavailable peer must name what to install or fix.
2026-10-07
Cross-model peers now run through one pinned acpx transport (Node 22.13+ on every host)
Nothing that runs in our stack, and one thing worth acting on: the claim that peers are 'read-only' is gone upstream. Upstream now states plainly that a Codex peer can read anything the account can read, run shell commands and WRITE files, and that the Grok and Cursor routes can read any file the account can read. Our own cross-model peer reference currently calls the peer read-only. We run our peers through delegate_task, so a hostile reader does not get a shell - but the peer does see the whole repo, and our docs say read-only anyway.
2026-10-07
Skin authoring standard: when a temp dir needs a rediscoverable scratch root vs a unique mktemp not adopted
A decision rule for where our agents put their temp working files, so a background job that another step later reconnects to can still find its own directory. It also kills the class of bug where two concurrent runs silently share one temp path because the directory name was fixed.
2026-10-07
ce-code-review: fall back locally when a started cross-model peer never actually reviewed the diff
When our cross-model review peer dies before it actually reads the code, the review currently just says 'skipped silently' and moves on. Upstream made that untrue: the review must say which peer failed and why, and treat the lens as uncovered so a local reviewer picks it up. Practically, a review that looks complete stops hiding a dead peer behind a quiet skip.
2026-10-07
Adoption Review — one intake → verdict pipeline for repos and prompts
One honest call for anything new — repo, tool, or prompt: evidence-checked (never eyeballed), a three-way verdict (adopt · watch · skip), and the verdict always on record, so nothing gets re-suggested and nothing gets lost.
2026-10-07
Move review criteria out of AGENTS.md into layered CODING_STANDARDS.md files not adopted
A ready-made, already-debugged checklist for reviewing skill prose - the exact categories that go wrong when we modify skills. Most useful to us: the handoff rule that a dispatched subagent inherits none of the parent's context and its prompt must therefore carry the persona, the governing instructions, the skill dir absolute path, the user constraints, and existing on-disk artifacts. That is our most common delegation bug.
2026-10-06
Broom design check — deterministic design-tell scanner, kept as the second pass
A mechanical design scan any session can run locally in seconds, before a page ships or gets handed off — no browser, no network, no VPS gate path required.
2026-10-06
Brand identity workflow — logo, type and palette from one brief, measured, into a kit
A brand can start as a brief instead of a blank page: several complete identities to compare, each measured rather than asserted, then a guidelines kit — plus a critique path for brands that already exist.
2026-10-06
ce-work drops the /goal bypass; chained units run inline in dependency order
Chained work no longer waits on a fresh agent. Upstream deleted the entire autonomous-goal path because their harness has a stronger one built in - we never had it, so we lose nothing by ignoring that deletion. What we do gain: a one-unit-at-a-time rule that stops paying for a new worker on work that has to wait its turn anyway, which is most of a linear plan, and a stop-and-check before re-implementing something that is already in the repo from an earlier branch.
2026-10-06
Fillable PDFs that keep the form's own look — detection to export, measured
A scanned or digital form comes back fillable without an external service touching it and without changing the form's look — fields land on the printed lines, and a mechanical audit runs before anything uncertain ships.
2026-10-05
New skill: data-viz - one house chart layer for every graph and reporting chart
One place that says how a chart gets built here - so a new graph stops re-deriving the theme and stops shipping the same invisible-fill and mislabelled-axis defects.
2026-10-04
Animated walkthrough recorder - record a real screen as a cursor-and-caption tour GIF
Show people how to use the platform without writing a manual or screen-recording anything by hand - a cursor-and-caption tour of the real screen, built from a JSON file of steps, and applicable to any URL including admin pages behind auth.
2026-10-02
ce-work stops hardcoding conventional commits and passes the message by file
Commits written during a build will match what the repo already does instead of a fixed format, and a multi-line commit message can no longer be mangled by the shell. Concretely: on a repo whose history reads 'Schedule: fix float rotation', our commits currently come out as feat(scope): ...; they would follow the repo instead. And any commit body containing backticks, $, or ! stops being silently rewritten before it reaches git. Both have meant fixing up commits by hand afterward.
2026-10-01
Dispatch subagents only when the work pays off — apply small fixes inline
Less machinery for small jobs. Our review-fix and PR-feedback flows spawn a subagent even for a one-line fix in a file we just read; this says do that inline and save the round-trip. Also skips a pointless 'search past solutions' subagent when there are no past solutions.
2026-10-01
Planning scoping confirmations lead with the user's problem, not length caps
Scoping summaries that say what problem is being solved and why, instead of hitting a bullet quota. Our planning checkpoints currently can read as a feature list; this makes them read as a colleague playing back their understanding, which is easier to correct.
2026-10-01
ce-plan: scoping checkpoint is shown before the plan is written
A visible 'here is the scope I am planning against' checkpoint before a plan gets written from an earlier brainstorm. Right now our ce-plan can go from brainstorm straight to a plan file, so a misread of scope is only caught after the document exists. This makes the correction happen one step earlier.
2026-10-01
ce-brainstorm: recommend only what the goal needs, commit nothing the user did not ask for
Our brainstorm step stops writing extras the user never asked for into the requirements document. Today our requirements template commits whatever the brainstorm produced as a flat list; this makes the skill sort each item into 'the user asked for it / it is needed for what they asked for / it is your own idea' and drop the third kind into Deferred. Practically: fewer surprise features (audit logs, admin toggles, alerts) appearing as committed requirements in a plan the user then signs off on.
2026-09-29
ce-work implements the unit as written and reports what it chose not to build
Builds come back the size they were planned. Workers used to quietly add their own defensive handling and invent extra tests for failure cases the unit never built, which is where scope creep and surprise diffs came from. Now the worker has to leave those out and tell you what it skipped — so a build is reviewable against the plan in one pass. The two-failed-fixes rule also stops the 'try slightly different fix number four' loop that burns cheap-model runs.
2026-09-29
ce-plan sizes plans by subtraction — no unrequested guards, retries or modes
Plans stop coming back bigger than the thing you asked for. Every time a CE plan ran, it would pad the scope with extra guards, fallbacks, options and 'while we are in here' robustness work, and the build then cost more than the request. Now the planner has to justify each extra mechanism against a concrete test and put the rest on a visible 'considered and not built' list, so you see what was deliberately left out instead of paying for it.
2026-09-29
Skill-design lesson: never key an exclusion on a word the judged input echoes not adopted
A rule for every skill we write: when a skill judges text that comes from outside (review findings, client messages, issue bodies), never write the carve-out using a word that text uses about itself - 'silent', 'unsafe', 'breaking'. A literal-minded model matches the word and skips the judgment entirely, which can re-enable exactly the behaviour the carve-out was meant to prevent. State the property that decides instead.
2026-09-28
ce-retune: a clean-run streak is descriptive confirmation, not a significance test not adopted
A rule against fooling ourselves with 'it worked 8 times in a row'. When a change is judged by a run of successes, we now have to say up front what bar we will accept and keep every attempt in the history - so a lucky pass cannot be reported as proof. It applies to anything we evaluate by repeated runs, not just model tuning.
2026-09-28
ce-debug: remove the way to write the bug, not just add more checks not adopted
Better bug fixes on any code we touch: instead of bolting another guard onto each place a bug could happen, we remove the ability to write that bug at all - one shared helper, or a value type that cannot hold the bad state - with a hard rule to stay inside the files the search already found. Nothing new to install; it is a change to how a fix is shaped.
2026-09-28
A finding on code an earlier review-fix added asks whether that fix was the right layer
Our own review pipeline stops stacking band-aids. When a review flags something and the fix for it was itself added by an earlier review round, the reviewer now asks 'is this failure already caught somewhere?' instead of adding another layer of code. This is the exact loop that bloats a small change across repeated review passes.
2026-09-24
Author-side rule: a new or changed test must fail when the behavior it names breaks
The rule we never wrote down for ourselves: a test only counts if it would go red when the thing it is testing breaks. It stops the two shapes we have actually shipped before -- a test whose expected value is produced by the same code it is checking, and a mock that hands the function the answer it is supposed to prove -- and it stops production code getting a flag or export that exists purely so a test can reach inside.
2026-09-24
Learnings can declare the outside change that retires them (retire_when)
A note can now say when it will stop being true — 'this workaround is only needed until the upstream bug is fixed' — and the refresh job checks that periodically. Old advice stops accumulating silently; you get told when a note has outlived its reason instead of trusting something that expired a year ago.
2026-09-24
Review runs the requirements check in reverse — a behavior rule the plan never asked for is reported
Unrequested behavior shipped alongside the asked-for work now shows up as a low-severity note instead of passing silently. If a build quietly changes what the feature does — not what it looks like — you get told at review time rather than discovering it in production.
2026-09-24
Review catches tests that pass even when the code is broken, plus test-only production seams
A test that only looks like a test now gets flagged. Concretely: a test asserting something that was computed by the same code it is supposedly checking, or a mock handing the function the answer it is meant to prove — both pass no matter how broken the code is, and both would be caught before they reach us.
2026-09-24
New skill: flash-style-sites - build Flash-style sites without Flash's faults
One command path for "make it feel like Flash": a clone-ready stage skeleton plus a gate that blocks the autoplay-audio / unskippable-intro / canvas-text class of regressions before they ship.
2026-09-24
ce-resolve-pr-feedback: adjudicate judgment calls internally before escalating to a human not adopted
Autonomous PR-feedback loops stop pinging a human for calls that competent engineers can settle by argument. The ones that genuinely need your authority — security, billing, data, migrations, product direction — still come to you. Everything else gets decided and applied, with the reasoning posted on the thread so you can reverse it after the fact.
2026-09-22
ce-plan / ce-explain — trace existing behavior before choosing, via scout dossiers
Two things worth having. First, a planning habit: when a choice depends on how the current code actually behaves, the plan traces that behavior from source and tests before committing to an option, instead of planning on top of an assumption. Second, a cost saver for research: our research agents would write their findings to files and hand back a few-line summary, so a run stops filling up on pages of agent output it never reads.
2026-09-22
ce-code-review: trust PR_HEAD_REF only when it resolves to the PR's headRefOid
Closes a silent-wrong-answer hole in the PR review path. When we review a pull request, the local copy of the PR's files could previously have come from a same-named branch of ours rather than the PR itself, and the review would report on code the PR never had. Now the copy is used only if it is provably the PR's actual commit, otherwise it falls back to the diff and says so. This is a latent bug fix, not a feature — nothing new appears in our system, we just stop being able to be wrong quietly.
2026-09-21
New upstream skill: wtf — explain the last message or a supplied source plainly new upstream
A way to say 'I didn't follow that' and get the plain version — of a report, a diff, a contract clause, a link, a long email — explained without asking again or re-reading it yourself. It is built for the exact moment you are looking at output you did not follow.
2026-09-18
ce-code-review pins the exact wording for an in-process review fallback
A complete review can no longer be reported in a way that reads like a skipped review. On our side the peer half of ce-review is inert (we do not run cross-model peers), so the practical value is the naming discipline, not the peer logic.
2026-09-18
ce-code-review: per-stage cost logging (run-log.py) + CI-workflow changes focus the review
The review skill now writes down what each stage of a review actually cost — time, how many reviewers ran, how many findings came back, how many tokens the peer used — into a file next to the review output. That means we can finally see which part of a review is expensive instead of guessing, and tune it from measurements. And a change to a CI/build workflow file now gets a targeted adversarial look rather than being treated as if its size made it dangerous.
2026-09-15
ce-code-review: size review depth by consequence, not total line count
Our code-review skill stops guessing how deep to look from a raw line count and instead asks one question: could a wrong version of this change fail silently somewhere the developer is not looking? A 30-line edit to a background retry loop now gets independent adversarial scrutiny, and a 500-line docs-only change no longer burns the full 17-persona panel. An auth or payments change still always gets everything. It also stops misreading languages our reviewer has no rule for, and fixes a rename-detection bug that made some paths invisible to risk checks.
2026-09-15
PDF sheet-review is now the server-wide house standard
Every PDF this server makes — today's generators and ones nobody has written yet — gets mechanically proofed the morning after it ships, and every PDF task now enters through one design chain instead of ad-hoc reportlab.
2026-09-15
Per-sheet PDF proofing loop ported into pdf + morning-briefing pipelines
Generated PDFs get proofed like a print run — the briefing email logs a per-sheet QA line every morning and any new layout defect surfaces as a flag instead of reaching the recipient.
2026-09-15
Impeccable deterministic slop detector wired as mechanical design gate
A measurement you do not have to trust an LLM's opinion about: every design deliverable gets a machine scan for the classic AI tells (Inter-everywhere, AI beige, purple gradients, buzzwords, sub-AA contrast) before it ships.
2026-09-15
ce-plan: run a Bake-off unasked when a costly choice stays open
A planning pass that runs its own head-to-head on the one expensive decision it cannot settle, instead of waiting for permission. That is the git-history-pipeline question, the Supabase-routing question, the worker-isolation question: the choices we have historically re-litigated after shipping, at the exact point where a second real option and a comparison would have closed them. The risk side is real and upstream names it loudly - once this is on, an unrequested competition can fire on any irreversible HOW, each candidate is a full generation, and it prices against a model alias we do not configure (plan_model / brainstorm_model), so on this stack it would run inline on the session model.
2026-09-15
ce-code-review: feature-gate leaks named as a security defect class
A reviewer that specifically looks for the half-open door: a feature switch flipped on by default, or a permission check that survives on one code path and disappears on the one next to it. Nothing in our stack checks for this today - not the security persona, not our access-control audit reference, which is about who can log in and what role they hold, not whether a gate got quietly dropped in a diff.
2026-09-15
ce-code-review: never flag pipeline artifacts for deletion
A hard rule that our review and audit passes stop recommending deletion of our own planning and solution documents. The ce-* pipeline writes those files; nothing about them is dead code, and a reviewer that cannot tell the difference has been suggesting we throw away our own records.
2026-09-14
ce-code-review: replace the lite-path check with a Review depth gate
A cheap-and-quick review path for genuinely trivial edits, and a stated rule for when we are NOT allowed to take it. The real gain is the shapes it now refuses to call trivial: CI workflow files, migrations, anything whose line count could not be read, and any change that would break quietly somewhere else instead of loudly at the change site - a silent-pass guard, an auth, money or data boundary, a public contract, or load/timeout/locking behaviour. Those are exactly the diffs our reviews have under-read, because they look small and are not. It also separates facts from judgement: the helper now reports numbers and floors and is forbidden from saying 'lite', which is what let a miscount slip past before.
2026-09-14
HyperFrames — HTML/CSS compositions rendered to deterministic MP4 (demo videos, promos, motion titles)
Turns any designed page into a real MP4 on the box — platform demos, promos, motion titles and stat call-outs render from HTML at zero marginal cost, with a frame-level fidelity check (extract stills, look) before shipping. Replaces screen-recording + NLE editing for client walkthroughs: the video is a project folder that re-renders identically, and a copy change is a text edit + ~2 min render.
2026-09-13
DESIGN.md extraction pipeline — any live URL → spec'd design system
Paste any site URL and get its real design system as a spec file the build agent must follow — exact colors, type, spacing, components — instead of generic "AI layout" output. Replaces the paid URL→DESIGN.md generators at zero marginal cost, and gives the research phase a spec-level reference layer: pull any reference's system, or lift one of 51 ready-made packs, then build against it.
2026-09-13
Review confidence only rises when a separate model agrees
A review finding can no longer get its confidence raised just because two of our own reviewers, running on the same model, happened to agree. Two identical reads of the same code by the same brain stop counting as corroboration. Only a genuinely different model raises the alarm level.
2026-09-13
Prompt Library & Refinery — a searchable prompt library + input-to-prompt builder
A prompt for almost any business task, on demand, plus a way to turn your own rough notes into a finished prompt. Ask for one and get it in chat; hand over raw content and get a structured prompt back. It updates itself weekly, and it tells you honestly when the library has no good match instead of handing you a poor one.
2026-09-13
Plan readiness judged by what the plan says, not by whether a host tool answered
A plan is graded on whether it actually says enough to be built, not on whether some question-asking feature of the tool was used. This matters for us because we run these skills headlessly from cron and from delegate_task, where no interactive prompt ever fires - previously a plan could be marked not-ready purely because the host never asked.
2026-09-12
Every reviewer wait has a deadline; uncollected reviewers count as failed
A review can no longer hang forever waiting on one sub-agent that never reports back. Silent reviewers are now counted as failures and named in the coverage line, so the report says honestly which lenses did not run instead of quietly reporting fewer findings as if that were the whole picture. Reviewer sub-agents also get an explicit time and tool budget so they stop and write down what they found instead of running out.
2026-09-12
Review finishes in fresh leaves so a long round does not run out of context
Long reviews stop dying halfway through. Upstream found that by the time a big multi-reviewer round reaches the merging stage, the orchestrator has eaten so much context that it can no longer even start the next sub-agent - so the round just failed. The fix hands the finish work off to fresh, empty agents that read the results off disk.
2026-09-12
Cannot dismiss a security/data-loss finding without cited evidence
Security, data-loss and authorization findings can no longer be waved away by a reviewer who simply disagrees. Dismissing one now requires pointing at the exact line or the exact test that disproves it - otherwise it stays on the report as an open question instead of disappearing. It also stops a real-but-unreachable issue from being reported as if it were certain.
2026-09-12
ce-code-review recovers a finding's quote from its run artifact before the quote gate drops it
Fewer real bugs silently thrown away by our code review. Today a reviewer's finding can lose its supporting quote just because the quote lived in the reviewer's detail file instead of the summary line, and the merge then demotes or drops it. This change makes the merge go look in that file first, so real findings survive.
2026-09-12
Ask before acting only when the request has not already authorized the action
Less double-asking. The CE skills stop firing a clarify question (fix now or diagnose only? / proceed?) when your original message already said what to do, so a command like 'fix this' stops bouncing back a menu before it starts.
2026-09-12
Ponytail — the anti-over-engineering decision ladder
Stops building things that did not need to exist. Wired in as phase B3.5 of ce:build, a conditional reviewer in ce:review, and an always-on companion in the task router. Reported ~54% less code on comparable work.
2026-09-12
23 Matt Pocock engineering skills — process over vibes
Replaces 'it looks right' with enforced process. TDD will not let you write code before a failing test exists; diagnosis will not let you propose a fix before finding the root cause; review checks the spec as well as the code.
2026-09-12
Humanizer v3.0.0 pattern reference
25 AI-writing patterns with tighter definitions. Now runs as a copy-slop pass inside no-slop-design and premium-website-designer — a premium layout with interchangeable copy is still slop, just better dressed.
2026-09-12
Reckoner — AI credit balance dashboard
Makes provider spend visible instead of invisible. On first run it surfaced a negative OpenRouter balance (-$0.14) that nothing else was reporting.
2026-09-12
Context Mode — MCP context reduction
More usable thinking room in long sessions. Installed and connected as an MCP server with 11 tools enabled.
2026-09-12
Skill wiring guardrails — protection against silent overwrite
Upstream syncs can no longer silently delete local wiring. Detect, auto-restore, and alert — fully automatic on a daily schedule with no human trigger.
2026-09-12
Unified system status page — one view of both environments
Answers 'is the VPS and the agent telling the same story?' in one look. Separates stale failures from active ones, so a weekly job that failed five days ago does not read as a live problem.
2026-09-12
Python & Node debuggers — real breakpoint debugging
Two debuggers: debugpy for Python (remote DAP + pdb REPL) and --inspect/CDP for Node. Attach to a running process, set breakpoints, step through live state instead of adding print statements.
2026-09-12
Pre-commit review gate — security scan and quality gates
A pre-commit pass over a diff: security scan, quality gates, auto-fix where safe. Runs before the commit exists, so problems never enter history.
2026-09-12
Creative render toolkit — ComfyUI, p5.js, Manim, infographics, design tokens
ComfyUI for image/video/audio generation pipelines, p5.js for generative and interactive browser art, Manim for 3Blue1Brown-style math/algorithm animation, baoyu-infographic for 21 layouts x 21 styles, design-md for Google DESIGN.md token specs, sketch for quick HTML mockup variants, touchdesigner-mcp for real-time visuals.
2026-09-12
arXiv search — papers by keyword, author, category or ID
Programmatic arXiv access with a working API path. Verified returning real results on live queries.
2026-09-12
YouTube transcripts to summaries, threads and posts
Pull a video transcript and reshape it into a summary, a thread, or a post. Transcript library verified importable.
2026-09-12
PowerPoint and in-place PDF editing
python-pptx creates and edits real .pptx decks (verified writing a 28 KB deck); nano-pdf edits PDF text, typos and titles through natural-language prompts.
2026-09-12
Kanban orchestrator and worker playbooks
Two deeper playbooks for multi-agent kanban work: the orchestrator decomposition rules (including the anti-temptation rule against doing the work yourself) and worker pitfalls and edge cases.
2026-09-12
Dogfood — exploratory QA of web apps with evidence
Systematic exploratory QA that produces reproducible bug reports with supporting evidence, rather than a list of impressions.
2026-09-12
OpenHue — Philips Hue control
Control Hue lights, scenes and rooms from the command line.
2026-09-12
Video production kit — scene brief → rendered film → published gallery
Turns 'we need a video' from a from-scratch MoviePy job into a data edit: the timeline is a manifest, so a new film is a new JSON file — no script changes. Narration-first ordering kills the usual visuals/voiceover mismatch (a 60s brief legitimately became a 122s film because the narration said so), and the grain/vignette/caption-bar rules stop still-driven films reading as slideshows. Every deleted June render is rebuildable from its recovered script, and the result lands at a reviewable URL instead of a local path.
2026-09-11
Motion retrofit — humanizer-audit (interview season review page)
The interview-season review page now reveals its campaign cards and stats as you reach them, animates the modal it already had, and shows a reading-progress rail. It is the first project through the Motion Standard, so it proves the procedure end-to-end before anything else is touched.
2026-09-11
Motion effect library — 28 sampled effects + live gallery
Turns the motion skill from a written spec into a visible menu. The library had 29 effects and only 7 were ever shown; now every one is running at a public URL so a project can borrow specific effects by name instead of you asking 'are those the only animations'. It also widened the ledger, which had been tracking all of this as a single opaque capability.
2026-09-11
Motion retrofit — workflow field manual (the 13-section reference doc)
The manual you read for how everything works now reveals each of its sections as you reach them, draws the hairline under each section heading, and slides a pill onto the active nav link. It already had a progress rail and scroll-spy, so this fills the one gap — content appearing with intent rather than a flat wall of cards.
2026-09-11
Reviewer calibration — zero findings is valid
Reviewers stop inventing problems. It is now acceptable — and expected — for a review to come back with zero findings if the change is fine. This targets the exact thing you have caught twice: a review flagging a 'gap' that was already implemented.
2026-09-10
Reviewer scoping rule in SKILL.md
One review rule at the top of the skill so every reviewer persona inherits it: judge the change against what it was meant to do, not against how you would have written it.
2026-09-10
Available upstream capabilities — 102 catalogued, 11 high interest
Capability & what it would addValue
Simplify can now find code that must change together, from git history and imports not adopted
Finds the code we forgot to change. When two places must move together but nothing in the code says so -- a rule copied into a second file, a server route and the page that mirrors it, two apps sharing one table -- it surfaces the pair with evidence from how the repo has actually changed, before the half-update ships.
2026-11-07
Document review keeps traced money and security harms through its filters not adopted
Nothing for us - we never adopted ce-doc-review, so there is no document-review pass here to change. Useful only as confirmation that upstream treats 'a stub might reject the input' as wishful thinking in both review skills, which is the same reasoning behind the ce-review port in this batch.
2026-11-05
ce-setup can now refresh coding standards unattended and publish them as one rolling PR not adopted
Nothing for us today - we do not run ce-setup and we keep no per-project CODING_STANDARDS.md for it to refresh. The transferable part is the publishing discipline for any cron that writes: one rolling branch so repeat runs update a single PR instead of stacking new ones, a higher evidence bar because a scheduled window is short, and treating a previous human rejection as evidence against re-proposing.
2026-11-05
Simplify pass gains a file-boundary finding: one file, two unrelated jobs not adopted
A cleanup pass can now tell you a file is doing two unrelated jobs - but only when it can name both jobs and show the split actually helps, so long single-purpose files stop getting carved up for being long. In a diff-scoped pass it only touches mixing this change created, so a cleanup stops drifting into an unrequested refactor of the file next door.
2026-11-05
ce-simplify-code takes a caller-set size cutoff and runs one combined reviewer under it not adopted
Small changes stop paying for a panel. A twelve-line fix gets one reviewer applying all four lenses at once instead of four separate ones, and the summary says which mode ran and on what count, so you can see the pass happened and was sized on purpose.
2026-11-05
ce-simplify-code defines what counts as code — and prose, skills and prompts are explicitly not it not adopted
Stops a cleanup pass from editing the instructions themselves. Our skills, personas and guardrails are all markdown, so a 'simplify this' run without this rule can trim a rule down to something shorter that no longer works — and shorter prose always looks like an improvement, which is why nobody catches it in review.
2026-11-05
ce-doc-review: routine plans get one combined reviewer, and only escalate to the full panel on a real consequence not adopted
A plan review that costs one reviewer instead of a panel, and pays for the panel only when the plan can actually move money, hand out access, expose someone's data, break something another team depends on, or quietly settle a product question. It also stops the review re-arguing choices the plan was told to make.
2026-11-05
ce-commit-push-pr reuses prior successful checks instead of re-running the suite after every commit not adopted
Stops a ship step from re-running the same tests just because the commit hash moved. The transferable half is smaller and sharper: keep each check's real exit status when you capture its output, and finish the gate before publishing anything.
2026-11-04
ce-setup explains every offer by what it gets the user, and closes on a commit/PR choice not adopted
A worked shape for any setup or onboarding screen: describe what a change gets the person, never the file being moved. 'A shared file where the team can turn on settings; nothing changes until someone enables one' instead of 'creates config.yaml with optional team defaults' — the second one nobody can decide on.
2026-11-04
ce-sweep: only accept merge evidence that provably belongs to the repo being checked not adopted
Nothing for us (skill not adopted). The transferable lesson: when an agent decides 'this ticket is done because PR #123 merged', it has to prove #123 belongs to the right repository, because PR numbers are only unique inside one repo.
2026-11-04
ce-sweep: drain items whose issue was closed at the source, and stop IDs from colliding not adopted
Nothing for us today, but the idea is worth stealing: a sweep tool that actually notices when the thing it is tracking was closed elsewhere. ce-sweep exists only upstream; we never adopted it.
2026-11-04
ce-babysit-pr: stop re-running CI on a BEHIND branch the will merge anyway not adopted
Nothing directly, because we do not run ce-babysit-pr. What it encodes is a rule we hit often: a branch that is only behind main is not broken, and pushing an update just to make the badge green burns a CI cycle and resets reviews for no gain.
2026-11-03
ce-babysit-pr stops waiting for GitHub to refresh its test merge not adopted
A PR that is actually fine stops being reported as 'not ready yet' because the base branch moved. A repo with an active main branch no longer makes the check wait forever — upstream measured a clean PR still not ready after 25 minutes.
2026-11-03
ce-doc-review splits round-2+ rules out and stops re-raising rejected findings not adopted
A second review pass stops showing you the same findings you already dismissed, and starts catching the ones where the 'fix' was reported but never actually landed. Both are things that make a re-review feel like a fresh set of eyes instead of a loop.
2026-11-02
Terminology pass on ce-compound-refresh: classify gains a worth case, per-action-flows gains a claim-cut step not adopted
Nothing for us.
2026-11-02
ce-debug must state what its evidence cannot cover and name the always-on signal that was missing not adopted
Nothing we lack - ce-debug is unadopted and systematic-debugging plus mp-diagnosing-bugs cover the loop. The one transferable habit: a diagnosis is not finished until it says what it could not see and which log or metric would have made the failure visible the first time.
2026-11-02
ce-compound-refresh drops the confirmation gate: the worth audit runs on every refresh and can now also edit CODING_STANDARDS.md not adopted
Nothing for us today - we do not run ce-compound-refresh (our ce-compound fork has no refresh audit, only a refresh.md hint). If we did, the learning store would get pruned without asking first and coding standards would be edited in the same pass.
2026-11-02
A measured number only counts as a result if it names its bound - sample count, workload, or threshold cleared not adopted
Stops a single unrepresentative measurement reading as a proven win. If something is '40% faster', the write-up says on what workload, over how many runs, against what threshold - or it says the number is inconclusive. That is the difference between a claim worth acting on and one that has to be re-tested.
2026-11-02
ce-noslop catches figurative language and clipped sentences, and its pattern names become plain English not adopted
Our copy gate now flags metaphor used in place of a fact and sentences too clipped to follow, not only AI vocabulary and triplet rhythm. In practice 'the engine that drives your workflow', or a stack of four-word fragments presented as premium pacing, gets caught instead of shipping. Findings also read as English instead of grammar terminology.
2026-11-02
New upstream reference: take before/after screenshots for PRs that change UI not adopted
When a code change alters what a page looks like, the pull request carries a real before/after picture pair so a reviewer sees the change instead of reading about it. For us it is not available as-is: we barely use GitHub pull requests, and we review design work on live URLs he opens himself.
2026-10-31
ce-setup: review docs now reach AI code reviewers, and standards can be refreshed not just drafted not adopted
Its actual content is Google-adjacent tooling plumbing for Cursor Bugbot and Claude Code Review. Nothing enters our system - we do not run ce-setup and we do not use either reviewer. The only portable idea is that a rules file should be pointed at, never copied, so it stays in one place.
2026-10-30
Compound Pack rules now enforced during ce-work and ce-debug, not only at review time not adopted
Your written house rules — the ones already stored as pack notes — get checked before code is written, not just when it is reviewed. Today a rule can only be caught after the fact; after this, the implementer reads the rule first and either follows it or stops and asks you.
2026-10-30
Review policy files (REVIEW.md): a repo can now state its own review rules, and setup learned a project-docs step not adopted
Lets a repository write down its own house review rules in one REVIEW.md file — what 'serious' means here, what to skip, what counts as proof — and makes the reviewer actually obey it instead of improvising. Nothing changes for us until we write such a file; we do not run ce-setup.
2026-10-30
ce-doc-review: one short report and one question instead of three, after ~200 lines of template cut not adopted
Nothing for us — we do not run ce-doc-review. Recorded because the direction is worth stealing: their doc review was over-producing, and ~200 lines of template came out.
2026-10-30
lfg: ship a multi-PR plan as a stack, carrying deploy dependencies into the PR description not adopted
Nothing for us — lfg is not installed locally.
2026-10-29
ce-dogfood: report template and phase instructions reworked for unattended runs not adopted
Same practical effect as the browser change: the app-testing skill can now run start-to-finish without stopping to ask a question mid-run, which is what makes it usable as a cron or delegated task rather than an interactive session.
2026-10-29
ce-dogfood: prefer a built-in browser over the agent-browser CLI, and stop pausing to ask the user about isolation not adopted
The app-testing skill now runs on whatever browser the environment already has instead of demanding a separate install it could not use. For us that is the whole ballgame: this container has browser tooling but no agent-browser CLI, so before this change ce-dogfood could not run at all here without an install step.
2026-10-29
ce-setup check-health: warm the acpx cache with the same range spec the workers now use not adopted
Keeps the 'is my setup healthy' check and the actual review launch agreeing on which transport version to fetch — otherwise the health check warms a cache entry the worker never uses, and the first real run still pays the download (or fails the age-policy check).
2026-10-28
Prototype sources: a kept prototype's run path now survives into the plan/brainstorm artifact and reaches implementation workers not adopted
When a design is settled by building a quick prototype, the plan now carries a receipt pointing back at that prototype — the decisions file and the exact screens that were chosen — so the people implementing it can see the thing that was agreed instead of a prose description of it. Previously the prototype was thrown away and the plan was the only survivor.
2026-10-28
ce-debug: distinguish the calling agent's own edits from the user's, so a pipeline run stops blocking on its own work not adopted
Fixes a self-inflicted deadlock: an orchestrating agent that had already made its own edits would trip its own safety check, and the debugging run would abort saying 'the user has uncommitted changes' when it was the agent's own work. After this the safety check still protects your uncommitted work, but the agent stops confusing its own hands for yours.
2026-10-28
ce-debug: drop three reference files (-514 lines) after a 45-session usage audit, keeping only what gets read not adopted
The debugging playbook gets about 85% shorter without losing anything it actually used — the audit was 45 real debugging sessions, and those three files were almost never opened. Practical effect: when the agent does debug something, it spends its context on your code instead of on 500 lines of technique prose it skips.
2026-10-28
ce-debug: run a bake-off between competing repairs before choosing one for a consequential bug not adopted
When a fix has more than one plausible shape and picking wrong is expensive to undo, the agent develops two or three candidate repairs and compares them on evidence before touching your code — instead of committing to the first reasonable idea. It also refuses to hold a bake-off when a quick experiment would answer the question, so it does not add ceremony to ordinary bugs.
2026-10-28
Working gh/glab recipes for issue trackers: native blocking edges, open-blocker count, comment-then-close not adopted
Nothing to our system today. Our mp-wayfinder describes blocking as a concept but carries no issue-tracker template file, and our real trackers are Asana, the Unified Platform, and markdown in the Obsidian vault, not GitHub or GitLab issues. These recipes would only matter for actual GitHub-issue projects.
2026-10-27
Re-verified: ponytail band-import commit is the only change above tracked SHA; nothing to port not adopted
nothing for us. The importer prices Claude Code transcripts from a hardcoded Anthropic price table and writes them to a local CSV board; we are not on Claude Code and do not run the band UI.
2026-10-27
Invoking the pipeline is pre-approval to run the verification the change needs not adopted
Removes the deadlock where an unattended run stops to ask permission from nobody. If you kick off an automated build-and-ship run, it now goes ahead and actually tests the thing instead of skipping the proof because it could not get a yes. Also stops a half-finished run from opening with a cheerful recap that reads like the work is done.
2026-10-26
Credit other people's work when shipping their commits not adopted
Correct authorship on commits so other people's work is not absorbed under our name. Matters when we land a fix someone else wrote or cherry-pick across repos -- the original author keeps their name in the history instead of vanishing into a squash.
2026-10-26
Decline review findings that are real but outside the PR's purpose not adopted
Stops a review round from ballooning into an unrequested refactor. When you ask for a fix to one thing, the reviewer currently can keep piling on adjacent 'while you're in here' work; this gives the loop explicit permission to say 'good catch, different change' and hand it back as a follow-up instead of quietly widening the diff.
2026-10-26
Old-PR intake: decide whether a stale PR still belongs before touching it not adopted
A check we do not have anywhere: when a branch or PR has sat for a while, something that actually reads what the trunk has done since and tells you whether the work is still worth keeping -- instead of just reporting conflict counts. It catches the case where the trunk already solved the same problem, so a clean-looking merge would quietly re-add code the team deliberately deleted. Nothing lands in the system until we adopt the skill that carries it.
2026-10-26
ce-babysit-pr recognises a CI check that failed because of a repository setting, and re-runs just that job once the setting is fixed not adopted
If a pull request is stuck failing a check that has nothing to do with the code, this stops it from being chased as if it were a bug and names the setting to flip. Mostly saves the loop from spinning.
2026-10-23
ce-optimize runs become resumable across turns and context resets, and the loop is reformulated as ticks not adopted
Long jobs that survive being interrupted. Today a long optimization that gets cut off at a context reset or an end of turn loses its place and you start over. With this it writes its state down, and when it is woken again it picks up mid-experiment instead of redoing finished work.
2026-10-23
ce-optimize can now optimize instruction text (prompts/skills), with a fixed eval set built from real failures not adopted
A way to improve our own prompt and skill text by measurement instead of by feel. You hand it real cases where a skill gave the wrong answer, and it rewrites the wording, keeps a change only when the score actually moves, and throws away wording that earns nothing. Right now we edit skills by opinion; this would let us say 'this skill got measurably better' and prove it.
2026-10-23
peer-job-runner.py: aggregate deadline on wait, multi-job reap, shared meta helper (copied into ce-brainstorm, ce-plan, ce-work, ce-code-review, ce-doc-review, ce-pov) not adopted
Nothing for us.
2026-10-22
ce-pov: panel waits get a hard deadline with a named next step; reconcile is guaranteed when peers materially dissent not adopted
A multi-model review panel that can no longer hang forever and can no longer silently ignore a dissenting reviewer. Each reviewer gets a hard time budget; when it runs out you're told exactly which call to make next, and any reviewer that disagreed must see the counter-evidence before the group is allowed to conclude.
2026-10-22
Bump the pinned acpx transport version from 0.19.5 to 0.19.6 across the cross-model scripts not adopted
Nothing for us. It is a dependency pin bump for a transport we do not use; nothing lands in our system.
2026-10-21
Cross-model Antigravity peer: copy the file-backed sign-in into the private GEMINI_HOME instead of relying on the agy CLI login not adopted
Nothing for us. We do not run cross-model peers at all — no acpx, no Antigravity, no Gemini peer. Even if we did, this changes nothing outside the Linux workflow: it is a fix for one peer provider's token handoff, not a capability.
2026-10-21
Upstream in-progress skill now keeps session memory in a dated, commit-cited wiki not adopted
A rule for how an agent's long-term memory should be dated and sourced. Not the wiki idea itself -- we already run that (llm-wiki skill, the Obsidian vault, and this capability ledger) -- but the discipline that nothing in it may describe the present tense without a date or a commit beside it, and old claims are superseded instead of edited.
2026-10-20
ce-doc-review reports peer outcome; wording drift in ce-code-review refs not adopted
The doc-review half of the peer-outcome reporting. It matters only if we adopt ce-doc-review — which we have not, so the substantive half is nothing for us today.
2026-10-16
ce-babysit-pr stops asking gh for a JSON field older gh does not support not adopted
Nothing for us. It repairs a crash inside a GitHub PR-watching skill we never installed — we have no ce-babysit-pr, so there is no field list here to fix.
2026-10-15
ce-simplify-code gains comment-pruning and test-value reviewers, plus a pipeline/standalone split not adopted
A safe way to delete comments and dead tests from our code without breaking anything. Today our simplify-code skill only prunes unused imports and commented-out code (line 114); it has no rule for the thousands of narrating comments and false-confidence tests across the 17 deployed apps. This adds the guardrails that make those deletions trustworthy: a default-delete comment rule with an explicit keep list, plus a test rule that refuses to delete anything unless another test already covers the same behavior — which matters because deleting a passing test that nothing replaces is how silent regressions ship.
2026-10-15
ce-doc-review: peer prompt now states the document is embedded, so the peer never reads from disk not adopted
nothing for us — this patches a shell script inside a skill we never adopted, driving a peer transport (acpx) we do not run. Our reviews never shell a document out to an external CLI peer, so there is no path for a peer to 'read from disk' in the first place.
2026-10-14
ce-debug pipeline: resolve the commit message format from project conventions instead of a hardcoded fix(ci):/fix: template not adopted
Nothing for us directly — ce-debug is not a skill we run. If we ever adopt it, this is what it buys: the automated debugger writes commit messages that fit the repo it is working in, instead of stamping 'fix: ...' on everything.
2026-10-11
ce-noslop: plain rewrite must not firm up hedged claims, and a semicolon is not a dash substitute not adopted
A guard on our copy and prose rewrites: when we strip the marketing puffery out of a sentence, we are not allowed to make the claim sound more certain than the source did. If a draft said a tool 'may cut wait times', the cleaned version still says 'may'. Also stops the lazy fix of replacing a banned dash with a semicolon, which just swaps one tell for another.
2026-10-10
ce-setup health-checks a runtime prerequisite and can pre-warm the tool cache not adopted
A setup-health pattern we have nowhere: check the runtime a workflow depends on, report the exact version floor and the install link, and pre-warm the download so the first real run is not the one that waits. We have felt exactly this - container rebuilds that silently abandon pip installs, a Node-based skill that only fails at the moment it is invoked.
2026-10-07
Skin authoring standard: when a temp dir needs a rediscoverable scratch root vs a unique mktemp not adopted
A decision rule for where our agents put their temp working files, so a background job that another step later reconnects to can still find its own directory. It also kills the class of bug where two concurrent runs silently share one temp path because the directory name was fixed.
2026-10-07
Move review criteria out of AGENTS.md into layered CODING_STANDARDS.md files not adopted
A ready-made, already-debugged checklist for reviewing skill prose - the exact categories that go wrong when we modify skills. Most useful to us: the handoff rule that a dispatched subagent inherits none of the parent's context and its prompt must therefore carry the persona, the governing instructions, the skill dir absolute path, the user constraints, and existing on-disk artifacts. That is our most common delegation bug.
2026-10-06
ce-prototype annotation pins are scoped to the variant they were placed on not adopted
Nothing for us today - ce-prototype is not one of the six CE skills we adopted. If we ever adopt it, this is what makes click-a-comment annotation usable on a screen that has tabs: without it your comment either shows on the wrong tab or vanishes when you switch. Our own design-review previews (the 18 redesigned surfaces and the /redesign-compare.html Decision Studio) are compared side by side, not swapped in place, so we are not feeling this pain yet.
2026-10-06
ce-resolve-pr-feedback becomes a three-mode skill: pipeline, return-to-caller, resume not adopted
A way for a long review job to be interrupted and picked back up without redoing or duplicating work. Today our review loop lives in one session: if it dies mid-way nothing is saved, and a naive retry posts the same comment twice. Upstream's version writes a checkpoint file before it touches GitHub, and on restart it re-reads GitHub and adopts a reply that already landed rather than reposting it. It also stops short of pushing when a caller owns publication. For us that means safer interrupted cron work and no double-posted comments.
2026-10-01
Cross-model review pins move to gpt-6.1-sol not adopted
nothing for us
2026-10-01
ce-optimize: show workers why cases fail, and cap spend for the whole run not adopted
For the ce-optimize skill, if we ever adopt it: optimization experiments stop failing blind (each worker is told which cases the current best is losing on and why) and a run can no longer quietly spend past a dollar figure across all its workers and judges, only the judge portion was capped before. Nothing for us today - we have not adopted ce-optimize, so there is no local loop for these rules to govern.
2026-09-30
Skill-design lesson: never key an exclusion on a word the judged input echoes not adopted
A rule for every skill we write: when a skill judges text that comes from outside (review findings, client messages, issue bodies), never write the carve-out using a word that text uses about itself - 'silent', 'unsafe', 'breaking'. A literal-minded model matches the word and skips the judgment entirely, which can re-enable exactly the behaviour the carve-out was meant to prevent. State the property that decides instead.
2026-09-28
ce-retune: a clean-run streak is descriptive confirmation, not a significance test not adopted
A rule against fooling ourselves with 'it worked 8 times in a row'. When a change is judged by a run of successes, we now have to say up front what bar we will accept and keep every attempt in the history - so a lucky pass cannot be reported as proof. It applies to anything we evaluate by repeated runs, not just model tuning.
2026-09-28
ce-debug: remove the way to write the bug, not just add more checks not adopted
Better bug fixes on any code we touch: instead of bolting another guard onto each place a bug could happen, we remove the ability to write that bug at all - one shared helper, or a value type that cannot hold the bad state - with a hard rule to stay inside the files the search already found. Nothing new to install; it is a change to how a fix is shaped.
2026-09-28
ce-polish live mode — talk and draw on the running page, the agent fixes what you said not adopted
A way to point at a page and just talk: you open the app, say out loud what looks wrong and draw on the screen, and the agent turns that into edits on the running page while you watch. It is the difference between describing a problem in chat and circling it with your finger.
2026-09-24
Cross-model peer defaults bumped to Claude Opus 5.5 and GPT-6 (Sol/Luna) not adopted
Nothing for us. Our adopted skills carry no cross-model peer script or model-ID table — the only peer-model mention in our ce-review tree is a historical note in upstream-tracking.md. There is no local default to repoint.
2026-09-22
ce-resolve-pr-feedback: adjudicate judgment calls internally before escalating to a human not adopted
Autonomous PR-feedback loops stop pinging a human for calls that competent engineers can settle by argument. The ones that genuinely need your authority — security, billing, data, migrations, product direction — still come to you. Everything else gets decided and applied, with the reasoning posted on the thread so you can reverse it after the fact.
2026-09-22
Name a delegated peer by its requested model — 'unknown model' is wrong not adopted
Nothing directly — we do not run upstream's cross-model peer panel. The transferable rule is about honesty in reporting: when we hand work to a subagent or another model and cannot verify what actually served it, report the model we asked for and mark the serving side unverified. Never render a missing receipt as 'unknown', which reads to the user as a broken run when nothing is broken.
2026-09-22
PR babysitter corroborates a 'finished' CI check across three sources before trusting it not adopted
Nothing for us — we do not run the upstream PR-babysitting loop. The transferable idea is the conservative rule: treat an externally-reported 'done' as done only when independent sources agree, and never let a best-effort API read be read as success. That is the same discipline our own deploy and verification steps already aim at.
2026-09-21
Cross-model peers default Grok to 4.7 at xhigh; Grok route ids change shape not adopted
Nothing for us — our skills do not have cross-model peer routes or the external-worker model mappings these commits touch. Pure informational: it is upstream maintaining the model ids inside its own cross-model harness.
2026-09-21
ce-prototype keeps attended annotation sessions alive; pins are named and survive disconnects not adopted
Nothing for us — we never adopted the ce-prototype annotate-in-browser loop. If we ever want click-on-the-page review of a design preview (someone annotates directly on a unified-*-redesign-vN.html and the agent reads the pins back), this pair is exactly the machinery for it, and it is now stable.
2026-09-18
Manual-only upstream skills pinned as manual-only on Codex not adopted
Nothing for us — it locks upstream's own invocation policy for a Codex host we do not run.
2026-09-18
lfg becomes an intake router: pick the skill that owns the request instead of always running plan -> work -> ship not adopted
Nothing today — we never adopted lfg. If we did, it would mean one command takes a bug report, a feature request, or a 'should we use X' question and automatically sends it to the right skill instead of forcing every request through a plan-first pipeline. The genuinely useful piece for us is the ce-debug return contract: a debug run that commits a fix on a branch and reports back what it changed, without pushing, so nothing lands until we say so.
2026-09-14
ce-noslop: the 'what changed' line must never land inside the rewritten text not adopted
Nothing for us — ce-noslop is an upstream skill we never adopted, and our own no-slop-design skill already keeps its quality notes in chat. Worth one line in the mental ledger though: it is the same failure mode as a QA report note bleeding into the page it was checking.
2026-09-13
Wording cleanups in ce-debug and ce-optimize not adopted
Nothing for us. The ce-debug edit just moves where the options are listed, and the ce-optimize edit says the same thing in fewer words. No behaviour changes.
2026-09-12
lfg - full autonomous ship pipeline to an open PR not adopted
One command that takes a feature description all the way to an open pull request unattended - planning, building, cleaning up, reviewing, testing, and opening the PR without stopping to ask.
2026-09-11
ce-riffrec-feedback-analysis - turn Riffrec screen+voice captures into bug evidence not adopted
Turns a screen-and-voice recording of someone hitting a problem into a structured bug report with evidence.
2026-09-11
ce-test-xcode - test iOS apps in an Xcode simulator not adopted
nothing for us - it needs Xcode and an iOS simulator, and we build and run on Linux.
2026-09-11
ce-test-browser - run browser tests on pages affected by a change not adopted
A smoke test that works out which pages your change touched and clicks through only those, reporting pass/fail per page.
2026-09-11
ce-babysit-pr - watch an open PR until merge-ready not adopted
A watcher that sits on your open pull request, fixes CI failures and review comments as they come in, and tells you when it is actually ready to merge.
2026-09-11
ce-resolve-pr-feedback - evaluate and resolve PR review comments not adopted
A helper that reads the review comments on your pull request, decides which are legitimate, fixes those, replies, and marks the threads resolved.
2026-09-11
ce-commit-push-pr - commit, push, and open/update a PR not adopted
The full 'ship it' flow: commits your work, pushes, and opens a pull request whose description explains what changed.
2026-09-11
ce-commit - craft a clear git commit (no push/PR) not adopted
A careful commit-only helper: it names exactly which files go in, never sweeps in unrelated changes, and writes a message that says what changed and why.
2026-09-11
ce-compound-refresh - audit captured learnings against the codebase not adopted
A janitor for a project's accumulated 'lessons learned' notes - checks each one is still true, merges duplicates, and removes ones the code now explains.
2026-09-11
ce-promote - draft launch/promotion copy for a shipped feature not adopted
Turns 'this just shipped' into ready-to-paste posts for each channel, written to lead with what a user can now do.
2026-09-11
ce-product-pulse - time-windowed product pulse report not adopted
A short daily or weekly 'how are the products doing' summary - usage, errors, speed - pulled from your own data sources and saved so the reports read as a timeline.
2026-09-11
ce-pov - grounded verdict on an adoption or approach question, with an oracle panel not adopted
A structured second opinion on 'should we adopt this tool or approach', forced to prove its claims against your project's own facts and able to ask other AI models for their take.
2026-09-11
ce-bakeoff - develop competing solutions and synthesize a winner not adopted
When there are several plausible ways to build something, it builds a few in parallel and has them judged side by side before you commit, so you pick on evidence rather than the first idea.
2026-09-11
ce-worktree - isolated git worktrees for fresh or existing work not adopted
A safe way to work on a change in its own separate folder so your main checkout is never disturbed, including checking out someone's pull request locally.
2026-09-11
ce-setup - health check and repo-local config for Compound Engineering not adopted
nothing for us - it only checks and repairs a specific third-party plugin's own configuration, which we do not run.
2026-09-11
ce-prototype - throwaway prototype to settle how something should work or feel not adopted
A quick, throwaway build you can click or look at to decide how a feature should work, whose only real product is the decision - the code is meant to be discarded.
2026-09-11
ce-doc-review - role-lens review of requirements/plans/specs not adopted
A panel that reads a plan or spec and points out what is internally inconsistent or impossible before you build on it.
2026-09-11
ce-retune - retune a skill corpus for a new model, measurement-first not adopted
A rigorous way to tune a library of agent instructions for a new model - but only if you already have a way to replay runs and score them. Without that, it refuses to start.
2026-09-11
ce-simplify-code - simplify recently changed code, behavior-preserving not adopted
A cleanup pass over the code a change just touched that makes it shorter and clearer without changing what it does, run by three different reviewers so no angle is missed.
2026-09-11
ce-handoff - create or resume a session handoff note not adopted
A short note at the end of a work session that lets a brand-new session pick up where you left off, plus the reverse: point it at any existing note or doc and it orients the new session from it.
2026-09-11
ce-explain - evidence-grounded explanation of how and why something works not adopted
A clear write-up of 'how does this work and why is it built this way', where every claim is checked against the actual code and it says plainly when something is a guess or undocumented.
2026-09-11
ce-strategy - create/update a STRATEGY.md product strategy doc not adopted
A short, stable 'what is this product and who is it for' document at the root of a project, written by asking you questions, that other planning steps can read so they stop guessing the big picture.
2026-09-11
ce-proof - publish and collaborate on markdown in Every's Proof editor not adopted
A way to turn any local markdown file into a shareable web link where people can comment and suggest edits. It only works by sending your document to Every's hosted service.
2026-09-11
ce-noslop - rewrite/check/draft prose to remove AI writing tells not adopted
A proofreader that strips the 'written by a machine' smell out of any text without losing a single fact - and it can point at which sentences read as AI-generated.
2026-09-11
ce-polish - user-directed live-browser UX polish before shipping not adopted
A tight loop: you look at the page in your browser, say what feels off, and it edits the running page so you can see the change immediately - then saves it locally when you are done.
2026-09-11
ce-dogfood - autonomous, diff-scoped browser QA of a branch not adopted
A tester that clicks through exactly the pages a change touched, in a real browser, and either fixes small breakages itself (with a test) or writes them up for you. Scoped to the change, not the whole app, and it leaves a report you can re-read later.
2026-09-11
ce-sweep - sweep feedback sources (Slack, GitHub Issues) into an lfg-ready plan not adopted
A robot that watches one place where feedback lands (a Slack channel or a GitHub Issues queue), marks each new item as seen, checks whether the fix actually shipped, and turns the leftovers into a to-do plan. It only helps if your feedback already arrives in one of those sources.
2026-09-11
ce-optimize - measured optimization loop with paired baselines not adopted
A way to make something measurably faster or cheaper instead of guessing: it records a 'before' number, tries changes one at a time on a scratch branch, keeps only the ones that actually moved the number, and writes down everything it tried. If it cannot measure, it refuses to run.
2026-09-11
ce-debug - structured root-cause diagnosis and fix loop, with an unattended pipeline mode not adopted
A repeatable way to chase down a bug: it must explain the full chain from trigger to symptom with file-and-line proof before changing anything, and it gives up and escalates after a few failed tries instead of thrashing. A second mode lets it run on its own and hand back a clear status ('fixed', 'diagnosed but not fixed', 'needs a human').
2026-09-11
What this list is

Upstream skills we have catalogued but never adopted. These are opportunities, not dismissals — each row says what it would put into the system. Most are rated low on purpose: an honest spread is more useful than 29 enthusiastic yeses.

How to act on one

Say the name and it gets evaluated properly: read the real upstream diff, judge what it would give us, then decide. Keep the adds field honest — if something adds nothing, write "nothing for us" rather than dressing it up.

Seen and dismissed — 44 (genuinely nothing for us)
Capability & what it addsSeen
Cross-model peer moves to GPT-6.1 Sol at high reasoning in the harness scripts
nothing for us.
2026-11-07
ce-compound routes coding-standards requests to ce-setup and stops
Nothing for us. The routing line points at ce-setup, which we do not have installed, so porting it would leave a dead reference in the middle of our ce-compound. The one reusable bit - 'a request that spans the whole standards document belongs to a different skill than the one capturing a single lesson' - only pays off once a standards skill exists.
2026-11-05
Plan defaults to one PR and splits only for a concrete gate
Nothing for us today - our ce-plan never groups work into PRs, and our changes land by deploy rather than review-merged pull requests. The rule is worth having on file if that changes: split only when a later part genuinely cannot land before an earlier one is live, or when a named reviewer or project rule demands its own PR.
2026-11-05
ce-plan passes depth:full when the user asks for a deeper or full review
Nothing for us. Our ce-plan carries no plan-handoff reference — the local references are the three platform-specific ones — so there is no line to add.
2026-11-05
ce-work records which commit its simplify pass already covered, so the caller does not re-simplify the same code
Nothing for us today. Our ce-work has no return-to-caller mode and neither of the two reference files exists locally, so there is nothing to update. The idea is worth remembering though: after a cleanup pass, write down how far it reached so the next pass does not redo the same files.
2026-11-05
ce-code-review asks each collection wait for the host's full timeout instead of the default
Nothing for us. Our review does not sit in a wait loop — Hermes hands back every reviewer's result in the same call, so there is no short wait to lengthen. The only transferable part is the cost lesson: one long wait beats ten short ones.
2026-11-05
acpx pinned to 0.21.1 across every cross-model script
Nothing for us. Our ce-review has no cross-model-*.sh — we never adopted the acpx cross-model peer transport, so there is no file to bump.
2026-11-02
Cross-model scripts: unset npm_config_package so the nested codex launch stops failing with exit 127
Nothing for us. Our ce-review does its cross-model pass through Hermes delegate_task to a second provider, not through these acpx shell scripts, which we never ported - local ce-review/scripts holds only resolve-base.sh.
2026-10-30
Plan unit grouping tightened around merge-safety, and doc review stops re-running every reviewer each round
Nothing new for us on its own — it is the same multi-PR and open-questions work as the two entries that carry the port patches, recorded here so the upstream range is fully accounted for. One transferable idea: a second review round should re-check only what changed, not repeat every reviewer.
2026-10-30
ce-doc-review / ce-ideate rendering and review-contract tests drop internal rule IDs
Nothing for us — prose cleanup in files we do not carry.
2026-10-30
ce-compound: extract-metadata output is documented as JSONL, one object per line
Nothing for us — our ce-compound has one reference (refresh.md) and no extract-metadata script.
2026-10-29
Assorted one-line tightenings across ce-work, ce-plan, ce-pov, ce-bakeoff, lfg and ce-strategy
Nothing for us — wording restatement across skills we read but that carry no local behaviour.
2026-10-28
Remove the hard-coded 'current year is 2026' lines from every skill body and research persona
Nothing new — it removes a line that would have been wrong in three months. The lesson is real though: any 'today is ' constant baked into a skill is a future bug.
2026-10-28
html-rendering.md reduced 610 lines to 199 in ce-brainstorm, ce-plan and ce-ideate (near-identical copies)
Nothing new for us — the HTML document contract our CE skills use for plans and audits got shorter and clearer, but the content is the same rules restated.
2026-10-28
Upstream release bump to 3.33.1 — manifest version only, no skill file touched
Nothing for us. No skill text, persona, or script changed — it only changes a version number in upstream's own package manifests, which we do not install from.
2026-10-27
Report-persistence fix, recap diff stats, and a watch-loop refactor
Nothing for us directly. The report-persistence bug it fixes does not exist in our copy: our ce-review/references/finish-input.md is a 55-line adaptation with no report.md contract at all, and our SKILL.md writes review.json only in mode:agent. The shortstat idea is a one-line nicety, not a capability.
2026-10-26
Cross-model peer: bump acpx pin to 0.21.0 and forbid the peer escalating
Nothing for us. These are upstream shell scripts driving an npm package (acpx) that we do not install or call anywhere -- our cross-model review runs through Hermes' own delegate_task with a different provider family, per ce-review/references/cross-model-review.md. Confirmed: zero ACPX_VERSION hits across our entire skills tree.
2026-10-24
Ponytail band: import past sessions and show the model per task
Nothing for us today. The skill file only gained one line documenting a `/ponytail band import` command, and the feature it documents is a Claude Code status-line board fed by Claude Code transcripts — a surface Hermes does not have. The portable idea would be a transcript-import cost board, but our equivalent (the capability ledger) is already fed by this tracker, so there is no gap to fill.
2026-10-17
Cross-model peer retries once with fresh npm metadata instead of dying on ETARGET
Nothing for us. Our cross-model pass runs through delegate_task, not npx/acpx, so there is no npm layer to go stale.
2026-10-17
Child skills now state that their return ends the skill, not the caller's turn
Nothing for us today, and that is the honest answer. Our ce-review has no mode:pipeline and never runs in another skill's session, so there is no caller turn for a return to end. Hermes skills finish and report; the Hermes runtime, not the skill, decides when a turn is over.
2026-10-15
Cross-model peer routes gain Google Antigravity (Gemini) as an eighth adapter
Nothing for us today. It lets the upstream CE harness send a diff to a Google Gemini model through a specific Google CLI (Antigravity) so a second vendor's model can disagree with the first one during a review. Our Hermes install has no cross-model worker, no acpx transport, and no Antigravity runtime, so this route has nowhere to plug in.
2026-10-15
cross-model: acpx peer-transport pin bumped 0.19.4 -> 0.19.5 across five skills
nothing for us — we do not run acpx or any cross-model peer transport, so there is no pin in our system to keep in step. Our ce-review adapts the upstream review logic to Hermes' own delegate_task/tooling rather than shelling out to acpx-mediated peers.
2026-10-14
ce-code-review Stage 4: each dispatch asset must be read with its own file-read call, never joined into one shell output
Stops the review orchestrator from doing `cat file1 file2 file3` in a single terminal call and then losing track of which lines came from which file. Each reviewer contract and persona prompt now arrives as its own labelled read, so the reviewer gets an intact, individually-attributable prompt instead of one concatenated blob.
2026-10-11
Enforcement claims must be marked unverified until tested; ce-code-review records one as proven
Nothing installable. It is a working example of a rule we would benefit from: when a plan asserts what a tool can or cannot be made to do, mark the claim unverified until a real run tests it, and do not ship the safety claim as settled wording before that run. Here the plan's own unverified claims and the shipped behaviour disagree, and the docs print the version that was never tested.
2026-10-07
ce-compound resolution template lists all eight knowledge-track problem types
Nothing for us - our ce-compound adaptation does not carry the resolution-template asset, and the CE solution documents we do hold are ad-hoc write-ups with no template to fall out of sync. The transferable lesson: a template's enumerated options must match the schema, because a list that has drifted from the schema quietly steers authors away from valid values.
2026-10-01
ce-compound schema.yaml gains an explicit schema_version contract field
Nothing for us today. The version marker only matters to a separate CLI upstream pins to this schema; we have no such consumer. The one line worth remembering: our own CE solution write-ups carry no schema-version marker, so if we ever point a script at their shape, add the field before the shape changes - that is the only moment it is cheap.
2026-10-01
Cross-model worker: the activity watchdog's sleep no longer outlives a TERM
Nothing for us directly - we do not run ce-work's cross-model shell harness. Backgrounded as reusable pattern: a CI step that hangs otherwise burns the whole job timeout and holds a container, and the fix is a fail-fast watchdog rather than a longer timeout.
2026-09-28
Stop cross-model peer workers stalling on large failure logs
Nothing for us - these are Claude-Code/Codex peer harness scripts we do not run, and the bug is macOS bash 3.2 only (our container runs bash 5, where the same input is fast either way).
2026-09-27
Move cross-model eval packs out of the skill directories into tests/skill-eval-cell/packs/
Nothing for us in behaviour. It does tell us one deliberately-shaped thing: the upstream authors decided an eval spec is NOT a runtime reference and must sit outside the skill directory so it can never be injected into the agent under test.
2026-09-20
ce-work: configured reasoning effort for the external worker (work_engine_effort)
Nothing for us. This tunes the reasoning effort of external CLI workers (Codex/Claude/Grok/opencode) that the upstream plugin shells out to. We have no such workers — our ce-review spawns Hermes subagents in-process, and our ce-work runs natively. There is no knob here for us to turn.
2026-09-20
New upstream skill 'wtf' - explain the last message or a supplied source in plain language new upstream
A one-keystroke way to say 'that did not land, say it again simply' without re-running the whole task. Our user is not a programmer and has to read technical reports about his own systems - this is the skill that turns one of those into something he can act on, on demand, without a redo. We have mp-wait-what, which covers the case where the agent's own last message was the problem; we have nothing that will open a file, a link or a pasted passage he was handed and explain that.
2026-09-18
Cross-model: OpenCode peers actually receive the prompt (review, pov, work)
Nothing for us today — it repairs upstream's cross-model peer routing (OpenCode), which we do not run. Hermes does its second-opinion passes through delegate_task/MoA instead.
2026-09-18
ce-compound extract-metadata reads past the resumed-session preamble
Older/resumed sessions stop coming back empty when the metadata extractor runs, and the summary line stops calling unreadable-format files 'parse errors'.
2026-09-18
Context: upstream ce-work now runs each run in its own git worktree
Nothing by itself; recorded so the next sync does not silently pull a worktree-based ce-work over ours. The feature underneath is interesting for a different reason: we have been bitten by two sessions editing the same checkout at once, and a per-run worktree is how upstream removed that class of collision. That is worth a look as an infrastructure idea, not as a patch.
2026-09-15
packs-resolve.py: nested-rules warning points at the published guide
Nothing for us. We do not run the pack resolver, so its warning text never appears in our system and a better link in it changes nothing we can see.
2026-09-15
Cross-skill: an inline child's return ends the child, not the caller's turn
Nothing for us. This is a multi-agent-orchestration hazard: when a sub-skill hands control back and nothing resumes the caller, the run stops half-done. Hermes does not have that failure mode - delegate_task returns a result and the parent picks it up in the same turn, and there is no in-session child whose return could be mistaken for the end of the turn.
2026-09-15
One-line fix: .mjs and .cjs files count as executable code
Reviews of JavaScript projects stop under-counting how much code actually changed, which matters because that count decides how deep the review goes. A project written in .mjs files was previously under-reviewed without anyone noticing.
2026-09-12
GitHub Spec Kit — spec-driven development toolkit (CLI + 10 agent skills)
Deliberately passed over — nothing here we aren't already doing. Every speckit command maps to a skill we already run; the one thing it does that we don't is commit the spec into the repo as a format any agent can resume from. Noted as optional pilot material, not adopted.
2026-09-12
Say conditions in ordinary English across ~100 skill reference files
Nothing for us. Same rules in friendlier words.
2026-09-12
Restate the remaining dense skill references in ordinary English
Nothing new for the user; the rules did not change, only the wording. The one thing worth having is the habit of spelling out a term in parentheses the first time a skill uses it, which makes a skill readable to someone who did not write it.
2026-09-12
Plain-language rewrite of skill bodies and references
Mostly renamed jargon, so near-zero. The one real change: findings now exclude claims a reviewer already rejected and 'what if' hypotheticals — fewer junk entries in a review report.
2026-09-11
Collect reviewers by attributable terminal outcome
Nothing much for us — Hermes already tracks whether each reviewer sub-agent actually finished. The wording is a safety net, not a fix.
2026-09-09
Release collected agents before follow-on work
Nothing for us. The real half of it ('don't message a finished agent') can't happen in Hermes because sub-agents are thrown away when their task ends.
2026-09-09
Compound Packs — declared project rules enforced as findings
Not adopted, on purpose. Upstream's version needs its own Python rules-resolver and config layering that we don't have. We already cover the useful part through the rule about verifying a feature is really missing before flagging it.
2026-09-09
Retrofitting old projects — 13 product capability(ies) against 17 projects
QuestionAnswer
How do I know what to retrofit?capability_ledger.py scan joins the ledger against the project inventory and lists, per project, which capabilities would improve it.
Why not retrofit everything?A candidate is an improvement, not a defect. Nothing in the backlog means a project is broken — it means the stack has moved since that project was built.
What’s the safety rule?Health-critical projects (Unified Platform, schedule, reimbursement) need a zero-change safety audit before any retrofit. The scan marks them.
Where do new capabilities come from?Mostly the upstream tracker. When it reports something worth keeping, record it in the ledger with target set properly — that one field decides whether it becomes a retrofit or a process change.
Do applied changes update this page?Yes — sync_workflow_page.py regenerates this section from the ledger, flags the sections a pending capability touches, and bumps the version.
21

Full Recovery

Runbook · when the stack is down, not when a job is broken
full recoverybare metal → running agentSay: “the container is gone, recover it” · “the box died, rebuild it” · “what survives if the disk fails?”
What it does

Restores the whole stack in dependency order: volumes or hermes-backups → 7 database dumps → workspace repos → re-auth → gateway + watchdogs → verify. Phase 0 decides the path — a recreated container keeps its volumes, a rebuilt host keeps nothing.

What it loads
Best when

Volumes are gone, the VPS was reinstalled, or you need to know now what would survive a disk failure. For one broken job, fix it in place.

First three commands

hermes cron status
cd ~/.hermes/backups && git log -1 --format='%h %ci %s'
ls -1 db/ | tail -3

Distinct from
  • backup_to_vps.sh / /workspace-bak: a same-disk rollback copy for accidental deletion. It is not disaster recovery — a disk failure takes it too.
  • disaster-recovery skill: the procedure and its traps; this section is the entry point and the verified checklist.
Order of restore — do not reorder
PhaseRestoresVerify with
0 · ScopeDecides container-recreate vs host-rebuild. Same-disk copies die with the disk.git log -1 in ~/.hermes/backups shows today
1 · ContainerVolumes carry ~/.hermes + /workspace. Reapply the /app watchdog hook.hermes cron status → ticker heartbeat < 60s
2 · EssentialsClone hermes-backups, copy hermes-essentials/ into ~/.hermes (config, .env, auth, .pgpass, skills, cron, memories).hermes cron list → 63 jobs
3 · Data7 dumps via gunzip -c | docker exec -i supabase-db psql. Never skip postgres.row counts in the refreshed DB
4 · WorkspaceGitHub repos first, then rsync /workspace-bak/ for anything unrepo'd.reminders_runner.py --list → 16 pending
5 · AuthGitHub PAT, gh, Telegram, Google OAuth, SMTP, NotebookLM. .pgpass mode 600.google_token_watchdog.py silent
6 · Livehermes gateway run, external watchdog, boot hook, AOS dashboard.one real cron job fires + one message delivered
Traps
  • Same-disk illusion: /workspace-bak and /hermes-webui-backup sit on /dev/sda1 with everything else. Only GitHub + panel snapshots leave the box.
  • Quiet success: a backup can transfer nothing and still print done. backup_to_vps.sh now withholds its freshness marker on a partial rsync — read the marker, not the exit code.
  • Never restore keys with hermes config set — it writes literal *** and kills all model access. Copy .env whole.
  • Email stays halted after a restore (stack-wide since 2026-09-22). Recover it deliberately per /root/EMAIL-STOP-README.md.
22

Routing & Evaluation

SkillRoutes byWhat it answersTrigger
code-task-routercode-task typeDebug? → systematic-debugging. Review? → ce-review. Audit? → ce:full. Build? → ce:build / game-build.“route this task”
project-type-routerproject intentDesign / redesign / research / ideate / motion → exact chain + traps.“what's the best way to X”
upstream-skill-adoptionexternal skill repos“Will mattpocock/skills enhance us?” → inventory, gap experiment, surgical port.“will this repo enhance”
tool-evaluationexternal tools/platforms“Should we adopt tool X?” → classify vs existing stack → recommend.“evaluate X”
23

Method Suites — mp-* & ponytail

Two imported suites — 29 single-discipline commands, already installed (2026-09-12)
the method suites/mp-* · /ponytail*disciplines, not pipelinesSay: “/mp-grilling this plan” · “/mp-tdd the payments fix” · “/ponytail-audit this repo” — or just describe the need
What it does

Two command families you already own: mp-* — 23 engineering disciplines from mattpocock/skills — and ponytail — 6 over-engineering lenses. Each runs ONE method at full depth; summon by typing the command word in a message. They also power the staged flows without being named: C1 runs mp-to-spec → ponytail → mp-grill-with-docs → mp-code-review, and ce:build keeps ponytail as its B3.5 scope gate.

What it loads
  • the skill named in the command — full method, not a summary
  • wiring map: MASTER-FLOWS §§4–6
Best when

You want one discipline run properly — a spec, a review, a diagnosis — not a whole pipeline. For the pipeline, drift up to the ce-* commands.

Tools
  • mp-* skills (23 mattpocock/skills disciplines)
  • ponytail + ponytail-audit/-review (6 lenses)
  • mp-to-spec + mp-grilling + mp-tdd (examples)
  • skill_view (summon one method at depth)
  • coder-flow C1 (mp-to-spec -> ponytail -> ...)
Distinct from
  • ce-* commands: full pipelines (intake → build → audit). These are single disciplines — one per turn, at full depth.
  • /mp-grill-with-docs vs /mp-grilling: the first writes ADRs + glossary as it grills; the second is the pure interview — its method now runs automatically as every frontier round.
  • /ponytail-review vs /ponytail-audit: one diff vs the whole repository.
mp-* — decide & write it down
CommandWhat it doesReach for it when
/mp-grillingRelentless interview that stress-tests a plan, decision, or idea.Your thinking needs testing — call it by name for a manual grill.
/mp-grill-with-docsThe same relentless interview — and it writes the ADRs + glossary as you go.Sharpen the plan AND record the decisions.
/mp-to-specSynthesises the conversation so far into a written spec — no new interview.Enough has been discussed; write it down before building.
/mp-to-ticketsBreaks a plan or spec into tracer-bullet tickets, each declaring what blocks it.Slicing work into ordered, agent-sized pieces.
/mp-wayfinderMaps work too big for one session as a shared map of decision tickets.The job outgrows a single session; decisions need a home.
/mp-to-questionnaireTurns a decision you cannot answer into a questionnaire for whoever can.The missing answer lives with another person.
/mp-writing-for-agentsHow to write documents agents read: skills, AGENTS.md, CLAUDE.md.You are briefing agents, not people.
/mp-wait-whatStops the flow: that last message did not land — re-pitch it.Confusion — force the same idea, explained properly.
mp-* — build, test & understand
CommandWhat it doesReach for it when
/mp-implementImplements a piece of work from a spec or tickets; surprises route to mp-diagnosing-bugs.The spec exists and it is build time.
/mp-tddTest-driven development: red–green–refactor — tests first.The test is the proof the feature or fix works.
/mp-prototypeA throwaway prototype that answers one design question.Feel a state model or logic out before committing.
/mp-teachTeaches you a skill or concept inside the workspace.You want to learn it, not only have it done.
/mp-researchInvestigates a question against primary sources; findings land as a file in the repo.Grounding a topic in real sources, kept as a note.
/mp-codebase-designShared vocabulary for designing deep modules and their interfaces.Deciding module shape and seams, not features.
/mp-domain-modelingBuilds and sharpens the project’s domain model — CONTEXT.md + ADRs.Terms and concepts need one agreed shape.
mp-* — fix, review & hand off
CommandWhat it doesReach for it when
/mp-diagnosing-bugsDiagnosis loop for hard bugs and performance regressions — root cause before any fix.“It’s broken” and the cause is not obvious; systematic-debugging stays the umbrella.
/mp-code-reviewTwo-axis review of a diff: standards + spec conformance.Before merge — the daily-driver review.
/mp-resolving-merge-conflictsResolves an in-progress merge or rebase conflict, properly.Mid-conflict, when guessing is expensive.
/mp-setup-pre-commitHusky pre-commit hooks: lint-staged, Prettier, type check, tests.A repo that should refuse bad commits.
/mp-git-guardrails-claude-codeHooks that block dangerous git commands before they run (push, reset --hard, clean, branch -D).A mechanical seat-belt on git.
/mp-triageMoves issues and PRs through a triage state machine; writes agent-ready briefs.Incoming backlog needs sorting.
/mp-improve-codebase-architectureScans for deepening opportunities, presents an HTML report, then grills the one you pick.Architecture-level hunt — report first, decision after.
/mp-handoffCompacts a session into a handoff document the next agent can pick up.A long session; someone else (or tomorrow) continues.
ponytail — 6 over-engineering lenses (reported ~54% less code on comparable work)
CommandWhat it doesReach for it when
/ponytailThe decision ladder: must it exist → does it already → does the stdlib cover it → can it be one line — then records the ruling.Before planning — every scope decision gets the ladder.
/ponytail-reviewOver-engineering-only review of a diff: what to delete, not what to add.Reviewing a change for bloat before merge.
/ponytail-auditThe same lens across the whole repo: a ranked list of what to delete or simplify.Spring-cleaning an existing codebase.
/ponytail-debtHarvests every ponytail: comment into a debt ledger.Deliberate shortcuts need tracking, not forgetting.
/ponytail-gainOne-shot scoreboard of ponytail’s measured impact.You want the receipts.
/ponytail-helpQuick-reference card for every ponytail mode and command.You forgot what the modes are.
24

Review & Adopt

The pipeline — anything new gets one honest call
adoption-review/adoptreview workflowSay: “review this repo” · “is this worth using” · “/adopt <link>” · “review these prompts”
What it does

One pipeline for every new thing — repo, tool, or prompt: screen against live evidence (GitHub API, vault dedupe in any state, skills-tree owned check, structural prompt grade) → a three-way verdict → recorded the same sitting. Runs the daily brief, the harvest feeds, review windows, and anything you paste in.

What it loads
  • scripts/screen.py — live checks, read-only
  • tool-evaluation (deep single-item calls) · repo-vault (where verdicts land)
  • prompt hub merge · capability ledger (what adopts change)
Best when

Something new arrives and you want the call plus the record — not a bookmark.

Tools
  • screen.py (GitHub API + dedupe checks)
  • vault_append.py (Repo Vault write)
  • prompt-hub/grading.py (structural grade)
  • prompt-hub/merge_yours.py (prompt hub write)
  • capability_ledger.py add (capability record)
  • tool-evaluation + repo-vault skills
Distinct from
  • tool-evaluation: the deep single-tool evaluation — a step inside this pipeline, not a competitor.
  • upstream-skill-adoption: ports a whole skill repo; this decides adopt/skip first.
The three verdicts — one vocabulary, everywhere
VerdictMeansWhere it lands
adoptInstall or use it now — a trial is still an adopt, scoped in writing.Built, wired, ledger entry + this page.
watchRight signal, wrong moment — reviewable later, never re-suggested in between.Filed as watch; the Sunday recap resurfaces it once.
skipRejected with a reason — and the reason is kept.The suppression list: it can never come back as a suggestion.
Where the verdicts live
repo vaultrepo verdicts · review queueSay: “what's in the vault” · “mark used” · “why was this skipped”
What it does

Every rated repo and tool, searchable, with its verdict and usage state — mark used / keep / drop in the Review tab; the Sunday recap proposes each undecided item so nothing rots in the queue.

What it loads
  • repo-vault skill · vault_append.py — the write path; dedupes in any state
Best when

“What did the brief find that I haven't seen?” — or closing out a review week.

Tools
  • repo-vault skill
  • vault_append.py (write, dedupes any state)
  • vault_review.py (Sunday review queue)
  • vault_server.py + POST /api/items/decide
  • vault.srv1738752.hstgr.cloud (Repo Vault)
  • cron vault_recap_001 (Sunday recap)
Hard rule
  • Rejected items never re-file — the dedupe refuses them in any state. That is the feature.
prompt adoptionprompt verdicts · two storesSay: “is this prompt any good” · “add these prompts to the vault”
What it does

Prompts get the same spine: grade + dup check → adopt into the hub (third-party harvest, credited · yours) or upgrade → adopt for short pastes — house structure first, intent untouched. PROMPT_LAB.md mirrors it for the phone.

What it loads
  • prompt-library-and-refinery · bigreef-prompt-vault (Mode 5) · merge_yours.py
Best when

A prompt from X / Reddit / anywhere lands — or “can I use this one?”

Tools
  • prompt-library-and-refinery skill
  • bigreef-prompt-vault skill (Mode 5)
  • grading.py (A/A-/B/C grade)
  • merge_yours.py (rebuild merged.json)
  • /workspace/prompt-hub/yours.json + merged.json
  • /workspace/ai_knowledge_base/PROMPT_LAB.md
  • search.py (dup check in library)
repo feature harvestelement-level gap miningSay: “what can we take from this repo” · “mine these prompts for techniques” · “does this have anything we could add”
What it does

Reads a repo or prompt pack element by element — mechanics, gates, scripts, workflow order, prompt techniques — and checks each one against what we already run. Returns a ranked backlog: build a missing capability, patch one that exists but is not wired, idea for a principle worth borrowing, skip with the reason. Every item carries a file-and-line citation and the workflow it would improve.

What it loads
  • scripts/harvest_scan.py — inventory the target, probe our skills tree
  • element taxonomy · report/record reference
  • capability ledger (queued work is not re-proposed)
Best when

A repo or prompt pack looks interesting and the question is “what would we actually build from this?” — not “should we install it?”

Paste this

python3 scripts/harvest_scan.py inventory <repo-url-or-path>
python3 scripts/harvest_scan.py probe --elements elements.json
# then map, score, record: ledger queued · BUILD cards in the report

Tools
  • harvest_scan.py inventory (clone + file/skill/prompt/script facts)
  • harvest_scan.py probe (behaviour search: skills tree + ledger + manual)
  • skills_list / skill_view (capability index)
  • capability_ledger.py add (backlog record)
  • adoption-review (repo verdict, when one is owed)
Distinct from
  • adoption-review: decides whether the repo enters the stack (adopt · watch · skip). This takes it apart and says what to build.
  • upstream-skill-adoption: ports a whole skills repo. This takes two mechanics and leaves the rest.
  • tool-evaluation: one tool, one verdict. This is element-level, across a repo or a prompt pack.
25

Context Recall

SkillWhat it doesDistinct fromTrigger
ce-sessionsSearches past session history: what we did, what was tried, how a problem was investigated.History lookup. ce-compound = persist the SOLUTION forward.“what did I work on” · “what happened before”
ce-compoundSaves a solved problem to docs/solutions/ so it's solved once and remembered.Forward knowledge. ce-sessions = look backward at transcripts.“document this” · “compound this”
domain-context-glossaryMaintains per-repo CONTEXT.md shared language; challenges fuzzy terms; ADR gate.The vocabulary layer under all of the above — new (2026-09).Any repo session; “keep a glossary”
26

Swarm — the Five Members

One goal in → a graph of cards out → verified work back
swarmhermes kanban swarmthe five membersSay: “build me a swarm for X” · “run 3 workers on this” · “swarm this”
What it does

One command builds the whole team and wires it: one manager card that only splits the goal, N worker cards that run in parallel, one checker card that re-derives the workers' claims from the raw files, and one writer card that returns a single summary. Fan-in is real — a card stays in todo until every parent is done, so the checker cannot run early and the writer cannot start before the checker passes.

What it loads
  • the kanban skill (orchestrator + worker playbooks)
  • each card's own profile + pinned model
  • the shared blackboard for handoffs
Best when

The job splits into parts that can run at once — several drafts, several audits, several files — and you want one verified answer, not five self-reports. Small cards run ~30–80s; the dispatcher picks each up within about a minute.

Paste this

export HERMES_HOME=/home/hermeswebui/.hermes
hermes kanban swarm "<the goal in one line>" \
  --worker "opencode-acct1:Demo A" --worker "opencode-acct2:Demo B" \
  --verifier openrouter-free --synthesizer opencode-acct1

hermes kanban list · stats · show <id> · runs <id> · log <id>

Per-card model
  • A different model per member is a setting, not a rebuild. --model / --provider on create pins one card without touching any profile config — a strong brain on the manager and checker, cheap ones on the workers is a two-flag change.
  • Members are profiles, not fixed roles. A card names which profile runs it, so creative can be the checker on a design job and opencode-acct1 the worker on a code job — same five shapes every time.
What the five actually are
the board under itwhat runs itSay: “what's on the board” · “show me that card's log”
What it does

Every member is a card with a status and a dependency graph, held in a SQLite board the dispatcher reads. Cards survive a restart, so an overnight swarm is still there in the morning; the board is also the audit trail — who ran what, when, and what they handed back.

What it loads
  • kanban.db + the gateway dispatcher
  • card bodies / blackboard notes
  • runs + log per card
Best when

You want to watch or intervene mid-run — read a worker's log, unblock a card, reclaim one that crashed, or re-run a single card without redoing the swarm.

Distinct from
  • delegate_task: in-process subagents that live and die inside one turn. The board is durable and survives the session; the swarm is the right tool when the work outlives the conversation or you want the audit trail.
  • The flows (coder-flow, media-flow, …): staged pipelines that run phases in order in this session. A swarm is a parallel fan-out on another surface, not a phase list.
MemberHow manyDoesNever does
Manager1Splits the goal into jobs and hands them to the board. Mostly idle.Does not do the work itself — that is the whole point of it
Workershowever many the job needs (2 · 5 · 10)Do the actual work, in parallel, and write an artifact + a short summary.Are not trusted — their summary is treated as a claim
Checker1Re-derives every claim from the raw files and posts a hard pass/fail gate.Does not read the summaries and nod along
Writer1Turns the passed work into one clean summary — one answer instead of five fragments.Does not start until the gate is pass
Dispatcher1, always in the backgroundThe silent engine: sees a free member, hands it the next card.Is not a worker and does not think
Rules
  • Worker titles cannot contain : or , — they are the PROFILE:TITLE[:SKILLS] separators.
  • Verification is re-derivation, not agreement. The checked run re-hashed the artifacts and re-ran the verifier script before reporting, and re-running that same script later fails exactly one check by design (a freshness window against wall clock) while every other check stays green.
Proven end to end, 2026-10-10
the checked runevidenceSay: “show me the swarm run”
What it does

Two workers wrote their artifacts 3 seconds apart in overlapping run windows, an independent checker re-derived 25 of 25 claims from the raw bytes, and the writer independently re-ran the checker and re-hashed both files before reporting — no discrepancies. Overlapping run intervals are what prove the pair ran concurrently rather than being serialised.

What it loads
  • the synthesis report + verify script
  • no-agent-silent-watchdog for idle jobs
Best when

You want to see the shape before spending it on real work — and it is the same five members either way.

Look here

/workspace/kanban-demo/SYNTHESIS.md
/workspace/kanban-demo/verify_loop.py → verify-output.txt

27

Quick Lookup

You sayPrimary commandDistinct from
What can we take from this reporepo-feature-harvestnot adoption-review (that decides adopt / skip)
Mine these prompts for techniquesrepo-feature-harvest (prompt-set mode)not the prompt hub (that stores, this extracts)
Does this repo have anything we could addrepo-feature-harvestnot upstream-skill-adoption (whole-repo port)
Promo film for this productvideo-shotcraft → designer-flow D5 / media-flow M7not ai-video-pipeline (footage + narration)
Every shot and sound I can pickShot-card catalogue (Product films section)not the raw upstream card files
Diagram this systemdiagram-designnot the chart layer (numbers vs shape)
Everything is goneFULL-RECOVERY.md → Phase 2the same-disk /workspace-bak is not DR
Container recreated, host fineensure-gateway-watchdog-hook.sh → hermes gateway runvolumes already hold everything
What survives a disk failure?GitHub arnowsolutions/hermes-backupsnot /workspace-bak, not /hermes-webui-backup
New website / appce:build <project>superset of design-intake-to-delivery (adds CE QA + deploy)
Redesign — Unified pageunified-no-slop-page-redesigncapture-first recipe, never overwrite
Redesign — standalonedesign-research → design-intake-to-deliveryreal-screenshot research before any build
Design references / examplesdesign-research → reference-site catalogAI prompt libs (sceneai.art) · galleries · Tailwind libs — shortlist 3-5 → you confirm
Design vault — file / browse referencesdesign-vault-harvest — “add <site> to the vault”the standing library (captures · tokens · boards); design-research browses the live web per task
Fresh reference finds (recurring)vault scan — Mon + Thu 7 AM, Telegram digest; “run a vault scan” to go earlyan ambient crawl — not a per-question search
Design system file (DESIGN.md)design-md — “extract <site> into a DESIGN.md”exact tokens from any live URL · packs: designmd-store.com/packs · examples: styles.refero.design
Brand identity (new · refresh · critique)
Logo concepts before designinglogo design sprint — search “logo sprint” on prompts.srvthe thinking prompt (cliché audit → spec); brand-identity draws and measures the mark
Which logo clichés to avoid?logo design sprint stage 1names the clichés competitors share before any direction is proposed
brand-identity — “build a brand for …”mark + type + palette from one brief, measured — before any page gets built
Design check before handoffdetect.mjs <dir> (broom)deterministic, system-aware: declared choices are kept, the rest is flagged
Industry research“competitive intel on X” + ce:30days Xmap (intel) + weather (30days)
Improve / ideasce:full then ce-ideateaudit current state → propose future
Lock WHATce-brainstormrequirements only (frontier rounds)
Lock HOWce-planplan doc, no code
Stress-test a plan/mp-grill-with-docsrelentless interview + writes ADRs/glossary as it goes — /mp-grilling = the pure grill
Trim scope before building/ponytailthe ladder — /ponytail-audit runs it across a whole repo
Build it test-first/mp-tddred–green–refactor — ce-work is the pipeline version
Stuck hard bug/mp-diagnosing-bugsroot cause before any fix — systematic-debugging stays the umbrella
Build itce-work / execute-implementation-plansexecutes; verbatim-plan variant exists
Add a chart / graphdata-vizreal data at render · one token theme · chart QA — not a diagram
Chart inside a PDF / reportdata-viz + report-builderdata-viz for the chart, report-builder for the report around it
Dashboard graph looks wrongdata-viz → slop-gate Data-viz passesinvisible fills and stray labels pass DOM checks — measure, don't eyeball
Should we use Napkin?no — not in the stackmanual SaaS · no public API · watermarked free tier; diagrams = architecture-diagram / excalidraw
Review changesce-reviewdiff-scoped + separate Spec axis
Premium motionweb-motion-system + premium-motion-designtoolbox + taste, both
Which animation / 3D skill?pick-by-intent table in Premium Animation (#motion)motion-system = mechanics · motion-design = taste · 3D only on demand
Flash-style site (intro · scenes · rooms)flash-style-sites → flash_gate.py until exit 0scenes ARE the nav — not a normal page with motion on it
Cinematic hero scenepremium-hero-scene-buildone hero project — not the whole-site genre
Make a film / videoai-video-pipeline + pipeline/ kitbrowser motion ≠ an MP4 file
Any media piece — film · explainer · demo · image set/media-flow (M1–M5)the staged pipeline — one skill per phase + hard gates; direct skill loads are for tweaks
Film from real footage / free stock/media-flow M2 → OpenMontage enginedocumentary-montage: 16 free stock sources + slideshow-risk gates — not the stills kit (#video)
Premium prompt for any assetmonster-prompter — mandatory in every modethe prompt bar: 6 layers + anti-slop tells; card contract at #media-handoff
Video from a scene briefbuild_from_manifest.pymanifest-driven; new film = new manifest
Narration / voiceovermake_voiceover.pynarration sets the film length
Ship a video / gallerypublish.sh --goMP4 needs a Range-capable server
Animate the 3D character (Drippy)meshy-blender-animationthe Meshy → Blender lane — four hard rules up front; not browser motion (#motion)
3D still · pose · clip of the charactermeshy-blender-animation → viewer/render_final_our.py · viewer/clipshots.pyIcosphere-filtered framing; clips are deterministic captures, not screen recordings
3D render looks off (tiny · soft · crinkled)meshy-blender-animation — the four hard rulesknown Meshy export quirks — apply the fix, don't re-derive
Images / clips for a page“prompt cards for <site>” — Gemini stills · Flow clipsyou generate on your own Pro accounts; Hermes integrates the files — no API spend
Video clip via Flow (Veo)“a Flow prompt for <scene>” · animate a still: “make this still move”your Pro allowance does the work — not the MoviePy / HyperFrames routes
Demo video of the platformcapture live screens → npm run renderreal UI in a designed frame; not a screen recording
Animated walkthrough of the platformce-demo-reel → record_walkthrough.pycursor + captions injected at capture — the live site needs no changes
Show staff how to use a screence-demo-reel → steps.json → GIFa tour of the real page — not an in-app spotlight tour
Record a screen behind a login--inject-js + a minted Supabase sessionnever type a password; the token expires ~45 min, delete after
Interactive tour inside the appcoach-mark spotlight (references/coach-mark-onboarding.md)the user clicks the steps themselves; a GIF is only watched
Render HTML → MP4hyperframes init → check → renderdeterministic frames; no GPU · budget ≈ 4× runtime
Promo / launch reelhyperframes-video + the page’s own visualsdesigned HTML → video; ~30–90s
3D tour of a real spacegaussian-splat-toursa space you move through, not a video you watch
Scan a room / house (phone)Scaniverse → export SPZ · rules in docs/capture-guide.mdvideo route = video_to_splat.ipynb (free GPU)
Publish a scan as a tourpublish_scene.shconverts to .sog · registers in scenes.json · hub auto-lists
Any coding task, unsure“route this task”code-task-router Gate-0
What's new that we haven't appliedcapability_ledger.py queuenot a skill — the ledger that tracks adoption
What should I retrofit?capability_ledger.py scanan improvement, never a defect
Review a repo / tool / promptadoption-review — “/adopt <link>”screen → adopt · watch · skip → recorded the same sitting
Review what the brief foundadoption-review (batch) → repo vaultdeep breakdown per item; the vault keeps every verdict — skips included
Is this prompt worth keeping?adoption-review → prompt hub / PROMPT_LABgrade + dup check; upgrade → adopt for short pastes
Run a job as a team (parallel, verified)hermes kanban swarm "<goal>" --worker ... --verifier ... --synthesizer ...durable board + hard gate; delegate_task is in-turn only
Different model per teammate--model / --provider on the carda per-card setting, not a profile rebuild
Watch / rescue a swarm runhermes kanban list · show <id> · runs <id> · log <id>reclaim or re-run one card, not the whole swarm
What's the best way to X“best way to X”project-type-router
Big Reef · Shareef Frasier · Hermes Agent Companion to workflow-cheatsheet.html · Obsidian copy in vault v3.57 · 2026-11-07