本文へ移動
cccskills
無料GitHub で公開

ln-511-code-quality-checker

Checks DRY/KISS/YAGNI/architecture compliance with quantitative Code Quality Score. Validates decisions via MCP Ref. Reports with SEC-/PERF-/MNT-/ARCH-/BP-/OPT- prefixes.

インストール方法を見る

含まれるファイル(3)

  • SKILL.md13.8 KB
  • references/code_metrics.md4.1 KB
  • references/output_schema.md1.1 KB

SKILL.md(原文)

インストールする前に、エージェントに与えられる指示の中身を確認できます。

Paths: File paths (shared/, references/, ../ln-*) are relative to skills repo root. If not found at CWD, locate this SKILL.md directory and go up one level for repo root.

Code Quality Checker

Analyzes Done implementation tasks with quantitative Code Quality Score based on metrics, MCP Ref validation, and issue penalties.

Inputs

InputRequiredSourceDescription
storyIdYesargs, git branch, kanban, userStory to process

Resolution: Story Resolution Chain. Status filter: In Progress, To Review

Purpose & Scope

  • Load Story and Done implementation tasks (exclude test tasks)
  • Calculate Code Quality Score using metrics and issue penalties
  • MCP Ref validation: Verify optimality, best practices, and performance via external sources
  • Check for DRY/KISS/YAGNI violations, architecture boundary breaks, security issues
  • Produce quantitative verdict with structured issue list; never edits Linear or kanban

Code Metrics

MetricThresholdPenalty
Cyclomatic Complexity≤10 OK, 11-20 warning, >20 fail-5 (warning), -10 (fail) per function
Function size≤50 lines OK, >50 warning-3 per function
File size≤500 lines OK, >500 warning-5 per file
Nesting depth≤3 OK, >3 warning-3 per instance
Parameter count≤4 OK, >4 warning-2 per function

Code Quality Score

Formula: Code Quality Score = 100 - metric_penalties - issue_penalties

Issue penalties by severity:

SeverityPenaltyExamples
high-20Security vulnerability, O(n²)+ algorithm, N+1 query
medium-10DRY violation, suboptimal approach, missing config
low-3Naming convention, minor code smell

Score interpretation:

ScoreStatusVerdict
90-100ExcellentPASS
70-89AcceptableCONCERNS
<70Below thresholdISSUES_FOUND

Issue Prefixes

PrefixCategoryDefault SeverityMCP Ref
SEC-Security (auth, validation, secrets)high—
SEC-DESTR-Destructive ops (guards: DB, FS, MIG, ENV, FORCE)high/medium—
PERF-Performance (algorithms, configs, bottlenecks)medium/high✓ Required
MNT-Maintainability (DRY, SOLID, complexity, dead code)medium—
ARCH-Architecture (layers, boundaries, patterns, contracts)medium—
BP-Best Practices (implementation differs from recommended)medium✓ Required
OPT-Optimality (better approach exists for this goal)medium✓ Required

OPT- subcategories:

PrefixCategorySeverity
OPT-OSS-Open-source replacement availablemedium (high if >200 LOC)

ARCH- subcategories:

PrefixCategorySeverity
ARCH-LB-Layer Boundary: I/O outside infra, HTTP in domainhigh
ARCH-TX-Transaction Boundaries: commit() in 3+ layers, mixed UoW ownershiphigh (CRITICAL if auth/payment)
ARCH-DTO-Missing DTO (4+ params without DTO), Entity Leakage (ORM entity in API response)medium (high if auth/payment)
ARCH-DI-Dependency Injection: dependencies not replaceable for testing (direct instantiation, no injection mechanism). Exception: small scripts/CLIs where params/closures suffice → skipmedium
ARCH-CEH-Centralized Error Handling: errors silently swallowed, stack traces leak to prod, no consistent error logging. Exception: 50-line scripts → downgrade to LOWmedium (high if no handler at all)
ARCH-SES-Session Ownership: DI session + local session in same modulemedium
ARCH-AI-SEBSide-Effect Breadth: 3+ side-effect categories in one leaf function. Conflict Resolution: orchestrator/coordinator functions (imports 3+ services AND delegates sequentially) are EXPECTED to have multiple categories — do NOT flag SEBmedium
ARCH-AI-AHArchitectural Honesty: read-named function with write side-effectsmedium
ARCH-AI-FOFlat Orchestration: leaf service imports 3+ other services. Orchestrator imports are expected — do NOT flagmedium
ARCH-EVENT-Event Channel Consistency: publisher/subscriber name mismatch (MISMATCH), orphaned channel with no counterpart (ORPHAN)high (mismatch), medium (orphan)

