skills/agent-symlink-init/SKILL.md
Initialize or migrate agent-skill symlinks in any repository. Use when a project needs `.claude/skills` linked to `.agents/skills`, `AGENTS.md` linked to `CLAUDE.md`, migration away from `.ruler`-based AI rules, or removal of legacy `sync-llm-skills` copy/sync setups. Trigger on requests about Claude/Codex skill symlinks, AGENTS/CLAUDE symlinks, `.claude/skills` setup, replacing copied skill folders with symlinks, or cleaning old ruler/sync automation.
npx skillsauth add adonis0123/adonis-skills agent-symlink-initInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Set up or migrate a repository to the symlink-based agent-skill layout.
.agents/skills the source of truth..claude/skills points at the repository's .agents/skills directory.AGENTS.md is a symlink to CLAUDE.md when CLAUDE.md exists.Work only from the repository root. Require either .git/ or package.json.
Inspect these paths first:
.agents/skills.claude/skillsCLAUDE.mdAGENTS.mdpackage.json.gitignoreClassify the work into these modules:
symlink-init
Run when .claude/skills is missing or does not point at the repository's .agents/skills directory, or when AGENTS.md should point to CLAUDE.md but does not.migrate-from-ruler
Run when a .ruler directory exists or package.json still contains ruler-related scripts or postinstall fragments.migrate-from-sync
Run when a sync-llm-skills.ts file exists under scripts/ or package.json still contains skills:sync:llm or --sync-llm.Summarize the detected modules before making destructive changes. If the migration will delete the .ruler directory or sync scripts, tell the user exactly what will be removed.
symlink-init.agents/skills exists:mkdir -p .agents/skills
.claude exists:mkdir -p .claude
.claude/skills is a regular directory or file instead of a symlink, preserve it before replacing it:
ln -sfn ../.agents/skills .claude/skills
CLAUDE.md exists, ensure AGENTS.md points to it:
AGENTS.md is a regular file, back it up before replacing itln -sfn CLAUDE.md AGENTS.md
.gitignore:
# Agent skills (symlinked), # START Ruler Generated Files).migrate-from-rulerRun this module only when ruler artifacts still exist.
package.json:
ruler:apply or ruler:checkpostinstallpostinstall entirely if nothing remains.gitignore:
/CLAUDE.md, /AGENTS.md if they were ruler-generated ignores)/AGENTS.md to .gitignore — the symlink must be tracked by gitCLAUDE.md unless the user explicitly asks. The goal is to replace the automation mechanism, not to discard the current source-of-truth document.migrate-from-syncRun this module only when legacy copy/sync automation is present.
scripts/ if it exists.package.json:
scripts["skills:sync:llm"]--sync-llm flag from skills:test:local if the rest of the command is still validpostinstallpostinstall entirely if nothing remains.gitignore:
.agents/skills contents in place. Migrate the linkage model, not the skill payload itself.package.json scripts.postinstall, remove only the obsolete command fragment and keep remaining commands in order.Run lightweight checks after editing:
test -L .claude/skills && readlink .claude/skills
test -f CLAUDE.md && test -L AGENTS.md && readlink AGENTS.md
Also inspect:
package.json for stale ruler or sync commands.gitignore for duplicate or contradictory entriesgit diff --stat or equivalent to summarize the migrationReturn:
postinstall behavior changedtools
Use when the user's pain is "adding/removing one more X means editing N files" and X is a recurring variant kind: popup, banner, modal, ad slot, payment method, AI model/tool, form field type, connector, sub-site, command, menu item, agent, extension point, or data source. Use when they want to design, refactor, review, name, or explain a pluggable mechanism using registry, interface/trait contract, runtime core, and convention folders; mention pluginize, pluggable, plugin architecture, extension point, registry pattern, or extensibility. Use when explaining the first-principles rationale, DDD/SOLID/OCP mapping, or industry analogies behind that structure. Use for cross-stack mapping to VSCode contributes, Webpack/Vite plugins, Rust/Tauri connectors, Python entry_points, or cargo features. Skip one variant's internals/styles/hooks/copy/bugs, and skip register/registry meaning DI container, user signup, or package registry.
development
Use BEFORE heavier workflow skills when route choice matters. Route creative work without a design doc/spec to Brainstorm; destructive or hard-to-reverse work to Discuss; unresolved decisions, Plan/Full fan-out, ship checks, unclear bugs, and fresh-eyes fix-then-re-review need this gate. Skip single-line read-only lookups, pure typo/formatting edits, trivial safe one-line fixes, and clearly safe named-skill requests. Outputs Route, Runtime skill, Fallback alias, and Execution path.
development
Cross-agent code review handoff and review-fix-re-review loop with persistent packet artifacts. Requires a git repo because packet addressing uses git rev-parse --show-toplevel. Use when the user asks for an independent, read-only second pair of eyes on a diff/branch/PR another agent or teammate implemented; asks to verify reviewer feedback before fixing; says a fix is done and wants scoped re-review; asks to continue the latest review packet; or asks for first-principles, DDD, high-cohesion/low-coupling review. Persists each loop under $repo_root/.review-handoff/active/ so agents can resume without copy-paste. Do NOT use for ordinary implementation, generic staged-change review, review-comment copy editing, non-git folders/zips/tarballs/temp dirs, or when the user names a different review skill.
testing
Enforces 'decide then plan' discipline - the pre-planning decision gate. Use when the user asks for a plan or starts a change while key decisions are unresolved: architecture tradeoffs, data flow, public interfaces, unclear requirements, multi-module scope, or roughly 5+ files affected. Also triggers when the user explicitly wants to discuss, compare options, or review architecture before committing. Core job: reduce incorrect-execution cost by confirming decisions before producing executable plans.