diff --git a/antigravity-awesome-skills/README.md b/antigravity-awesome-skills/README.md
index 4ac9b85b..18796523 100644
--- a/antigravity-awesome-skills/README.md
+++ b/antigravity-awesome-skills/README.md
@@ -486,14 +486,14 @@ We officially thank the following contributors for their help in making this rep
## Star History
-
+
-
-
-
+
+
+
diff --git a/antigravity-awesome-skills/SOURCE.md b/antigravity-awesome-skills/SOURCE.md
index e2302a94..b96274f5 100644
--- a/antigravity-awesome-skills/SOURCE.md
+++ b/antigravity-awesome-skills/SOURCE.md
@@ -1,8 +1,8 @@
# Source
- Repo: https://github.com/sickn33/antigravity-awesome-skills
-- Ref: d89c349f775bff02124a1bbd345450115c1c8705
+- Ref: afc403de16917b418c301b690970047b2109542f
- Remove-Paths:
-- Snapshot: 2026-06-07
+- Snapshot: 2026-06-08
- Sync-Mode: copy_skill_dirs
- Notes: vendored into playbook branch thirdparty/skill
diff --git a/antigravity-awesome-skills/apps/web-app/public/sitemap.xml b/antigravity-awesome-skills/apps/web-app/public/sitemap.xml
index 3eef78b4..37b3ec83 100644
--- a/antigravity-awesome-skills/apps/web-app/public/sitemap.xml
+++ b/antigravity-awesome-skills/apps/web-app/public/sitemap.xml
@@ -2,253 +2,253 @@
http://localhost/
- 2026-06-07
+ 2026-06-08
daily
1.0
http://localhost/plugins
- 2026-06-07
+ 2026-06-08
weekly
0.7
http://localhost/skill/runapi-cli
- 2026-06-07
+ 2026-06-08
weekly
0.7
http://localhost/skill/article-illustrations
- 2026-06-07
+ 2026-06-08
weekly
0.7
http://localhost/skill/cv-generator
- 2026-06-07
+ 2026-06-08
weekly
0.7
http://localhost/skill/open-dynamic-workflows
- 2026-06-07
+ 2026-06-08
weekly
0.7
http://localhost/skill/video-content-extractor
- 2026-06-07
+ 2026-06-08
weekly
0.7
http://localhost/skill/2slides-ppt-generator
- 2026-06-07
+ 2026-06-08
weekly
0.7
http://localhost/skill/anti-sycophancy
- 2026-06-07
+ 2026-06-08
weekly
0.7
http://localhost/skill/event-staffing-compliance
- 2026-06-07
+ 2026-06-08
weekly
0.7
http://localhost/skill/event-staffing-ordering
- 2026-06-07
+ 2026-06-08
weekly
0.7
http://localhost/skill/examprep-ai
- 2026-06-07
+ 2026-06-08
weekly
0.7
http://localhost/skill/permission-manager
- 2026-06-07
+ 2026-06-08
weekly
0.7
http://localhost/skill/skill-suggester
- 2026-06-07
+ 2026-06-08
weekly
0.7
http://localhost/skill/smart-git-automation
- 2026-06-07
+ 2026-06-08
weekly
0.7
http://localhost/skill/antigravity-agent-manager
- 2026-06-07
+ 2026-06-08
weekly
0.7
http://localhost/skill/hasdata
- 2026-06-07
+ 2026-06-08
weekly
0.7
http://localhost/skill/hasdata-cli
- 2026-06-07
+ 2026-06-08
weekly
0.7
http://localhost/skill/linkedin-content-generator
- 2026-06-07
+ 2026-06-08
weekly
0.7
http://localhost/skill/accesslint-audit
- 2026-06-07
+ 2026-06-08
weekly
0.7
http://localhost/skill/accesslint-diff
- 2026-06-07
+ 2026-06-08
weekly
0.7
http://localhost/skill/accesslint-scan
- 2026-06-07
+ 2026-06-08
weekly
0.7
http://localhost/skill/composition-patterns
- 2026-06-07
+ 2026-06-08
weekly
0.7
http://localhost/skill/debugging-toolkit
- 2026-06-07
+ 2026-06-08
weekly
0.7
http://localhost/skill/deploy-to-vercel
- 2026-06-07
+ 2026-06-08
weekly
0.7
http://localhost/skill/polis-protocol
- 2026-06-07
+ 2026-06-08
weekly
0.7
http://localhost/skill/python-development
- 2026-06-07
+ 2026-06-08
weekly
0.7
http://localhost/skill/react-native-skills
- 2026-06-07
+ 2026-06-08
weekly
0.7
http://localhost/skill/skill-issue
- 2026-06-07
+ 2026-06-08
weekly
0.7
http://localhost/skill/tdd-workflows
- 2026-06-07
+ 2026-06-08
weekly
0.7
http://localhost/skill/vercel-cli-with-tokens
- 2026-06-07
+ 2026-06-08
weekly
0.7
http://localhost/skill/vercel-optimize
- 2026-06-07
+ 2026-06-08
weekly
0.7
http://localhost/skill/vercel-react-view-transitions
- 2026-06-07
+ 2026-06-08
weekly
0.7
http://localhost/skill/doc2math
- 2026-06-07
+ 2026-06-08
weekly
0.7
http://localhost/skill/moatmri
- 2026-06-07
+ 2026-06-08
weekly
0.7
http://localhost/skill/nextjs-seo-indexing
- 2026-06-07
+ 2026-06-08
weekly
0.7
http://localhost/skill/schema-markup-generator
- 2026-06-07
+ 2026-06-08
weekly
0.7
http://localhost/skill/social-metadata-hardening
- 2026-06-07
+ 2026-06-08
weekly
0.7
http://localhost/skill/user-thoughts
- 2026-06-07
+ 2026-06-08
weekly
0.7
http://localhost/skill/vibe-code-cleanup
- 2026-06-07
+ 2026-06-08
weekly
0.7
http://localhost/skill/vibecode-production-qa-validator
- 2026-06-07
+ 2026-06-08
weekly
0.7
http://localhost/skill/yield-intelligence
- 2026-06-07
+ 2026-06-08
weekly
0.7
diff --git a/antigravity-awesome-skills/assets/star-history.png b/antigravity-awesome-skills/assets/star-history.png
index d4b9085e..52e56d3f 100644
Binary files a/antigravity-awesome-skills/assets/star-history.png and b/antigravity-awesome-skills/assets/star-history.png differ
diff --git a/brooks-lint/AGENTS.md b/brooks-lint/AGENTS.md
index c12352fd..8092c999 100644
--- a/brooks-lint/AGENTS.md
+++ b/brooks-lint/AGENTS.md
@@ -3,7 +3,7 @@
This repository is an AI-powered code quality tool grounded in twelve classic engineering books (e.g., *The Mythical Man-Month*, *Code Complete*, *A Philosophy of Software Design*, *Software Engineering at Google*).
## Core Purpose
-**brooks-lint** is a Codex CLI plugin used to diagnose code quality across six "decay risk" dimensions: Cognitive Overload, Change Propagation, Knowledge Duplication, Accidental Complexity, Dependency Disorder, and Domain Model Distortion.
+**brooks-lint** is a portable Agent-Skills code quality tool — it runs on any Agent-Skills-compatible agent (Codex CLI, OpenCode, Cursor, Antigravity, pi, and others that read `AGENTS.md` and load `SKILL.md` skills) to diagnose code quality across six "decay risk" dimensions: Cognitive Overload, Change Propagation, Knowledge Duplication, Accidental Complexity, Dependency Disorder, and Domain Model Distortion.
## Skill Integration
- **Auto-trigger:** You **must** proactively use the appropriate skill whenever discussing code quality, PR reviews, architecture health, test quality, or technical debt.
diff --git a/brooks-lint/CHANGELOG.md b/brooks-lint/CHANGELOG.md
index 26c6f27f..5363a48a 100644
--- a/brooks-lint/CHANGELOG.md
+++ b/brooks-lint/CHANGELOG.md
@@ -4,6 +4,43 @@ All notable changes to brooks-lint are documented here.
## [Unreleased]
+### Added
+
+- **One-command multi-platform installer** — `scripts/install.sh `
+ copies the six skills + `_shared/` **flat** into the correct folder for
+ OpenCode, Cursor, Windsurf, Antigravity, pi, Kiro, GitHub Copilot, Claude, or
+ the vendor-neutral `~/.agents/skills`, so the `../_shared/` relative reads
+ always resolve (users can't get the layout wrong). Runs from a clone or via
+ `curl … | bash -s -- `; `--project` targets the current repo.
+- **Per-platform setup guides** — `docs/getting-started.md` plus
+ `docs/{opencode,cursor,windsurf,antigravity,pi,copilot,kiro}-setup.md`, with
+ install, invocation, gotchas, and source links for each. Modeled on the
+ `addyosmani/agent-skills` docs layout (compact README + detailed docs).
+- **Multi-platform support in both READMEs** — the EN and zh-CN READMEs now
+ expose seven additional Agent-Skills agents via collapsible per-platform
+ entries that link to the docs, plus a verification-status note inviting
+ community end-to-end reports. Resolves the OpenCode compatibility request (#14).
+
+- **Factory Droid support** — added `droid` to the installer and a
+ `docs/factory-droid-setup.md` guide. Droid natively loads `SKILL.md` from
+ `~/.factory/skills` / `.factory/skills` and reads `AGENTS.md`.
+- **`install.sh` now covers Gemini and Codex** (`gemini`, `codex` targets) so a
+ single command installs every documented platform.
+
+### Fixed
+
+- **Gemini CLI manual install was broken** — the old `cp -r skills/*
+ ~/.gemini/skills/brooks-lint/` nested every `SKILL.md` two levels deep, and
+ Gemini only discovers skills **one level deep**, so none of the six skills were
+ found. Corrected to a flat `~/.gemini/skills/` install (EN + zh-CN READMEs).
+ Also flattened the Codex manual install to match the skill-installer layout.
+
+### Changed
+
+- **`AGENTS.md`** now describes brooks-lint as a portable Agent-Skills tool
+ (runs on any `AGENTS.md`/`SKILL.md`-compatible agent) rather than a
+ Codex-CLI-specific plugin.
+
---
## [1.3.0] - 2026-05-24
diff --git a/brooks-lint/README.md b/brooks-lint/README.md
index 8542a41d..9d40e114 100644
--- a/brooks-lint/README.md
+++ b/brooks-lint/README.md
@@ -226,9 +226,10 @@ cp -r skills/* ~/.claude/skills/brooks-lint/
#### Manual Install
```bash
-mkdir -p ~/.gemini/skills/brooks-lint
-cp -r skills/* ~/.gemini/skills/brooks-lint/
+mkdir -p ~/.gemini/skills
+cp -r skills/* ~/.gemini/skills/ # flat — Gemini discovers skills only one level deep
```
+> Or simply: `./scripts/install.sh gemini`
### Codex CLI
@@ -246,9 +247,81 @@ python3 ~/.codex/skills/.system/skill-installer/scripts/install-skill-from-githu
#### Manual Install
```bash
git clone https://github.com/hyhmrright/brooks-lint.git /tmp/brooks-lint
-mkdir -p ~/.codex/skills/brooks-lint
-cp -r /tmp/brooks-lint/skills/* ~/.codex/skills/brooks-lint/
+mkdir -p ~/.codex/skills
+cp -r /tmp/brooks-lint/skills/* ~/.codex/skills/ # flat — matches the skill-installer layout
```
+> Or simply: `./scripts/install.sh codex`
+
+### More platforms — OpenCode · Cursor · Windsurf · Antigravity · pi · Copilot · Kiro · Factory Droid
+
+brooks-lint ships as standard [Agent Skills](https://agentskills.io). **Any agent that loads Agent
+Skills runs all six modes with no conversion** — one command installs them:
+
+```bash
+# pick your platform; --project installs into the current repo instead of your global config
+curl -fsSL https://raw.githubusercontent.com/hyhmrright/brooks-lint/main/scripts/install.sh | bash -s --
+# = opencode · cursor · windsurf · antigravity · pi · kiro · copilot · droid · gemini · codex · agents
+```
+
+The installer copies the skills **flat** into the right folder for your platform, so the shared
+framework (`../_shared/`) always resolves — you can't get the layout wrong. Then just ask
+("review this PR", "audit the architecture") and the matching skill auto-triggers from its
+`description`. New to skills, or using another agent? See **[docs/getting-started.md](docs/getting-started.md)**.
+
+OpenCode
+
+`./scripts/install.sh opencode` → `~/.config/opencode/skills` (also reads `~/.claude/skills` and
+`AGENTS.md`). Full guide: [docs/opencode-setup.md](docs/opencode-setup.md).
+
+
+Cursor (2.4+)
+
+`./scripts/install.sh cursor` → `~/.cursor/skills` (also `.agents/skills`; reads `AGENTS.md`).
+Full guide: [docs/cursor-setup.md](docs/cursor-setup.md).
+
+
+Windsurf (Cascade)
+
+`./scripts/install.sh windsurf` → `~/.codeium/windsurf/skills` (reads `AGENTS.md`).
+Full guide: [docs/windsurf-setup.md](docs/windsurf-setup.md).
+
+
+Antigravity (Google)
+
+`./scripts/install.sh antigravity --project` → `.agent/skills` (reads `AGENTS.md` / `GEMINI.md`).
+Full guide: [docs/antigravity-setup.md](docs/antigravity-setup.md).
+
+
+pi (earendil-works)
+
+`./scripts/install.sh pi` → `~/.pi/agent/skills`, or point pi's `skills` setting at a clone.
+Full guide: [docs/pi-setup.md](docs/pi-setup.md).
+
+
+GitHub Copilot
+
+`./scripts/install.sh copilot --project` → `.github/skills` (also auto-detects `.claude/skills`; reads
+`AGENTS.md`). Full guide: [docs/copilot-setup.md](docs/copilot-setup.md).
+
+
+Kiro (AWS)
+
+`./scripts/install.sh kiro` → `~/.kiro/skills` (auto-registers `/brooks-review`; reads `AGENTS.md`).
+Full guide: [docs/kiro-setup.md](docs/kiro-setup.md).
+
+
+Factory Droid
+
+`./scripts/install.sh droid` → `~/.factory/skills` (registers `/brooks-review`; reads `AGENTS.md`).
+Full guide: [docs/factory-droid-setup.md](docs/factory-droid-setup.md).
+
+
+> **🧪 Verification status.** Claude Code, Gemini CLI, and Codex CLI are maintainer-verified. The eight
+> platforms above are documented from each tool's official skill spec and verified at the file-layout
+> level (the installer is tested), but not yet end-to-end run by the maintainer on every platform. Tried
+> one — working **or** broken? [Open an issue](https://github.com/hyhmrright/brooks-lint/issues/new) with
+> the platform, version, and what you saw. Another Agent-Skills agent? It almost certainly works the same
+> way — tell us and we'll add it.
## Slash Commands
@@ -287,6 +360,13 @@ cp -r /tmp/brooks-lint/skills/* ~/.codex/skills/brooks-lint/
The skills also trigger automatically when you discuss code quality, architecture, maintainability, or test health.
+### OpenCode · Cursor · Antigravity · pi
+
+These platforms invoke Agent Skills automatically from each skill's `description` — just ask
+("review this PR", "audit the architecture", "where's our worst tech debt?") and the matching mode
+runs. For explicit invocation, use the platform's skill-command syntax (e.g. pi registers each skill
+as `/skill:brooks-review`; Cursor and OpenCode expose `/brooks-review` once the skill is discovered).
+
## Usage
### PR Review
diff --git a/brooks-lint/README.zh-CN.md b/brooks-lint/README.zh-CN.md
index c0b47ec1..e9264561 100644
--- a/brooks-lint/README.zh-CN.md
+++ b/brooks-lint/README.zh-CN.md
@@ -226,9 +226,10 @@ cp -r skills/* ~/.claude/skills/brooks-lint/
#### 手动安装
```bash
-mkdir -p ~/.gemini/skills/brooks-lint
-cp -r skills/* ~/.gemini/skills/brooks-lint/
+mkdir -p ~/.gemini/skills
+cp -r skills/* ~/.gemini/skills/ # 扁平——Gemini 只发现一层深的技能
```
+> 或直接:`./scripts/install.sh gemini`
### Codex CLI
@@ -246,9 +247,78 @@ python3 ~/.codex/skills/.system/skill-installer/scripts/install-skill-from-githu
#### 手动安装
```bash
git clone https://github.com/hyhmrright/brooks-lint.git /tmp/brooks-lint
-mkdir -p ~/.codex/skills/brooks-lint
-cp -r /tmp/brooks-lint/skills/* ~/.codex/skills/brooks-lint/
+mkdir -p ~/.codex/skills
+cp -r /tmp/brooks-lint/skills/* ~/.codex/skills/ # 扁平——与技能安装器布局一致
```
+> 或直接:`./scripts/install.sh codex`
+
+### 更多平台——OpenCode · Cursor · Windsurf · Antigravity · pi · Copilot · Kiro · Factory Droid
+
+brooks-lint 以标准 [Agent Skills](https://agentskills.io) 形式分发。**任何加载 Agent Skills 的 agent
+都能无需任何转换运行全部六种模式**——一条命令即可安装:
+
+```bash
+# 选择你的平台;加 --project 装进当前仓库而非全局配置
+curl -fsSL https://raw.githubusercontent.com/hyhmrright/brooks-lint/main/scripts/install.sh | bash -s -- <平台>
+# <平台> = opencode · cursor · windsurf · antigravity · pi · kiro · copilot · droid · gemini · codex · agents
+```
+
+安装器会把技能**扁平**拷进该平台对应的文件夹,让共享框架(`../_shared/`)始终正确解析——你不可能装错布局。
+装好后直接提问("审查这个 PR"、"审查架构"),对应技能就会依据 `description` 自动触发。
+不熟悉 skills、或用的是别的 agent?见 **[docs/getting-started.md](docs/getting-started.md)**。
+
+OpenCode
+
+`./scripts/install.sh opencode` → `~/.config/opencode/skills`(同时读取 `~/.claude/skills` 与
+`AGENTS.md`)。完整指南:[docs/opencode-setup.md](docs/opencode-setup.md)。
+
+
+Cursor(2.4+)
+
+`./scripts/install.sh cursor` → `~/.cursor/skills`(也读 `.agents/skills`;读取 `AGENTS.md`)。
+完整指南:[docs/cursor-setup.md](docs/cursor-setup.md)。
+
+
+Windsurf(Cascade)
+
+`./scripts/install.sh windsurf` → `~/.codeium/windsurf/skills`(读取 `AGENTS.md`)。
+完整指南:[docs/windsurf-setup.md](docs/windsurf-setup.md)。
+
+
+Antigravity(Google)
+
+`./scripts/install.sh antigravity --project` → `.agent/skills`(读取 `AGENTS.md` / `GEMINI.md`)。
+完整指南:[docs/antigravity-setup.md](docs/antigravity-setup.md)。
+
+
+pi(earendil-works)
+
+`./scripts/install.sh pi` → `~/.pi/agent/skills`,或让 pi 的 `skills` 设置指向一个克隆。
+完整指南:[docs/pi-setup.md](docs/pi-setup.md)。
+
+
+GitHub Copilot
+
+`./scripts/install.sh copilot --project` → `.github/skills`(也自动识别 `.claude/skills`;读取
+`AGENTS.md`)。完整指南:[docs/copilot-setup.md](docs/copilot-setup.md)。
+
+
+Kiro(AWS)
+
+`./scripts/install.sh kiro` → `~/.kiro/skills`(自动注册 `/brooks-review`;读取 `AGENTS.md`)。
+完整指南:[docs/kiro-setup.md](docs/kiro-setup.md)。
+
+
+Factory Droid
+
+`./scripts/install.sh droid` → `~/.factory/skills`(注册 `/brooks-review`;读取 `AGENTS.md`)。
+完整指南:[docs/factory-droid-setup.md](docs/factory-droid-setup.md)。
+
+
+> **🧪 验证状态。** Claude Code、Gemini CLI、Codex CLI 已由维护者验证。上面八个平台依据各工具官方技能规范编写,
+> 并已在文件布局层面验证(安装器经过测试),但维护者尚未在每个平台端到端实跑。在某平台试过了——无论成功**还是**失败?
+> 请[提一个 issue](https://github.com/hyhmrright/brooks-lint/issues/new),附上平台、版本和你看到的结果。
+> 用的是其它兼容 Agent Skills 的 agent?它几乎肯定以同样方式工作——告诉我们,我们会补上。
## 斜杠命令
@@ -287,6 +357,12 @@ cp -r /tmp/brooks-lint/skills/* ~/.codex/skills/brooks-lint/
当你讨论代码质量、架构、可维护性或测试健康时,这些技能也会自动触发。
+### OpenCode · Cursor · Antigravity · pi
+
+这些平台依据每个技能的 `description` 自动调用 Agent Skills——直接提问("审查这个 PR"、"审查架构"、
+"我们最糟的技术债在哪")就会运行对应模式。需要显式调用时,使用各平台的技能命令语法(例如 pi 把每个技能注册为
+`/skill:brooks-review`;Cursor 与 OpenCode 在技能被发现后暴露 `/brooks-review`)。
+
## 使用
### PR 审查
diff --git a/brooks-lint/SOURCE.md b/brooks-lint/SOURCE.md
index a9f0d7cb..aa65e797 100644
--- a/brooks-lint/SOURCE.md
+++ b/brooks-lint/SOURCE.md
@@ -1,8 +1,8 @@
# Source
- Repo: https://github.com/hyhmrright/brooks-lint
-- Ref: 85e4ddbe4b06036b0d0f08e88193a864077261a9
+- Ref: 0e92503911f28ff091b14c017d4345f7a2dd8817
- Remove-Paths:
-- Snapshot: 2026-06-02
+- Snapshot: 2026-06-08
- Sync-Mode: copy_skill_dirs
- Notes: vendored into playbook branch thirdparty/skill
diff --git a/brooks-lint/docs/antigravity-setup.md b/brooks-lint/docs/antigravity-setup.md
new file mode 100644
index 00000000..afa98711
--- /dev/null
+++ b/brooks-lint/docs/antigravity-setup.md
@@ -0,0 +1,40 @@
+# Antigravity Setup
+
+Google's [Antigravity](https://antigravity.google) uses Claude-compatible
+[Agent Skills](https://agentskills.io) and reads `AGENTS.md` / `GEMINI.md`, so all six brooks-lint
+modes run with no conversion.
+
+## Install
+
+```bash
+# project-scoped is the official convention (recommended)
+./scripts/install.sh antigravity --project # this repo: ./.agent/skills
+
+# global
+curl -fsSL https://raw.githubusercontent.com/hyhmrright/brooks-lint/main/scripts/install.sh | bash -s -- antigravity
+./scripts/install.sh antigravity # global: ~/.gemini/skills
+```
+
+Manual equivalent (project):
+
+```bash
+git clone https://github.com/hyhmrright/brooks-lint.git /tmp/brooks-lint
+mkdir -p .agent/skills
+cp -r /tmp/brooks-lint/skills/* .agent/skills/ # flat — brooks-* and _shared/ as siblings
+```
+
+## Invoke
+
+Ask naturally ("review this PR", "audit the architecture") — the agent selects the matching skill from
+its `description`. `AGENTS.md` / `GEMINI.md` carry the Iron Law and Health Score rules.
+
+## Notes
+
+- **Flat layout** is mandatory (the installer guarantees it): `../_shared/` only resolves when
+ `_shared/` is a sibling of the `brooks-*` folders.
+- The project convention `.agent/skills/` is well documented; the **global** skills path
+ (`~/.gemini/skills` vs a product subfolder) varies between sources — if the global install isn't
+ discovered, use the project install. Please report what worked.
+- 🧪 Documented per the official [skills](https://antigravity.google/docs/skills) and
+ [rules & workflows](https://antigravity.google/docs/rules-workflows) docs; community end-to-end
+ verification welcome — [open an issue](https://github.com/hyhmrright/brooks-lint/issues/new).
diff --git a/brooks-lint/docs/copilot-setup.md b/brooks-lint/docs/copilot-setup.md
new file mode 100644
index 00000000..6ef1861d
--- /dev/null
+++ b/brooks-lint/docs/copilot-setup.md
@@ -0,0 +1,43 @@
+# GitHub Copilot Setup
+
+GitHub Copilot has supported [Agent Skills](https://agentskills.io) since December 2025 (coding agent,
+Copilot CLI, and VS Code agent mode). It reads `AGENTS.md` and **auto-detects existing `.claude/skills`
+folders**, so all six brooks-lint modes run with no conversion.
+
+## Install
+
+```bash
+# personal (all repos) — one command
+curl -fsSL https://raw.githubusercontent.com/hyhmrright/brooks-lint/main/scripts/install.sh | bash -s -- copilot
+
+# from a clone
+./scripts/install.sh copilot # personal: ~/.copilot/skills
+./scripts/install.sh copilot --project # this repo: ./.github/skills
+```
+
+Manual equivalent (commit to a repo so the cloud agent and reviewers share it):
+
+```bash
+git clone https://github.com/hyhmrright/brooks-lint.git /tmp/brooks-lint
+mkdir -p .github/skills
+cp -r /tmp/brooks-lint/skills/* .github/skills/ # flat — brooks-* and _shared/ as siblings
+```
+
+Copilot discovers skills from `.github/skills`, `.claude/skills`, `.agents/skills` (project) and
+`~/.copilot/skills`, `~/.agents/skills` (personal). `./scripts/install.sh agents` (→ `~/.agents/skills`)
+is shared with Cursor and pi.
+
+## Invoke
+
+Ask naturally in Copilot Chat / CLI ("review this PR", "audit the architecture") — Copilot loads the
+matching skill on demand from its `description`. `AGENTS.md` (or `.github/copilot-instructions.md`)
+carries the Iron Law and Health Score rules.
+
+## Notes
+
+- **Flat layout** is mandatory (the installer guarantees it): `../_shared/` only resolves when
+ `_shared/` is a sibling of the `brooks-*` folders.
+- Org/enterprise-level skills were "coming soon" at launch; repo-level `.github/skills` works today.
+- 🧪 Documented per the [Agent Skills announcement](https://github.blog/changelog/2025-12-18-github-copilot-now-supports-agent-skills/)
+ and [docs](https://docs.github.com/en/copilot/concepts/agents/about-agent-skills); community
+ end-to-end verification welcome — [open an issue](https://github.com/hyhmrright/brooks-lint/issues/new).
diff --git a/brooks-lint/docs/cursor-setup.md b/brooks-lint/docs/cursor-setup.md
new file mode 100644
index 00000000..8f741764
--- /dev/null
+++ b/brooks-lint/docs/cursor-setup.md
@@ -0,0 +1,38 @@
+# Cursor Setup
+
+[Cursor](https://cursor.com) added native [Agent Skills](https://agentskills.io) support in 2.4. It
+loads `SKILL.md` skills and reads `AGENTS.md`, so all six brooks-lint modes run with no conversion.
+
+## Install
+
+```bash
+# simplest — one command (global)
+curl -fsSL https://raw.githubusercontent.com/hyhmrright/brooks-lint/main/scripts/install.sh | bash -s -- cursor
+
+# from a clone
+./scripts/install.sh cursor # global: ~/.cursor/skills
+./scripts/install.sh cursor --project # this repo: ./.cursor/skills
+```
+
+Manual equivalent:
+
+```bash
+git clone https://github.com/hyhmrright/brooks-lint.git /tmp/brooks-lint
+mkdir -p ~/.cursor/skills
+cp -r /tmp/brooks-lint/skills/* ~/.cursor/skills/ # flat — brooks-* and _shared/ as siblings
+```
+
+Cursor also loads `.agents/skills/` / `~/.agents/skills/` and existing Claude/Codex skill folders, so
+`./scripts/install.sh agents` works too and is shared with Copilot and pi.
+
+## Invoke
+
+Ask naturally ("review this PR", "audit the architecture") and Cursor selects the matching skill from
+its `description`, or use the `/brooks-review` slash form once the skill is discovered.
+
+## Notes
+
+- **Flat layout** is mandatory (the installer guarantees it): `../_shared/` only resolves when
+ `_shared/` is a sibling of the `brooks-*` folders.
+- 🧪 Documented per the official [skills docs](https://cursor.com/docs/skills); community end-to-end
+ verification welcome — [open an issue](https://github.com/hyhmrright/brooks-lint/issues/new).
diff --git a/brooks-lint/docs/factory-droid-setup.md b/brooks-lint/docs/factory-droid-setup.md
new file mode 100644
index 00000000..3e4869ac
--- /dev/null
+++ b/brooks-lint/docs/factory-droid-setup.md
@@ -0,0 +1,43 @@
+# Factory Droid Setup
+
+Factory's [Droid](https://factory.ai) (`droid` CLI) natively loads
+[Agent Skills](https://agentskills.io) and reads `AGENTS.md`, so all six brooks-lint modes run with no
+conversion.
+
+## Install
+
+```bash
+# simplest — one command
+curl -fsSL https://raw.githubusercontent.com/hyhmrright/brooks-lint/main/scripts/install.sh | bash -s -- droid
+
+# from a clone
+./scripts/install.sh droid # personal: ~/.factory/skills
+./scripts/install.sh droid --project # this repo: ./.factory/skills
+```
+
+Manual equivalent:
+
+```bash
+git clone https://github.com/hyhmrright/brooks-lint.git /tmp/brooks-lint
+mkdir -p ~/.factory/skills
+cp -r /tmp/brooks-lint/skills/* ~/.factory/skills/ # flat — brooks-* and _shared/ as siblings
+```
+
+Droid discovers skills from `~/.factory/skills` (personal), `.factory/skills` (project), and the legacy
+`.agent/skills`, each a single level deep.
+
+## Invoke
+
+Ask naturally ("review this PR", "audit the architecture") — Droid auto-loads the matching skill from
+its `description` — or use the slash form `/brooks-review` (Droid registers each skill as a command).
+`AGENTS.md` carries the Iron Law and Health Score rules.
+
+## Notes
+
+- **Flat layout** is mandatory (the installer guarantees it): `../_shared/` only resolves when
+ `_shared/` is a sibling of the `brooks-*` folders, and Droid discovers skills only one level deep.
+- Droid ignores Claude-only frontmatter fields (e.g. `allowed-tools`); `name` + `description` + body
+ are all it needs, so the skills load unchanged.
+- 🧪 Documented per the official [skills docs](https://docs.factory.ai/cli/configuration/skills) and
+ [AGENTS.md docs](https://docs.factory.ai/cli/configuration/agents-md); community end-to-end
+ verification welcome — [open an issue](https://github.com/hyhmrright/brooks-lint/issues/new).
diff --git a/brooks-lint/docs/getting-started.md b/brooks-lint/docs/getting-started.md
new file mode 100644
index 00000000..c71f87f5
--- /dev/null
+++ b/brooks-lint/docs/getting-started.md
@@ -0,0 +1,74 @@
+# Getting Started — brooks-lint on any agent
+
+brooks-lint is six [Agent Skills](https://agentskills.io) (`SKILL.md` + Markdown guides) plus a
+shared `_shared/` framework folder. **Any coding agent that loads Agent Skills can run all six modes
+with no conversion** — you just place the `skills/` directory where that agent looks for skills.
+
+## The one thing that matters: flat layout
+
+Every skill reads the shared framework via the relative path `../_shared/common.md`. That only
+resolves when `_shared/` is a **sibling** of the `brooks-*` folders:
+
+```
+/
+├── brooks-review/SKILL.md ← reads ../_shared/common.md
+├── brooks-audit/SKILL.md
+├── …
+└── _shared/ ← sibling, no SKILL.md (ignored as a skill, read as files)
+```
+
+So always copy `skills/*` **flat** — never nest everything under one `brooks-lint/` folder for the
+platforms that discover skills with a single-level glob (`skills//SKILL.md`).
+
+## Simplest install — one command
+
+The installer copies the skills flat into the correct folder for your platform, so you can't get the
+layout wrong:
+
+```bash
+# from a clone
+./scripts/install.sh
+
+# or without cloning
+curl -fsSL https://raw.githubusercontent.com/hyhmrright/brooks-lint/main/scripts/install.sh | bash -s --
+```
+
+`` ∈ `opencode · cursor · windsurf · antigravity · pi · kiro · copilot · droid · gemini ·
+codex · claude · agents`. Add `--project` to install into the current repo instead of your global
+config. `agents` targets the vendor-neutral `~/.agents/skills` folder that Cursor, Copilot, pi, Gemini,
+and Codex all read.
+
+## Per-platform guides
+
+| Platform | Guide | Discovers `SKILL.md` from | Reads `AGENTS.md` |
+|----------|-------|---------------------------|:-----------------:|
+| OpenCode | [opencode-setup.md](opencode-setup.md) | `~/.config/opencode/skills`, `.opencode/skills`, `~/.claude/skills` | ✅ |
+| Cursor | [cursor-setup.md](cursor-setup.md) | `~/.cursor/skills`, `.cursor/skills`, `.agents/skills` | ✅ |
+| Windsurf | [windsurf-setup.md](windsurf-setup.md) | `~/.codeium/windsurf/skills`, `.windsurf/skills` | ✅ |
+| Antigravity | [antigravity-setup.md](antigravity-setup.md) | `.agent/skills`, `~/.gemini/skills` | ✅ |
+| pi | [pi-setup.md](pi-setup.md) | `~/.pi/agent/skills`, `.pi/skills`, settings array | ✅ |
+| GitHub Copilot | [copilot-setup.md](copilot-setup.md) | `.github/skills`, `.claude/skills`, `~/.copilot/skills` | ✅ |
+| Kiro | [kiro-setup.md](kiro-setup.md) | `.kiro/skills`, `~/.kiro/skills` | ✅ |
+| Factory Droid | [factory-droid-setup.md](factory-droid-setup.md) | `~/.factory/skills`, `.factory/skills`, `.agent/skills` | ✅ |
+
+For Claude Code, Gemini CLI, and Codex CLI, see the [README install section](../README.md#installation).
+`./scripts/install.sh gemini` and `./scripts/install.sh codex` also work and use the flat layout these
+two require (Gemini discovers skills only one level deep).
+
+## Any other agent
+
+If your agent accepts a skills folder or an instruction file, brooks-lint works:
+
+- **Loads `SKILL.md`?** Point it at a flat `skills/` folder (use `install.sh agents` for the neutral
+ `~/.agents/skills`).
+- **Only reads an instructions file** (`AGENTS.md` / `CLAUDE.md` / a system prompt)? Add the repo's
+ `AGENTS.md` so the agent learns the Iron Law and scoring, then have it read the relevant
+ `skills//SKILL.md` on demand.
+
+## Verification status
+
+The marketplace-installed platforms (Claude Code, Gemini CLI, Codex CLI) are maintainer-verified. The
+seven Agent-Skills platforms above are documented from each tool's official skill spec and verified at
+the file-layout level (the installer is tested), but not yet end-to-end run by the maintainer on every
+platform. **Tried one? Tell us** — [open an issue](https://github.com/hyhmrright/brooks-lint/issues/new)
+with the platform, version, and what you saw, working or broken.
diff --git a/brooks-lint/docs/kiro-setup.md b/brooks-lint/docs/kiro-setup.md
new file mode 100644
index 00000000..1061c384
--- /dev/null
+++ b/brooks-lint/docs/kiro-setup.md
@@ -0,0 +1,41 @@
+# Kiro Setup
+
+AWS [Kiro](https://kiro.dev) (IDE & CLI) natively loads Claude-compatible
+[Agent Skills](https://agentskills.io), reads `AGENTS.md`, and **auto-registers each skill as a slash
+command**, so all six brooks-lint modes run with no conversion.
+
+## Install
+
+```bash
+# simplest — one command (global)
+curl -fsSL https://raw.githubusercontent.com/hyhmrright/brooks-lint/main/scripts/install.sh | bash -s -- kiro
+
+# from a clone
+./scripts/install.sh kiro # global: ~/.kiro/skills
+./scripts/install.sh kiro --project # this repo: ./.kiro/skills
+```
+
+Manual equivalent:
+
+```bash
+git clone https://github.com/hyhmrright/brooks-lint.git /tmp/brooks-lint
+mkdir -p ~/.kiro/skills
+cp -r /tmp/brooks-lint/skills/* ~/.kiro/skills/ # flat — brooks-* and _shared/ as siblings
+```
+
+Or use the IDE: **Agent Steering & Skills** panel → **+** → **Import a skill** → paste a GitHub URL or
+pick a local folder (Kiro copies it into your skills folder).
+
+## Invoke
+
+Ask naturally ("review this PR", "audit the architecture"), or use the auto-registered slash command
+`/brooks-review`. `AGENTS.md` is always-included and carries the Iron Law and Health Score rules.
+
+## Notes
+
+- **Flat layout** is mandatory (the installer guarantees it): `../_shared/` only resolves when
+ `_shared/` is a sibling of the `brooks-*` folders.
+- Kiro requires the folder name to equal the skill's `name` (✅ already true here), `name` ≤ 64 chars,
+ and `description` ≤ 1024 chars (brooks-lint's longest is ~920).
+- 🧪 Documented per the official [skills docs](https://kiro.dev/docs/skills/); community end-to-end
+ verification welcome — [open an issue](https://github.com/hyhmrright/brooks-lint/issues/new).
diff --git a/brooks-lint/docs/opencode-setup.md b/brooks-lint/docs/opencode-setup.md
new file mode 100644
index 00000000..b9cd9644
--- /dev/null
+++ b/brooks-lint/docs/opencode-setup.md
@@ -0,0 +1,45 @@
+# OpenCode Setup
+
+[OpenCode](https://opencode.ai) natively loads [Agent Skills](https://agentskills.io) and reads
+`AGENTS.md`, so all six brooks-lint modes run with no conversion.
+
+## Install
+
+```bash
+# simplest — one command (global)
+curl -fsSL https://raw.githubusercontent.com/hyhmrright/brooks-lint/main/scripts/install.sh | bash -s -- opencode
+
+# from a clone
+./scripts/install.sh opencode # global: ~/.config/opencode/skills
+./scripts/install.sh opencode --project # this repo: ./.opencode/skills
+```
+
+Manual equivalent:
+
+```bash
+git clone https://github.com/hyhmrright/brooks-lint.git /tmp/brooks-lint
+mkdir -p ~/.config/opencode/skills
+cp -r /tmp/brooks-lint/skills/* ~/.config/opencode/skills/ # flat — brooks-* and _shared/ as siblings
+```
+
+OpenCode also discovers Claude-compatible `~/.claude/skills/*/SKILL.md`, so an existing Claude install
+(if flat) is picked up automatically.
+
+## Invoke
+
+Just ask — OpenCode auto-selects skills from each `description`:
+
+- "review this PR" → `brooks-review`
+- "audit the architecture" → `brooks-audit`
+- "where's our worst tech debt?" → `brooks-debt`
+
+For explicit invocation, `/brooks-review` etc. are available once the skill is discovered. The repo's
+`AGENTS.md` carries the Iron Law (Symptom → Source → Consequence → Remedy) and the Health Score rules.
+
+## Notes
+
+- **Flat layout** is mandatory (the installer guarantees it): skills read `../_shared/`, which only
+ resolves when `_shared/` sits beside the `brooks-*` folders.
+- 🧪 Documented per the official [skills](https://opencode.ai/docs/skills/) and
+ [rules](https://opencode.ai/docs/rules/) docs; community end-to-end verification welcome —
+ [open an issue](https://github.com/hyhmrright/brooks-lint/issues/new).
diff --git a/brooks-lint/docs/pi-setup.md b/brooks-lint/docs/pi-setup.md
new file mode 100644
index 00000000..bc8e7bfd
--- /dev/null
+++ b/brooks-lint/docs/pi-setup.md
@@ -0,0 +1,39 @@
+# pi Setup
+
+[pi](https://github.com/earendil-works/pi) (the earendil-works coding agent) natively loads
+[Agent Skills](https://agentskills.io) and reads `AGENTS.md` / `CLAUDE.md`, so all six brooks-lint
+modes run with no conversion.
+
+## Install
+
+```bash
+# simplest — one command (global)
+curl -fsSL https://raw.githubusercontent.com/hyhmrright/brooks-lint/main/scripts/install.sh | bash -s -- pi
+
+# from a clone
+./scripts/install.sh pi # global: ~/.pi/agent/skills
+./scripts/install.sh pi --project # this repo: ./.pi/skills
+```
+
+Or **don't copy at all** — point pi at a clone via settings (`~/.pi/settings.json`, or project
+`.pi/settings.json`):
+
+```json
+{ "skills": ["/path/to/brooks-lint/skills"] }
+```
+
+pi can also reuse other tools' skill folders the same way, e.g. `{ "skills": ["~/.claude/skills"] }`
+(only if that folder is flat).
+
+## Invoke
+
+Ask naturally ("review this PR", "audit the architecture"), or use the auto-registered command form
+`/skill:brooks-review`. `AGENTS.md` carries the Iron Law and Health Score rules.
+
+## Notes
+
+- **Flat layout** is mandatory (the installer guarantees it): `../_shared/` only resolves when
+ `_shared/` is a sibling of the `brooks-*` folders.
+- pi caps `description` at 1024 chars; brooks-lint's longest is ~920, so all six skills load cleanly.
+- 🧪 Documented per the official [skills docs](https://github.com/earendil-works/pi/blob/main/packages/coding-agent/docs/skills.md);
+ community end-to-end verification welcome — [open an issue](https://github.com/hyhmrright/brooks-lint/issues/new).
diff --git a/brooks-lint/docs/windsurf-setup.md b/brooks-lint/docs/windsurf-setup.md
new file mode 100644
index 00000000..27b7066b
--- /dev/null
+++ b/brooks-lint/docs/windsurf-setup.md
@@ -0,0 +1,36 @@
+# Windsurf Setup
+
+[Windsurf](https://windsurf.com) (Cascade) natively loads [Agent Skills](https://agentskills.io) and
+reads `AGENTS.md`, so all six brooks-lint modes run with no conversion.
+
+## Install
+
+```bash
+# simplest — one command (global)
+curl -fsSL https://raw.githubusercontent.com/hyhmrright/brooks-lint/main/scripts/install.sh | bash -s -- windsurf
+
+# from a clone
+./scripts/install.sh windsurf # global: ~/.codeium/windsurf/skills
+./scripts/install.sh windsurf --project # this repo: ./.windsurf/skills
+```
+
+Manual equivalent:
+
+```bash
+git clone https://github.com/hyhmrright/brooks-lint.git /tmp/brooks-lint
+mkdir -p ~/.codeium/windsurf/skills
+cp -r /tmp/brooks-lint/skills/* ~/.codeium/windsurf/skills/ # flat — brooks-* and _shared/ as siblings
+```
+
+## Invoke
+
+Ask naturally ("review this PR", "audit the architecture") — Cascade selects the matching skill from
+its `description`. The repo's `AGENTS.md` is read by Windsurf's rules engine and carries the Iron Law
+and Health Score rules. (`@skill-name` also references a discovered skill.)
+
+## Notes
+
+- **Flat layout** is mandatory (the installer guarantees it): `../_shared/` only resolves when
+ `_shared/` is a sibling of the `brooks-*` folders.
+- 🧪 Documented per the official [Cascade skills docs](https://docs.windsurf.com/windsurf/cascade/skills);
+ community end-to-end verification welcome — [open an issue](https://github.com/hyhmrright/brooks-lint/issues/new).
diff --git a/brooks-lint/scripts/install.sh b/brooks-lint/scripts/install.sh
new file mode 100755
index 00000000..b2e2d9eb
--- /dev/null
+++ b/brooks-lint/scripts/install.sh
@@ -0,0 +1,135 @@
+#!/usr/bin/env bash
+#
+# brooks-lint universal skill installer.
+#
+# brooks-lint ships as standard Agent Skills (SKILL.md). Most modern coding
+# agents discover skills from a per-platform folder with a single-level glob
+# (skills//SKILL.md) and read shared files via the relative path
+# ../_shared/. This script copies the six skills + _shared/ FLAT into the right
+# folder for your platform, so the relative reads always resolve — you can't get
+# the layout wrong.
+#
+# Usage:
+# ./scripts/install.sh [--project]
+# curl -fsSL https://raw.githubusercontent.com/hyhmrright/brooks-lint/main/scripts/install.sh | bash -s --
+#
+# Platforms: opencode cursor windsurf antigravity pi kiro copilot droid gemini codex claude agents
+# agents = the vendor-neutral ~/.agents/skills folder (read by Cursor, Copilot, pi, Gemini, Codex)
+#
+# Flags:
+# --project install into the current repo (././skills) instead of the global folder
+# --dir PATH install into an explicit folder (overrides platform mapping)
+# --list print supported platforms and exit
+#
+set -euo pipefail
+
+REPO_URL="https://github.com/hyhmrright/brooks-lint.git"
+PLATFORMS="opencode cursor windsurf antigravity pi kiro copilot droid gemini codex claude agents"
+
+err() { printf '\033[31merror:\033[0m %s\n' "$*" >&2; }
+info() { printf '\033[36m›\033[0m %s\n' "$*"; }
+ok() { printf '\033[32m✓\033[0m %s\n' "$*"; }
+
+# --- resolve the skills/ source (adjacent to this script, or clone) ----------
+resolve_src() {
+ local script_dir
+ script_dir="$(cd "$(dirname "${BASH_SOURCE[0]:-$0}")" >/dev/null 2>&1 && pwd || true)"
+ if [ -n "$script_dir" ] && [ -d "$script_dir/../skills" ]; then
+ local root
+ root="$( cd "$script_dir/.." && pwd )"
+ printf '%s' "$root/skills"
+ return
+ fi
+ # Running via curl | bash — clone a shallow copy.
+ local tmp
+ tmp="$(mktemp -d)"
+ info "Cloning brooks-lint into $tmp …" >&2
+ git clone --depth 1 "$REPO_URL" "$tmp/brooks-lint" >/dev/null 2>&1
+ printf '%s' "$tmp/brooks-lint/skills"
+}
+
+# --- map a platform to its skills folder -------------------------------------
+global_dir() {
+ case "$1" in
+ opencode) printf '%s' "$HOME/.config/opencode/skills" ;;
+ cursor) printf '%s' "$HOME/.cursor/skills" ;;
+ windsurf) printf '%s' "$HOME/.codeium/windsurf/skills" ;;
+ antigravity) printf '%s' "$HOME/.gemini/skills" ;;
+ pi) printf '%s' "$HOME/.pi/agent/skills" ;;
+ kiro) printf '%s' "$HOME/.kiro/skills" ;;
+ copilot) printf '%s' "$HOME/.copilot/skills" ;;
+ droid) printf '%s' "$HOME/.factory/skills" ;;
+ gemini) printf '%s' "$HOME/.gemini/skills" ;;
+ codex) printf '%s' "$HOME/.codex/skills" ;;
+ claude) printf '%s' "$HOME/.claude/skills" ;;
+ agents) printf '%s' "$HOME/.agents/skills" ;;
+ *) return 1 ;;
+ esac
+}
+
+project_dir() {
+ case "$1" in
+ opencode) printf '%s' "$PWD/.opencode/skills" ;;
+ cursor) printf '%s' "$PWD/.cursor/skills" ;;
+ windsurf) printf '%s' "$PWD/.windsurf/skills" ;;
+ antigravity) printf '%s' "$PWD/.agent/skills" ;;
+ pi) printf '%s' "$PWD/.pi/skills" ;;
+ kiro) printf '%s' "$PWD/.kiro/skills" ;;
+ copilot) printf '%s' "$PWD/.github/skills" ;;
+ droid) printf '%s' "$PWD/.factory/skills" ;;
+ gemini) printf '%s' "$PWD/.gemini/skills" ;;
+ codex) printf '%s' "$PWD/.codex/skills" ;;
+ claude) printf '%s' "$PWD/.claude/skills" ;;
+ agents) printf '%s' "$PWD/.agents/skills" ;;
+ *) return 1 ;;
+ esac
+}
+
+# --- arg parsing -------------------------------------------------------------
+PLATFORM=""
+SCOPE="global"
+EXPLICIT_DIR=""
+while [ $# -gt 0 ]; do
+ case "$1" in
+ --project|--here) SCOPE="project" ;;
+ --dir) shift; EXPLICIT_DIR="${1:-}" ;;
+ --list) printf 'Supported platforms: %s\n' "$PLATFORMS"; exit 0 ;;
+ -h|--help) sed -n '2,28p' "${BASH_SOURCE[0]:-$0}" | sed 's/^# \{0,1\}//'; exit 0 ;;
+ -*) err "unknown flag: $1"; exit 2 ;;
+ *) PLATFORM="$1" ;;
+ esac
+ shift
+done
+
+if [ -z "$PLATFORM" ] && [ -z "$EXPLICIT_DIR" ]; then
+ err "no platform given."
+ printf 'Supported platforms: %s\n' "$PLATFORMS" >&2
+ printf 'Example: ./scripts/install.sh opencode\n' >&2
+ exit 2
+fi
+
+# --- resolve destination -----------------------------------------------------
+if [ -n "$EXPLICIT_DIR" ]; then
+ DEST="$EXPLICIT_DIR"
+elif [ "$SCOPE" = "project" ]; then
+ DEST="$(project_dir "$PLATFORM")" || { err "unknown platform: $PLATFORM"; exit 2; }
+else
+ DEST="$(global_dir "$PLATFORM")" || { err "unknown platform: $PLATFORM"; exit 2; }
+fi
+
+SRC="$(resolve_src)"
+[ -d "$SRC" ] || { err "could not locate skills/ source at: $SRC"; exit 1; }
+
+# --- copy flat ---------------------------------------------------------------
+info "Installing brooks-lint skills"
+info " from: $SRC"
+info " to: $DEST"
+mkdir -p "$DEST"
+cp -R "$SRC"/* "$DEST"/
+
+count="$(find "$DEST" -maxdepth 2 -name SKILL.md | wc -l | tr -d ' ')"
+ok "Installed $count skills (+ _shared/) into $DEST"
+info "Flat layout verified: brooks-* and _shared/ are siblings, so ../_shared/ resolves."
+echo
+info "Next: open your agent and ask \"review this PR\" / \"audit the architecture\","
+info "or invoke a skill directly (e.g. /brooks-review). See docs/-setup.md."