superself – Agents & Automation skill for AI agents
Use when a project keeps its state in Superself (a `<!-- superself:begin` block in AGENTS.md or CLAUDE.md, or `self setup` resolves the directory to a registered project): read `self context` at session start, attach work to a work unit, report with evidence, and record confirmed decisions so the next session picks up
Install the superself skill with one command
Pick the tool you use, copy the command and paste it in your terminal. The skill lands in that tool's skills folder and is ready in your next session.
Claude Code
mkdir -p ~/.claude/skills && curl -fsSL https://skill.dn1nguoi.com/z/superself-da162.tgz | tar xz -C ~/.claude/skills
Call it in Claude Code: /superself – then describe the task you want done.
Codex
mkdir -p ~/.codex/skills && curl -fsSL https://skill.dn1nguoi.com/z/superself-da162.tgz | tar xz -C ~/.codex/skills
Call it in Codex: $superself – then describe the task you want done.
Hermes Agent
mkdir -p ~/.hermes/skills && curl -fsSL https://skill.dn1nguoi.com/z/superself-da162.tgz | tar xz -C ~/.hermes/skills
Call it in Hermes Agent: /superself – then describe the task you want done.
DeepSeek
mkdir -p ~/.deepcode/skills && curl -fsSL https://skill.dn1nguoi.com/z/superself-da162.tgz | tar xz -C ~/.deepcode/skills
Call it in DeepSeek: /superself – then describe the task you want done.
SKILL.md content
Superself
Superself is an Apache-2.0 CLI (npm install -g [email protected], Node 22.12+) that
version-controls a project's state — goals, decisions, work units, reports —
as an append-only event log in a git repository separate from the code. The
state is derived on demand, so nothing in it is hand-maintained. This skill
tells an agent how to read and write that state through the self CLI. It is
maintained by the Superself authors: https://github.com/fxylabs/superself
When this skill applies
- The project's
AGENTS.mdorCLAUDE.mdcontains a block between
<!-- superself:begin and <!-- superself:end -->, or self setup prints
the workspace, project, and store this directory resolves to.
- Skip the skill when
self --versionfails: the project does not use
Superself, and nothing below should be invented by hand. This skill is
written against [email protected]; a different major or minor version may
have moved a verb or flag, so check self <command> --help before relying
on one.
Session start
1. Run self context and treat its output as current truth: the goal, active
decisions and conventions, open work, recent reports. It is folded from the
log, never written by hand.
2. Something missing from context was placed out of the rendered set on
purpose; self search <query> finds live records context left out, and
self work show <id> prints one unit's full brief and report history.
While working
- Substantive work attaches to a work unit. Create one with
self work add "<required outcome>" — the outcome is what must become true,
not the task — then self work start <id>. start reads the brief and
records that this session picked the unit up; if another session holds it,
the CLI says who and since when and does not refuse. Judge and proceed.
- After committing, report progress:
self report <id> "<what happened>". The
current HEAD commit is attached as evidence automatically; `--evidence
<commit|note> attaches something else, --file <path>` attaches a longer
brief.
- Record a decision the user confirmed:
self decide "<text>" --why "<reason>".
Use --proposed when the user has not confirmed it. One decision per event.
- Blocked?
self work block <id> --on decision|dependency|external --why "...".
Superseded or moved? self work retire <id> --why "..." [--successor <id>].
Never mark such a unit done, and never leave it falsely blocked.
- Found a gap between an objective and the current state? Propose the work with
self work propose and its brief; the user accepts or declines it.
- The user approved a next step or a continuation? Register it at once with
self work add and the context behind it. A plan that lives only in the
conversation is lost when the conversation ends.
Closing
self work done <id>closes a unit only when a report carries a commit or an
artifact, or the done itself states what verifiably happened:
self work done <id> --report "<what verifiably happened>". A bare claim is
refused, and declared criteria gate it until each is covered.
- A record's text is immutable once confirmed. Correct it by restating:
--supersedes <id> on any add verb records the new wording and keeps the
lineage. retract withdraws a record with nothing replacing it.
Rules that keep the state trustworthy
- Records — events, decisions, reports, conventions — are written in English
so whoever opens them next can read them; answer the person in their own
language.
- A branch reaches main through a pull request: PR review and CI own merge
control. Superself owns context and the work graph, not the merge gate.
- Never hand-edit generated state files or anything under
.superself/. - In a project without a superself block, run
self setupfirst. If it
resolves the directory to a registered project, ask the user once whether
to run self connect, which writes the managed block into AGENTS.md or
CLAUDE.md. If it resolves no project, ask once whether to register it with
self project init. Never register or connect a project on your own.
Going deeper
self --help lists every verb; self <command> --help prints one command's
flags without touching state. Topic guides ship with the CLI:
self help agents— how a session drives this CLI, start to finishself help context— whatself contextrenders, and why something is missing from itself help records— one entity behind every record kind, and how a record is correctedself help placement— scope, priority and exposure — how a record earns its place in contextself help work— the work graph: outcomes, evidence, criteria, and proposalsself help goals— long-term goals, objectives, milestones, and what reaching one takesself help workspace— the store, the projects in it, and moving it between machines
Related skills
- distribute-skill-to-all-agents – Distribute a skill across configured agent skill folders while respecting local symlink…
- task-coordination-strategies – Decompose complex tasks, design dependency graphs, and coordinate multi-agent work with…
- documentation-and-adrs – Records decisions and documentation. Use when making architectural decisions, changing…
- team-communication-protocols – Structured messaging protocols for agent team communication including message type…
- docusign-automation – Automate DocuSign tasks via Rube MCP (Composio): templates, envelopes, signatures…
- doomsday-escrow – Verify cryptographic Proof-of-Escrow collateral (L1 UTXO outpoint proofs and Base…
- dos-verify-done-claims – Before accepting an agent's 'done / shipped / fixed' claim, verify it against ground…
- team-composition-patterns – Design optimal agent team compositions with sizing heuristics, preset configurations…