PERF- subcategories:

PrefixCategorySeverity
PERF-ALG-Algorithm complexity (Big O)high if O(n²)+
PERF-CFG-Package/library configurationmedium
PERF-PTN-Architectural pattern performancehigh
PERF-DB-Database queries, indexeshigh

MNT- subcategories:

PrefixCategorySeverity
MNT-DC-Dead code: replaced implementations, unused exports/re-exports, backward-compat wrappers, deprecated aliasesmedium (high if public API)
MNT-DRY-DRY violations: duplicate logic across filesmedium
MNT-GOD-God Classes: class with >15 methods or >500 lines (not just file size)medium (high if >1000 lines)
MNT-SIG-Method Signature Quality: boolean flag params, unclear return types, inconsistent naming, >5 optional paramslow
MNT-ERR-Error Contract inconsistency: mixed raise + return None in same servicemedium

When to Use

  • All implementation tasks in Story status = Done
  • Before tech debt cleanup and inline agent review

Workflow (concise)

MANDATORY READ: Load shared/references/input_resolution_pattern.md

  1. Resolve storyId: Run Story Resolution Chain per guide (status filter: [In Progress, To Review]).

  2. Load Story (full) and Done implementation tasks (full descriptions) via Linear; skip tasks with label "tests".

  3. Collect changed files (changed_files[]): MANDATORY READ: shared/references/git_scope_detection.md

    • IF invoked by ln-510: use changed_files[] from coordinator context → proceed to Enrich step in guide
    • IF invoked standalone: run full algorithm from guide
  4. Two-Layer Detection (MANDATORY): MANDATORY READ: shared/references/two_layer_detection.md All threshold-based findings require Layer 2 context analysis. Layer 1 finding without Layer 2 = NOT a valid finding. Before reporting any metric violation, ask: "Is this violation intentional or justified by design?" See Exception column in metrics below.

  5. Calculate code metrics:

    • Cyclomatic Complexity per function (target ≤10; Exception: enum/switch dispatch, state machines, parser grammars → downgrade to LOW)
    • Function size (target ≤50 lines; Exception: orchestrator functions with sequential delegation)
    • File size (target ≤500 lines; Exception: config/schema/migration files, generated code)
    • Nesting depth (target ≤3)
    • Parameter count (target ≤4; Exception: builder/options patterns)
  6. MCP Ref Validation (MANDATORY for code changes — SKIP if --skip-mcp-ref flag passed): MANDATORY READ: Load shared/references/research_tool_fallback.md

    Fast-track mode: When invoked with --skip-mcp-ref, skip this entire step (no OPT-, BP-, PERF- checks). Proceed directly to step 6 (static analysis). This reduces cost from ~5000 to ~800 tokens while preserving metrics + static analysis coverage.

    Level 1 — OPTIMALITY (OPT-):

    • Extract goal from task (e.g., "user authentication", "caching", "API rate limiting")
    • Research alternatives: ref_search_documentation("{goal} approaches comparison {tech_stack} 2026")
    • Compare chosen approach vs alternatives for project context
    • Flag suboptimal choices as OPT- issues

    Level 2 — BEST PRACTICES (BP-):

    • Research: ref_search_documentation("{chosen_approach} best practices {tech_stack} 2026")
    • For libraries: query-docs(library_id, "best practices implementation patterns")
    • Flag deviations from recommended patterns as BP- issues

    Level 3 — PERFORMANCE (PERF-):

    • PERF-ALG: Analyze algorithm complexity (detect O(n²)+, research optimal via MCP Ref)
    • PERF-CFG: Check library configs (connection pooling, batch sizes, timeouts) via query-docs
    • PERF-PTN: Research pattern pitfalls: ref_search_documentation("{pattern} performance bottlenecks")
    • PERF-DB: Check for N+1, missing indexes via query-docs(orm_library_id, "query optimization")

    Triggers for MCP Ref validation:

    • New dependency added (package.json/requirements.txt changed)
    • New pattern/library used
    • API/database changes
    • Loops/recursion in critical paths
    • ORM queries added
  7. Analyze code for static issues (assign prefixes): MANDATORY READ: shared/references/clean_code_checklist.md, shared/references/destructive_operation_safety.md

    • SEC-: hardcoded creds, unvalidated input, SQL injection, race conditions
    • SEC-DESTR-: unguarded destructive operations — use code-level guards table from destructive_operation_safety.md (loaded above). Check all 5 guard categories (DB, FS, MIG, ENV, FORCE).
    • MNT-: DRY violations (MNT-DRY-: duplicate logic), dead code (MNT-DC-: per checklist), complex conditionals, poor naming
    • MNT-DRY- cross-story hotspot scan: Grep for common pattern signatures (error handlers: catch.*Error|handleError, validators: validate|isValid, config access: getSettings|getConfig) across ALL src/ files (count mode). If any pattern appears in 5+ files, sample 3 files (Read 50 lines each) and check structural similarity. If >80% similar → MNT-DRY-CROSS (medium, -10 points): Pattern X duplicated in N files — extract to shared module.
    • MNT-DC- cross-story unused export scan: For each file modified by Story, count export declarations. Then Grep across ALL src/ for import references to those exports. Exports with 0 import references → MNT-DC-CROSS (medium, -10 points): {export} in {file} exported but never imported — remove or mark internal.
    • OPT-OSS- cross-reference ln-645 (static, fast-track safe): IF docs/project/.audit/ln-640/*/645-open-source-replacer*.md exists (glob across dates, take latest), check if any HIGH-confidence replacement matches files changed in current Story. IF match found → create OPT-OSS-{N} issue with module path, goal, recommended package, confidence, stars, license from ln-645 report. Severity: high if >200 LOC, medium otherwise. This check reads local files only — no MCP calls — runs even with --skip-mcp-ref.
    • ARCH-: layer violations, circular dependencies, guide non-compliance
    • ARCH-LB-: layer boundary violations (HTTP/DB/FS calls outside infrastructure layer)
    • ARCH-TX-: transaction boundary violations (commit() across multiple layers)
    • ARCH-DTO-: missing DTOs (4+ repeated params), entity leakage (ORM entities returned from API)
    • ARCH-DI-: direct instantiation in business logic (no DI container or mixed patterns)
    • ARCH-CEH-: centralized error handling absent or bypassed
    • ARCH-SES-: session ownership conflicts (DI + local session in same module)
    • ARCH-AI-SEB: side-effect breadth (3+ categories in one leaf function; orchestrator functions exempt — see Conflict Resolution in table above)
    • ARCH-AI-AH: architectural honesty (read-named function with hidden writes)
    • ARCH-AI-FO: flat orchestration (leaf service importing 3+ services; orchestrator imports exempt)
    • ARCH-EVENT-: event channel mismatch — Grep for NOTIFY|pg_notify|\.publish\(|\.emit\( (publishers) and LISTEN|\.subscribe\(|\.on\( (subscribers) in changed_files[]. Cross-reference channel name strings. <!-- Defense-in-depth: also checked by ln-652 Rule 6 -->
    • MNT-GOD-: god classes (>15 methods or >500 lines per class)
    • MNT-SIG-: method signature quality (boolean flags, unclear returns)
    • MNT-ERR-: error contract inconsistency (mixed raise/return patterns in same service)
  8. Calculate Code Quality Score:

    • Start with 100
    • Subtract metric penalties (see Code Metrics table)
    • Subtract issue penalties (see Issue penalties table)
  9. Output verdict with score and structured issues. MANDATORY READ: Load references/output_schema.md Format output per schema. Add Linear comment with findings.

Critical Rules

  • Read guides mentioned in Story/Tasks before judging compliance.
  • MCP Ref validation: For ANY architectural change, MUST verify via ref_search_documentation before judging.
  • Context7 for libraries: When reviewing library usage, query-docs to verify correct patterns.
  • Language preservation in comments (EN/RU).
  • Do not create tasks or change statuses; caller decides next actions.

Definition of Done

  • Story and Done implementation tasks loaded (test tasks excluded)
  • Code metrics calculated (Cyclomatic Complexity, function/file sizes)
  • MCP Ref validation completed (OPT-, BP-, PERF- categories)
  • ARCH- subcategories checked (LB, TX, DTO, DI, CEH, SES, EVENT); MNT- subcategories checked (DC, DRY, GOD, SIG, ERR)
  • Issues identified with prefixes and severity, sources from MCP Ref/Context7
  • Code Quality Score calculated
  • Output formatted per references/output_schema.md
  • Linear comment posted with findings

Reference Files

  • Git scope detection: shared/references/git_scope_detection.md
  • Code metrics: references/code_metrics.md (thresholds and penalties)
  • Guides: docs/guides/
  • Templates for context: shared/templates/task_template_implementation.md
  • Clean code checklist: shared/references/clean_code_checklist.md
  • Research tool fallback: shared/references/research_tool_fallback.md

Version: 5.1.0 Last Updated: 2026-03-15

レビュー

まだレビューはありません。使ってみた感想をお寄せください。

同じリポジトリのスキル

概要と使いどころ

Design, implement, and audit inclusive digital products using WCAG 2.2 Level AA standards. Use this skill to generate semantic ARIA for Web and accessibility traits for Web and Native platforms (iOS/Android).

日本語の概要は準備中です。原文の説明を表示しています。

tensology/decisionsai172026年10月10日 更新

Whole site or product — a full web accessibility (a11y) audit against WCAG 2.2, following the WCAG-EM methodology. Defines scope, samples representative pages and flows, runs the automated tier (`accessibility-scan`) and the hands-on manual tier (`accessibility-inspect`), and produces one conformance report. Grades each finding by severity and evidence basis, and states per-criterion conformance as pass, fail, or undetermined (needs a human). Use it for 'audit my site for accessibility', 'is this product accessible', 'a11y audit', 'WCAG or Section 508 conformance report', or any multi-page assessment. Assesses; does not fix (use `accessibility-fix`) or diff (use `accessibility-diff`). For a single page use `accessibility-scan`; for hands-on keyboard and screen-reader checks use `accessibility-inspect`.

日本語の概要は準備中です。原文の説明を表示しています。

tensology/decisionsai172026年10月10日 更新

Regression check — diff a live page's web accessibility (a11y) violations against a baseline. By default it compares your uncommitted changes (stash-based); pass `--branch [<name>]` to compare against a branch. Reports the new WCAG violations introduced, the ones fixed, and the count of pre-existing ones. Use it for 'did my change break accessibility', 'what a11y issues did this PR add', or as a CI gate. For a full scan of one page use `accessibility-scan`; for a whole site use `accessibility-audit`.

日本語の概要は準備中です。原文の説明を表示しています。

tensology/decisionsai172026年10月10日 更新

Remediation only — repair web accessibility (a11y) violations against WCAG 2.2 with a baseline, edit, and verify loop. Takes a target (URL, files, directory) or a findings worklist from `accessibility-scan`/`accessibility-inspect`/`accessibility-audit`, applies mechanical fixes as given, leaves TODOs for visual or contextual judgment, and verifies by re-running the baseline check. It only fixes. To find issues use `accessibility-scan` (one page, automated), `accessibility-inspect` (one page, manual), or `accessibility-audit` (whole site, WCAG-EM); to check for regressions use `accessibility-diff`. Use it for 'fix the a11y issues in X', 'make this accessible', 'add missing alt text and labels', 'apply these accessibility fixes', 'remediate these violations'.

日本語の概要は準備中です。原文の説明を表示しています。

tensology/decisionsai172026年10月10日 更新

One page, hands-on manual tier — drive a live page through the web accessibility (a11y) checks a rule engine can't decide: keyboard operation and focus order, screen-reader names, roles and states from the accessibility tree, reflow and zoom, reduced motion, form errors, and target size. Grades each finding by evidence basis (verified / confirm-with-a-human / human-required) and severity, and closes every criterion in a ledger: verified, flagged, not exercised, or N/A. Locates and assesses; does not fix (use `accessibility-fix`). Use it for keyboard testing, focus-order checks, screen-reader or a11y-tree review, reflow and zoom at 200%, or 'is this operable, not just lint-clean'. The automated tier is `accessibility-scan`; `accessibility-audit` runs both across a sampled site.

日本語の概要は準備中です。原文の説明を表示しています。

tensology/decisionsai172026年10月10日 更新

One page, automated tier — run the web accessibility (a11y) rule engine against a live page and locate every violation it can detect mechanically. Pass a URL, a config target name (e.g. `accesslint:accessibility-scan dev`), or nothing to use the default target from `accesslint.config.json`. Ensures a debuggable Chrome, runs the @accesslint/core engine over CDP, and returns a worklist of live-DOM WCAG 2.2 violations, each grounded to its DOM selector and source `file:line`. Locates; doesn't edit. Use it for 'is this page accessible', 'check a11y on this URL', 'find contrast and alt-text issues', or to verify a UI change. For hands-on keyboard and screen-reader checks use `accessibility-inspect`; for a whole site or product use `accessibility-audit`; to diff against uncommitted changes or a branch use `accessibility-diff`.

日本語の概要は準備中です。原文の説明を表示しています。

tensology/decisionsai172026年10月10日 更新

tensology のスキルをすべて見る

このスキルの問題を報告する