From mf
Prime the current project for the mindfunnel workflow — create CLAUDE.md / AGENTS.md / SOUL.md symlinks into ~/.mindfunnel/, touch an empty PROJECT.md if absent, and add SOUL.md to .gitignore if this is a git repo. Run from the project root. Idempotent with a safety guard — prompts before overwriting pre-existing non-symlink files with the same names. Requires /mf:setup to have been run first.
How this skill is triggered — by the user, by Claude, or both
Slash command
/mf:primeThis skill is limited to the following tools:
The summary Claude sees in its skill listing — used to decide when to auto-load this skill
Set up the current project's root so that `/mf:spinup` and `/mf:dump` have the files they expect: `CLAUDE.md`, `AGENTS.md`, `SOUL.md` as symlinks into `~/.mindfunnel/`, plus a project-local `PROJECT.md`. Run **once per project**, from the project root.
Set up the current project's root so that /mf:spinup and /mf:dump have the files they expect: CLAUDE.md, AGENTS.md, SOUL.md as symlinks into ~/.mindfunnel/, plus a project-local PROJECT.md. Run once per project, from the project root.
pwd before acting if there's any doubt.AGENTS.md or CLAUDE.md, flag it and ask the user before replacing it. A symlink already pointing at the correct target is a no-op.~/.mindfunnel/ must already be set up. If it isn't, stop and tell the user to run /mf:setup first.SOUL.md is personal. It's added to .gitignore in any git repo — never checked in.~/.mindfunnel/ is readyCheck that ~/.mindfunnel/AGENTS.md exists and is readable:
[ -r "$HOME/.mindfunnel/AGENTS.md" ] && echo ready || echo missing
If missing, stop with:
~/.mindfunnel/isn't set up yet. Run/mf:setupfirst, then re-run/mf:prime.
Do not proceed.
For each of CLAUDE.md, AGENTS.md, SOUL.md in the cwd, classify:
for f in CLAUDE.md AGENTS.md SOUL.md; do
if [ -L "$f" ]; then
printf '%s → %s\n' "$f" "$(readlink "$f")"
elif [ -e "$f" ]; then
printf '%s (regular file)\n' "$f"
else
printf '%s (absent)\n' "$f"
fi
done
If anything lands in the other symlink or regular file bucket, present the findings to the user in one short block and ask "Replace these with mindfunnel symlinks? [y/N]". Only proceed on an explicit yes. On no or silence, skip those targets and continue with the absent ones.
The symlink chain mirrors what the old bin/mindfunnel shell script did:
# CLAUDE.md points at ~/.mindfunnel/CLAUDE.md (which itself symlinks to AGENTS.md)
ln -s "$HOME/.mindfunnel/CLAUDE.md" CLAUDE.md
# AGENTS.md points at the local CLAUDE.md (same content, standard alias)
ln -s CLAUDE.md AGENTS.md
# SOUL.md points directly at the shared one in ~/.mindfunnel/
if [ -e "$HOME/.mindfunnel/SOUL.md" ]; then
ln -s "$HOME/.mindfunnel/SOUL.md" SOUL.md
else
echo "!! $HOME/.mindfunnel/SOUL.md is missing. Skipping SOUL.md symlink."
echo " Create it (or re-run /mf:setup), then re-run /mf:prime."
fi
For any target the user approved replacing in step 2, rm -f it before the ln -s. For a correct symlink that already points at the right target, do nothing — don't re-create it.
PROJECT.md if absent[ -e PROJECT.md ] || touch PROJECT.md
Never overwrite an existing PROJECT.md. If the project already has one, leave it alone.
SOUL.md to .gitignore in a git repoCheck whether the current directory is inside a git working tree. If so, ensure SOUL.md is listed in .gitignore:
if git rev-parse --git-dir >/dev/null 2>&1; then
if [ ! -f .gitignore ] || ! grep -qx 'SOUL.md' .gitignore; then
echo 'SOUL.md' >> .gitignore
echo "Added SOUL.md to .gitignore"
fi
fi
Don't do this if the project isn't a git repo — the file is pointless otherwise.
Emit a short summary, ≤ 10 lines. For each symlink: created, already correct (no-op), replaced (user approved), or skipped (user declined or source missing). For PROJECT.md and .gitignore: one-liner each.
CLAUDE.md created → ~/.mindfunnel/CLAUDE.md
AGENTS.md created → CLAUDE.md
SOUL.md created → ~/.mindfunnel/SOUL.md
PROJECT.md created (empty)
.gitignore added SOUL.md
All three symlinks already correct. PROJECT.md present. .gitignore already lists SOUL.md. Nothing to do.
AGENTS.mdFound: AGENTS.md (regular file, 2.3 KB)
This looks like an existing, hand-written AGENTS.md. Replacing it with the
mindfunnel symlink would discard its contents.
Replace it with a mindfunnel symlink? [y/N]
If user says no: prime the other two targets, skip AGENTS.md, note the skip in the report.
~/.mindfunnel/ isn't set up"Run /mf:setup first. /mf:prime depends on the shared scaffolding existing.
The old file is gone. Symlinks don't preserve history. Recover from git (git show HEAD:AGENTS.md > AGENTS.md) if possible. Otherwise, restore from backup or rewrite.
AGENTS.md / CLAUDE.md is already a symlink pointing into some other directoryThat's an unusual setup — probably a different convention the user is following. Ask, don't replace blindly. The user may want to keep the existing symlink.
PROJECT.md with placeholder content. It's created empty on purpose; the user fills it in as the project develops. A non-empty default encourages copy-paste that never gets edited.SOUL.md to .gitignore outside a git repo. The file would be meaningless and leave noise behind./mf:setup if ~/.mindfunnel/ is missing. Ask the user; doing it silently hides the coupling.Guides creation, editing, and verification of skills for AI coding agents using test-driven development with subagent scenarios. Use when authoring or debugging skills.
npx claudepluginhub emaballarin/ccplugins --plugin mf