re0-workflow
Skill1.4k starsChanged todayMITView on GitHub
Read one stated intent into numbered requirements, pick and order the installed skills that serve them, check and show that order, then run the steps the session may run and stop where a person must act. Use when someone states a goal but does not know which skills serve it or in what order, asks which skills to use, or wants a job that needs several skills run end to end. Typing /paperthin lands here.
Trending
Less talk lately.thin dataabout the whole repository
Who's talking about LilMGenius/paperthin
- LowyShin/giip-fde-agent“Paperthin 핵심 기능 도입 작업 지시서”GitHub · Jul 26, 2026 · 1 reactions
- dragoscirjan/ai“Refactor and Debloat skill”GitHub · Nov 6, 2026
- tranhoangnguyen03/pi-consultants“Pilot four Paperthin-inspired skills in Pi Consultants”GitHub · Oct 20, 2026
- sudosubin/agents.nix“agent-skills.github.lilmgenius.paperthin: init at 0.17.7”GitHub · Oct 3, 2026
- Yeachan-Heo/gajae-code“research(ultragoal): explore Paperthin principles for bounded, evidence-driven execution”GitHub · Aug 29, 2026
The biggest 5 of 10 mentions linking to the repository that our crawl found. Each line is their own headline.
See all 10
Talked about on GitHub (10 times).
On GitHub · 10
- Jul 26, 2026Paperthin 핵심 기능 도입 작업 지시서 — LowyShin/giip-fde-agent1 reaction
- Nov 6, 2026Refactor and Debloat skill — dragoscirjan/ai0 reactions
- Oct 20, 2026Pilot four Paperthin-inspired skills in Pi Consultants — tranhoangnguyen03/pi-consultants0 reactions · 1 comment
- Oct 3, 2026agent-skills.github.lilmgenius.paperthin: init at 0.17.7 — sudosubin/agents.nix0 reactions
- Aug 29, 2026research(ultragoal): explore Paperthin principles for bounded, evidence-driven execution — Yeachan-Heo/gajae-code0 reactions · 1 comment
5 more on GitHub
- Aug 26, 2026📝 https://github.com/LilMGenius/paperthin tool-study — adszzz11/study0 reactions
- Aug 26, 2026Track Codexy 1.6.0 lightweight skills and mechanical enforcement reduction — eunsoogi/codexy0 reactions · 10 comments
- Aug 26, 2026Record clean-room observations from the pinned research source — eunsoogi/codexy0 reactions · 3 comments
- Aug 26, 2026feat: add Paperthin-inspired artifact reflexes — BokEumEom/infrastructure-engineering-harness0 reactions · 1 comment
- Jun 21, 2026[skills.sh] Redirect LilMGenius/skills listings to LilMGenius/paperthin — vercel-labs/skills0 reactions · 1 comment
In this repository46 other files it gives its agents.
- AGENTS.mdAGENTS.md
- llms.txtllms.txt
- re0-importSkill
- re0-readmeSkill
- re0-upgradeSkill
- ssotize-localSkill
- ssotizeSkill
- backpropSkill
- catchupSkill
- nbaSkill
- paperthinSkill
- re0-loopSkill
- re0-memoSkill
- re0-planSkill
- re0-tutorialSkill
- re0-watchSkill
- re0-workSkill
- aimSkill
- autobahnSkill
- crossthinkSkill
- debloatSkill
- dedashSkill
- dedotSkill
- deidSkill
- demockSkill
- detoolSkill
- elonSkill
- factchkSkill
- hateSkill
- macrothinkSkill
- mandelaSkill
- modelchkSkill
- re0-decideSkill
- re0-gitSkill
- re0-mergeSkill
- re0-orderSkill
- re0-releaseSkill
- re0Skill
- re0-squashSkill
- re0-styleSkill
- readbackSkill
- scopechkSkill
- showerSkill
- sipSkill
- whychkSkill
- multithinkSkill
The file
We split this skill into the rules it gives an agent
5 rules. About 0 are common, 2 are distinctive, and 3 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈2
Distinctive · estimate
This author's own choices. Worth a look.
3
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Very specific: line 47
Stop at the first user-handoff or failure and give the report, the state a resume reads, in the conversation.
- Very specific: line 69
Never select re0-workflow itself or its alias paperthin as a step.
- Very specific: line 71
Never drop an installed user-only skill to make the order runnable.
- Distinctive: line 79
Every selected target's trigger, output, installation, invocation lane and authority were read from its own contract, and nothing a planned …
- Distinctive: line 82
Every step's type follows the table in step 6, and every prerequisite a selected contract states is an edge of the plan.
≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Turn one stated intent into an ordered skill graph, show it, and run the steps the session may run.
Goal
Someone who does not know this suite's catalog should be able to say what they want and see every part of it done, with nothing misread or dropped. Read the intent into numbered requirements, select and order the installed skills that serve them, check the plan with the bundled script, show the whole plan before anything runs, run each step the session holds authority for, and stop at the first step that needs the human, with a report of what ran and of every requirement.
Workflow
- Read the human's stated intent and the installed roster from the host catalog or skill directories. If given only live state without a stated intent, ask for the intent rather than infer it. Read each candidate's contract and invocation lane, and
readback's own SKILL.md when it is installed, for the method step 2 applies, and nothing a planned step will read (a draft, a file it edits, data it fetches), since opening that is running the step before approval.disable-model-invocation: truein its SKILL.md, orpolicy.allow_implicit_invocation: falsein itsagents/openai.yaml, means user-only; otherwise it is model-invoked, and when the two disagree it is user-only. - Re-read every request before choosing anything, applying
readback's method yourself, never invoking it: restate the request in your own words, check the restatement against the request and the contracts step 1 read, and ask one specific question only when two readings survive that they cannot settle. Decompose the confirmed read into numbered requirements (r1,r2, ...), one per thing the human asked for, in their order, and one line beginningunderstood as:. The read is the first section of the reply that shows the plan, written in that same message, and it is no step, no action and no tool call; a request for the order alone, a cycle and a no-match open with it too. Skip the restatement only when the intent names one installed skill and its one target and asks nothing else (single-named-step), still writing the requirement and the line. Without readback installed, restate the request the same way and say the read went unchecked. - For each requirement, select the installed skills whose triggers and outputs serve it; add no step the requirements do not need and no orientation skill, and when one skill suffices, use one node and say ordering is trivial. A named skill that is not installed stays as a
skipstep, shown as unavailable. Work no skill covers becomes a step of its own, typed by the table in step 6, only inside a plan that has at least one skill step; a requirement nothing installed serves and no one present could authorize is unmet, with the reason. When no installed skill serves any requirement, the request is a no-match, even if the session could do the work itself: there is no plan and no tool call after the contract reads, and the reply gives the read of step 2, then says plainly that the goal was not done and why. - Close each stretch of the run that writes a file or record with one
sipstep, the suite's taste test for new output, run as one node and never reproduced member by member. Stretches split at each step whose expected type, its first, isuser-handoff; the human's write in that handoff belongs to the stretch after it. When a conditional step resolves to another type, the plan is re-planned and shown again (step 6), so its stretches are drawn anew. A stretch'ssipis its last step and follows every write in it. A stretch that writes nothing gets none, and a pipeline that runssipitself closes its own writes. The closingsipis itself a write, since its cleanup pass edits the changed docs: the approval covers it and nosipfollows it. Show it with the checks its own contract runs listed under its node as its members, each with the condition its contract gives, so no call it makes is unshown. It reports findings and proposes fixes, and any fix or consolidation plan it proposes is a new step shown and approved before it runs. A judgment the run delivers (a verdict or a choice with no file) is tasted by asipthat comes after it in the same stretch; when none does, add one outside read after it:showerfor whether it reads clearly to someone with no context,factchkfor claims about the world, ormandelafor an eval, metric or experiment. An added check serves the requirements of the steps it checks, is shown with its reason, and is no action. When its skill is not installed it stays as askip, and the report says the output it would have checked went untasted. - Order the steps by their contracts' prerequisites: a step depends on another when its firing precondition needs that step's output. List them in run order, and where the prerequisites leave the order free, put the session's steps before a handoff, so the run reaches the human once and as late as it can. Every prerequisite a contract states is an edge, and none is dropped to make the order runnable. Find cycles from those requires-edges before showing anything. A cycle makes the whole result a
reject: the reply gives the read of step 2, then names the cycle along its requires-edges, each step followed by one whose output it needs (skill-a requires skill-b requires skill-a), with no steps, nothing run and no check. Otherwise give the graph one observable stop condition that shows the goal met rather than a step merely returning (a ready verdict, not a report that finds problems), reached after its last step, meaning every requirement was served or no longer applies. Give every step an identifier, a target (the skill that acts, the work when no skill covers it, or the question for a human decision), its predecessors, the requirements it serves, one type, a firing precondition, its expected output (for a skill, what its own contract promises), a skippable condition, a cost owner, its target's lane, and whether it writes. A step writes when it creates or changes a file or record. Version control that only moves or records content (a commit or its message, a history rewrite, a push, a tag, a publish) is no write for
sip, but a run step that commits or rewrites history is marked"vcs": trueand needs the same approval as a write. Count a contract silent on writing as writing and an unreadable lane as user-only. A frozen pipeline, a skill whose own contract runs a fixed sequence of other skills, is one node whose members are the skills it runs itself; a skill it only hands to the human is no member, and the pipeline writes when a member writes. Type each step by the first row below that applies. A step whose type depends on an earlier result lists the types it can take, the expected one first, with the condition that decides; once that result exists the step is typed, and a type other than the expected one re-plans the rest, which is checked and shown again before it runs.Type Meaning and precondition Cost owner skipThe step does not run: its skill is not installed, its condition does not apply, or no one present can grant the authority it needs. A step that depends on it is skipped too, its reason naming the step it lost, but a closing sipruns while a write it covers can.None. user-handoffThe human acts: the target is user-only or a pipeline with a user-only member (on lane user, its user-only members listed); the step is destructive or irreversible (deleting, pushing, force-pushing, publishing, tagging, sending a message to someone, spending money), even when its skill is model-invoked or the session could do it; it is a decision; or it needs authority the human holds and the session does not.The human's time, at their discretion. invoke-model-skillThe router runs it: the target is an installed model-invoked skill, the session holds authority for it, and it is neither destructive nor irreversible. This run's budget. session-stepThe session does it: no skill covers the work, the session holds authority for it, and it is neither destructive nor irreversible. This run's budget. - For each
user-handoff, say what the human does and what result to bring back. For a skill, give the exact invocation in the host's syntax with the installed name. For a decision, give the question and the answers that change the next step. When the host's syntax is unknown, the handoff holds that question instead of a command, and it is asked when the plan is shown. Check every plan before it is shown, an order-only one included; a no-match or a cycle makes no call to the check. Pipe the plan as JSON straight into
node <skill>/scripts/plan.mjs -,<skill>being the folder that holds this SKILL.md, never through a file: in a POSIX shell end the command with<<'EOF', then the JSON, then a line holdingEOF; in PowerShell pipe a here-string,@', the JSON,'@ | node <skill>/scripts/plan.mjs -. Exit 0 means every invariant holds; exit 1 names each broken one, which is fixed and checked again; exit 2 is a usage error, invalid JSON, or no plan on stdin;--jsonprints the problems as JSON, and--helplists every rule the script decides. Never show a plan the script refused. The plan has this shape:{ "readback": "applied", "understood_as": "understood as: <the confirmed read>", "requirements": [{ "id": "r1", "text": "<one thing asked>" }, { "id": "r2", "text": "<another>", "unmet": "<why nothing installed serves it>" }], "steps": [ { "id": "s1", "target": "<skill>", "predecessors": [], "serves": ["r1"], "type": "invoke-model-skill", "precondition": "<when it fires>", "output": "<what its contract returns>", "skippable": "<when it may be skipped>", "cost_owner": "run", "writes": true, "lane": "model" }, { "id": "s2", "target": "sip", "added": "sip", "members": ["shower", "factchk", "ssotize", "re0"], "predecessors": ["s1"], "serves": ["r1"], "type": "invoke-model-skill", "precondition": "s1 wrote its output", "output": "findings on that output and its cleanup edits", "skippable": "when s1 wrote nothing", "cost_owner": "run", "writes": true, "lane": "model" } ], "stop": "<the one observable stop condition>" }readbackisapplied,single-named-stepormissing.typeis one type, or the list a conditional step can take with the expected type first;cost_ownerisnone,humanorrunby the table, for a conditional step that of its first type;laneismodel,userormissingfor a skill andnonefor work or a question no skill takes. A skip addsreason; a handoff addshandoffandbring_back; a frozen pipeline or the closingsipaddsmembers, anduser_membersfor those that are user-only; a destructive or irreversible step adds"destructive": true; a delivered judgment adds"judgment_only": trueand never writes; a check from step 4 adds"added": "sip"or"added": "outside-read".- Before any step runs, show the requirements and the
understood as:line, say in one line what was done to build it (the contracts read and the plan check), never that nothing ran, then the graph in run order: every field of every step, why each sits where it does, the number of actions, each added check under the steps it closes with its reason, the stop condition, and any question step 7 holds. If the human asked only for the order, end with the report of step 11 under approvalorder-only, every step waiting but askip, which staysskipped. If any step the session runs (invoke-model-skillorsession-step) writes or commits (vcs), wherever it sits, ask once, now, for approval of the shown plan, and while the human has not given it, the report of step 11 stands under approvalpending. The approval covers every write the plan shows, the added checks' included, across a resume, until the plan changes. It grants no authority a step lacked, so it never turns auser-handoffinto a run step. When no step the session runs writes or commits, run right after showing the plan under approvalnot-needed. When the human edits the plan, order, check and show it again before running. - Run in order. For each
invoke-model-skillstep, call the Skill tool with that step's target, once for that step, passing the intent and its predecessors' outputs; on a host with no Skill tool, run the skill the way that host does (reading its SKILL.md and following it counts) and say so. Do eachsession-stepyourself, once, within what the shown plan says. Before starting the next step, check its expected output: the file or record exists, or the skill's own report states the result. A step that does not produce its expected output failed, and the run stops there. A step whose produced output breaks a later step's precondition marks that later step and its dependentsskipwith the reason, and the run goes on with the steps that do not depend on it; such a skip is no stop. - Stop at the first
user-handoffor failure and give the report, the state a resume reads, in the conversation. The report is the shown plan with each step's outcome, result and status merged in by id, checked withnode <skill>/scripts/plan.mjs - --reportbefore it is given:
{
"readback": "applied",
"understood_as": "understood as: <the confirmed read>",
"approval": "not-needed",
"stop_reached": true,
"requirements": [{ "id": "r1", "text": "<one thing asked>", "status": "served" }],
"steps": [
{ "id": "s1", "target": "<skill>", "predecessors": [], "serves": ["r1"], "type": "invoke-model-skill", "precondition": "<when it fires>", "output": "<what its contract returns>", "skippable": "<when it may be skipped>", "cost_owner": "run", "writes": false, "lane": "model", "outcome": "ran", "result": "<what it produced>" }
],
"stop": "<the one observable stop condition>"
}approval is approved, not-needed, order-only or pending (step 9). A step's outcome is ran, returned (a handoff whose result came back), skipped, handed-off (the handoff the run stopped at), failed, or waiting (every step after the stop or not yet reached), and its result says in words what it produced or why, except while it waits; a check's result names the parts its own report skipped, never calling it clean. A requirement's status is served, handed-off, waiting, skipped (it no longer applies) or unmet, the last two with a reason. stop_reached is true only when nothing waits, stopped or is unmet; when a skipped or missing step's output is one the stop condition needs, the report says the run ended with it unmet. The report also holds the handoff with what to bring back. When the human returns with the result in the same conversation, a new invocation reads the report and checks the result against the handoff step's expected output: a match makes that step returned and the run goes on from the next step under the same approval, while a changed or failed result re-plans from that step, then checks and shows the new graph before running. If the report is out of reach, start again from step 1.
12. End with the report of step 11, checked again after the last step.
Rules
- The plan carries the suite's working rules: the result never rests on its author (the closing checks of step 4 and the script check of step 8), one owner per job (steps 3 and 6 and the rule below on missing skills), and restraint (steps 3 and 4).
- Never select
re0-workflowitself or its aliaspaperthinas a step; the alias only forwards here, so either would loop. - The router writes nothing of its own, a temporary file included: no plan file, log or record, in the repository or outside it. Every write comes from a run step's own skill under that skill's contract, or from a session step the shown plan names, and a report names every file the run wrote.
- Never drop an installed user-only skill to make the order runnable. A step the router cannot run is a
user-handoffor askip, never a silent recommendation, and a skip never counts as success. - A missing or failed skill is never replaced, by another skill or by the session's own work.
nba, a sibling that reads live project state and names one next action, runs nothing; this skill orders and runs a graph for one stated intent.
Verification
Unless the result is a no-match or a cycle, whose reply gives the read and then says the goal was not done and why, naming the cycle for a reject, check before running the first step and again before the final report:
- Every selected target's trigger, output, installation, invocation lane and authority were read from its own contract, and nothing a planned step reads was opened.
- The request was re-read by readback's method in the reply that shows the plan, with no readback call, and nothing but the contract reads and the plan check happened before the plan was shown.
- The plan check exited 0 before the plan was shown and the report check before each report was given. The rules the script decides are the ones
node <skill>/scripts/plan.mjs --helplists; whether a step truly serves its requirement, and whether writes and judgments are marked honestly, was read. - Every step's type follows the table in step 6, and every prerequisite a selected contract states is an edge of the plan; a plan the check passes with a contract edge missing is a router defect.
- The plan was shown before anything ran, and approval was asked once when a step the session runs writes or commits (
vcs). - Each run step's expected output was checked before the next step started, the run stopped at the first
user-handoffor failure, and nothing, no check included, ran past the last shown step. - The report is the one step 11 describes.
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
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.

