plugins/codebase-audit-suite/skills/ln-641-pattern-fitness-auditor/SKILL.md
Audits whether one implemented architectural pattern fits project needs and best practices. Use when checking pattern fitness.
npx skillsauth add levnikolaevich/claude-code-skills ln-641-pattern-fitness-auditorInstall 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.
Paths: File paths (
references/,../ln-*) are relative to this skill directory.
Type: L3 Worker
L3 Worker that analyzes a single architectural pattern against best practices and project needs.
KEEP_PATTERN, SIMPLIFY_PATTERN, COMPLETE_PATTERN, or REPLACE_PATTERNOut of Scope:
- pattern: string # Pattern name (e.g., "Job Processing")
- locations: string[] # Known file paths/directories
- bestPractices: object # Best practices from MCP Ref/Context7/WebSearch
- output_dir: string # e.g., ".hex-skills/runtime-artifacts/runs/{run_id}/audit-report"
Note: If pattern evidence is provided by a managed run, use that evidence instead of rediscovering the same pattern from scratch.
Detection policy: use two-layer detection (candidate scan, then context verification); load references/two_layer_detection.md only when the verification method is ambiguous.
Tool policy: follow host AGENTS.md MCP preferences; load references/mcp_tool_preferences.md and references/mcp_integration_patterns.md only when host policy is absent or MCP behavior is unclear.
Use hex-graph first when implementation discovery materially improves confidence. Use hex-line first for local code reads when available. If MCP is unavailable, unsupported, or not indexed, continue with built-in Read/Grep/Glob/Bash and state the fallback in the report.
MANDATORY READ: Load references/pattern_library.md -- use "Pattern Detection (Grep)" table for detection keywords per pattern.
IF pattern.source == "adaptive":
# Pattern evidence was already provided by the caller
files = pattern.evidence.files
SKIP detection keyword search (already done in Phase 1b)
ELSE:
# Baseline pattern -- use library detection keywords
files = Glob(locations)
additional = Grep("{pattern_keywords}", "**/*.{ts,js,py,rb,cs,java}")
files = deduplicate(files + additional)
FOR EACH file IN files (limit: 10 key files):
Read(file)
Extract: components, patterns, error handling, logging, tests
MANDATORY READ: Load references/scoring_rules.md -- follow Detection column for each criterion.
| Score | Source in scoring_rules.md | Max | |-------|---------------------------|-----| | Compliance | "Compliance Score" section -- industry standard, naming, conventions, anti-patterns | 100 | | Completeness | "Completeness Score" section -- required components table (per pattern), error handling, tests | 100 | | Quality | "Quality Score" section -- method length, complexity, code smells, SOLID | 100 | | Implementation | "Implementation Score" section -- compiles, production usage, integration, monitoring | 100 |
Scoring process for each criterion:
FOR EACH bestPractice NOT implemented:
issues.append({
severity: "HIGH" | "MEDIUM" | "LOW",
category: "compliance" | "completeness" | "quality" | "implementation",
issue: description,
suggestion: how to fix,
effort: "S" | "M" | "L"
})
# Layer 2 context check (MANDATORY):
# Deviation documented in code comment or ADR? -> downgrade to LOW
# Pattern intentionally simplified for project scale? -> skip
gaps = {
missingComponents: required components not found in code,
inconsistencies: conflicting or incomplete implementations
}
MANDATORY READ: Load references/audit_worker_core_contract.md and references/audit_scoring.md.
Diagnostic sub-scores (0-100 each) are calculated separately and reported in AUDIT-META for diagnostic purposes only:
MANDATORY READ: Load references/templates/audit_worker_report_template.md.
Write JSON summary per references/audit_summary_contract.md. In managed mode the caller passes both runId and summaryArtifactPath; in standalone mode the worker generates its own run-scoped artifact path per shared contract.
# Build pattern name slug: "Job Processing" -> "job-processing"
slug = pattern.name.lower().replace(" ", "-")
# Build markdown report in memory with:
# - AUDIT-META (extended: score [penalty-based] + diagnostic score_compliance/completeness/quality/implementation)
# - Checks table (compliance_check, completeness_check, quality_check, implementation_check)
# - Findings table (issues sorted by severity)
# - DATA-EXTENDED: {pattern, codeReferences, gaps, recommendations}
Write to {output_dir}/ln-641--{slug}.md (atomic single Write call)
Report written: .hex-skills/runtime-artifacts/runs/{run_id}/audit-report/ln-641--job-processing.md
Score: 7.9/10 (C:72 K:85 Q:68 I:90) | Issues: 3 (H:1 M:2 L:0)
Apply the already-loaded references/audit_worker_core_contract.md.
KEEP_PATTERN, SIMPLIFY_PATTERN, COMPLETE_PATTERN, or REPLACE_PATTERN.Apply the already-loaded references/audit_worker_core_contract.md.
{output_dir}/ln-641--{slug}.md (atomic single Write call)references/scoring_rules.mdreferences/pattern_library.mdVersion: 2.0.0 Last Updated: 2026-02-08
testing
Audits architecture config boundaries: typed settings, scattered env reads, config leakage, and layer ownership. Use for config architecture.
tools
Finds architecture-level modernization opportunities: obsolete custom mechanisms, overbuilt extension points, and simplifiable architecture. Use when auditing architecture evolution.
development
Builds dependency topology, detects cycles, validates import rules, and calculates coupling metrics. Use when auditing architecture topology.
testing
Checks layer, resource ownership, and orchestration boundaries. Use when auditing architecture boundary enforcement.