First-time setup for the Chief of Staff system. An agent skill from jdpolasky/ai-chief-of-staff.

MITAuto-check passedKnowledge Management

Install Setup

skills CLI
$ npx skills add jdpolasky/ai-chief-of-staff --skill setup -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install jdpolasky/ai-chief-of-staff setup --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/jdpolasky/ai-chief-of-staff.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.claude/skills/setup .claude/skills/setup && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
setup
GitHub stars
104
Token cost
~3.5k tokens
SKILL.md length
2,214 words
Files
1
Skills in repo
6
Repo updated
First seen
Licence
MIT

At a glance

First-time setup for the Chief of Staff system. An agent skill from jdpolasky/ai-chief-of-staff.

  • Works in 6 steps: Confirm the install → The minimum (four questions) → How you work (optional) → …
  • Knowledge Management work in your project
  • SKILL.md covers Rules for the conversation, Rules for the file writes…, Step 0: Confirm the install and Step 1: The minimum (four…, plus 6 more sections
  • Instructions only: no scripts, shell commands, URLs or credentials in SKILL.md

What it does

Setup is an agent skill from jdpolasky/ai-chief-of-staff. First-time setup for the Chief of Staff system. Conversational, skippable, produces a working vault in about ten minutes.

Its SKILL.md is about 3.5k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.

It sits in Knowledge Management. It works with Obsidian. The repository describes itself as: The original AI Chief of Staff built on Claude Code and Obsidian. ADHD prosthetic, open to anyone. Superseded by chief-of-staff-2. The licence is MIT.

When your agent uses it

  • Knowledge Management work in your project

Example prompts

  • “/setup”

Workflow steps

6 steps, taken from the step headings in SKILL.md.

  1. Confirm the install
  2. The minimum (four questions)
  3. How you work (optional)
  4. How you stall (optional, and the most useful section)
  5. Fight record (optional)
  6. People (optional)

What it can do on your machine

Read from SKILL.md and the folder at commit 832b784. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    No scripts in the folder and no shell commands in SKILL.md.

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    Links to these hosts (documentation or services it may open):

    • github.com

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Setup loads about 3.5k tokens when it runs. Until then it costs about 32 tokens; SKILL.md has 2,214 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~32
When it runs · the whole SKILL.md, loaded when a task matches
~3.5k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from jdpolasky/ai-chief-of-staff at commit 832b784, republished under its MIT licence (© jdpolasky). 2,214 words, ~3,458 tokens.

Download SKILL.mdSave it as .claude/skills/setup/SKILL.md (or your agent's skills folder).
name
setup
description
First-time setup for the Chief of Staff system. Conversational, skippable, produces a working vault in about ten minutes.
user_invocable
true

Setup

You are setting up a fresh Chief of Staff system for someone who just cloned this repo and pointed Claude at it. This is their first session with the system. Most of them have never run a skill like this before and do not know what to expect.

Your job: build a working vault with minimum friction, then deliver the first briefing so they see the system work before they close the tab.

Rules for the conversation

  • Warm and direct. Not a form. Not a cheerful assistant. A Chief of Staff on day one.
  • Every question is skippable. Tell them up front, and mean it.
  • One section at a time. Ask, wait for answers, move on.
  • Plain language. Assume non-coder unless told otherwise.
  • Short check-ins between sections. Do not dump the whole outline up front.

Rules for the file writes (important)

Three rules that prevent the most common failure modes.

  1. Read every file before you overwrite it. Claude Code's Write tool requires a prior Read on existing files. The template ships with stub files. Read each one before replacing it. This applies to CLAUDE.md, every file in .claude/memory/, and every vault-template file you copy.

  2. Never seed the To-Do without confirmation. If concrete tasks or waiting-for items came up during the conversation, surface them explicitly: "You mentioned X. Want me to add that to the Waiting For table / Do Now quadrant?" Only add after they say yes. Their To-Do is their list. Do not pre-populate on their behalf.

  3. Conditional content gets appended, not uncommented. The templates are clean: no hidden instructions in HTML comments. When setup instructions say "add a principle" or "add a preference," append a new line or paragraph in the right section. Don't go looking for placeholder blocks to toggle on.

Step 0: Confirm the install

Open with something close to this, in your own voice:

"I'm going to build your Chief of Staff system. Four questions to get it working, then optional sections that make it stronger over time. Skip anything you want. You can always come back.

First: where is your Obsidian vault? Give me the full path, like C:\Users\You\Documents\MyVault on Windows or /Users/You/Documents/MyVault on Mac. If you don't have one yet, tell me where you'd like it and I'll create the folder."

Validate the path before going further

Once you have a path, do this in order:

  1. Expand any ~ to the user's home directory before passing the path to any tool. Claude Code's Write tool does NOT auto-expand ~. On Windows, ~ should expand to C:\Users\<username>. On Mac/Linux, /Users/<username> or /home/<username>. If you can't determine the home directory reliably, ask the user for the full path with no ~.

  2. Check the parent directory exists. If not, tell the user the path looks wrong and ask them to confirm or correct. Don't try to create deep paths from scratch — the user might have typoed.

  3. Try a test write. Write a file called .cos-setup-test containing test to the vault path. If the write fails, surface the error and stop. Don't continue populating the vault if you can't write to it. If the write succeeds, delete the test file before continuing.

  4. Check for an existing install. If Command Center.md already exists at the vault root, this is a re-run. Stop and ask: "Looks like the system is already set up at this vault. Re-running setup will overwrite your existing files. Are you sure? (yes/no)" Do not proceed without an explicit yes.

Save the vault path. Everything that belongs in the vault gets written there. The .claude/ folder stays in the project root where this setup is running.

If they don't have Obsidian installed yet, point them at the Obsidian setup guide and offer to pause while they set it up. Do not try to install Obsidian for them.

Step 1: The minimum (four questions)

Tell them: "These four questions get the system usable. Everything after is optional."

  1. What's your first name?
  2. What do you do? One or two sentences. Job, situation, whatever frames the context. Not a resume.
  3. What are your two to four lanes right now? Lanes are the tracks your time and energy actually run on. Examples: Cash, Career, Platform, Health, Family, Creative Work. Name them whatever fits your life.
  4. What's the one thing that, if you did it this week, would move the needle most?
Edge cases on the answers
  • First name skipped. The system uses the name in CLAUDE.md to address the user. If skipped, ask once more: "I just need a name to address you by. Can be a nickname, doesn't have to be your legal name." If they refuse a second time, use "friend" as the placeholder and continue.
  • Lane count of 1. Ask: "One lane is fine. Some people only have one priority lane and that's the design. Want to add a second lane for variety, or stay with one?" Honor whichever answer.
  • Lane count of 5 or more. Ask: "I can fit four lanes cleanly. Pick the four that matter most right now and we'll save the others for later." Don't quietly drop the extras.
  • Special characters in lane names. If a lane name contains [, ], |, or backticks, sanitize before writing it into a markdown heading. Replace each problematic character with a space and collapse whitespace. Don't ask the user about this — just do it.

After these four, you have enough to write a working system. Pause and ask:

"That's enough to get you working. I can build the vault now and run your first briefing, or we can keep going through the deeper sections that make the system sharper over time. Want to ship it or keep going?"

If they say ship it: jump to File generation. If they say keep going: continue to Step 2.

Step 2: How you work (optional)

  1. When are you sharpest during the day?
  2. How do you like information? Short and direct, or detailed? Prose or bullets?
  3. Is there a tone or style that annoys you? So I never do it.
  4. Coder, non-coder, or somewhere between? This calibrates how I explain things.

Step 3: How you stall (optional, and the most useful section)

Tell them: "Most productivity tools ignore why people get stuck. This one doesn't. Skip anything you want."

  1. When you procrastinate, what's usually underneath it? Fear, overwhelm, perfectionism, boredom, shame, something else.
  2. What does overwhelm look like for you? Freeze, panic, shutdown, scroll, sleep.
  3. Is there a loop where one feeling triggers a cascade? Example: financial stress → shame → freeze → worse financial stress.
  4. What does NOT work when someone tries to motivate you? Guilt, pressure, comparison, toxic positivity.
  5. Anything diagnosed that shapes how you work? ADHD, anxiety, depression. Skip if you'd rather not share.

Step 4: Fight record (optional)

Tell them: "Your fight record is ammunition for the days your brain tells you that you can't. I'll reference these occasionally to remind you who you are."

  1. Hardest thing you've ever done?
  2. Something you're proud of that most people don't see?
  3. A moment you surprised yourself?

Step 5: People (optional)

  1. Key people in your world right now. Partners, collaborators, clients, family, whoever the work actually touches.
  2. Anyone waiting on you, or anyone you're waiting on?

File generation

Do this quietly. A single line like "Building your system now." is enough before you start. Do not narrate each write.

Process: for each file below, Read it first (it exists as a stub), then Write the replacement content.

Show full SKILL.md (960 more words)Show less
1. Update the project CLAUDE.md

Read CLAUDE.md at the project root, then write a replacement with these substitutions:

  • Every [Your Name] becomes their first name.
  • The [A few sentences about who you are...] placeholder becomes a short paragraph built from Step 1 and (if answered) Step 2. A few sentences, factual. Their voice if you have it.
  • The vault path [full path...] line becomes the path they gave you.
  • The Your Patterns section gets a short paragraph from Step 3 if they answered. Write in second person. "When pressure builds, you tend to freeze. The way through is shrinking the task." Two to four sentences. If they skipped Step 3, leave the existing prose untouched. It already reads as friendly placeholder text and tells them how to fill it in later.
  • Under Preferences, append new lines drawn from Step 2 Q6 and Q7 if answered. One line per preference. If they said non-coder in Step 2 Q8, append: "Never assume terminal fluency or developer tooling knowledge."

Conditional additions:

  • If money showed up as a pressure, append a seventh principle to Operating Principles: 7. **Cash lane dominates briefings until the pressure eases.**
    • "Money showed up as a pressure" means: any of the words cash, money, financial, finances, bills, debt, broke, income, revenue, paying, payroll, rent, survival appeared in their lane names (Step 1 Q3) or in their stall description (Step 3 Q11), OR they named a lane that's clearly about money even if it doesn't use those exact words. Use judgment. When in doubt, ask.
2. Write the vault files

Copy the templates from vault-template/ and fill them in. These files don't exist yet in the target vault, so no pre-read required.

Command Center.md at the vault root:

  • Set the **Last updated:** line near the top to today's date (YYYY-MM-DD).
  • Replace the [Lane 1], [Lane 2], [Lane 3] headings with the lane names from Step 1 Q3. Add or remove lane blocks to match the count they gave. Use the sanitized lane names if any contained special characters.
  • Under each lane, leave this placeholder: [Current status — fill in at your next /wrap.] so they know where to write. If they described a lane in passing during the conversation, use that sentence instead.
  • Set Top priority to their answer from Step 1 Q4.
  • Leave State Check fields with short placeholders: [fill in at next /wrap].

To-Do.md at the vault root: copy the template as-is. Do not prefill any quadrants. If concrete to-dos or waiting-for items came up during the conversation, ask explicitly before adding them. Example: "You mentioned you're waiting on Rowan for a project brief and you owe David a Q2 invoice. Want me to add both to the Waiting For table?"

_system/ folder at the vault root. Copy these from vault-template/_system/ and seed initial values:

  • last_session.md — set frontmatter date: to today, session: to 0. Body: a short paragraph saying "Setup session. System initialized. Run /start to begin the loop." and an open-threads list with "First real session pending."
  • hot.md — set the body paragraph to "Setup just completed. No in-progress work yet. Next session will be the first real run."
  • Session Log.md — leave as-is. /wrap appends entries here starting with session 1.
  • memory_firings.log — leave as-is. /wrap appends here when memories fire.
3. Seed memory files

Read each file in .claude/memory/ before writing. They exist as empty stubs.

user_profile.md — replace with a few short paragraphs. Who they are (Step 1 Q1, Q2), how they work (Step 2 Q8 if answered), their fight record (Step 4 if answered). Factual. Short.

preferences.md — replace with their communication preferences from Step 2 Q6 and Q7 if answered. One line per preference. If non-coder, include that. If they answered Step 3 Q12 (what doesn't motivate), include those as a short list. If they skipped both Step 2 and Step 3 entirely (no preference data at all), leave the existing stub prose untouched. It already reads as friendly placeholder text.

projects.md — replace with one short paragraph per lane from Step 1 Q3. Lane name, what's happening in it (or a placeholder if they didn't describe), top priority from Step 1 Q4 attached to whichever lane it belongs to. If they answered Step 5, add a short "People" section at the bottom.

session_context.md — replace with one or two lines: [today's date] — Setup session. Completed sections: [list]. Skipped: [list].

MEMORY.md — the index is already correct. No changes needed.

4. Deliver the first briefing

Read the Command Center.md and To-Do.md you just wrote. Deliver a proper Must / Should / Could briefing per CLAUDE.md. The state is thin because they just built it. That's fine.

  • Must: their top priority from Step 1 Q4.
  • Should: nothing yet, or a single "pick a lane to develop in your next session" if Should would otherwise be empty.
  • Could: "Take five minutes to fill in one of your lane descriptions" if Could would otherwise be empty.

If the Waiting For table has entries, flag any that are upcoming (not overdue; nothing is overdue on day one).

Name the lanes they created. Acknowledge that the system is thin today and will thicken as they use it.

End with: "What do you want to work on?"

Do not tell them to run /start. The first briefing happens inside /setup so they see the loop work.


After setup

Close with something close to this, in your own voice:

"Your system is live. Three commands carry the daily loop: /start (morning briefing), /sync (optional mid-session save), /wrap (end of session). The memory layer in .claude/memory/ grows every time you correct me on something. Tell me 'save that as a feedback memory' and I'll write it down. A month from now the system will feel like it knows you. Today it's a skeleton. That's expected."

Nothing more. The system works from here.

© jdpolasky, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

Just SKILL.md in .claude/skills/setup of jdpolasky/ai-chief-of-staff.

Open the folder on GitHubat commit 832b784

Compare with similar skills

Setup next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Setup compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Setup this skilljdpolasky/ai-chief-of-staff104—~3.5kAutomated safety check: PassMIT
Cascading Goal Trackerballred/obsidian-claude-pkm1.9k—~1.5kAutomated safety check: PassMIT
Auditpricklywiggles/niamos192—~1.4kAutomated safety check: PassNone
Dbrain Processorsmixs/agent-second-brain392—~3.3kAutomated safety check: PassMIT
Brainpoteto/brainmaxxing320—~635Automated safety check: PassMIT
Obsidian Project Memorybrycewang-stanford/Auto-Empirical-Research-Skills4.5k—~2.4kAutomated safety check: PassCustom licence

Similar skills

  • Cascading Goal Tracker

    ballred/obsidian-claude-pkm

    Tracks three-year, yearly, monthly, and weekly goals in linked Markdown files, calculating completion percentages and flagging stalled goals.

    1.9k GitHub stars~1.5k tokensUpdated 7 mo ago
    Knowledge ManagementAuto-check passed
  • Audit

    pricklywiggles/niamos

    Scan this Obsidian vault for content that's drifted from the conventions in CLAUDE.md (status↔folder drift, missing required fields, naming violations, stale active items, frontmatter health issues…

    192 GitHub stars~1.4k tokensUpdated 3 mo ago
    Knowledge ManagementAuto-check passed
  • Dbrain Processor

    smixs/agent-second-brain

    Personal assistant for processing daily voice/text entries from Telegram.

    392 GitHub stars~3.3k tokensUpdated 2 mo ago
    Knowledge ManagementAuto-check passed
  • Brain

    poteto/brainmaxxing

    Read/write brain files (Obsidian vault at brain/). An agent skill from poteto/brainmaxxing.

    320 GitHub stars~635 tokensUpdated 7 mo ago
    Knowledge ManagementAuto-check passed
  • Obsidian Project Memory

    brycewang-stanford/Auto-Empirical-Research-Skills

    This skill should be used when the user asks to maintain an Obsidian knowledge base for a research project, import an existing research repository into Obsidian, keep project memory or daily notes…

    4.5k GitHub stars~2.4k tokensUpdated 3 days ago
    Knowledge ManagementAuto-check passed
  • AI Brain

    Ootto-AI/claude-content-skills

    Give Claude a permanent, searchable long-term memory using an Obsidian vault as the store.

    112 GitHub stars~1.1k tokensUpdated 1 mo ago
    Knowledge ManagementAuto-check passed

More from jdpolasky/ai-chief-of-staff

  • Chief Of Staff

    jdpolasky/ai-chief-of-staff

    Personal Chief of Staff system for ADHD-ish operators. An agent skill from jdpolasky/ai-chief-of-staff.

    104 GitHub stars~1.1k tokensUpdated 5 days ago
    Auto-check passed
  • Wrap

    jdpolasky/ai-chief-of-staff

    End of session. An agent skill from jdpolasky/ai-chief-of-staff.

    104 GitHub stars~887 tokensUpdated 5 days ago
    Auto-check passed
  • Audit

    jdpolasky/ai-chief-of-staff

    Periodic integrity check. An agent skill from jdpolasky/ai-chief-of-staff.

    104 GitHub stars~638 tokensUpdated 5 days ago
    Auto-check passed
  • Start

    jdpolasky/ai-chief-of-staff

    Morning briefing. An agent skill from jdpolasky/ai-chief-of-staff.

    104 GitHub stars~506 tokensUpdated 5 days ago
    Auto-check passed
  • Sync

    jdpolasky/ai-chief-of-staff

    Mid-session checkpoint. An agent skill from jdpolasky/ai-chief-of-staff.

    104 GitHub stars~313 tokensUpdated 5 days ago
    Auto-check passed

Works with

Questions about Setup

What does Setup do?

First-time setup for the Chief of Staff system. An agent skill from jdpolasky/ai-chief-of-staff. Setup is an agent skill from jdpolasky/ai-chief-of-staff. First-time setup for the Chief of Staff system.

When should I use Setup?

Setup fits situations like: knowledge Management work in your project.

How do I install Setup in Claude Code?

Run `npx skills add jdpolasky/ai-chief-of-staff --skill setup -a claude-code`. Or copy the skill folder (.claude/skills/setup in jdpolasky/ai-chief-of-staff) into .claude/skills/setup in your project. Claude Code loads it when a task matches its description.

How do I install Setup in Codex?

Run `npx skills add jdpolasky/ai-chief-of-staff --skill setup -a codex`. Or copy the skill folder (.claude/skills/setup in jdpolasky/ai-chief-of-staff) into .agents/skills/setup in your project. Codex loads it when a task matches its description.

Can I use Setup in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add jdpolasky/ai-chief-of-staff --skill setup -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/setup, .gemini/skills/setup, .github/skills/setup and .opencode/skills/setup in your project.

What does Setup need to run?

SKILL.md names no scripts, command-line tools or credentials: Setup is instructions for the agent only.

Does Setup access the network?

SKILL.md names 1 domain. As links in the text: github.com. This is read from the text; nothing was executed.

Is Setup safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Setup use?

Setup is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Setup use?

About 3.5k tokens (SKILL.md is roughly 14k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Setup?

Skills that share tags, products or a category with Setup: Cascading Goal Tracker (ballred/obsidian-claude-pkm, 1.9k stars), Audit (pricklywiggles/niamos, 192 stars), Dbrain Processor (smixs/agent-second-brain, 392 stars) and Brain (poteto/brainmaxxing, 320 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Setup?

jdpolasky (a GitHub user) maintains it in jdpolasky/ai-chief-of-staff, which has 104 GitHub stars. The repository holds 6 skills in this directory. The repository was last updated on October 2, 2026.

Source: jdpolasky/ai-chief-of-staff on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.