Speq code review
Code review tag taxonomy and findings output format — guardrail violations, dead code, obsolete tests, bad comments, optimizations, YAGNI/over-engineering. Triggered by code-reviewer.From its SKILL.md
npx -y skills add marconae/speq-skill --skill speq-code-reviewAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
SKILL.md
4.0 KB, 944 tokens by cl100k_base, as published. Nobody here has run it
Code Review Taxonomy
Analyze each changed file for the categories below.
Non-goal: a deviation the brief notes as authorized by an active project hook (e.g. a skipped guardrail, a relaxed convention) is a settled, intentional choice — don't raise it as a finding under any category below.
1. Guardrail Violations
Per /speq-code-guardrails:
[TOO_MANY_ARGUMENTS]— more than 3 arguments[SIDE_EFFECT]— function has side effects[BOOLEAN_FLAG_PARAMETER]— boolean flag parameter[MAGIC_NUMBER]— magic number without a named constant[MISSING_DOC_COMMENT]— missing doc comment on a public interface[INLINE_COMMENT]— inline comment present (TODOs and other work-tracking comments are[WORK_TRACKING_COMMENT], not this tag)
2. Dead Code
[UNUSED_FUNCTION]— unused function or method[UNREACHABLE_CODE]— unreachable code path[UNUSED_IMPORT]— import not used[UNUSED_VARIABLE]— variable assigned but never read
3. Obsolete Tests
[OBSOLETE_TEST]— tests removed functionality[DUPLICATE_TEST]— duplicate test coverage[ASSERTION_FREE_TEST]— test always passes, no assertions
4. Bad Comments
[REDUNDANT_COMMENT]— describes "what" not "why"[OUTDATED_COMMENT]— doesn't match the code[COMMENTED_OUT_CODE]— commented-out code block[WORK_TRACKING_COMMENT]— TODO, FIXME, ticket refs
5. Optimization Opportunities
[PERFORMANCE_ISSUE]— obvious performance issue[UNNECESSARY_ALLOCATION]— unnecessary allocation in a loop[DUPLICATE_OPERATION]— operation that repeats work already done
6. YAGNI / Over-Engineering
Per /speq-code-guardrails's YAGNI Checks:
[STANDARD_LIBRARY_DUPLICATE]— logic that reimplements something the language's standard library already provides[SHRINKABLE]— same logic expressible in meaningfully fewer lines[DEAD_FLEXIBILITY]— a feature flag, extension point, or parameter that's never varied[UNNEEDED_DEPENDENCY]— a dependency added for something the standard library or an already-installed dependency already covers[SPECULATIVE_ABSTRACTION]— an interface, generic type, or configuration value with exactly one implementation or caller
Output Format
# Code Review Findings
## Summary
- Files reviewed: N
- Total findings: M
- By category: Violations (X), Dead Code (Y), Tests (Z), Comments (W), Optimizations (V), YAGNI (U)
## Findings
### path/to/module
#### [TOO_MANY_ARGUMENTS] Function has too many arguments
- Location: line 42
- Issue: `process_data(a, b, c, d, e, f)` has 6 arguments
- Suggestion: Create a config struct
#### [UNUSED_FUNCTION] Unused function
- Location: line 87
- Issue: `old_helper()` has no callers
- Suggestion: Remove function
### path/to/module_test
#### [OBSOLETE_TEST] Tests removed functionality
- Location: line 15
- Issue: `test_old_feature` tests deleted code
- Suggestion: Remove test
#### [STANDARD_LIBRARY_DUPLICATE] Custom function reimplements a standard library operation
- Location: line 55
- Issue: `dedup_items(...)` reimplements the language's built-in deduplication operation
- Suggestion: Replace with the standard library's deduplication function
#### [SPECULATIVE_ABSTRACTION] Interface with a single implementation
- Location: line 90
- Issue: `Storage` interface has exactly one implementation, `FileStorage`
- Suggestion: Inline `FileStorage`; reintroduce the interface if a second implementation appears
Routing
Every tag across all 6 categories is delegated to implementer-agent/implementer-expert-agent exactly like any other finding — no special-casing. Tag the resulting fix task [expert] if removing the dependency/abstraction has cross-file or subtle-correctness implications.
What ships with it: 1 file
2.3 KB alongside SKILL.md