skills/mine/architectural-analysis/SKILL.md
Architectural audit that hunts dead code, duplicated functionality, anti-patterns, type confusion, and code smells across a whole codebase. Use when the user asks for architectural analysis, to find dead or unused code, identify duplication, or assess codebase health. Don't use for style/formatting, performance profiling, security audits, or feature-level code review.
npx skillsauth add pedronauck/skills architectural-analysisInstall 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.
Read-only audit of an entire codebase. Report findings only — make no edits. Classification depth for every dimension lives in references/detection-catalog.md; each step below names its section — read that section in full before classifying findings in that dimension.
List directories and count source files, then Glob every source file and build a todo with one item per file. Note the entry points that anchor usage tracing: app entry (index/main/app), API routes/controllers, public index.ts exports, CLI entries, tests.
find . -type d -not -path "*/node_modules/*" -not -path "*/.git/*"
find . -name "*.ts" -o -name "*.tsx" -o -name "*.js" -o -name "*.jsx" | wc -l
Done when every source file has a todo entry.
For each file in the todo: list its exports, then search every export for imports or usages elsewhere.
grep -rn "ExportName" . --include="*.ts" --include="*.tsx"
Before recording anything as dead, clear it against the "Not dead" list in references/detection-catalog.md → Dead code — a symbol used only in tests, loaded dynamically, reached by string/reflection, exposed as public API, or wired as a framework hook counts as USED. Record each finding as file:line, category, and confidence per that section, then mark the todo item complete.
Done when every todo file's exports are usage-checked and categorized.
Surface candidates by similar names, repeated blocks, and competing implementations of one concept.
grep -rn "function validateEmail" . --include="*.ts"
Confirm each candidate group by reading the implementations, then classify and rank it using references/detection-catalog.md → Duplication.
Done when every candidate group is read and classified.
Inspect the largest files and trace import chains for cycles.
find . -name "*.ts" -exec wc -l {} + | sort -rn | head -20
grep -rn "from.*auth" src/ --include="*.ts" # who imports a suspected hub
Check findings against the full set in references/detection-catalog.md → Anti-patterns.
Done when each of the largest files is judged and import cycles among entry modules are traced.
grep -rnE ": any|: unknown|as any|as unknown|@ts-ignore|@ts-expect-error" . --include="*.ts" --include="*.tsx"
For each hit decide whether a proper type is possible or a real error is being masked; classify per references/detection-catalog.md → Type issues.
Done when every hit is judged.
Sweep for long functions, long parameter lists, complex conditionals, magic numbers/strings, dead commented-out code, and poor naming.
grep -rnE "^[[:space:]]*//.*(function|class|const)" . --include="*.ts" # commented-out code
Thresholds for each smell are in references/detection-catalog.md → Code smells.
Done when every smell category has been swept.
Populate assets/report-template.md and write it to .audits/architectural-analysis-[timestamp].md, filling every placeholder from steps 2–6. Keep every section present; where a count is zero, write "None found" rather than deleting the heading.
Done when every placeholder is replaced and every section is present.
Populate assets/summary-template.md and emit it inline in chat, linking to the full report at the end.
development
Deep review of branch diffs, working trees, or GitHub PRs at any size. Use when the user asks for CodeRabbit-grade review, an incremental re-review after new pushes, publication of findings to a PR, a cross-LLM peer-review verdict round, or conformance review against spec artifacts. Don't use for applying fixes, reviewing specs or PRDs as documents, or quick single-file feedback.
tools
Orchestrate Claude and Codex worker TUIs from a controller agent through herdr panes and the herdr socket CLI. Use when delegating bounded tasks to herdr worker panes, running user-activated plan-first delegations (Claude Code plan mode, Codex Plan mode), waiting on native agent status (idle, working, blocked, done), or verifying worker reports. Workers launch as interactive TUIs via herdr agent start — never through headless runners (compozy exec, claude -p, codex exec). Not for cmux workspaces (see cmux-orchestration) and not for end-user herdr control.
tools
TanStack Query, Router, and Form patterns for React. Use when writing useQuery/queryOptions, mutations, caching, file-based routes, search params, loaders, or TanStack Form validation. Don't use for TanStack Start, TanStack DB/collections, Zustand client state, or non-TanStack routing.
development
Use when the user wants to design, redesign, shape, critique, audit, polish, clarify, distill, harden, optimize, adapt, animate, colorize, extract, or otherwise improve a frontend interface. Covers websites, landing pages, dashboards, product UI, app shells, components, forms, settings, onboarding, and empty states. Handles UX review, visual hierarchy, information architecture, cognitive load, accessibility, performance, responsive behavior, theming, anti-patterns, typography, fonts, spacing, layout, alignment, color, motion, micro-interactions, UX copy, error states, edge cases, i18n, and reusable design systems or tokens. Also use for bland designs that need to become bolder or more delightful, loud designs that should become quieter, live browser iteration on UI elements, or ambitious visual effects that should feel technically extraordinary. Not for backend-only or non-UI tasks.