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.
Who's winning, what changed in 30 days.
competitive-intel/ce:30daysRequirements locked in frontier rounds.
/ce:brainstormDesign → build → QA → perfection → deploy.
/ce:buildScored report first, evaluated ideas after.
/ce:full → /ce:ideateThe 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.
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).
“ce:build arnow-website — premium marketing site for my AI/systems consultancy. Brief: dark, cinematic, real product imagery. I'll answer your intake rounds.”
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.
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.
The actual design philosophy + build recipe for premium, editorial, non-AI-looking output (Linear/Stripe/Wealthsimple-level craft). Token system, typography, layout, surface treatments.
Any client-facing page or system where “never looks AI-generated” is the bar.
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?”).
Always. It's the wrapper that keeps every other design skill honest.
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.
Any Unified Platform page redesign (dashboard v2 pattern). Never redesign a Unified page without the real captured DOM.
“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.”
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.
Standalone/consulting site redesigns where direction is open. Use it to gather 3-5 real directions before committing.
“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.”
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/.
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.
“extract linear.app into a DESIGN.md, then use it as the design constraint for the trade-platform rebuild.”
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.
design-vault-harvest — the filing + crawl skill · _tools/vault-capture.cjs = one URL → full entrycredentials-vault)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.
“add <url> to the vault — websites, tag it dark editorial” · “pull 3-5 references for the Arnow redesign — finance, editorial”
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.
dv_harvest.sh_tools/harvest.py → vault-index.py → publish.sh (crawl → index → publish)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.
“run the vault scan now” · “the vault digest did not arrive — check the harvest”
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).
scripts/brand.py command chain (identity cards → kit export)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.
“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.”
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.
critique mode + references/critique.md; works from the identity files or a site extractBefore investing in a rebrand — “what is actually weak?” — or a partial refresh with the mark kept.
“critique the Arnow Solutions brand — measured checks plus cohesion — and tell me what a refresh would change.”
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.
[BRAND NAME] · [INDUSTRY] · [AUDIENCE] · [3 ATTRIBUTES] · [PRIMARY USE]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.
“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.”
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.
--changed = only just-edited files · --json = machinesBefore 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.
node /workspace/tools/broom-design/scripts/detect.mjs /workspace/<project>
or: “run the broom check on <project> and fix what it flags.”
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.
build_v3.py → deploy/deploy.shEvery copy/UI pass on a project that carries a known-clean baseline (start: Ink & Ember, 2026-10-06).
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.
New project kickoff or strategy question: “who's in this space and where's the opening?”
“do competitive intel on AI surgical-eval platforms — top 5 globally, any local players, their positioning, gaps I can exploit for the Montefiore tool.”
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's hot in X right now?” — before ideation, before a build, monthly refreshes.
“ce:30days AI video tools — what's new, what's gaining, anything I should test for the video pipeline.”
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.
Before improving anything: “how good is this, where's the debt, what's the roadmap?” Also the pre-ideate gate.
“ce:full the Unified Platform — scored report with backlog + roadmap + forward-looking recommendations.”
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 should I build next?” — after an audit, or standalone for feature direction.
“ideate on the eval-tracker — ground it in the last ce:full, give evaluated ideas with effort/impact, no weak filler.”
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.
Fuzzy feature/new build. Answer rounds like “Q1: a · Q2: your rec” — correcting beats composing.
“let's brainstorm a resident procedure-log feature on Unified — survey what exists first, then grill me in frontier rounds with your recs.”
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.
Requirements are locked and you need the HOW before touching code.
Executes systematically from a plan doc, spec, or bare prompt — finishes features with quality. The build-loop worker inside ce:build's B4-B5.
“Here's the plan — go build it.”
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.
Before merge/commit: “is this change correct AND does it do what was asked?”
“ce-review the coverage-reassign feature branch — spec is docs/plans/coverage.md, base origin/main.”
| The job | Load | Why not the neighbours |
|---|---|---|
| Add motion to a page I already have | web-motion-system + premium-motion-design | mechanics + taste — never one without the other |
| One cinematic hero with its own art | premium-hero-scene-build | a hero is a project, not a motion tier |
| Real depth / WebGL | web-3d-interactive | only when the concept needs it — never garnish |
| The whole site is the show — intro · scenes · sound | flash-style-sites | scenes ARE the navigation; not for content sites |
| Scroll storytelling on a normal page | web-motion-system Tier 3 | don't convert a content site into a stage |
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.
You know you want motion, need the mechanics.
Rules for high-end cinematic UI animation: restraint, custom easing, no jank, when NOT to animate. The taste layer over the toolbox.
Any user-facing site that must feel expensive, not gimmicky.
Three.js setup, Matter.js 2D physics, globe.gl, particles, Vanta backgrounds, performance budgets for in-browser 3D.
The concept genuinely needs depth/interactivity that motion alone can't deliver.
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.
One hero must carry the brand and the subject has to physically move.
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.
scripts/flash_gate.py <site-dir> — exit 2 = findings; fix or waive with a reasonThe page itself IS the experience — album / band / portfolio / microsite. Not for content sites.
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.
media-flow — mode tables + the seven protocol rules/workspace/flows/<date>-<slug>/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.
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
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.
monster-prompter — 6-layer architecture + templatesai-image-prompt-flow — the card contract (#media-handoff)Every time, every asset. No freehand prompts — freehand drifts to the generic-AI look; the refined card carries the bar.
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.
source /workspace/OpenMontage/openmontage-env.sh — required before any render phaseOpenMontage/pipeline_defs/Any new film or explainer — footage-based or from scratch. Re-installed and re-verified 2026-10-09.
| Runs itself | Waits for you |
|---|---|
| Every phase, in order, with gates that refuse bad output — a failed gate redoes the phase | Direction picks ⟡ · the generate clicks on your Gemini / Flow accounts · final approval |
| Prompt refinement (Monster Prompter) · free-stock pulls · budget caps · post-render review before handoff | Nothing else — after one clean run, a standing piece can be scheduled (worker flow W3) |
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.
Any narrative film from a scripted brief — training, safety huddle, department comms. Verified: a 122s 720p film renders in ~12 min.
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
One still per scene, landscape. Each still becomes a scene with a slow Ken Burns zoom. The June films used 72 generations for this.
No real footage exists and the brief describes situations you can't easily film.
[shot type] of [subject] in [specific hospital area] + [action / controlled chaos] + blurred faces, no patient identifiers + documentary style, cinematic lighting, shallow depth of field
python3 /workspace/prompt-hub/search.py "<topic>" — say “find me a prompt for X” or “turn this into a prompt”.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.
Every film. A 60s brief legitimately became a 122s film because the narration said so.
python3 make_voiceover.py script.txt voiceover.mp3 --voice en-US-ChristopherNeural --show-duration
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.
The opening beat needs real movement — the original film opened on a Kling clip of escalating chaos.
image_generate are fine; video goes through Replicate.| Rule | Why |
|---|---|
| Narration first | The 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 bar | Footage is bright and busy — text needs a black bar (opacity ~0.45) plus a stroke to stay legible. |
| Fit height, then crop | Mixed 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.08 | Below reads as static; above is a lurch. Paired with the phase-label colour arc (red → teal → blue → amber). |
| Serve MP4s with Range support | python3 -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 PATH | MoviePy reaches it via imageio_ffmpeg.get_ffmpeg_exe(). MoviePy 2.x API only — with_duration, resized, subclipped. |
| Budget ~12 min per 2-min film | 720p, veryfast, 2500k, 4 threads on CPU. 1080p roughly triples it; ultrafast is ~5x faster for review cuts. |
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.
meshy-blender-animation — the four rules + pipeline recipes/workspace/flows/2026-10-10-3d-lane/ · meshy_api.py · viewer/ scriptsblender/blender.sh — both lib farms requiredAny 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.
viewer/clipshots.py — three.js frame capture → mp4viewer/grade_final_our.py — measured warm gradedeploy-3d-test.sh — review page at media.srv1738752.hstgr.cloud/3d-test/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)
Icosphere that hijacks camera framing — compute the bbox from the main mesh only, hide the rest.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.
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.
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
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.
You want to name a look instead of describing one — “use the crash zoom on the hero” beats “make it punchier”.
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.
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.
python3 scripts/self_check.py diagram.html # refuses to export a broken layout
python3 scripts/export_png.py diagram.html out.png
| Rule | Why |
|---|---|
| Embed the typefaces | This 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 first | A 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 builds | Client 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 render | A 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 edit | Six sparse cues (pen snap, stamp, page turns, camera clicks) do more than a music bed. Keep them low; a silent film reads unfinished. |
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”.
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.
/workspace/projects/arnow-film — composition ArnowPromo, 1290 frames
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.
ai-image-prompt-flow — prompt craft; premium bar: ai-media-provider-options → references/image-prompt-craft.mdHero and section imagery, product shots, short promo clips — anything the Pro allowance covers. No API spend, and nothing automated ever touches the accounts.
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
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.
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.
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.
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.
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
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.
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.
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;
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.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.
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.
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
206) at hyperframes-demo.srv1738752.hstgr.cloud — same rule as section 10: never plain python -m http.server.| Rule | Why |
|---|---|
| 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 browser | Renders 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 render | npm run check = lint + runtime + layout + motion + WCAG AA. Fix every warning — a defect at 12s is a visible defect for 18 more seconds. |
| Deterministic only | No Date.now(), no unseeded random, no infinite loops, no render-time fetches — every frame must reproduce from its timestamp alone. |
| Budget ≈ 4× runtime | 7s → ~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 frame | Publish to /var/www/<name>/ behind the Range server; confirm 206 with curl -4 and eyeball an extracted frame before calling it done. |
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.
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.
[ {"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
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.
The screen worth showing is behind auth — which is most admin surfaces. The recording never sees a credential.
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.
New users should learn by doing, in the app, step by step — not by watching a clip.
backdrop-filter: blur() anywhere on the mask, spotlight or tooltip — it fuzzed the app so the controls being taught were unreadable.| Rule | Why |
|---|---|
| Capture at device_scale_factor=2, then downsample | Small 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 demo | The 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 tour | If 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”. |
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.
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).
/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
Free iOS/Android app; processes on the phone; exports SPZ (small, sendable) + PLY (archive). No GPU anywhere in the loop.
Every real-world capture. A room ≈ 5 min shoot + a few min processing; a 3-bed house ≈ 30–45 min on site.
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.
4K walkthrough video → frames → COLMAP poses → nerfstudio splatfacto (30k iters) → point_cloud.ply. Runs free on Colab T4 / Kaggle (30 GPU-hrs/week).
Repeatable quality across many properties, or the app scan came out rough. A quick single test doesn't need it.
.ply / .sog / .compressed.ply — never .splat/.ksplat. Convert first, always.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.
Always — .sog is the delivery format. Real numbers: 1M gaussians ≈ 6 s; 6.1M ≈ 30 s.
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
--filter-floaters, --filter-cluster and --decimate need a GPU (WebGPU) — on a CPU box they crash. Use sphere / box / opacity filters instead.Each scene gets scenes/<slug>.settings.json — opening camera + quality flags — wired into scenes.json so hub links pass &settings=…&noanim.
highPrecisionRendering:true when a scene looks flatEvery scene. &noanim freezes the viewer's auto-generated orbit so the opening pose is deterministic; visitors press ▶ to play the orbit.
&noanim every screenshot is a random moment of that motion.?debug → window.getCameraState(), never by eye.| Rule | Why |
|---|---|
| Real scans beat every sample | Public 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 MB | Phone-first pitch = instant load. Past ~30 MB the first impression dies on cellular. |
| Capture discipline beats processing | Slow walk + angled passes + constant light is 90% of final quality; no trainer fixes blur or auto-exposure flicker. |
| Static files, range-capable server, systemd unit | tours.srv = /var/www/tours behind Traefik :8148 (static-tours). Additive uploads only; verify with curl -4 + content check. |
| Empty white rooms are hardest | Flat white walls give the solver nothing to lock onto — capture furnished, textured spaces or stage with temp items. |
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”.
HF_HOMEA book has no transcript yet. small + batched = 4.4x realtime on 4 CPU cores — a 3-min clip in 41s.
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”
| Rule | Why |
|---|---|
| Batching is on by default | BatchedInferencePipeline 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 back | On 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 clip | Any 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_HOME | The 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 nproc | ctranslate2's own default can oversubscribe a shared box. |
| Never stack two runs | Transcription 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 real | A batched large-v3 on 4 cores is slower than realtime. Prefer small + batching over a bigger model. |
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.
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.
--max-chunks 2.--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.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.
~/.local/bin/chromiumAs 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.
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
nlm login --manual --file): the old stopgap. A recurring manual step is the task not being automated.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.| Fact | Why it matters |
|---|---|
| Session cookies last ~1 year | Measured: SID/SAPISID/__Secure-1PSID valid to 2027. The daily failure was never expiry. |
The *PSIDRTS rotating tokens are the real constraint | Google 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 cookies | One 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 name | The 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 recovery | nlm'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. |
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.
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.
“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”
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>.
Always, for any chart inside the app. A chart that hardcodes its colours is the one thing that breaks on the next accent move.
#003da5 survives that move and a dark-mode flip looking fine in one theme and unreadable in the other.| Rule | Why |
|---|---|
| Every number comes from the DB at render | No 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 centerpiece | Recorded 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 chart | A 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 presence | The 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 number | It 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 candidate | Napkin (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 chart | Dressing three values up as a graph adds ink and subtracts clarity. |
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).
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.
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.
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
| Capability & what it adds | Page 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. | — |
| Capability & what it adds | Applied |
|---|---|
| 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 |
| Capability & what it would add | Value |
|---|---|
| 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 |
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.
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.
| Capability & what it adds | Seen |
|---|---|
| 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 | 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 |
| Question | Answer |
|---|---|
| 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. |
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.
arnowsolutions/hermes-backups (private)disaster-recovery skillVolumes 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.
hermes cron status
cd ~/.hermes/backups && git log -1 --format='%h %ci %s'
ls -1 db/ | tail -3
| Phase | Restores | Verify with |
|---|---|---|
| 0 · Scope | Decides container-recreate vs host-rebuild. Same-disk copies die with the disk. | git log -1 in ~/.hermes/backups shows today |
| 1 · Container | Volumes carry ~/.hermes + /workspace. Reapply the /app watchdog hook. | hermes cron status → ticker heartbeat < 60s |
| 2 · Essentials | Clone hermes-backups, copy hermes-essentials/ into ~/.hermes (config, .env, auth, .pgpass, skills, cron, memories). | hermes cron list → 63 jobs |
| 3 · Data | 7 dumps via gunzip -c | docker exec -i supabase-db psql. Never skip postgres. | row counts in the refreshed DB |
| 4 · Workspace | GitHub repos first, then rsync /workspace-bak/ for anything unrepo'd. | reminders_runner.py --list → 16 pending |
| 5 · Auth | GitHub PAT, gh, Telegram, Google OAuth, SMTP, NotebookLM. .pgpass mode 600. | google_token_watchdog.py silent |
| 6 · Live | hermes gateway run, external watchdog, boot hook, AOS dashboard. | one real cron job fires + one message delivered |
/workspace-bak and /hermes-webui-backup sit on /dev/sda1 with everything else. Only GitHub + panel snapshots leave the box.backup_to_vps.sh now withholds its freshness marker on a partial rsync — read the marker, not the exit code.hermes config set — it writes literal *** and kills all model access. Copy .env whole./root/EMAIL-STOP-README.md.| Skill | Routes by | What it answers | Trigger |
|---|---|---|---|
| code-task-router | code-task type | Debug? → systematic-debugging. Review? → ce-review. Audit? → ce:full. Build? → ce:build / game-build. | “route this task” |
| project-type-router | project intent | Design / redesign / research / ideate / motion → exact chain + traps. | “what's the best way to X” |
| upstream-skill-adoption | external skill repos | “Will mattpocock/skills enhance us?” → inventory, gap experiment, surgical port. | “will this repo enhance” |
| tool-evaluation | external tools/platforms | “Should we adopt tool X?” → classify vs existing stack → recommend. | “evaluate X” |
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.
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.
| Command | What it does | Reach for it when |
|---|---|---|
/mp-grilling | Relentless interview that stress-tests a plan, decision, or idea. | Your thinking needs testing — call it by name for a manual grill. |
/mp-grill-with-docs | The same relentless interview — and it writes the ADRs + glossary as you go. | Sharpen the plan AND record the decisions. |
/mp-to-spec | Synthesises the conversation so far into a written spec — no new interview. | Enough has been discussed; write it down before building. |
/mp-to-tickets | Breaks a plan or spec into tracer-bullet tickets, each declaring what blocks it. | Slicing work into ordered, agent-sized pieces. |
/mp-wayfinder | Maps 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-questionnaire | Turns a decision you cannot answer into a questionnaire for whoever can. | The missing answer lives with another person. |
/mp-writing-for-agents | How to write documents agents read: skills, AGENTS.md, CLAUDE.md. | You are briefing agents, not people. |
/mp-wait-what | Stops the flow: that last message did not land — re-pitch it. | Confusion — force the same idea, explained properly. |
| Command | What it does | Reach for it when |
|---|---|---|
/mp-implement | Implements a piece of work from a spec or tickets; surprises route to mp-diagnosing-bugs. | The spec exists and it is build time. |
/mp-tdd | Test-driven development: red–green–refactor — tests first. | The test is the proof the feature or fix works. |
/mp-prototype | A throwaway prototype that answers one design question. | Feel a state model or logic out before committing. |
/mp-teach | Teaches you a skill or concept inside the workspace. | You want to learn it, not only have it done. |
/mp-research | Investigates 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-design | Shared vocabulary for designing deep modules and their interfaces. | Deciding module shape and seams, not features. |
/mp-domain-modeling | Builds and sharpens the project’s domain model — CONTEXT.md + ADRs. | Terms and concepts need one agreed shape. |
| Command | What it does | Reach for it when |
|---|---|---|
/mp-diagnosing-bugs | Diagnosis 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-review | Two-axis review of a diff: standards + spec conformance. | Before merge — the daily-driver review. |
/mp-resolving-merge-conflicts | Resolves an in-progress merge or rebase conflict, properly. | Mid-conflict, when guessing is expensive. |
/mp-setup-pre-commit | Husky pre-commit hooks: lint-staged, Prettier, type check, tests. | A repo that should refuse bad commits. |
/mp-git-guardrails-claude-code | Hooks that block dangerous git commands before they run (push, reset --hard, clean, branch -D). | A mechanical seat-belt on git. |
/mp-triage | Moves issues and PRs through a triage state machine; writes agent-ready briefs. | Incoming backlog needs sorting. |
/mp-improve-codebase-architecture | Scans for deepening opportunities, presents an HTML report, then grills the one you pick. | Architecture-level hunt — report first, decision after. |
/mp-handoff | Compacts a session into a handoff document the next agent can pick up. | A long session; someone else (or tomorrow) continues. |
| Command | What it does | Reach for it when |
|---|---|---|
/ponytail | The 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-review | Over-engineering-only review of a diff: what to delete, not what to add. | Reviewing a change for bloat before merge. |
/ponytail-audit | The same lens across the whole repo: a ranked list of what to delete or simplify. | Spring-cleaning an existing codebase. |
/ponytail-debt | Harvests every ponytail: comment into a debt ledger. | Deliberate shortcuts need tracking, not forgetting. |
/ponytail-gain | One-shot scoreboard of ponytail’s measured impact. | You want the receipts. |
/ponytail-help | Quick-reference card for every ponytail mode and command. | You forgot what the modes are. |
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.
scripts/screen.py — live checks, read-onlySomething new arrives and you want the call plus the record — not a bookmark.
| Verdict | Means | Where it lands |
|---|---|---|
| adopt | Install or use it now — a trial is still an adopt, scoped in writing. | Built, wired, ledger entry + this page. |
| watch | Right signal, wrong moment — reviewable later, never re-suggested in between. | Filed as watch; the Sunday recap resurfaces it once. |
| skip | Rejected with a reason — and the reason is kept. | The suppression list: it can never come back as a suggestion. |
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.
vault_append.py — the write path; dedupes in any state“What did the brief find that I haven't seen?” — or closing out a review week.
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.
merge_yours.pyA prompt from X / Reddit / anywhere lands — or “can I use this one?”
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.
scripts/harvest_scan.py — inventory the target, probe our skills treeA repo or prompt pack looks interesting and the question is “what would we actually build from this?” — not “should we install it?”
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
| Skill | What it does | Distinct from | Trigger |
|---|---|---|---|
| ce-sessions | Searches 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-compound | Saves 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-glossary | Maintains 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” |
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.
kanban skill (orchestrator + worker playbooks)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.
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>
--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.creative can be the checker on a design job and opencode-acct1 the worker on a code job — same five shapes every time.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.
kanban.db + the gateway dispatcherYou 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.
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.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.| Member | How many | Does | Never does |
|---|---|---|---|
| Manager | 1 | Splits 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 |
| Workers | however 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 |
| Checker | 1 | Re-derives every claim from the raw files and posts a hard pass/fail gate. | Does not read the summaries and nod along |
| Writer | 1 | Turns the passed work into one clean summary — one answer instead of five fragments. | Does not start until the gate is pass |
| Dispatcher | 1, always in the background | The silent engine: sees a free member, hands it the next card. | Is not a worker and does not think |
: or , — they are the PROFILE:TITLE[:SKILLS] separators.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.
no-agent-silent-watchdog for idle jobsYou want to see the shape before spending it on real work — and it is the same five members either way.
/workspace/kanban-demo/SYNTHESIS.md
/workspace/kanban-demo/verify_loop.py → verify-output.txt
| You say | Primary command | Distinct from |
|---|---|---|
| What can we take from this repo | repo-feature-harvest | not adoption-review (that decides adopt / skip) |
| Mine these prompts for techniques | repo-feature-harvest (prompt-set mode) | not the prompt hub (that stores, this extracts) |
| Does this repo have anything we could add | repo-feature-harvest | not upstream-skill-adoption (whole-repo port) |
| Promo film for this product | video-shotcraft → designer-flow D5 / media-flow M7 | not ai-video-pipeline (footage + narration) |
| Every shot and sound I can pick | Shot-card catalogue (Product films section) | not the raw upstream card files |
| Diagram this system | diagram-design | not the chart layer (numbers vs shape) |
| Everything is gone | FULL-RECOVERY.md → Phase 2 | the same-disk /workspace-bak is not DR |
| Container recreated, host fine | ensure-gateway-watchdog-hook.sh → hermes gateway run | volumes already hold everything |
| What survives a disk failure? | GitHub arnowsolutions/hermes-backups | not /workspace-bak, not /hermes-webui-backup |
| New website / app | ce:build <project> | superset of design-intake-to-delivery (adds CE QA + deploy) |
| Redesign — Unified page | unified-no-slop-page-redesign | capture-first recipe, never overwrite |
| Redesign — standalone | design-research → design-intake-to-delivery | real-screenshot research before any build |
| Design references / examples | design-research → reference-site catalog | AI prompt libs (sceneai.art) · galleries · Tailwind libs — shortlist 3-5 → you confirm |
| Design vault — file / browse references | design-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 early | an 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 designing | logo design sprint — search “logo sprint” on prompts.srv | the thinking prompt (cliché audit → spec); brand-identity draws and measures the mark |
| Which logo clichés to avoid? | logo design sprint stage 1 | names 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 handoff | detect.mjs <dir> (broom) | deterministic, system-aware: declared choices are kept, the rest is flagged |
| Industry research | “competitive intel on X” + ce:30days X | map (intel) + weather (30days) |
| Improve / ideas | ce:full then ce-ideate | audit current state → propose future |
| Lock WHAT | ce-brainstorm | requirements only (frontier rounds) |
| Lock HOW | ce-plan | plan doc, no code |
| Stress-test a plan | /mp-grill-with-docs | relentless interview + writes ADRs/glossary as it goes — /mp-grilling = the pure grill |
| Trim scope before building | /ponytail | the ladder — /ponytail-audit runs it across a whole repo |
| Build it test-first | /mp-tdd | red–green–refactor — ce-work is the pipeline version |
| Stuck hard bug | /mp-diagnosing-bugs | root cause before any fix — systematic-debugging stays the umbrella |
| Build it | ce-work / execute-implementation-plans | executes; verbatim-plan variant exists |
| Add a chart / graph | data-viz | real data at render · one token theme · chart QA — not a diagram |
| Chart inside a PDF / report | data-viz + report-builder | data-viz for the chart, report-builder for the report around it |
| Dashboard graph looks wrong | data-viz → slop-gate Data-viz passes | invisible fills and stray labels pass DOM checks — measure, don't eyeball |
| Should we use Napkin? | no — not in the stack | manual SaaS · no public API · watermarked free tier; diagrams = architecture-diagram / excalidraw |
| Review changes | ce-review | diff-scoped + separate Spec axis |
| Premium motion | web-motion-system + premium-motion-design | toolbox + 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 0 | scenes ARE the nav — not a normal page with motion on it |
| Cinematic hero scene | premium-hero-scene-build | one hero project — not the whole-site genre |
| Make a film / video | ai-video-pipeline + pipeline/ kit | browser 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 engine | documentary-montage: 16 free stock sources + slideshow-risk gates — not the stills kit (#video) |
| Premium prompt for any asset | monster-prompter — mandatory in every mode | the prompt bar: 6 layers + anti-slop tells; card contract at #media-handoff |
| Video from a scene brief | build_from_manifest.py | manifest-driven; new film = new manifest |
| Narration / voiceover | make_voiceover.py | narration sets the film length |
| Ship a video / gallery | publish.sh --go | MP4 needs a Range-capable server |
| Animate the 3D character (Drippy) | meshy-blender-animation | the Meshy → Blender lane — four hard rules up front; not browser motion (#motion) |
| 3D still · pose · clip of the character | meshy-blender-animation → viewer/render_final_our.py · viewer/clipshots.py | Icosphere-filtered framing; clips are deterministic captures, not screen recordings |
| 3D render looks off (tiny · soft · crinkled) | meshy-blender-animation — the four hard rules | known Meshy export quirks — apply the fix, don't re-derive |
| Images / clips for a page | “prompt cards for <site>” — Gemini stills · Flow clips | you 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 platform | capture live screens → npm run render | real UI in a designed frame; not a screen recording |
| Animated walkthrough of the platform | ce-demo-reel → record_walkthrough.py | cursor + captions injected at capture — the live site needs no changes |
| Show staff how to use a screen | ce-demo-reel → steps.json → GIF | a tour of the real page — not an in-app spotlight tour |
| Record a screen behind a login | --inject-js + a minted Supabase session | never type a password; the token expires ~45 min, delete after |
| Interactive tour inside the app | coach-mark spotlight (references/coach-mark-onboarding.md) | the user clicks the steps themselves; a GIF is only watched |
| Render HTML → MP4 | hyperframes init → check → render | deterministic frames; no GPU · budget ≈ 4× runtime |
| Promo / launch reel | hyperframes-video + the page’s own visuals | designed HTML → video; ~30–90s |
| 3D tour of a real space | gaussian-splat-tours | a space you move through, not a video you watch |
| Scan a room / house (phone) | Scaniverse → export SPZ · rules in docs/capture-guide.md | video route = video_to_splat.ipynb (free GPU) |
| Publish a scan as a tour | publish_scene.sh | converts 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 applied | capability_ledger.py queue | not a skill — the ledger that tracks adoption |
| What should I retrofit? | capability_ledger.py scan | an improvement, never a defect |
| Review a repo / tool / prompt | adoption-review — “/adopt <link>” | screen → adopt · watch · skip → recorded the same sitting |
| Review what the brief found | adoption-review (batch) → repo vault | deep breakdown per item; the vault keeps every verdict — skips included |
| Is this prompt worth keeping? | adoption-review → prompt hub / PROMPT_LAB | grade + 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 card | a per-card setting, not a profile rebuild |
| Watch / rescue a swarm run | hermes 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 |
Social Media
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.
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.
# 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
https://, never a file path or localhost.The 8-phase pipeline is fixed; the brand is data. Phase 1 calls
brand_pack.py showand 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.Running the same generator for a second brand/client, or changing a brand's voice without touching the pipeline.
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
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.pyparses it, resolves each asset reference to a real path, and flags any that are missing so drift surfaces before posting day.Every posting day. Run it first — it replaces reading a 388-line markdown table by hand.
xurlhas no~/.xurl,clinstagramis unauthenticated, and noFB_PAGE_*is set — so auto-posting is impossible until one is configured. LinkedIn has no connector at all despite being planned weekly.screenshot-N.jpegrefs 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.interview-season-campaign-2026/(61 MB) holds the same week-1 images plus the A/B HTML reports associal_media_assets/.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>.jsonas they arrive, so a dropped session resumes at the first unanswered question.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.
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
brand_pack.py new→ fill 6 layers. Gate:checkmust pass. Runs as one command together with the scaffolding.CONTENT_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.pre-flight-checklist.md— the 8 checks. Nothing goes live ungated.Brands carry a
vertical:— healthcare · music · product · service and anything else.listgroups by it,--verticalfilters 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.Every campaign is registered in
/workspace/campaigns/registry.jsonwith its brand, window and schedule path, andsocial_campaign_today.pyreads 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.check_campaign_readiness.pyis 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.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
checkblocked on cosmetics. Severity is now deliberate: TODO invoice.md/pillars.mdblocks (the voice and content mix are undefined); TODO in visual / playbook / assets is a note. Don't silence it by deleting the markers.ffprobeis not on PATH. A bareffprobereturns nothing, which reads as “no video” when there is plenty. Usecommand -v ffprobe || /workspace/m4b-player/bin/ffprobe.