aae4d42229
Adds the agent-facing workspace and a 20-task plan for migrating the site to Astro. Nothing here implements the refactor; these are briefs, rules and templates that the task agents read. - .agents/ holds context, rules, checklists, skills, specialist agents, component/page/config templates and gate scripts. It is vendor-neutral so MiniMax, Gemini and Codex can all read it; CLAUDE.md just points at AGENTS.md. - .husky/ plus .lintstagedrc.json wire the three gate tiers. gate.sh locks on the shared git-common-dir so parallel worktrees serialise, and guards the assertion count in scripts/verify.mjs against a coverage drop. - plans/astro-refactor/ carries the phase graph, per-task briefs and the model-routing recommendation. These files must be tracked before fanning out: a worktree only checks out tracked files, so an untracked plan is invisible to every agent working in one. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
30 lines
925 B
Bash
Executable File
30 lines
925 B
Bash
Executable File
#!/usr/bin/env bash
|
|
# `.agents/` is the vendor-neutral home for this project's rules, skills, and
|
|
# agent definitions — MiniMax, Gemini, and Codex all read plain files from it.
|
|
#
|
|
# Claude Code, however, discovers subagents and skills at fixed paths. This
|
|
# symlinks them so there is exactly ONE copy of every definition and no drift.
|
|
#
|
|
# .agents/scripts/install-claude-agents.sh
|
|
set -euo pipefail
|
|
|
|
root="$(git rev-parse --show-toplevel)"
|
|
cd "$root"
|
|
|
|
mkdir -p .claude
|
|
|
|
for target in agents skills; do
|
|
link=".claude/$target"
|
|
if [ -e "$link" ] && [ ! -L "$link" ]; then
|
|
echo "refusing: $link exists and is not a symlink — move it aside first" >&2
|
|
exit 1
|
|
fi
|
|
ln -sfn "../.agents/$target" "$link"
|
|
echo "linked $link -> .agents/$target"
|
|
done
|
|
|
|
echo
|
|
echo "Claude Code will now load:"
|
|
ls -1 .agents/agents/*.md | sed 's|.*/| agent: |;s|\.md$||'
|
|
ls -1d .agents/skills/*/ | sed 's|.*/skills/| skill: |;s|/$||'
|