npx skills add ...
npx skills add athola/claude-night-market --skill code-refinement
Improves code quality across duplication, efficiency, and architectural fit. Use when code passes tests but quality is poor or before a major release.
npx skills add athola/claude-night-market --skill code-refinement
Analyze and improve living code quality across six dimensions.
| # | Dimension | Module | What It Catches |
|---|---|---|---|
| 1 | Duplication & Redundancy | duplication-analysis | Near-identical blocks, similar functions, copy-paste |
| 2 | Algorithmic Efficiency | algorithm-efficiency | O(n^2) where O(n) works, unnecessary iterations |
| 3 | Clean Code Violations | clean-code-checks | Long methods, deep nesting, poor naming, magic values |
| 4 | Architectural Fit | architectural-fit | Paradigm mismatches, coupling violations, leaky abstractions |
| 5 | Anti-Slop Patterns | clean-code-checks | Premature abstraction, enterprise cosplay, hollow patterns |
| 6 | Error Handling | clean-code-checks | Bare excepts, swallowed errors, happy-path-only |
| 7 | Additive Bias | imbue:justify | Workarounds over root fixes, test tampering, unnecessary additions |
Detection patterns for plugin and skill codebases where standard code quality heuristics miss structural issues.
A skill that declares "delegates to X" but still carries the full template body is doing double duty. The delegating skill should be a thin wrapper (under 30 lines) that routes to the target. Flag any delegating skill whose body exceeds 50 lines.
Flag skills with 10+ module files where 40% or more of content overlaps. Signal: two modules covering the same API surface from different angles (e.g., both describing the same config options or the same CLI flags).
Flag individual module files exceeding 500 lines as candidates for splitting or trimming. Large modules defeat progressive loading by forcing full-file reads for partial information.
Skills referencing Python commands (python -m module.name or
python -c "from module import ...") where the referenced
module does not exist in the plugin's src/ directory. These
are stale references to renamed or removed code.
Load modules based on refinement focus:
modules/duplication-analysis.md (~400 tokens): Duplication detection and consolidationmodules/algorithm-efficiency.md (~400 tokens): Complexity analysis and optimizationmodules/clean-code-checks.md (~450 tokens): Clean code, anti-slop, error handlingmodules/architectural-fit.md (~400 tokens): Paradigm alignment and couplingLoad all for thorough refinement. For focused work, load only relevant modules.
refine:context-established: Scope, language, framework detectionrefine:scan-complete: Findings across all dimensionsrefine:prioritized: Findings ranked by impact and effortrefine:plan-generated: Concrete refactoring plan with before/afterrefine:evidence-captured: Evidence appendix per imbue:proof-of-workrefine:findings-verified: Citations confirmed by citation_verifier.pyrefine:execution-complete: All wave-listed candidates closed-or-rationale'd (only required when invocation includes "execute findings" or stronger; see Step 6)refine:context-established)Detect project characteristics:
refine:scan-complete)Load relevant modules and execute analysis per tier level.
For dimension 7 (Additive Bias), run Skill(imbue:justify)
to compute the bias score, check Iron Law compliance,
and flag unnecessary additions or workarounds.
refine:prioritized)Rank findings by:
Priority = HIGH impact + SMALL effort + LOW risk first.
refine:plan-generated)For each finding, produce:
refine:evidence-captured)Document with imbue:proof-of-work (if available):
[E1], [E2] references for each findingFallback: If imbue is not installed, capture evidence inline in the report using the same [E1] reference format without TodoWrite integration.
refine:execution-complete)Steps 1-5 produce a plan. Steps 6 produces closures. Both are part of the skill. Execution does not stop at planning unless the user explicitly says "plan only".
Match the user's invocation phrasing against this table to determine execution scope:
| User said | Mode | Stop when |
|---|---|---|
/code-refinement (no qualifier) | Plan only | After Step 5 |
--dry-run or "just plan" | Plan only | After Step 5 |
| "execute findings" / "apply fixes" | Plan, execute Wave 1 | After all SMALL-effort, and LOW-risk findings closed |
| "execute all findings" / "all phases" / "all waves" | Plan and execute every wave | After every finding (or every wave-listed candidate) is either closed by commit or has explicit per-item rationale in the synthesis |
| "ignore scope guard" | Override branch-size limits | Branch metrics do not gate execution. Continue past RED zone. |
| "do not stop until complete" / "until ALL ... complete" | No mid-task summaries | Only declare done when synthesis has every wave-listed candidate closed-or-rationale'd |
The triggers compose: --tier 3 --execute all findings --ignore-scope-guard means run every Wave 2 and Wave 3 candidate to closure regardless of branch size.
The task is not complete until ALL of the following hold:
docs/refinement/<date>/00-synthesis.md records every closure with its commit SHA and every deferral with one-sentence rationale.If the model finds itself doing any of the following during execution, this is a stop-hook leak. Go back to executing findings:
| Anti-pattern | Recognise as |
|---|---|
| "Wave 2 closed. Moving to Wave 3." (mid-run summary) | Premature turn-completion signal: keep working |
| "Documenting deferred items with rationale" before all mechanical items are done | Skipping execution under a paper trail |
| Writing a completion summary while >0 listed candidates lack closure-or-rationale | Violation of completion gate |
| Re-asking user "should I continue?" when invocation included "do not stop" | Ignoring the explicit no-mid-task-summary contract |
The gate reads records, not the agent's account of its own work:
.review/findings.json and the citation verifier's exit code (see
the next section) say which candidates are closed, and the synthesis
lists the rest. Execution is bounded by max_waves (default 3, one
wave per pass over the open candidates). When the budget runs out, or
when the harness fires a stop signal, the run stops: record every
remaining candidate in the synthesis as a gap with what would close
it, and end the turn. Do not resume past a stop signal. A harness
stop is a signal from outside the run, and a run that overrides it
has made itself the judge of its own completeness, which is the
arrangement measured to drift (arXiv 2607.17641).
refine:findings-verified)Write findings to .review/findings.json, run the citation verifier
(Skill(imbue:review-core) Step 5), and drop or label UNVERIFIED any
the verifier rejects.
Anchor (the exact source text at that line).Location + verbatim Anchor
confirmed by citation_verifier.py (exit 0), or unverified
findings were dropped or labeled UNVERIFIED.| Tier | Time | Scope |
|---|---|---|
| 1: Quick (default) | 2-5 min | Complexity hotspots, obvious duplication, naming, magic values |
| 2: Targeted | 10-20 min | Algorithm analysis, full duplication scan, architectural alignment |
| 3: Deep | 30-60 min | All above and cross-module coupling, paradigm fitness, thorough plan |
| Dependency | Required? | Fallback |
|---|---|---|
imbue:proof-of-work | Optional | Inline evidence in report |
conserve:code-quality-principles | Optional | Built-in KISS/YAGNI/SOLID checks |
archetypes:architecture-paradigms | Optional | Principle-based checks only (no paradigm detection) |
When optional plugins are not installed, the skill degrades gracefully:
imbue: Evidence captured inline, no TodoWrite proof-of-workconserve: Uses built-in clean code checks (subset)archetypes: Skips paradigm-specific alignment, uses coupling/cohesion principles only# Language detection
find . -not -path "*/.venv/*" -not -path "*/__pycache__/*" \
-not -path "*/node_modules/*" -not -path "*/.git/*" \
\( -name "*.py" -o -name "*.ts" -o -name "*.rs" -o -name "*.go" \) \
| head -20
# Framework detection
ls package.json pyproject.toml Cargo.toml go.mod 2>/dev/null
# Size assessment
find . -not -path "*/.venv/*" -not -path "*/__pycache__/*" \
-not -path "*/node_modules/*" -not -path "*/.git/*" \
\( -name "*.py" -o -name "*.ts" -o -name "*.rs" \) \
| xargs wc -l 2>/dev/null | tail -1