skillshop-ostyles/agents-quality
Code quality, smells, refactoring signals, and consistency skills.
API footgun reviewer: harvests exported function/method signatures, flags boolean-trap positions (multiple bare bool params in a row), same-type-adjacent swaps (from/to, save/loadUntil), and inconsistent family conventions (create*/update* with different param orders or arities). Read-only. Audience: Senior > Vibe. Trigger: /footguns
Clone drift tracker: detects code blocks that USED to be clones (identical at past git ref) and have since drifted apart. Mines git history to compare function-body hashes between HEAD and HEAD~N (default 100), and reports pairs whose semantics diverged on one side but not the other. Read-only. Audience: Senior. Trigger: /clone-drift
Code clone detector: finds exact (Type 1), parameterized (Type 2), near-miss (Type 3), and semantic (Type 4) clones. Risk-tiered report with deduplication proposals. Read-only. Audience: Both. Trigger: /code-clone
Code smell detector: statically identifies 10 families of structural code quality issues (long methods, deep nesting, god classes, feature envy, primitive obsession, data clumps, shotgun surgery, message chains, refused bequest, speculative generality). Evidence-based report with metrics and LLM validation. Read-only. Audience: Both. Trigger: /code-smell
Comment lie detector: extracts every behavioral-claim comment (returns / throws / always / never / must / thread-safe / side-effect) with 30 lines of surrounding code context, then has the LLM judge whether the code does what the comment promises. Categorizes each comment as consistent / contradicts / outdated / unverifiable with confidence proven/likely/suspected. Read-only. Audience: Both. Trigger: /comment-lies
Finds duplicated BUSINESS LOGIC (not duplicated text): extracts rule candidates (validations, calculations, domain constants, regexes, status logic) from a codebase, then has the LLM cluster semantically equal rules across different implementations and flag divergent ones with a single-source-of-truth proposal. Read-only. Trigger: /consist
Dead-path undertaker: identifies provably unreachable code by combining static reachability (unreferenced exports/files), optional runtime evidence (coverage reports, logs) and git age, then produces a burial list ranked by evidence strength. NEVER deletes automatically - prepares patches for individual user approval only. Trigger: /bury
Documentation drift detector: extracts verifiable claims from a repo's markdown docs (file paths, commands/scripts, config keys, endpoints, versions, referenced symbols) and statically verifies each one against the actual code, reporting every stale claim with a concrete fix suggestion. Never executes documented commands. Read-only. Trigger: /doc-drift
Error handling auditor: detects 8 anti-patterns (swallowed exceptions, generic catches, missing error handling, missing finally, error handling inconsistency, logging without context, ignored return codes, exception type abuse). Risk-tiered report with remediation suggestions. Read-only. Audience: Both. Trigger: /error-audit
Reconstructs WHY code exists the way it does: mines git history (log -follow, blame, ticket references) for a file or symbol, then has the LLM rebuild the intent story with commit-level evidence and confidence ratings. Read-only. Trigger: /intent
Invariant miner: scans for code signals that imply hidden invariants (array[0] without guards, division by computed values, JSON.parse assumptions, Async state-readiness patterns) and presents them to the LLM with context for each. The LLM extracts invariant sentences and judges guaranteed-by-construction vs fragile. Read-only. Audience: Senior. Trigger: /invariants
Magic value genealogist: extracts numeric and uppercase-string literals from non-test source files, filters trivials (0/1/24/60/...), groups by literal value, traces each first occurrence to its introducing commit and author via git blame, clusters semantically duplicated constants that should be unified. Read-only. Audience: Both. Trigger: /magic-values
Migration limbo detector: screens for half-finished migrations by counting usage of competing patterns (axios/fetch, moment/date-fns, jest/vitest, require/import, redux/zustand, joi/zod, ...), reconstructing the migration timeline via git log, and estimating completion effort. Custom pattern pairs supported via -CustomPairs. Read-only. Audience: Senior. Trigger: /migration-limbo
Misleading name detector: harvests every prefixed function with reader/mutator/predicate cues (get*/find*/fetch*/set*/write*/is*/has*/can*/...) and extracts the first 600 chars of brace-balanced body. LLM judges whether the code does what the name promises. Severity scales with call count and visibility. Read-only. Audience: Both. Trigger: /name-lies
Paranoia profiler: catalogs every defensive guard (null/undefined/empty/try-catch/typeof/instanceof) with its context. LLM judges each guard for impossibility (paranoid zone), under-defense on external input (naive zone), or calibrated (good fit). Read-only. Audience: Senior. Trigger: /paranoia
Performance anti-pattern detector: statically finds 8 families of structural performance problems (N+1 queries, sync-over-async, hot-loop allocation, listener leaks, unnecessary serialization, large closure captures, string concat in loop, redundant computation). Evidence-based report with severity and LLM impact assessment. Read-only. Audience: Senior. Trigger: /perf
Blast-radius predictor for a planned change: combines a static reference scan (which files mention the target's exported symbols) with git co-change analysis (which files historically changed together with the target), then produces a risk-tiered report with concrete review/test recommendations. Read-only. Trigger: /blast
Requirements lie detector: reads a corpus of specs/tickets (text files) and finds contradictions, gaps, ambiguities, silent assumptions and untestable statements - each finding with quote, location, severity and a concrete clarification question. Read-only. Trigger: /spec-check
Test honesty auditor: statically detects 6 categories of tests-that-cannot-fail (zero-assertion tests, tautological assertions, tests that assert on their own mocks, try-around-assert swallowing, rotting disabled/skipped tests, ambiguous disabled-state). Auto-bucketizes each test, then LLM judges which actually pin down behavior vs. which pass by accident. Risk-tiered report with proposed minimal fixes. Read-only. Audience: Both. Trigger: /test-honesty
Ubiquitous language guard: harvests identifiers from code, schema and API definitions, has the LLM cluster synonyms that name the same domain concept (customer/client/account/kunde), reports naming divergences with all locations and proposes one canonical term per concept including rename impact estimate. Never renames anything. Read-only. Trigger: /vocab
Wheel reinvention detector: harvests exported short utility functions (≤40 lines, no class state) and pairs each with the project's installed libraries (package.json, requirements.txt) plus language stdlib hints. LLM judges whether each candidate semantically duplicates an existing stdlib or library API, names the replacement, and notes behavioral differences. Read-only. Audience: Both. Trigger: /reinvented-wheels