setup-dry
Setup DRY
One-time guided setup. Adds DRY violation detection at both CI and pre-commit hook level. Defaults to setting up both -- confirms with user before proceeding.
Workflow
Step 1 -- Detect project setup
- Identify primary language(s) from file extensions and config files
- Identify source directories (e.g.
src/,lib/,app/) - Check for existing duplication detection tools (e.g. jscpd, PMD CPD)
- Check if
.github/workflows/already exists
Present findings to user for confirmation before proceeding.
If detection is ambiguous, use AskUserQuestion to clarify:
- If language can't be determined: ask what language(s) the project uses
- If no clear source directories: ask which directories contain production code (vs. config, scripts, etc.)
- If existing duplication tools found: ask if they want to replace or run alongside
More from mohganji/skills
cut-the-crap
Calculate CRAP (Change Risk Anti-Patterns) scores for functions in a codebase, identify high-risk methods, propose refactoring and test improvements, estimate new scores, and implement fixes after user approval. Use when user mentions CRAP score, code risk, wants to reduce complexity, improve testability, or says "cut the crap".
6design-deliberately
Review and guide UI design toward intentional minimalism where every element earns its place. Use when user asks for design review, UI feedback, wants to simplify an interface, mentions "design deliberately", or is building/refining UI components.
5priority-score
Score feature priorities using Geoff Ralston's (b*d)/c formula — Breadth, Depth, and Cost on 1-5 scales yielding a 1-100 priority score. Use when user wants to prioritize features, decide what to build next, rank a backlog, compare initiatives, or mentions "priority score".
4setup-crap-check
One-time setup skill that adds CRAP score enforcement via GitHub Actions CI and pre-commit hook. Detects repo language and test framework, asks user about thresholds, generates the workflow YAML and hook script. Use when user wants to enforce CRAP score thresholds on their codebase.
4no-broken-window
Detect, establish, and enforce codebase patterns so one violation doesn't erode the standard. Use when user discusses a rule, pattern, or convention they want uniform across the codebase, wants to unify inconsistent behavior, mentions enforcing a standard, preventing drift, or keeping things consistent, or invokes /no-broken-window.
4dry
Find structural duplicate code (DRY violations) across a Python or JS/TS codebase using normalized AST fingerprinting, report candidates with similarity scores, and refactor them after user approval. Use when user mentions DRY, duplicate code, copy-paste code, structural duplication, or says "dry".
3