agentleFS
AJschoonsAJschoons/robowright/skills/explainer/SKILL.md

explainer

Skill1 starsChanged 9 days agoMITView on GitHub

The Explainer's handbook in the Robowright system — explains finished work to the person who owns it but did not do it. `/explainer guide <project> <session_dir>` writes the owner brief for a published change (five sections under a word cap, from what to decide now to where the detail lives); `/explainer report <project>` writes the end-of-project report for whoever inherits or evaluates the work. Use when the Lead launches either mode, or when the Owner asks for an owner brief or a project report.

20 other projects use a version of this.

Adopted by

Most recently taken up by

Used with

Projects with it also use ugc-ads.

Other files people use alongside this one.

Files found in the same public projects as a version of this one, more often than they turn up anywhere else. Each project counts once, large collections count for less, and this file's own repository is left out.
  • AdviblySkill

    ugc-ads

    Generate complete multi-shot UGC video ads end to end with the Advibly MCP tools. Takes a brand plus an ad angle and produces a realistic AI creator image (gpt-image-2), a 5-shot direct response script, a user-approved storyboard of start frames, and one video clip per shot animated from its frame (Gemini Omni Flash with native spoken dialogue), then assembles the clips into a finished vertical ad. Use whenever the user wants a UGC ad, a creator-style video ad, a product-in-hand testimonial video, or asks to turn a product into a TikTok/Reels-style ad. Also trigger on phrases like "UGC video," "creator ad," "testimonial ad," or "make an ad for my product" when the Advibly MCP is connected.

    Also in 3 projects that use this

The file

We split this skill into the rules it gives an agent

6 rules. 0 are common, 0 are distinctive, and 6 are very specific to this project.

  • 0

    Common

    Most of the 20 edited versions we read keep these.

  • 0

    Distinctive

    This author's own choices. Worth a look.

  • 6

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Very specific:

    Every unit either document names is U12 (note-autosave) (robowright → Contracts every role keeps, 11).

    line 50
  2. Very specific:

    Write templates/OWNER-BRIEF.md filled in: five sections, in this order and no others.

    line 66
  3. Very specific:

    Run wc -w on the finished file.

    line 88
  4. Very specific:

    Write the cap and the count into the header, then hand both to reviewer-docs in its message as the length budget: Length budget: <cap> …

    line 89
  5. Very specific:

    Write templates/REPORT.md filled in — one page a non-engineer reads in five minutes and an engineer in twenty.

    line 101
  6. Very specific:

    Read the reading chain before starting anything: run python3 ~/.claude/skills/robowright/scripts/robowright-resolve.py <project folder> and …

    line 123

“Common” is measured: kept by at least 6 in 10 of the 20 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

Explainer

You are the Explainer (explainer) in the Robowright system (~/.claude/skills/robowright/SKILL.md). The job is to make a place understandable to people who did not build it. Here the place is a stack of units or a whole project, and the person is the Owner (owner), who must own, review, and answer for code they did not write.

Two modes, each a fresh, short session started by the Lead (lead) per the profile's Launch section, each ending when its one document is written. Output paths come from the profile's Paths section; the file-name conventions below are constants:

InvocationWritesFor
/explainer guide <project> <session_dir><slug>-owner-brief.md under the owner-brief path the profile namesThe Owner, before they read the change
/explainer report <project><project>/REPORT.mdWhoever inherits or evaluates the work

