agentleFS
AirMileAirMile/claude-config/skills/core-setup/SKILL.md

core-setup

Skill0 starsChanged 4 months agoMITView on GitHub

Use when a project needs initializing or onboarding. Use with /core-setup.

The file

We split this skill into the rules it gives an agent

4 rules. About 0 are common, 0 are distinctive, and 4 are very specific to this project.

  • ≈0

    Common · estimate

    Many files like this have a rule of this kind.

  • ≈0

    Distinctive · estimate

    This author's own choices. Worth a look.

  • 4

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Very specific:

    Before all steps: if ~/.claude/CLAUDE.md is missing, display:

    line 66
  2. Very specific:

    Read marker: mode field determines the destination — greenfield or mature.

    line 73
  3. Very specific:

    Delete marker immediately after reading: rm -f .project/session/setup-pending.json.

    line 74
  4. Very specific:

    If --mode=... flag is present: delete marker (rm -f) but honor the explicit flag.

    line 78

≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “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

Project Setup Skill

Trigger: /core-setup [--mode=greenfield|mature|audit|resync|install] [module] [--no-llm] [--scope=<dir>]

--scope=<dir> applies to mature mode only: limits the codebase scan to one directory (monorepo package) — see references/mode-mature.md § Scan budget. Pass through together with --no-llm.

Hub skill that detects what the project needs and loads the appropriate flow. Not global ~/.claude/ setup — that's /core-bootstrap.

"Let Claude decide" Option

Add a final "Let Claude decide" option ONLY to modals that present a genuinely open technical choice — multiple viable options where no single one can be pre-blessed at authoring time (e.g. multi-select stack composition, suggestion sets). It is the steer when the modal has no single "(Recommended)" option.

  • Label: "Let Claude decide"
  • Description: "Claude picks the best option based on your project context and best practices"

Do NOT add it when the modal already conveys a pick — the two are mutually exclusive:

  • A single option is marked "(Recommended)" (e.g. install/skip prompts) — that label IS Claude's pick.
  • Detection pre-selected a value (e.g. team/solo mode, module-gap slots) — the detected default is the steer.
  • Personal-preference / identity modals: project name, description, language, commit messages.

When selected: pick the best option based on project context and best practices. Display:

CLAUDE'S PICK: {chosen option} — {brief reason}

Modal Option Cap

For dynamic multi-select modals (Audit fixes, Resync drift, Tech stack, Suggestions, Documentation Generators): apply shared/SKILL-PATTERNS.md § Modal Option Cap — the cap is 4 options (tool-enforced maxItems: 4, not a style preference); split into sequential category modals above that, or route to Numbered List Selection when the option count is unbounded/runtime-dependent.


Phase 0: Detect Mode

Before all steps: if ~/.claude/CLAUDE.md is missing, display:

Global bootstrap not done yet. Run /core-bootstrap first to initialize ~/.claude/.

Stop.

  1. Check setup-pending marker — if .project/session/setup-pending.json exists and no explicit --mode= flag was passed:

    1. Read marker: mode field determines the destination — greenfield or mature.
    2. Delete marker immediately after reading: rm -f .project/session/setup-pending.json.
    3. Display: project-add handoff — starting {mode} flow directly.
    4. Load references/mode-{mode}.md. Skip steps 1-5.

    If --mode=... flag is present: delete marker (rm -f) but honor the explicit flag.

  2. Module arg check — if the invocation includes a non-flag argument (anything not prefixed with --mode= or --no-llm): treat it as module_arg and match (case-insensitive) against tier-1 modules: inspect-overlay, tailwind, shadcn-ui, vitest, playwright, biome, eslint-prettier, zustand, tanstack-query, react-hook-form-zod
    • Match → load references/mode-install.md with direct_module=<module_arg>. Skip steps 2-4.
    • No match → load references/mode-install.md with direct_research=<module_arg> (research path). Skip steps 2-4.
  3. Check --mode flag — if provided, skip step 3 and load the corresponding reference directly:
    • --mode=greenfield → references/mode-greenfield.md
    • --mode=mature → references/mode-mature.md (pass through --no-llm flag if present)
    • --mode=audit → references/mode-audit.md
    • --mode=resync → references/mode-resync.md
    • --mode=install → references/mode-install.md
  4. Detect existing project — run both scripts in one call:

    MODE=$(python3 ~/.claude/skills/core-setup/scripts/detect-mode.py --path .)
    EXISTING=$(python3 ~/.claude/skills/core-setup/scripts/detect-existing.py --path .)

    MODE is one of greenfield | mature | ambiguous. EXISTING reports whether config files exist (any detected config = "yes" below).

  5. Choose mode — the table below is the ONLY routing authority. Match exactly one row on MODE + EXISTING; never override the script output based on your own impression of the project:

    MODEExisting configs?ActionUser-facing one-liner
    greenfieldnoLoad mode-greenfield.md directlyNew project — starting setup wizard.
    greenfieldyesAskUserQuestion: Greenfield wizard / Mature scan / Audit / ResyncExisting project detected — choose below.
    mature(ignore)Load mode-mature.md directlyExisting project — scanning codebase.
    ambiguous(ignore)AskUserQuestion: Greenfield wizard / Mature scan / AuditProject state unclear — choose below.

    Reporting rule: show only the one-liner from the table above to the user. No filenames (mode-greenfield.md), no script output, no internal classification terms. Detection details belong in a debug mode, not in the happy path.

    AskUserQuestion for ambiguous / existing configs (single-select):

    • Greenfield wizard — "New project, I want to configure stack and standards" → mode-greenfield.md
    • Mature scan (Recommended for existing project) — "Existing project, scan the codebase and build base memory (incl. Module Gap modal for empty tier-1 slots)" → mode-mature.md
    • Audit — "Check what's missing, no full setup" → mode-audit.md
    • Resync (only for greenfield + existing configs, not for ambiguous) — "Only update CLAUDE.md template sections" → mode-resync.md
  6. Load the chosen reference.

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.