agentleFS
dean815dean815/claude-project-optimizer/skills/skip/SKILL.md

skip

Skill0 starsChanged 4 months agoMITView on GitHub

This skill should be used when the user declines or defers the project-optimizer onboarding offer — answering the first-session question with "no thanks", "nah", "not now", "skip it", "never for this project", "don't ask again here", "stop asking", or "remind me later" — or asks to stop the project-optimizer SessionStart hook from prompting in a directory. Records the directory as declined (permanent) or snoozed (temporary). Not for skipping a step, file, or test during ordinary work.

1 other project uses a version of this.

Adopted by

Most recently taken up by

  • Other versions1 project uses a version of this.

    Word for word · 0

    None found.

    Edited · 0

    None found.

    Wrote their own version · 1

    1. ProjectAJ14/eklavya★ 29same name

    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.

  • In this repository5 other files it gives its agents.

The file

We split this skill into the rules it gives an agent

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

  • ≈0

    Common · estimate

    Many files like this have a rule of this kind.

  • ≈1

    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. Distinctive:

    Check the existing entry first:

    line 43
  2. Very specific:

    If the status is already optimized, this directory was onboarded and the hook is already quiet here.

    line 49
  3. Very specific:

    Default <path> to the current working directory when none is given.

    line 66
  4. Very specific:

    When ~/.claude/linear-sync/registry.json exists, onboarding also covers issue tracking, so a permanent decline here must land there too or …

    line 73
  5. Very specific:

    Do this for declined only.

    line 84

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

Skip Onboarding

Record a directory so the project-optimizer SessionStart hook stops offering onboarding there.

Arguments

Arguments are optional and free-form. Map them before anything else:

  • never, no, decline → declined
  • snooze, later, or no keyword at all → snoozed
  • A bare number, or a number following snooze → the window in days (default 7)
  • Anything path-shaped → the target directory

Invoked bare, with no offer on screen to interpret, snooze the current directory for 7 days.

Choosing the status

Two outcomes, and the difference matters:

  • declined — permanent. The hook never offers here again. Use for directories that are not projects, throwaway scratch space, or projects deliberately left unconfigured.
  • snoozed — temporary, defaults to 7 days. The offer returns after the window. Use when the user is mid-task and does not want to deal with it now.

Interpret intent rather than demanding a keyword. "Never", "don't ask again", and "this isn't a project" mean declined. "Not now", "later", "I'm busy", and "remind me next week" mean snoozed. When genuinely ambiguous, default to snoozed — it is the recoverable choice, and a wrong permanent decline is silently annoying months later.

Recording

Check the existing entry first:

bash "${CLAUDE_PLUGIN_ROOT}/scripts/registry.sh" get "<path>"

If the status is already optimized, this directory was onboarded and the hook is already quiet here. Say so and record nothing — writing declined would discard a real result and fix nothing.

Otherwise record it:

# Permanent
bash "${CLAUDE_PLUGIN_ROOT}/scripts/registry.sh" set "<path>" declined

# Temporary, default 7 days
bash "${CLAUDE_PLUGIN_ROOT}/scripts/registry.sh" set "<path>" snoozed "" 7

# Temporary, explicit window
bash "${CLAUDE_PLUGIN_ROOT}/scripts/registry.sh" set "<path>" snoozed "" 30

Default <path> to the current working directory when none is given. When the offer came from the SessionStart hook, reuse the exact path the hook printed in its message rather than re-deriving it — the registry is keyed by exact string match, and a symlink-resolved variant creates an entry that silences nothing.

The companion registry

When ~/.claude/linear-sync/registry.json exists, onboarding also covers issue tracking, so a permanent decline here must land there too or that side is asked again later. After a successful declined write, run:

REG="$HOME/.claude/linear-sync/registry.json"; DIR="<path>"; tmp="$(mktemp)"
[ -f "$REG" ] && jq --arg p "$DIR" --arg slug "$(basename "$DIR")" --arg now "$(date -u +%Y-%m-%dT%H:%M:%SZ)" \
  '.projects[$p] = ((.projects[$p] // {}) + {slug:$slug, status:"declined", createdAt:$now})' \
  "$REG" > "$tmp" && mv "$tmp" "$REG"

Do this for declined only. A snooze is temporary and needs no mirror. When the file does not exist, skip this silently — it is a machine-local companion, not part of the plugin.

Confirming

Run registry.sh set before saying anything about the outcome. The failure this guards against is answering "snoozed for 7 days" conversationally without ever writing the entry: the user believes the offer is deferred, nothing is recorded, and it returns on the very next session. A verbal acknowledgement is not a skip. Measured at 2 of 4 deferrals before this was made explicit.

Reply in one line: what was recorded, for which directory, and when it expires if snoozed. Do not explain the registry, restate the plugin's purpose, or offer alternatives — the user just declined something and wants to get on with their work.

registry.sh exits non-zero and writes to stderr when it cannot record, most often because jq is not installed. Never confirm a skip that did not happen. Say plainly that the directory was not recorded, give the error, and note that the offer will return next session.

If asked to undo

# Make the offer return here
bash "${CLAUDE_PLUGIN_ROOT}/scripts/registry.sh" remove "<path>"

# Show every recorded project and status
bash "${CLAUDE_PLUGIN_ROOT}/scripts/registry.sh" list

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.