/review
Review branch changes against Archcore docs, or report project health. Use for 'review my branch', 'review the changes before merge', 'show status', 'documentation gaps', 'check if docs match code', or after a staleness warning. --drift for staleness detection, --deep for a full
$ npx -y skills add archcore-ai/plugin --skill review --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
- Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
- You can call itInvoke it directly when you want it.
- Slash command
/review
Context preview
The summary Claude sees to decide when to auto-load this skill.
Review branch changes against Archcore docs, or report project health. Use for 'review my branch', 'review the changes before merge', 'show status', 'documentation gaps', 'check if docs match code', or after a staleness warning. --drift for staleness detection, --deep for a full
SKILL.md
review.SKILL.mdname: review
argument-hint: "[--deep] [--drift] [path, tag, or scope]"
description: "Review branch changes against Archcore docs, or report project health. Use for 'review my branch', 'review the changes before merge', 'show status', 'documentation gaps', 'check if docs match code', or after a staleness warning. --drift for staleness detection, --deep for a full documentation audit. Not for creating docs — use /archcore:document; not for planning — use /archcore:plan."
/archcore:review
Review the changes on the current branch against the `.archcore/` knowledge base, in both directions: whether the changed code still matches the documents that claim it, and whether the changed documents still match the code they describe. On the default branch, or with an empty diff, the skill reports project health instead. Write affinity: experience types — `cpat` and `task-type` land through the experience track.
When to use
- "Review my branch" / "Review the changes before merge" → branch review
- "Show status" / "How many docs do we have?" → project health dashboard
- "Are any docs out of date?" / "Check if documentation matches the code" → `--drift`
- "Audit the knowledge base" / "Documentation gaps?" → `--deep`
- Session-start staleness warning appeared → `--drift`
**Not review:**
- Documenting a module, decision, or topic → `/archcore:document`
- Planning a feature or initiative → `/archcore:plan`
- First-time setup → `/archcore:init`
Routing table
| Signal | Route | |---|---| | No arguments, branch with changes | → branch review, steps 1–4 | | On the default branch, or empty diff | → project health dashboard (step 1 fallback) | | `--drift` | → actualize track (step 3); scope from step 1 when the branch boundary resolves, all documents on `on-default-branch` or `empty-diff` | | `--deep` | → actualize track over all documents, plus coverage and relation findings | | Path, tag, or scope argument | → the named scope narrows or replaces the branch scope | | Named track or type (`actualize`, `experience`, `cpat`, `task-type`) | → execute the named path without routing |
Execution
Load `skills/_shared/gate-contract.md` and `skills/_shared/elicitation-contract.md` before executing any track gate. Question budgets follow the elicitation contract.
IF `.archcore/` does not exist, THEN announce initialization in one line and call `mcp__archcore__init_project` without asking a question. IF `.archcore/` contains zero documents, THEN proceed on git and codebase grounding and report that zero documents were found.
**Grounding.** Search all three categories — vision, knowledge, experience — with `mcp__archcore__search_documents` / `mcp__archcore__list_documents`; never exclude a category from reads. Pass a type filter matched to the review moment — `spec`, `rule`, `adr`, `doc`, `guide` for claims on changed code; `cpat`, `task-type` for precedent — instead of relying on the global type ranking. When a found document has `implements` or `related` relations, pull the linked documents one hop across categories.
**Global sources (only when present).** If any `list_documents` / `search_documents` result carries `global: true` / `read_only: true` / `source_kind: "global"`, load `skills/_shared/globals.md`. Never modify a global document and never add a relation to one. Exclude global documents from every local-health metric — counts, orphan detection, drift; you MAY add one separate line naming the mounted source and its document count.
Step 1: Branch scope
Resolve the branch work boundary per `skills/_shared/branch-state.md` — plain git, offline. On success, the `branch-state` output block (committed and uncommitted changes since the merge base) is the review scope. A path, tag, or scope argument narrows the changed-file list.
Handle every sentinel the contract defines:
| Sentinel | Response | |---|---| | `no-repo` | Request an explicit path or topic; review that scope without a diff. | | `detached-head` | State the detached state; request an explicit path, topic, or ref. | | `no-default-branch` | Request an explicit path or topic. | | `no-merge-base` | Request an explicit path or topic. | | `on-default-branch` | Report project health instead of a branch review. | | `empty-diff` | Report project health instead of a branch review. |
With `--drift`, the `on-default-branch` and `empty-diff` sentinels widen the actualize scope to all documents instead of the health fallback.
**Project health fallback** — compact dashboard, data only, no analysis:
- document counts by category, by status, and by type (skip types with 0);
- relation counts by type;
- orphaned documents (no incoming or outgoing relations);
- one-line issues summary (orphans, high draft count).
End with: *For staleness detection, run `/archcore:review --drift`. For a full audit, run `/archcore:review --deep`.*
Step 2: Bidirectional check
Over the branch scope, check both directions:
1. Changed code versus the documents that claim it — search for documents that reference the changed paths, modules, or names; read each match with `mcp__archcore__get_document`; compare its claims against the changed code. 2. Changed documents versus the code they describe — for each changed `.archcore/` document, read the referenced code and compare.
Each conflict finding carries exactly one verdict: `spec-wrong` (the document is stale), `code-wrong` (the code violates a document that still stands), or `ok` (the pair matches on inspection). Cite the evidence — changed files, modification dates, content markers — with every non-`ok` verdict.
Step 3: Actualize gate
WHEN step 2 surfaces a drift signal — any `spec-wrong` or `code-wrong` finding — or the user passed `--deep` or `--drift`, route into the actualize track (`skills/_shared/tracks/actualize.md`) and run its gates: `actualize.scope` (pre-filled with the step 1 `branch-state` block), `actualize.verdict`, `actualize.fix`. With `--deep`, widen the scope to all documents
Read more
name: review argument-hint: "[--deep] [--drift] [path, tag, or scope]" description: "Review branch changes against Archcore docs, or report project health. Use for 'review my branch', 'review the changes before merge', 'show status', 'documentation gaps', 'check if docs match code', or after a staleness warning. --drift for staleness detection, --deep for a full documentation audit. Not for creating docs — use /archcore:document; not for planning — use /archcore:plan."
/archcore:review
Review the changes on the current branch against the `.archcore/` knowledge base, in both directions: whether the changed code still matches the documents that claim it, and whether the changed documents still match the code they describe. On the default branch, or with an empty diff, the skill reports project health instead. Write affinity: experience types — `cpat` and `task-type` land through the experience track.
When to use
- "Review my branch" / "Review the changes before merge" → branch review
- "Show status" / "How many docs do we have?" → project health dashboard
- "Are any docs out of date?" / "Check if documentation matches the code" → `--drift`
- "Audit the knowledge base" / "Documentation gaps?" → `--deep`
- Session-start staleness warning appeared → `--drift`
**Not review:**
- Documenting a module, decision, or topic → `/archcore:document`
- Planning a feature or initiative → `/archcore:plan`
- First-time setup → `/archcore:init`
Routing table
| Signal | Route | |---|---| | No arguments, branch with changes | → branch review, steps 1–4 | | On the default branch, or empty diff | → project health dashboard (step 1 fallback) | | `--drift` | → actualize track (step 3); scope from step 1 when the branch boundary resolves, all documents on `on-default-branch` or `empty-diff` | | `--deep` | → actualize track over all documents, plus coverage and relation findings | | Path, tag, or scope argument | → the named scope narrows or replaces the branch scope | | Named track or type (`actualize`, `experience`, `cpat`, `task-type`) | → execute the named path without routing |
Execution
Load `skills/_shared/gate-contract.md` and `skills/_shared/elicitation-contract.md` before executing any track gate. Question budgets follow the elicitation contract.
IF `.archcore/` does not exist, THEN announce initialization in one line and call `mcp__archcore__init_project` without asking a question. IF `.archcore/` contains zero documents, THEN proceed on git and codebase grounding and report that zero documents were found.
**Grounding.** Search all three categories — vision, knowledge, experience — with `mcp__archcore__search_documents` / `mcp__archcore__list_documents`; never exclude a category from reads. Pass a type filter matched to the review moment — `spec`, `rule`, `adr`, `doc`, `guide` for claims on changed code; `cpat`, `task-type` for precedent — instead of relying on the global type ranking. When a found document has `implements` or `related` relations, pull the linked documents one hop across categories.
**Global sources (only when present).** If any `list_documents` / `search_documents` result carries `global: true` / `read_only: true` / `source_kind: "global"`, load `skills/_shared/globals.md`. Never modify a global document and never add a relation to one. Exclude global documents from every local-health metric — counts, orphan detection, drift; you MAY add one separate line naming the mounted source and its document count.
Step 1: Branch scope
Resolve the branch work boundary per `skills/_shared/branch-state.md` — plain git, offline. On success, the `branch-state` output block (committed and uncommitted changes since the merge base) is the review scope. A path, tag, or scope argument narrows the changed-file list.
Handle every sentinel the contract defines:
| Sentinel | Response | |---|---| | `no-repo` | Request an explicit path or topic; review that scope without a diff. | | `detached-head` | State the detached state; request an explicit path, topic, or ref. | | `no-default-branch` | Request an explicit path or topic. | | `no-merge-base` | Request an explicit path or topic. | | `on-default-branch` | Report project health instead of a branch review. | | `empty-diff` | Report project health instead of a branch review. |
With `--drift`, the `on-default-branch` and `empty-diff` sentinels widen the actualize scope to all documents instead of the health fallback.
**Project health fallback** — compact dashboard, data only, no analysis:
- document counts by category, by status, and by type (skip types with 0);
- relation counts by type;
- orphaned documents (no incoming or outgoing relations);
- one-line issues summary (orphans, high draft count).
End with: *For staleness detection, run `/archcore:review --drift`. For a full audit, run `/archcore:review --deep`.*
Step 2: Bidirectional check
Over the branch scope, check both directions:
1. Changed code versus the documents that claim it — search for documents that reference the changed paths, modules, or names; read each match with `mcp__archcore__get_document`; compare its claims against the changed code. 2. Changed documents versus the code they describe — for each changed `.archcore/` document, read the referenced code and compare.
Each conflict finding carries exactly one verdict: `spec-wrong` (the document is stale), `code-wrong` (the code violates a document that still stands), or `ok` (the pair matches on inspection). Cite the evidence — changed files, modification dates, content markers — with every non-`ok` verdict.
Step 3: Actualize gate
WHEN step 2 surfaces a drift signal — any `spec-wrong` or `code-wrong` finding — or the user passed `--deep` or `--drift`, route into the actualize track (`skills/_shared/tracks/actualize.md`) and run its gates: `actualize.scope` (pre-filled with the step 1 `branch-state` block), `actualize.verdict`, `actualize.fix`. With `--deep`, widen the scope to all documents
Make your AI code like it already knows your repo. Archcore gives coding agents the architecture, rules, and prior decisions of this repo — so new changes land where your project says they belong and follow the team's conventions, automatically.
Repo: archcore-ai/plugin
Other skills on archcore-ai-plugin.
- /document
Record a decision or document existing code. Use for 'we decided', 'record this decision', 'document why we chose X', 'make it our standard', 'draft an RFC', 'should we switch to Y' proposals, 'document the auth module', 'capture how the payment system works', reference
Open skill - /init
First-time Archcore setup. Detects repo scale and shape, then composes a full first-day seed — stack rule, run guide, data-model, integrations, config, entry points, public surface, a linked architecture overview, and specs for the top hotspot modules — shown in ONE preview and
Open skill - /plan
Plan a feature or initiative over gated tracks: sdd (idea → PRD → spec → plan) by default, sources mode (MRD → BRD → URD) for market research and discovery, iso mode (BRS → StRS → SyRS → SRS) for ISO 29148 and regulated work. Use for 'plan the X redesign', 'create a roadmap',
Open skill

