docs: add .agents workspace and the Astro refactor plan
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>
This commit is contained in:
@@ -0,0 +1,26 @@
|
||||
# Conventional commits, matching this repository's existing log
|
||||
# (feat:, fix:, docs:, refactor:, chore:, test:, style:, ci:).
|
||||
#
|
||||
# Deliberately a plain regex rather than a commitlint dependency: this project's
|
||||
# thesis is having no unnecessary dependencies, and one regex is legible to
|
||||
# every agent that has to satisfy it.
|
||||
|
||||
message_file=$1
|
||||
first_line=$(head -n1 "$message_file")
|
||||
|
||||
# Allow merge and revert commits through untouched.
|
||||
case "$first_line" in
|
||||
"Merge "*|"Revert "*) exit 0 ;;
|
||||
esac
|
||||
|
||||
if ! printf '%s' "$first_line" | grep -qE '^(feat|fix|docs|refactor|chore|test|style|ci|perf)(\([a-z0-9 -]+\))?: .{1,}$'; then
|
||||
echo "commit-msg: subject must be '<type>: <subject>' (lowercase type)." >&2
|
||||
echo " types: feat fix docs refactor chore test style ci perf" >&2
|
||||
echo " got: $first_line" >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if [ "${#first_line}" -gt 72 ]; then
|
||||
echo "commit-msg: subject is ${#first_line} chars; keep it under 72." >&2
|
||||
exit 1
|
||||
fi
|
||||
Reference in New Issue
Block a user