plugins/clade/skills/review/SKILL.md
Clade coverage-driven project review — walks every VERIFY.md checkpoint, fixes failures in-session, converges when all checkpoints pass. NOT the Codex built-in /review (which reviews a single pull request diff) — if the user wants a PR review, route to /review-pr (Clade's PR reviewer) or the CC built-in.
npx skillsauth add shenxingy/claude-code-kit reviewInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
This workflow runs directly in Codex. Do not launch the claude CLI or
delegate the workflow to Clade's MCP bridge.
Codex compatibility rules:
AGENTS.md files for repository instructions. If a project
has only CLAUDE.md, treat it as legacy project guidance and read it too..clade/ (or ~/.clade/ for personal
state). Existing legacy Claude state may be read for migration, but do not
create new vendor-specific state./skill-name reference means the corresponding Codex $skill-name skill,
or the same workflow invoked naturally when explicit skill invocation is not
available.<plugin-root>/... are relative to the installed Clade plugin
containing this SKILL.md; resolve that root before invoking a helper.You are the Review skill. Your job is to systematically test every checkpoint in VERIFY.md and fix failures in the same session. You do not stop until all checkpoints are ✅ or ⚠.
This is NOT a free-form code review. You follow the coverage matrix defined in VERIFY.md checkpoint by checkpoint, testing each one, fixing failures immediately, and updating statuses in-place.
Read in order:
AGENTS.md — project type, test command, verify command, behavior anchorsVERIFY.md in the project root — the coverage matrix to drive this reviewDetect published URL (used in Step 5.5):
Look for a published URL in this order (stop at first hit):
AGENTS.md — scan for lines matching ## Publish URL, ## Live URL, ## URL, ## Site, ## Production, or a bare https:// under a ## Deploy / ## Links sectionpackage.json — "homepage" fieldvercel.json (check alias), netlify.toml (check [context.production]), .github/workflows/*.yml (grep for url: or CNAME)gh repo view --json homepageUrl --jq '.homepageUrl' — GitHub repo homepage URLStore the result as PUBLISH_URL (empty string if nothing found). This determines whether Step 5.5 runs the website SEO phase.
If VERIFY.md does not exist:
## Project Type, or auto-detect:
package.json with next/react/vue/angular/svelte → frontendrequirements.txt / pyproject.toml with fastapi/flask/django → backendgo.mod / Cargo.toml with http/server/handler patterns → backendGemfile with rails/sinatra → backend*.xcodeproj / Podfile / build.gradle → mobileDockerfile / .github/workflows / *.tf → infra*.tex / *.bib → academic~/.clade/templates/VERIFY-frontend.md~/.clade/templates/VERIFY-backend.md~/.clade/templates/VERIFY-ai.md## Features, and lint/formatpages/ or app/ directory— app-specificFrom VERIFY.md, collect the work queue:
Priority 1 (must test):
Priority 2 (should re-test if time permits):
Verified date is more than 7 days agogit diff --stat HEAD~5)Skip:
Count the queue. If queue is empty (all ✅/⚠), the review has converged — go to Step 6.
Work through the queue in order (Priority 1 first). For each checkpoint:
User Journeys / Navigation / UI States / Form Behavior / Design (frontend):
browser_navigate, browser_snapshot, browser_click)Error Paths / Edge Cases (frontend):
API Endpoints / Authentication / Input Validation / Error Responses (backend):
curl or python -c "import httpx; ..." to make actual requests to the running server## Project TypeDatabase Operations (backend):
Model I/O / Output Validation / Fallback (ai):
Behavior Anchors (all projects):
/verify skill for each anchor in ## FeaturesSEO / Discoverability (SEO checkpoints) — present in web/frontend/backend projects:
curl -s <base-url>/<path> and grep the output for the expected tag/patterngrep -r '<title>' src/)/seo page <url> checks: invoke the seo skill if a live URL is available/seo schema <url> or grep source for application/ld+json/seo geo <url> or check page structure manuallySkill Coordination (SC checkpoints) — only present in Clade / skill-system projects:
"file/SKILL.md" contains "quoted string"grep -q "quoted string" configs/skills/file/SKILL.md && echo ✅ || echo ❌After testing, the checkpoint is one of:
For every ❌ checkpoint found:
timeout 30 (e.g., timeout 30 curl ..., timeout 60 python -m pytest ...)Max-fix-attempts: Each ❌ checkpoint gets at most 3 fix attempts. If after 3 attempts the checkpoint still fails:
[3 attempts exhausted: <root cause summary>. Manual fix required.]Critical rule: never mark a checkpoint ✅ without actually testing it. "The code looks correct" is NOT a passing test.
Anti-hang rules for test commands:
curl, httpx, psql, sqlite3 call: prefix with timeout 30pytest, npm test, go test call: prefix with timeout 120bash ~/.clade/scripts/quiet-run.sh <test cmd> (if installed) — full output lands in .clade/logs/quiet-*.log, only the verdict + failure tail enters your context, and the exit code is mirroredtimeout 30 bash -c 'until curl -sf http://localhost:PORT/health; do sleep 1; done'While testing, you will encounter scenarios not in VERIFY.md. When you find one:
Examples of when to add:
Do NOT add generic or theoretical checkpoints. Only add what you actually encountered.
Run this step when the project has user-facing features (auth, payments, or any long-running operation like upload / processing / generation).
Read ~/.clade/skills/review/e2e-interactions.md (installed from configs/skills/review/e2e-interactions.md).
It defines: Auth States (S0–S4), Feature States (F0–F3), Atomic Actions (A*, N*), and scenario tables (I-, P-, T-, SEQ-).
| Project has | Test scope | |------------|------------| | Long-running operation + auth | All CRITICAL + HIGH rows from the Interrupt Matrix (I-) and Auth Transitions (T-) | | Payment flow | All CRITICAL + HIGH rows from Payment Flow Interrupts (P-*) | | Multi-step journeys | SEQ-01 through SEQ-06 minimum; add SEQ-07 if delete-account exists | | No auth, no payments | Skip this step — mark ⚠ "no auth/payment flows detected" |
For each in-scope scenario:
browser_navigate, browser_click, browser_snapshot) if availableIf Playwright is not available: inspect the source for the relevant handlers (navigation guards, beforeunload, unload, payment webhook idempotency keys, job status polling). Mark ⚠ with "requires browser — checked code path only" if no live test possible.
For each scenario tested, add a row to the ## E2E Interrupts section (create it if missing):
| ID | Scenario | Status | Verified | Notes |
|----|----------|--------|----------|-------|
| I-01 | Navigate away during operation | ✅ | 2026-04-15 | polling resumes on return |
Same rules as Step 4: fix immediately, re-test, commit with committer "fix: e2e - <scenario>" <files>.
Common fixes: add beforeunload guard, add idempotency key to payment intent, fix WebSocket reconnect logic, add job dedup check.
This step runs after all VERIFY.md checkpoints are processed and before the final VERIFY.md update. It is two independent checks.
PUBLISH_URL is non-empty)Run a full SEO audit on the published site:
/seo-audit <PUBLISH_URL>
This invokes the seo-audit skill inline, which delegates to specialist subagents covering:
technical SEO, content quality, schema, sitemap, performance (CWV), visual/mobile, GEO/AI-readiness, and (conditionally) local SEO, backlinks, Google API data.
After the audit completes:
FULL-AUDIT-REPORT.md and ACTION-PLAN.mdcommitter "fix: seo - <issue>" <changed files>If PUBLISH_URL is empty: skip this sub-step, note "no published URL detected" in output.
GitHub repos are indexed by Google and appear in GitHub search — their discoverability matters.
Run:
gh repo view --json name,description,repositoryTopics,homepageUrl,openGraphImageUrl,isPrivate,licenseInfo
Check each signal and fix inline:
| Signal | Pass condition | Fix command |
|--------|---------------|-------------|
| Description | Set, ≥ 15 chars, includes keywords | gh repo edit --description "..." |
| Topics/tags | ≥ 3 topics set | gh repo edit --add-topic tag1 --add-topic tag2 |
| Homepage URL | Matches PUBLISH_URL (or set if blank) | gh repo edit --homepage "<url>" |
| Social preview | openGraphImageUrl is not the default GitHub avatar (contains /u/ path) | Manual: Settings → Social Preview → upload image — mark ⚠ |
| LICENSE file | licenseInfo is not null | Create LICENSE file if missing (ask user which license) |
| README quality | README.md has: H1 title, ≥ 1 screenshot or demo GIF, install instructions, badges | Edit README.md directly |
| Claimed counts | Any "N skills/hooks/agents/scripts" claim in README matches the actual on-disk count (±1) | Count dirs under configs/skills/, configs/hooks/, configs/agents/, configs/scripts/ (or equivalent for this project); update README if off by >10% |
| Visibility | isPrivate: false for a published project | Mark ⚠ if private — note that private repos aren't indexed |
For each failing signal:
gh repo edit for metadata, edit files for README/LICENSE)README quality details: A good repo README for SEO/discoverability has:
# Project Name — exact H1 at the topIf README needs substantive rewrites, make the minimal additions rather than rewriting from scratch.
If the project contains blog content (scan for blog/, posts/, articles/, content/ directories with .md or .mdx files):
/blog-geo <file> to get an AI Citation Readiness Score (0-100)<thead> where appropriatecommitter "fix: geo - improve AI citability for <post>" <files>If PUBLISH_URL is available, also run /seo-geo <PUBLISH_URL> for site-level GEO scoring.
After all review steps, extract learnings:
.clade/learnings.jsonl: {"type":"pitfall","content":"<pattern>","confidence":85}~/.clade/corrections/stats.json domain counters based on checkpoint categoriesAfter all sub-steps, output a brief summary:
SEO_REVIEW:
website: ✅ audit complete, N critical fixed, M issues → ACTION-PLAN.md
| ⚠ no published URL
geo: ✅ 3 posts audited, avg score 72/100, 1 improved
| ⚠ no blog content detected
github: ✅ description ✅ topics ✅ homepage ⚠ social preview (manual) ✅ license ✅ README
| fixed: [list of what was changed]
After completing the work queue, update VERIFY.md:
**Coverage:** N ✅, N ❌, N ⚠, N ⬜ untested
**Last full pass:** YYYY-MM-DD HH:MM
Format for Verified column: YYYY-MM-DD
Format for Notes: brief, factual — what was observed, what was fixed, what limitation exists.
Converged = zero ❌ and zero ⬜ in VERIFY.md.
If NOT converged (any ❌ or ⬜ remain):
REVIEW_RESULT: partial
REMAINING: [comma-separated IDs of ❌/⬜ checkpoints]
COVERAGE: N/total ✅
If converged:
REVIEW_RESULT: pass
REMAINING: none
COVERAGE: N/N ✅ (M ⚠ known limitations)
committer "fix: [description]" [changed files] — don't batch all fixes into one commit.clade/blockers.md3-strike rule: If the same approach fails 3 times, switch to BLOCKED — do not retry indefinitely.
Performs a systematic, coverage-driven review of the project by working through every checkpoint in VERIFY.md. Unlike a free-form code review, this skill tests specific scenarios end-to-end, fixes failures immediately, and only declares convergence when all checkpoints are ✅ or ⚠.
Convergence condition: all checkpoints in VERIFY.md are ✅ (pass) or ⚠ (known limitation). No ⬜ (untested) or ❌ (fail) remaining.
development
Orchestrate a fleet of parallel `codex exec` workers with you (Claude Code) as the supervisor — spawn one per isolated git worktree, dispatch headless, verify each INDEPENDENTLY, PR/merge. The manual "codex-ultracode" pattern for fanning out real implementation, research, or review work onto Codex. Bakes in the hard gotchas (stdin blocking, background tracking, don't-trust-self-reports, writer isolation). Triggers on — orchestrate codex, codex workers, codex fleet, spawn codex, delegate to codex in parallel, manual ultracode, 开 codex 小弟, 派 codex worker — NOT for a single cross-vendor opinion (use the `second-opinion-codex` agent), NOT for web-UI worker decomposition (use `/orchestrate`).
development
Create and manage git worktrees for parallel Codex sessions
development
Verify project behavior anchors — compilation, tests, and interaction checks after autonomous runs. NOT the Codex built-in /verify (which runs the app to observe a single change working) — this one walks the AGENTS.md "Features (Behavior Anchors)" list.
documentation
End-of-session documentation sync — updates TODO.md and PROGRESS.md only (run /commit after to commit everything)