framework/core/skills/flowai-review/SKILL.md
Use when the user asks to review CURRENT uncommitted changes (staged, unstaged, or branch diff) as QA + lead engineer before committing — verdict on task completion, code quality, architecture, cleanup. Requires an existing diff. Do NOT trigger on generic "is this code good?" questions without a diff, or on post-merge code review of historical commits.
npx skillsauth add korchasa/flow flowai-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.
Act as QA engineer + lead engineer simultaneously. Review only the current changes (diff from the task branch or unstaged/staged changes) against the original request and plan. Verify task completion AND code quality in a single pass.
Input sources:
git diff, git diff --cached, git diff <base>..HEAD).documents/tasks/).AGENTS.md, linter/formatter configs).
</context>
<step_by_step>
Empty Diff Guard
git diff --stat, git diff --cached --stat, and
git status --short.Pre-flight Project Check
AGENTS.md/CLAUDE.md (already in your context) documents a
project check command, use that command.deno.json/deno.jsonc → deno task checkpackage.json → the script defined as check (or fall back to
lint/test)Makefile with a check target → make checkpyproject.toml → ruff check . / pytest (if configured there)go.mod → go vet ./... && go test ./...deno * command (deno task check, deno check <file>, deno fmt,
deno lint, deno test, deno cache) creates deno.lock as a side
effect and is forbidden without deno.json/deno.jsonc. Same rule for
npm * without package.json, go * without go.mod,
python -m py_compile/pytest/ruff without pyproject.toml, etc.
Pre-flight artifacts (deno.lock, __pycache__/, node_modules/,
.pytest_cache/) in the working tree after verification are a bug.[critical].Gather Context
documents/requirements.md (SRS) and documents/design.md (SDS) exist (ls documents/ or equivalent). If they exist and their current content is not already in your context — read them before proceeding.git diff (unstaged), git diff --cached (staged),
or git log --oneline <base>..HEAD + git diff <base>..HEAD for
branch-based changes.git diff does NOT show untracked files. Check
git status output from step 1 — for each untracked file, read its
content directly and include it in the review scope.documents/tasks/ / task list).Parallel Delegation (after gathering context):
git diff --stat shows < 50 changed lines,
skip delegation — run all steps inline (overhead not justified).Task,
Agent, parallel):
flowai-console-expert). Return pass/fail + full output.TODO,
FIXME, HACK, XXX, console.log, temp_*, *.tmp, *.bak,
hardcoded secrets patterns. Delegate to a console/shell-capable agent.
Return findings list.QA: Task Completion
[critical] Missing.[critical] Phantom completion.4a. FR Coverage Audit (blocking gate — see Requirements Lifecycle in AGENTS.md)
implements: frontmatter; (b) any FR section added or modified in the diff to documents/requirements.md; (c) any // FR-<ID> / # FR-<ID> markers introduced or touched in the diff.**Acceptance:** with a runnable reference (test path::name, benchmark id, verification command, or manual — <reviewer>). Missing or placeholder (<TBD>, TODO) → [critical] FR-<ID> has no acceptance reference.deno run -A scripts/check-fr-coverage.ts FR-<ID> if the script exists). Non-zero exit, failing test, or manual without a reviewer name → [critical] FR-<ID> acceptance fails.// FR-<ID> / # FR-<ID> in implementing source files. FR claimed implemented in diff but no marker in changed source → [critical] FR-<ID> missing code marker.[x] paired with this FR but no evidence-command run in this session and no cached pass → [critical] Phantom completion on FR-<ID>.Approve while any FR-gate issue remains, regardless of other findings.QA: Hygiene (use SA2 result if available; otherwise run inline)
temp_*, *.tmp, *.bak, debug console.log/
print statements, hardcoded secrets or localhost URLs.TODO, FIXME, HACK, XXX introduced in
this diff (distinguish from pre-existing ones).[warning] Entire directory deleted — confirm intentional and ask the
user to verify before proceeding.Code Review: Design & Architecture
Code Review: Implementation Quality
any, untyped
parameters, missing return types (where project conventions require them).Code Review: Readability & Style
Run Automated Checks (collect results from step 2 and/or SA1)
Final Report Output a structured report with the verdict on the FIRST line:
## Review: [Approve | Request Changes | Needs Discussion]
### QA Findings
- [severity] file:line — description
### Code Review Findings
- [severity] file:line — description
### Automated Checks
- [pass|fail|skipped] command — summary
### Summary
- Requirements covered: X/Y
- Critical issues: N
- Warnings: N
- Nits: N
If no issues: short confirmation "Changes look good. All requirements covered, no issues found."
</step_by_step>
development
Use when the user asks to add TypeScript strict-mode code-style rules to AGENTS.md for a TypeScript project using strict mode. Do NOT trigger for Deno projects (use setup-agent-code-style-deno) or non-strict TS configurations.
development
Use when the user asks to add Deno/TypeScript code-style rules to AGENTS.md, or during initial Deno project setup when code-style guidelines need to be established. Do NOT trigger for non-Deno TypeScript projects (use setup-agent-code-style-strict), or for runtime-agnostic style advice.
testing
Use when the user provides a source (URL, file path, or free text) to save into the project's memex — a long-term knowledge bank for AI agents. Stores the raw source, extracts entities into cross-linked pages, runs a backlink audit, and updates the index and activity log. Do NOT trigger on casual reads; only when the intent is to persist a source into the memex.
development
Use when the user asks to audit a memex (long-term knowledge bank for AI agents) for orphans, dead SALP REFs, missing sections, contradictions, or index drift. Runs a deterministic structural check, layers LLM-judgement findings, optionally auto-fixes trivial issues with `--fix`. Do NOT trigger on general code linting.