The six skills
Claude Code and Cursor show the names differently. Claude Code adds the plugin name, for example floppy:start. Cursor shows the short name, for example /start, and shows the plugin as “Created by Floppy”. This document uses the short name. Only the short name is correct in both applications.
init— the setup. See Install & init.agent-memory— the rules for the memory. This skill has no steps. The other skills obey these rules. One note contains one fact. Each note has the fieldmetadata.evidencewith one of these values:measured,read,decided,sourced. The index has three levels:MEMORY.md, then<half>/INDEX.md, then<half>/<group>/INDEX.md. The filequota.lockholds the size limits. Each fact belongs to one scope: project, cross-project, workplace, or machine. A fact true for more than one project goes to the cross-project scope,common/, which the memory links once per audience. A note is written at the moment the fact appears, not collected at the end of the session.start— prepares a new session, before the first edit. The agent reads the state file. The agent then finds the half of the memory for this task, and reads the guidance and the index of that half. If the repository has no memory yet, the agent omits this step. The agent then runsbash <plugin>/scripts/run status, because live facts are more reliable than the documents.workstatus— reports the state during a session: git state, difference from the remote, background jobs, memory configuration, the workplace memory repository, and the age of the state file.wrap— closes a session. The agent takes the lock. Most facts are notes already, written when they appeared; here the agent adds only what is left, updates the state file, and records the unfinished work. The agent then runsbash <plugin>/scripts/run check, which changes nothing and shows the lint result, the file-list check, and the diff. Last, the agent runsbash <plugin>/scripts/run commit, which stages, commits, pushes, and releases the lock.consolidate— merges and prunes the memory when a size warning fires, or before a limit inquota.lockis raised. The agent reads one half of the memory, proposes merges, rewrites, and deletions, each with its reason, and applies only what the human approves. If the memory then fits its limit, the limit stays where it is. An empty result is a valid result: it is what the raise commit then records.
What each skill says about itself
The block below is generated at build time from each skills/<name>/SKILL.md’s own description field — the same text the harness reads when it decides whether a skill applies. This page therefore cannot describe a skill differently from the way the agent sees it.
init
Lay the floppy memory out in this repository — write .floppy/config, create the memory skeleton, gitignore the local scope, and point AGENTS.md at agent-memory. Idempotent, safe to run again. Use once per repository, when setting the plugin up for the first time, or when the user asks to init, set up, or bootstrap floppy here.
agent-memory
Conventions for the durable session memory this toolkit keeps — one fact per file, the moment a note gets written, note frontmatter and metadata.evidence, the three-level index tree, the quota.lock ratchet, and which of project/cross-project/workplace/machine scope a fact belongs to. Load this before writing, moving, or reorganizing a memory note, or whenever start/workstatus/wrap need the ground rules — they assume these conventions rather than restate them.
start
Orient a fresh session before touching any file — read the current-state file, the relevant half’s own guidance, and that half’s memory index, then verify live facts with the plugin’s own status verb instead of trusting the documents. Use at the start of a session, when picking up a new task or branch of work, or when the user asks to start, orient, or “what’s next”.
workstatus
Report what is true right now, checked live rather than recalled — retells the plugin’s own status verb and names what is waiting on the human. Use mid-session for “where are we”, a live status check, before answering a question about current state, or when the user asks for workstatus.
wrap
Close a session — select the facts worth keeping into memory, update the current-state file, name what’s left unfinished, then check and commit through the plugin’s own verbs. Use when a session is ending, context is about to be cleared, or the user asks to wrap up.
consolidate
Merge, rewrite, and prune the memory one half at a time — proposes each change with its evidence and applies only what the human approves. Use when lint warns a ceiling is near, before raising any quota.lock number, or when the user asks to consolidate, tidy, or prune the memory.