Desloppify
1. Your Job
Improve code quality by fixing findings and maximizing strict score honestly.
Never hide debt with suppression patterns just to improve lenient score. After
every scan, show the user ALL scores:
| What |
How |
| Overall health |
lenient + strict |
| 5 mechanical dimensions |
File health, Code quality, Duplication, Test health, Security |
| 7 subjective dimensions |
Naming Quality, Error Consistency, Abstraction Fit, Logic Clarity, AI Generated Debt, Type Safety, Contract Coherence |
Never skip scores. The user tracks progress through them.
2. Core Loop
scan → follow the tool's strategy → fix or wontfix → rescan
desloppify scan --path . — the scan output ends with INSTRUCTIONS FOR AGENTS. Follow them. Don't substitute your own analysis.
- Fix the issue the tool recommends.
desloppify resolve fixed "<id>" — or if it's intentional/acceptable:
desloppify resolve wontfix "<id>" --note "reason why"
- Rescan to verify.
Wontfix is not free. It lowers the strict score. The gap between lenient and strict IS wontfix debt. Call it out when:
- Wontfix count is growing — challenge whether past decisions still hold
- A dimension is stuck 3+ scans — suggest a different approach
- Auto-fixers exist for open findings — ask why they haven't been run
3. Commands
desloppify scan --path . # full scan
desloppify status # score summary
desloppify next --count 5 # top priorities
desloppify show <pattern> # filter by file/detector/ID
desloppify plan # prioritized plan
desloppify fix <fixer> --dry-run # auto-fix (dry-run first!)
desloppify move <src> <dst> --dry-run # move + update imports
desloppify resolve fixed|wontfix|false_positive "<pat>" # classify finding outcome
desloppify review --prepare # generate subjective review data
desloppify review --import file.json # import review results
4. Subjective Reviews (biggest score lever)
Score = 75% mechanical + 25% subjective. Subjective starts at 0% until reviewed.
Default dimensions:
naming_quality, error_consistency, abstraction_fitness,
logic_clarity, ai_generated_debt, type_safety, contract_coherence.
desloppify review --prepare — writes review data to query.json
- Launch an isolated reviewer (Claude subagent, or Codex fresh thread/worktree/cloud task) to read
query.json (or .desloppify/review_packet_blind.json), review files, and write assessments:{
"assessments": {
"naming_quality": 75,
"error_consistency": 75,
"abstraction_fitness": 75,
"logic_clarity": 75,
"ai_generated_debt": 75,
"type_safety": 75,
"contract_coherence": 75
},
"findings": []
}
desloppify review --import review_output.json
Even moderate scores (60-80) dramatically improve overall health.
5. Quick Reference
- Tiers: T1 auto-fix, T2 quick manual, T3 judgment call, T4 major refactor
- Zones: production/script (scored), test/config/generated/vendor (not scored). Fix with
zone set.
- Auto-fixers (TS only):
unused-imports, unused-vars, debug-logs, dead-exports, etc.
- query.json: After any command, has
narrative.actions with prioritized next steps.
--skip-slow skips duplicate detection for faster iteration.
--lang python, --lang typescript, or --lang csharp to force language.
- C# defaults to
--profile objective; use --profile full to include subjective review.
- Score can temporarily drop after fixes (cascade effects are normal).
6. Escalate Tool Issues Upstream
When desloppify itself appears wrong or inconsistent:
- Capture a minimal repro (
command, path, expected, actual).
- Open a GitHub issue in
peteromallet/desloppify.
- If you can fix it safely, open a PR linked to that issue.
- If unsure whether it is tool bug vs user workflow, issue first, PR second.
Prerequisite
command -v desloppify >/dev/null 2>&1 && echo "desloppify: installed" || echo "NOT INSTALLED — run: pip install --upgrade git+https://github.com/peteromallet/desloppify.git"
Claude Code Overlay
Use Claude subagents for subjective scoring work that should be context-isolated.
- Prefer delegating subjective review tasks to a project subagent in
.claude/agents/.
- If a skill-based reviewer is used, set
context: fork so prior chat context does not leak into scoring.
- For blind reviews, consume
.desloppify/review_packet_blind.json instead of full query.json.
- Return machine-readable JSON only for review imports:
{
"assessments": {
"naming_quality": 0,
"error_consistency": 0,
"abstraction_fitness": 0,
"logic_clarity": 0,
"ai_generated_debt": 0,
"type_safety": 0,
"contract_coherence": 0
},
"findings": []
}
Converted and distributed by TomeVault — claim your Tome and manage your conversions.
1---2name: frinky04-frinkyengine-desloppify3description: Desloppify4---56# Desloppify78## 1. Your Job910**Improve code quality by fixing findings and maximizing strict score honestly.**11Never hide debt with suppression patterns just to improve lenient score. After12every scan, show the user ALL scores:1314| What | How |15|------|-----|16| Overall health | lenient + strict |17| 5 mechanical dimensions | File health, Code quality, Duplication, Test health, Security |18| 7 subjective dimensions | Naming Quality, Error Consistency, Abstraction Fit, Logic Clarity, AI Generated Debt, Type Safety, Contract Coherence |1920Never skip scores. The user tracks progress through them.2122## 2. Core Loop2324```25scan → follow the tool's strategy → fix or wontfix → rescan26```27281. `desloppify scan --path .` — the scan output ends with **INSTRUCTIONS FOR AGENTS**. Follow them. Don't substitute your own analysis.292. Fix the issue the tool recommends.303. `desloppify resolve fixed "<id>"` — or if it's intentional/acceptable:31 `desloppify resolve wontfix "<id>" --note "reason why"`324. Rescan to verify.3334**Wontfix is not free.** It lowers the strict score. The gap between lenient and strict IS wontfix debt. Call it out when:35- Wontfix count is growing — challenge whether past decisions still hold36- A dimension is stuck 3+ scans — suggest a different approach37- Auto-fixers exist for open findings — ask why they haven't been run3839## 3. Commands4041```bash42desloppify scan --path . # full scan43desloppify status # score summary44desloppify next --count 5 # top priorities45desloppify show <pattern> # filter by file/detector/ID46desloppify plan # prioritized plan47desloppify fix <fixer> --dry-run # auto-fix (dry-run first!)48desloppify move <src> <dst> --dry-run # move + update imports49desloppify resolve fixed|wontfix|false_positive "<pat>" # classify finding outcome50desloppify review --prepare # generate subjective review data51desloppify review --import file.json # import review results52```5354## 4. Subjective Reviews (biggest score lever)5556Score = 75% mechanical + 25% subjective. Subjective starts at 0% until reviewed.57Default dimensions:58`naming_quality`, `error_consistency`, `abstraction_fitness`,59`logic_clarity`, `ai_generated_debt`, `type_safety`, `contract_coherence`.60611. `desloppify review --prepare` — writes review data to `query.json`622. Launch an isolated reviewer (Claude subagent, or Codex fresh thread/worktree/cloud task) to read `query.json` (or `.desloppify/review_packet_blind.json`), review files, and write assessments:63 ```json64 {65 "assessments": {66 "naming_quality": 75,67 "error_consistency": 75,68 "abstraction_fitness": 75,69 "logic_clarity": 75,70 "ai_generated_debt": 75,71 "type_safety": 75,72 "contract_coherence": 7573 },74 "findings": []75 }76 ```773. `desloppify review --import review_output.json`7879Even moderate scores (60-80) dramatically improve overall health.8081## 5. Quick Reference8283- **Tiers**: T1 auto-fix, T2 quick manual, T3 judgment call, T4 major refactor84- **Zones**: production/script (scored), test/config/generated/vendor (not scored). Fix with `zone set`.85- **Auto-fixers** (TS only): `unused-imports`, `unused-vars`, `debug-logs`, `dead-exports`, etc.86- **query.json**: After any command, has `narrative.actions` with prioritized next steps.87- `--skip-slow` skips duplicate detection for faster iteration.88- `--lang python`, `--lang typescript`, or `--lang csharp` to force language.89- C# defaults to `--profile objective`; use `--profile full` to include subjective review.90- Score can temporarily drop after fixes (cascade effects are normal).9192## 6. Escalate Tool Issues Upstream9394When desloppify itself appears wrong or inconsistent:95961. Capture a minimal repro (`command`, `path`, `expected`, `actual`).972. Open a GitHub issue in `peteromallet/desloppify`.983. If you can fix it safely, open a PR linked to that issue.994. If unsure whether it is tool bug vs user workflow, issue first, PR second.100101## Prerequisite102103`command -v desloppify >/dev/null 2>&1 && echo "desloppify: installed" || echo "NOT INSTALLED — run: pip install --upgrade git+https://github.com/peteromallet/desloppify.git"`104105106## Claude Code Overlay107108Use Claude subagents for subjective scoring work that should be context-isolated.1091101. Prefer delegating subjective review tasks to a project subagent in `.claude/agents/`.1112. If a skill-based reviewer is used, set `context: fork` so prior chat context does not leak into scoring.1123. For blind reviews, consume `.desloppify/review_packet_blind.json` instead of full `query.json`.1134. Return machine-readable JSON only for review imports:114115```json116{117 "assessments": {118 "naming_quality": 0,119 "error_consistency": 0,120 "abstraction_fitness": 0,121 "logic_clarity": 0,122 "ai_generated_debt": 0,123 "type_safety": 0,124 "contract_coherence": 0125 },126 "findings": []127}128```129130---131> Converted and distributed by [TomeVault](https://tomevault.io/claim/frinky04) — claim your Tome and manage your conversions.132<!-- tomevault:4.0:skill_md:2026-04-14 -->