agentleFS
kiloloopkiloloop/iantha/.claude/skills/setup/SKILL.md

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

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.
  • juancruzmunozalbeloSkill

    add-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

  • MicrosoftSkill

    add-discord

    Add Discord bot channel integration via Chat SDK.

    Also in 11 projects that use this

  • MicrosoftSkill

    add-slack

    Add Slack channel integration via Chat SDK.

    Also in 11 projects that use this

  • juancruzmunozalbeloSkill

    add-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

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
  1. Very specific:

    When the user runs /setup (or you offer it and they accept), do the following:

    line 12
  2. Very specific:

    Read config.yaml (and config.local.yaml if present, with local overriding).

    line 16
  3. Distinctive:

    If the user declines: stop cleanly.

    line 26
  4. Distinctive:

    Every question is skippable; partial answers are fine: If the user says "skip", "that's enough", or "rest later", stop asking and write …

    line 32
  5. Distinctive:

    Keep it light. This is intake, not an interrogation — let the user bail at any point.

    line 47
  6. Very specific:

    Write to the live .md files only — never the *.md.example seeds, and never copy seed content into live memory.

    line 51
  7. Distinctive:

    Don't fabricate: Write only what the user actually said.

    line 58
  8. Very specific:

    Update the *Updated:* timestamp on every file you touch.

    line 59
  9. Very specific:

    Run /morning on the freshly seeded data.

    line 63
  10. Very specific:

    If vault_dir is configured, /morning will offer its usual daily-note write — let it.

    line 64
  11. Very specific:

    Remove the whole ## First-Run Notes section from CLAUDE.md — it's blank-clone-only

    line 75
  12. Very specific:

    Remove the fresh-clone demo paragraph from .claude/skills/morning/SKILL.md step 2

    line 76
  13. Distinctive:

    Don't push unless the user asks.

    line 86
  14. Distinctive:

    Skippable throughout: Every question can be skipped.

    line 92
  15. Very specific:

    Use the user's local timezone for any dates written (config.yaml: timezone overrides system TZ).

    line 95

“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.

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

/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 (and config.local.yaml if present, with local overriding). Note timezone (falls back to system TZ) and user_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.example seeds 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):

    #QuestionLands in
    1Name, role, what you're working on broadlypersonal.md → About + Life Context
    2Your top 3 focus areas right nowpriorities.md → Top 3
    3Current tasks + any deadlinestasks.md → Urgent / Work / Personal
    4Routines worth knowing (gym, weekly review, standing commitments)personal.md → Routines
    5Key people (family, close colleagues)personal.md → People
    6Anything time-bound coming up (trips, events, renewals)tasks.md + priorities.md → Watch
    7How you like things (communication style, scheduling habits)personal.md → Preferences
    8Any standing decisions worth recordingdecisions.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 .md files only — never the *.md.example seeds, 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.example files as the format reference for what filled content looks like.
  • Routing:
    • personal.md → About, Preferences, Routines, People, Life Context
    • tasks.md → Urgent (deadline ≤ 2 days), Work, Personal — honor Rule A's deadline-based placement; add [P1]/[P2] labels only where the user signaled urgency
    • priorities.md → Top 3, Active, Watch
    • decisions.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 /morning on 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_dir is configured, /morning will 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):
    1. git rm memory/*.md.example — the sample seeds
    2. Drop the first-run demo banner from memory/MEMORY.md
    3. Remove the whole ## First-Run Notes section from CLAUDE.md — it's blank-clone-only
    4. Remove the fresh-clone demo paragraph from .claude/skills/morning/SKILL.md step 2
    • Keep the /setup skill 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, /setup only 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: timezone overrides system TZ).

Learned from runs

(empty — populated as the skill is used)

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.