setup
Skill1 starsChanged 5 months agoApache-2.0View on GitHub
First-run onboarding interview — offers to seed the blank memory files with the user's real life through a short, skippable Q&A, writes the answers into the live `.md` files in canonical format, then runs /morning on the real data. Use this whenever the user types /setup or /first-run, on a fresh clone with blank memory when they want to get started instead of learning-as-you-talk, or later to gap-fill memory sections that are still empty. Offered, never forced — a decline keeps the default learn-as-you-go behavior.
191 other projects use a version of this.
Adopted by
Most recently taken up by
- hydra-db/hydradb-claude-codetheir own version, first seen Nov 8, 2026
- WALKERKILLER/Look-Tongji-Notestheir own version, first seen Nov 8, 2026
- steerlabs/opensteertheir own version, first seen Nov 8, 2026
- ansvisor/ansvisortheir own version, first seen Nov 8, 2026
- dsifry/metaswarmtheir own version, first seen Nov 8, 2026
- anombyte93/prd-taskmastertheir own version, first seen Nov 8, 2026
Used with
Projects with it also use add-voice-transcription, add-discord and 10 more.
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.
juancruzmunozalbeloSkilladd-voice-transcription
Add voice message transcription to NanoClaw using OpenAI's Whisper API. Automatically transcribes WhatsApp voice notes so the agent can read and respond to them.
Also in 5 projects that use this
MicrosoftSkilladd-discord
Add Discord bot channel integration via Chat SDK.
Also in 11 projects that use this
MicrosoftSkilladd-slack
Add Slack channel integration via Chat SDK.
Also in 11 projects that use this
juancruzmunozalbeloSkilladd-telegram-swarm
Add Agent Swarm (Teams) support to Telegram. Each subagent gets its own bot identity in the group. Requires Telegram channel to be set up first (use /add-telegram). Triggers on "agent swarm", "agent teams telegram", "telegram swarm", "bot pool".
Also in 7 projects that use this
- +8 more from microsoft
Other versions191 projects use a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 191
- anthropics/knowledge-work-plugins★ 35ksame name
- garrytan/gbrain★ 32ksame name
- gavrielc/nanoclaw★ 31ksame name
- nanocoai/nanoclaw★ 31ksame name
- qwibitai/nanoclaw★ 31ksame name
- Q00/ouroboros★ 6.3ksame name
- pytorch/executorch★ 5.2ksame name
- agenticnotetaking/arscontexta★ 3.5ksame name
- aws/agent-toolkit-for-aws★ 3.4ksame name
- spotify/portal-ai-plugins★ 2.8ksame name
181 more not listed
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
The file
Show its rules and text
We split this skill into the rules it gives an agent
15 rules. 0 are common, 6 are distinctive, and 9 are very specific to this project.
0
Common
Most of the 171 edited versions we read keep these.
6
Distinctive
This author's own choices. Worth a look.
9
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Very specific: line 12
When the user runs /setup (or you offer it and they accept), do the following:
- Very specific: line 16
Read config.yaml (and config.local.yaml if present, with local overriding).
- Distinctive: line 26
If the user declines: stop cleanly.
- Distinctive: line 32
Every question is skippable; partial answers are fine: If the user says "skip", "that's enough", or "rest later", stop asking and write …
- Distinctive: line 47
Keep it light. This is intake, not an interrogation — let the user bail at any point.
- Very specific: line 51
Write to the live .md files only — never the *.md.example seeds, and never copy seed content into live memory.
- Distinctive: line 58
Don't fabricate: Write only what the user actually said.
- Very specific: line 59
Update the *Updated:* timestamp on every file you touch.
- Very specific: line 63
Run /morning on the freshly seeded data.
- Very specific: line 64
If vault_dir is configured, /morning will offer its usual daily-note write — let it.
- Very specific: line 75
Remove the whole ## First-Run Notes section from CLAUDE.md — it's blank-clone-only
- Very specific: line 76
Remove the fresh-clone demo paragraph from .claude/skills/morning/SKILL.md step 2
- Distinctive: line 86
Don't push unless the user asks.
- Distinctive: line 92
Skippable throughout: Every question can be skipped.
- Very specific: line 95
Use the user's local timezone for any dates written (config.yaml: timezone overrides system TZ).
“Common” is measured: kept by at least 6 in 10 of the 171 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.
Files
/setup — First-Run Onboarding Interview
Get the user from a blank clone to their own filled memory in one sitting — by asking, not by guessing. Offered, never forced; every question skippable; writes only to the live .md files.
Instructions
When the user runs /setup (or you offer it and they accept), do the following:
1. Load config + detect memory state
- Read
config.yaml(andconfig.local.yamlif present, with local overriding). Notetimezone(falls back to system TZ) anduser_name. - Inspect the four live memory files —
memory/tasks.md,memory/personal.md,memory/priorities.md,memory/decisions.md. For each, decide blank vs filled: a file is blank if it still matches the template (only section headers + parenthetical placeholders, no real content). The*.md.exampleseeds are not the live files — never treat sample content as filled state. - This sets the mode:
- First-run — all four blank → offer the full interview.
- Gap-fill — some filled, some blank (or a filled file with empty sections) → only interview the gaps; frame it as "filling in what's still missing," not a fresh start.
2. Offer — don't force
- Open with a single line, no preamble:
"Want me to ask a few quick questions to set up your memory, or just learn as we go?"
- If the user declines: stop cleanly. The default learn-as-you-talk behavior (Rule B auto-capture) continues — that's the intended path, not a fallback. Don't re-offer this session, don't nag.
- This respects
personal.md's blank-on-purpose stance: the interview is the opt-in, not the default.
3. Run the interview — short, skippable
- ~5–8 questions, a few minutes total. Ask a few at a time, conversationally — not a wall of questions.
- Every question is skippable; partial answers are fine. If the user says "skip", "that's enough", or "rest later", stop asking and write what you have.
Question set (each maps to a target file/section):
# Question Lands in 1 Name, role, what you're working on broadly personal.md→ About + Life Context2 Your top 3 focus areas right now priorities.md→ Top 33 Current tasks + any deadlines tasks.md→ Urgent / Work / Personal4 Routines worth knowing (gym, weekly review, standing commitments) personal.md→ Routines5 Key people (family, close colleagues) personal.md→ People6 Anything time-bound coming up (trips, events, renewals) tasks.md+priorities.md→ Watch7 How you like things (communication style, scheduling habits) personal.md→ Preferences8 Any standing decisions worth recording decisions.md(only if one surfaces)- Gap-fill mode: skip any question whose target section is already filled. Ask only what's missing.
- Keep it light. This is intake, not an interrogation — let the user bail at any point.
4. Write answers to the live files in canonical format
- Write to the live
.mdfiles only — never the*.md.exampleseeds, and never copy seed content into live memory. - Preserve each file's section structure and the
*Updated: YYYY-MM-DD HH:MM*timestamp convention (user's local timezone per config). Use the*.md.examplefiles as the format reference for what filled content looks like. - Routing:
personal.md→ About, Preferences, Routines, People, Life Contexttasks.md→ Urgent (deadline ≤ 2 days), Work, Personal — honor Rule A's deadline-based placement; add[P1]/[P2]labels only where the user signaled urgencypriorities.md→ Top 3, Active, Watchdecisions.md→ only if a real decision surfaced — with a date and a**Why**:line (no why → don't log it as a decision)
- Don't fabricate. Write only what the user actually said. Leave a section blank rather than padding it with placeholder-looking content — a half-filled file the user can trust beats a full one they can't.
- Update the
*Updated:*timestamp on every file you touch.
5. Close the loop — first real briefing
- Run
/morningon the freshly seeded data. This is the user's first real briefing (not the sample-data demo), built from what they just told you. - If
vault_diris configured,/morningwill offer its usual daily-note write — let it.
6. Offer to graduate off first-run
Now that real data exists, the first-run scaffolding is dead weight — it loads every session but only applies to a blank clone. Offer to clear it all in one move (per CLAUDE.md First-Run Notes):
"Your memory's seeded with your real data now — want me to clear out the first-run setup scaffolding? (the sample seeds + the demo notes that only apply to a fresh clone)"
- On yes, graduate in a single commit (
chore: graduate off first-run scaffolding):git rm memory/*.md.example— the sample seeds- Drop the first-run demo banner from
memory/MEMORY.md - Remove the whole
## First-Run Notessection fromCLAUDE.md— it's blank-clone-only - Remove the fresh-clone demo paragraph from
.claude/skills/morning/SKILL.mdstep 2
- Keep the
/setupskill itself + its Daily Ops row — it stays useful for gap-filling empty sections later.
- On no: leave everything — it's harmless, and the scaffolding stays. Don't re-ask this session.
7. Commit
- Stage the updated live memory files and commit:
setup: seed memory from first-run interview - Don't push unless the user asks.
Notes
- Offered, never forced. A decline is final for the session — the learn-as-you-talk default takes over, no nagging.
- Re-runnable. On partially-filled memory,
/setuponly interviews the empty sections — useful well beyond literal first run, and harmless to re-run. - Skippable throughout. Every question can be skipped; partial answers are fine. Never block on completeness.
- Live files only. Writes go to
memory/*.md, never*.md.example. Sample content is never copied into live memory. - No fabrication. Capture only what the user states; leave unanswered sections blank.
- Use the user's local timezone for any dates written (
config.yaml: timezoneoverrides system TZ).
Learned from runs
(empty — populated as the skill is used)
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.