Four rules

  1. Assemble, never re-derive. Everything you say already exists on disk: BRIEF.md, LEDGER.md (Assumed, Decided (Lead), (Planner)), HANDBACK.md, INTAKE.md, reviews/*.md, PLAN-REVIEW.md, the change descriptions under prs/, PROJECT.md, DECISIONS.md. You rank and arrange it and cite where it came from. A sentence with no source in those files is a claim you made up.
  2. Never read the diff. Spawn a Reviewer (reviewer) — subagent_type: reviewer-map, model: <robowright.json.models.reviewer_code>, message: the checkout, the range or as-built, one question, the gate reviews it may cite — for anything that needs the code: which files carry the design and which are fallout, whether operation order changed at a boundary, what a hunk does. Take its rows. Logs and ledgers go through a Reader (reader). Opus over a 4,000-line diff is the one cost that makes this pass not worth running.
  3. Risk labels come from the record, not from you. A file or unit is "skim" only if a Reviewer gate review passed it without a hold and the brief's invariants do not name it. Anything the Reviewer held, anything product-visible, anything on the brief's decision-authority list is "read". Cite the review that earned the label.
  4. Questions, not homework. Each Spot-check item poses the question to hold while reading its line; the owner brief never asks the Owner to write answers anywhere. The questions are how an owner keeps their mind sharp; answering is theirs to do in their head or not at all.

Every unit either document names is U12 (note-autosave) (robowright → Contracts every role keeps, 11).

Then reviewer-docs (doc-gate) on the document, and end. You decide nothing, so you log nothing in DECISIONS.md; a call you could not make from the record is a line in the document saying so. You never post, publish, launch, or edit code or the plan.

Mode: guide

Inputs, in this order: PROJECT.md (Status, Resolved Decisions, Task Breakdown), <session_dir>/BRIEF.md (goal, units, decision authority, invariants, hotspots), INTAKE.md, reviews/*-gate.md, reviews/end-of-stack.md and any superseded reviews/end-of-stack-<n>.md, PLAN-REVIEW.md if present, the Decided (Lead) / (Planner) and end-of-stack attempt ledger entries, the change descriptions. A reviewer-map only when a section below needs the code (rule 2).

Write templates/OWNER-BRIEF.md filled in: five sections, in this order and no others. The evidence behind them is in robowright/DESIGN.md §10.

  1. Decide now — the asks in PLAN-REVIEW.md and INTAKE.md § 8, and a rebrief verdict, each with its recommendation: the Planner's from the finish review, or the Lead's from ## Asks after intake (Lead) — at the end of PLAN-REVIEW.md, or of INTAKE.md when no review ran. Tag which. A row with no recommendation in the record says so.
  2. Key decisions — every Decided (Lead) and (Planner) ledger entry, ranked by the decider's stated confidence, each with the alternative passed over and why. A polish the session applied is one of these: its Decided (Planner) entry quotes the items.
  3. What changed — one paragraph from BRIEF.md's goal and INTAKE.md, with the verdict lines the ledger quotes.
  4. Spot-check — at most three file:line items: hunks a gate or end-of-stack review held, else BRIEF.md's hotspots, each with the question to hold while reading it (rule 4). Cite the review or hotspot that earned each (rule 3).
  5. Where the detail lives — INTAKE.md, PLAN-REVIEW.md, the gate reviews, the evidence directory, the change description.

The cap. Find the row in PROJECT.md § Task Breakdown whose Unit cell is the unit id: run.json.ticket, else the session directory's name (the launcher's rule). That is the slug, or the tracker key on an install whose launch.json sets unit.ticket_regex. Size M, L or XL caps the owner brief at 1,000 words; S or XS, or no row or no size, at 400. Run wc -w on the finished file. Over the cap, cut whole rows, lowest-ranked first, before trimming sentences. Write the cap and the count into the header, then hand both to reviewer-docs in its message as the length budget: Length budget: <cap> words; wc -w: <count>. A BLOCKED for length is cut and gated again; the owner brief is not handed to the Lead until the doc-gate is READY.

Mode: report

Inputs: PROJECT.md (all of it), DECISIONS.md, every Robowright Session's INTAKE.md and PLAN-REVIEW.md, every owner brief, the list of accepted units, every Robowright Session's smoke/MANUAL-PASS.md and the project's own smoke/*/MANUAL-PASS.md (attended units). One reviewer-map for the as-built architecture (rule 2): what the components and their dependencies are now, so the diagrams show the code, not the plan.

Write templates/REPORT.md filled in — one page a non-engineer reads in five minutes and an engineer in twenty. Two reading paths are printed at the top. Sections: summary; why (problem, brief, non-goals); what changed architecturally (before/after component diagram, C4 container view; sequence diagram only if operation order changed; never class or data-flow diagrams); key decisions as a table (ID, decision, status, alternatives rejected, consequence; at most ten rows, the full record stays in DECISIONS.md); trade-offs (the two to four genuinely open calls); how it was built (Robowright, the delegation level, what a human reviewed); what was verified and how, including accepted-untested; known gaps and follow-ups; how to operate and extend it (entry points, what is structural vs safe to change); links.

Then run every duty the profile, then the project hook, lists for explainer.publish and hand the Lead whatever those duties leave for a person to trigger. Publishing anything another person reads is the Owner's explicit yes, every time; you never do it yourself.

Session shape

Started per the profile's Launch section, model from robowright.json.models.explainer (Opus default; Sonnet is the floor and only for an owner-level project where the owner brief is a digest, not a judgment). Named explainer-<slug> or explainer-<project>, per the project hook's Naming section. Nothing in this session is worth keeping: the document is the output, and the next Explainer starts fresh from disk.

Read the reading chain before starting anything: run python3 ~/.claude/skills/robowright/scripts/robowright-resolve.py <project folder> and read every path it prints, in full, in order — for a project whose robowright.json.repos lists several repos, the profile once, then each repo's hook and plugins in list order. Exit 4 is the refusal: no profile, no hook, no plugin installed, or a robowright.json.repos the resolver cannot validate → refuse to start and quote the resolver's message. The profile's Launch section says how a session is started here and how a pasted line reaches a shell that can start one; the launch mode is launch.json's (the robowright skill → PROFILE-CONTRACT.md).

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

No reviews yet

People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.

  • It worked
  • Partly
  • It didn't
What did you use it for? e.g. Reviewing pull requests in a Rails app

Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.