视觉画布设计
canvas-design
基于设计原则创作静态视觉作品,用于海报与品牌图形。
review【文档与办公】The pre-merge review of a branch in a project that records its specs, decisions, and rules in .archcore/. Run this first for 'review my branch', 'review the changes before merge', or 'review before merge': it checks the changed code against the project's recorded canon and the changed documents against the code, and reports which side is wrong — spec…
独立 GitHub 快照 · 自动分类 · 以原作者文档为准
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. This is also the only skill that removes a document: closeout.discharge removes a completed plan, and actualize.fix may remove a long-stale draft of any type — both via mcp__archcore__remove_document, each under its own confirmation.
Command tense: /archcore:plan declares a future canon delta, /archcore:document
records the present state — including work that shipped without a plan — and
/archcore:review reconciles a past declared delta. Δ vocabulary:
skills/_shared/delta-routing.md.
driftdeepdriftcloseoutexperienceNot review:
/archcore:document/archcore:plan/archcore:init| 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) |
First word drift | → actualize track (step 3); scope from step 1 when the branch boundary resolves, all documents on on-default-branch or empty-diff |
First word deep | → actualize track over all documents, plus coverage and relation findings |
First word closeout | → closeout track (skills/_shared/tracks/closeout.md), scope pre-filled from the step 1 branch-state block; exits into the step 4 experience offer |
First word experience | → experience track (skills/_shared/tracks/experience.md) over the branch scope; the detect gate selects cpat or task-type |
| Path, tag, or scope argument | → the named scope narrows or replaces the branch scope |
| Completion signals: "close out the feature", "ship the feature and close it out" — an explicit completion or acceptance verb, not mere branch readiness. A plain "review my branch" stays on branch review even for a merge-ready branch | → closeout track (skills/_shared/tracks/closeout.md), scope pre-filled from the step 1 branch-state block; exits into the step 4 experience offer |
Any other first word — a track or type name such as actualize or cpat, or a former flag such as --drift | → topic text; route by the signals above |
On the closeout track, closeout.verify reconciles the plan's ## Declared Delta section against the branch diff and reports drift as unplanned Δ — details in skills/_shared/tracks/closeout.md.
Load skills/_shared/gate-contract.md and skills/_shared/elicitation-contract.md before executing any track gate. Question budgets follow the elicitation contract.
Before relation review, load skills/_shared/relation-authoring.md. Read the
affected claims before reporting missing, unsupported, or redundant edges.
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; plan, prd, idea, rnd, and research (when skills/_shared/research-compatibility.md returned yes), plus scenario and journey (when skills/_shared/actor-subject-compatibility.md returned yes), for the closeout track's plan-and-implements-chain scope — instead of relying on the global type ranking. When a found document has implements, depends_on, 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. Also load it when a search_documents response's coverage names a source other than "local" — even when results is empty: the empty page is exactly where that file's retry ladder applies. Never modify a global document and never add a relation to one. Exclude global documents from every local-health metric — counts, the unlinked-document inventory, drift; you MAY add one separate line naming the mounted source and its document count.
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. |
In drift mode, 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:
An unlinked document or a high draft count alone is not an issue.
End with: For staleness detection, run /archcore:review drift. For a full audit, run /archcore:review deep.
Before delegating an audit, supply the resolved branch scope, scoped diff, and relevant git history to the auditor. Identify missing history explicitly.
Before computing project-wide metrics, page through list_documents until
truncated: false, increasing offset by returned after each page. If a
truncated page returns zero documents, report an incomplete inventory.
Over the branch scope, check both directions:
mcp__archcore__get_document; compare its claims against the changed code..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.
WHEN step 2 surfaces a drift signal — any spec-wrong or code-wrong finding — or the first word is 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. In deep mode, widen the scope to all documents and report coverage gaps, relation health, status, and consistency findings alongside the drift verdicts. Verdict vocabulary lives in skills/_shared/verdict-contract.md.
WHEN the reviewed changes repeat an undocumented pattern, offer a cpat or task-type capture through the experience track (skills/_shared/tracks/experience.md): experience.detect establishes the repeated edit shape and its evidence; experience.offer asks once. The offer is optional — never force it; a decline writes nothing.
archcore-auditor agent collects findings read-only: document inventory, relation graph, drift and coverage signals. The agent never questions the user (a subagent MUST NOT conduct an interview, per skills/_shared/elicitation-contract.md) and never writes.archcore-auditor agent, pass the absolute plugin root — the directory two levels above this SKILL.md. The agent reads skills/_shared/relation-authoring.md under that root.mcp__archcore__update_document, one document at a time, per the actualize.fix gate. The review skill MUST NOT edit code on this path — it reports a code-wrong finding without fixing it.spec-wrong / code-wrong / ok — with evidence, applied fixes, and declined fixes.cpat or task-type draft from the experience offer or from closeout residue capture; knowledge: a guide, or an adr plus its standard cascade (rule, guide), when closeout routes residue through the decision instrument; knowledge / vision: documents updated by a drift fix or a closeout merge.plan closeout removed, and each long-stale draft a drift fix removed on the user's confirmation — each named with the commit that still carries the file.<track>.<stage>.