From second-brain
Detect existing AI-context files on the host (CLAUDE.md, AGENTS.md, .cursorrules, .windsurfrules, .continuerules, .aider.conf.yml, instructions.md) at $HOME and the current repo, and propose USER.md preferences plus PROJECT.md content. Prompts to confirm each chunk. Idempotent.
npx claudepluginhub cain-ish/claude-code-plugin --plugin second-brainThis skill is limited to using the following tools:
<!-- user instruction verbatim: "1" -->
Mandates invoking relevant skills via tools before any response in coding sessions. Covers access, priorities, and adaptations for Claude Code, Copilot CLI, Gemini CLI.
Share bugs, ideas, or general feedback.
Bootstrap the v1.0 hot tier (USER.md + PROJECT.md) from AI-context files you've already written for Claude Code, Aider, Cursor, Continue, Windsurf, or AGENTS.md (the OpenCode/agent-rules standard). The skill is read-only against your host files and explicit-confirm against second-brain writes.
Walk known locations and report what exists. Search at two scopes: home ($HOME) and the current repo root (the directory containing .git, walking up from cwd).
declare -a CANDIDATES=(
"$HOME/CLAUDE.md"
"$HOME/AGENTS.md"
"$HOME/.cursorrules"
"$HOME/.windsurfrules"
"$HOME/.continuerules"
"$HOME/.aider.conf.yml"
"$HOME/.claude/CLAUDE.md"
"$HOME/.claude/instructions.md"
)
GIT_ROOT=$(git rev-parse --show-toplevel 2>/dev/null)
if [ -n "$GIT_ROOT" ]; then
for f in CLAUDE.md AGENTS.md .cursorrules .windsurfrules .continuerules .aider.conf.yml instructions.md; do
[ -f "$GIT_ROOT/$f" ] && CANDIDATES+=("$GIT_ROOT/$f")
done
fi
for c in "${CANDIDATES[@]}"; do
if [ -f "$c" ]; then
LINES=$(wc -l < "$c" | tr -d ' ')
printf ' %s (%s lines)\n' "$c" "$LINES"
fi
done
Report the matched list to the user. If nothing matches, exit with: "No host AI-context files found — run /second-brain:setup to scaffold from scratch."
For each detected file, read the first ~60 lines. Decide whether the content is primarily:
USER.md.PROJECT.md.Files at $HOME are usually user-level. Files at $GIT_ROOT are usually project-level. The first ~60-line read confirms.
Report the categorisation to the user before any writes.
For files (or slices) categorized as user-level:
Append these <N> preferences to USER.md? (Y / N / edit)Y: for each preference, call pin_to_user(text: "<preference>"). The MCP tool enforces a 15-line cap on USER.md and adds a dated - [YYYY-MM-DD] … entry; on overflow it returns {ok: false} and the skill must surface the rejection.edit: let the user revise the block, then re-prompt.N: skip.If ~/.second-brain/USER.md does not exist yet, the first pin_to_user call will create it with the standard header.
For files (or slices) categorized as project-level, resolve the active project slug:
SLUG=$(basename "$(git rev-parse --show-toplevel 2>/dev/null || pwd)")
If ~/.second-brain/projects/$SLUG/PROJECT.md does not exist, instruct the user to run /second-brain:setup first — this skill fills in content but does not scaffold the file.
If it exists, propose section-by-section:
Replace existing Goal? (Y/N/edit). Apply via Edit tool — replace the body of the ## Goal section only.## Conventions.pin_to_project(text: "<decision text>", slug: "$SLUG", section: "decisions") on accept. The tool prefixes - [decision] automatically.pin_to_project(text: "<blocker text>", slug: "$SLUG", section: "blockers") on accept. The tool prefixes - [active] automatically.Skip ## State and ## Cross-references — those are runtime-maintained, not import targets.
Before each pin_to_user or pin_to_project proposal, grep the destination file for the candidate text. If a fuzzy match exists, prompt: <text> already present (or close); skip / replace? and act accordingly.
Report a one-block summary:
# Import summary
- USER.md: 4 preferences appended (skipped 1 duplicate)
- PROJECT.md (my-repo):
- Goal updated
- Conventions updated
- 2 [active] blockers added
- 1 [decision] decision added
- Source files left untouched.
Suggest follow-ups: /second-brain:lint (catch any orphan or dead references introduced by the import) and /second-brain:status (sanity-check hot-tier byte counts stay under cap).
/second-brain:setup. Re-running it later is safe but will mostly hit the duplicate-skip path.~/CLAUDE.md, .cursorrules, etc.). They stay where they are.pin_to_user, pin_to_project) or direct Edits on PROJECT.md. There is no critic-gate, no persona/quality-rules file, no archive_to_wiki invocation here — those are explicit user actions handled by /second-brain:improve.pin_to_user); USER.md + PROJECT.md combined ~3200 bytes target. If a proposed import would push over, distill harder before re-trying.