[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-74111":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":9,"htmlUrl":10,"language":11,"languages":10,"totalLinesOfCode":10,"stars":12,"forks":13,"watchers":14,"openIssues":15,"contributorsCount":16,"subscribersCount":16,"size":16,"stars1d":17,"stars7d":18,"stars30d":19,"stars90d":16,"forks30d":16,"starsTrendScore":20,"compositeScore":21,"rankGlobal":10,"rankLanguage":10,"license":22,"archived":23,"fork":23,"defaultBranch":24,"hasWiki":25,"hasPages":23,"topics":26,"createdAt":10,"pushedAt":10,"updatedAt":28,"readmeContent":29,"aiSummary":30,"trendingCount":16,"starSnapshotCount":16,"syncStatus":31,"lastSyncTime":32,"discoverSource":33},74111,"desloppify","peteromallet\u002Fdesloppify","peteromallet","Agent harness to make your slop code well-engineered and beautiful.","https:\u002F\u002Fdesloppify.it\u002F",null,"Python",2907,206,10,8,0,15,29,77,45,28.95,"Other",false,"main",true,[27],"agent-harness","2026-06-12 02:03:22","# Desloppify - an agent harness to make your codebase 🤌\n\n[![PyPI version](https:\u002F\u002Fimg.shields.io\u002Fpypi\u002Fv\u002Fdesloppify)](https:\u002F\u002Fpypi.org\u002Fproject\u002Fdesloppify\u002F) ![Python 3.11+](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Fpython-3.11%2B-blue)\n\nDesloppify gives your AI coding agent the tools to identify, understand, and systematically improve codebase quality. It combines mechanical detection (dead code, duplication, complexity) with subjective LLM review (naming, abstractions, module boundaries), then works through a prioritized fix loop. State persists across scans so it chips away over multiple sessions, and the scoring is designed to resist gaming.\n\n\u003Cimg src=\"assets\u002Fexplained.png\" width=\"100%\">\n\nThe score gives your agent a north-star, and the tooling helps it plan, execute, and resolve issues until it hits your target — with a lot of tricks to keep it on track. A score above 98 should correlate with a codebase a seasoned engineer would call beautiful.\n\nThat score generates a scorecard badge for your GitHub profile or README:\n\n\u003Cimg src=\"assets\u002Fscorecard.png\" width=\"100%\">\n\nCurrently supports 29 languages — full plugin depth for TypeScript, Python, C#, C++, Dart, GDScript, Go, and Rust; generic linter + tree-sitter support for Ruby, Java, Kotlin, and 18 more. For C++ projects, `compile_commands.json` is the primary analysis path and `Makefile` repositories fall back to best-effort local include scanning.\n\n## For your agent's consideration...\n\nPaste this prompt into your agent:\n\n```\nI want you to improve the quality of this codebase. To do this, install and run desloppify.\nRun ALL of the following (requires Python 3.11+):\n\npip install --upgrade \"desloppify[full]\"\ndesloppify update-skill claude    # installs the full workflow guide — pick yours: claude, cursor, codex, copilot, droid, windsurf, gemini, rovodev\n\nAdd .desloppify\u002F to your .gitignore — it contains local state that shouldn't be committed.\n\nBefore scanning, check for directories that should be excluded (vendor, build output,\ngenerated code, worktrees, etc.) and exclude obvious ones with `desloppify exclude \u003Cpath>`.\nShare any questionable candidates with me before excluding.\n\ndesloppify scan --path .\ndesloppify next\n\n--path is the directory to scan (use \".\" for the whole project, or \"src\u002F\" etc).\n\nYour goal is to get the strict score as high as possible. The scoring resists gaming — the\nonly way to improve it is to actually make the code better.\n\nTHE LOOP: run `next`. It is the execution queue from the living plan, not the whole backlog.\nIt tells you what to fix now, which file, and the resolve command to run when done.\nFix it, resolve it, run `next` again. Over and over. This is your main job.\n\nUse `desloppify backlog` only when you need to inspect broader open work that is not currently\ndriving execution.\n\nDon't be lazy. Large refactors and small detailed fixes — do both with equal energy. No task\nis too big or too small. Fix things properly, not minimally.\n\nUse `plan` \u002F `plan queue` to reorder priorities or cluster related issues. Rescan periodically.\nThe scan output includes agent instructions — follow them, don't substitute your own analysis.\n```\n\n## Monorepos and multi-project directories\n\nIf your workspace contains multiple programs (e.g., a frontend and backend in sibling directories), scan each one separately with `--path`:\n\n```bash\ndesloppify --lang typescript scan --path .\u002Ffrontend\ndesloppify --lang python scan --path .\u002Fbackend\n```\n\nScanning the parent directory that contains both will mix state and path context across unrelated codebases, producing unreliable results. Each `--path` target should be a single coherent project. Desloppify maintains separate state per language, so you can scan a TypeScript frontend and a Python backend from the same workspace without conflict — just target them individually.\n\n## CI\n\nDesloppify works best in CI as a full-codebase health gate, not as a diff-only linter. Run the CI profile against the same coherent project path you scan locally:\n\n```bash\ndesloppify scan --path . --profile ci --no-badge\ndesloppify status --json\n```\n\n`--profile ci` skips slow and subjective phases and bypasses the mid-cycle scan queue gate so a CI job can collect a fresh mechanical snapshot. Use `status --json` if you want a script to read the strict\u002Fobjective scores and enforce your own threshold.\n\nOn constrained Java CI runners, the PMD detector defaults to `--threads 0` to avoid worker-thread fanout. Set `DESLOPPIFY_PMD_THREADS` to a PMD thread value such as `2` or `0.5C` if you want more throughput.\n\nMinimal GitHub Actions example:\n\n```yaml\nname: desloppify\n\non:\n  pull_request:\n  push:\n    branches: [main]\n\njobs:\n  health:\n    runs-on: ubuntu-latest\n    steps:\n      - uses: actions\u002Fcheckout@v4\n      - uses: actions\u002Fsetup-python@v5\n        with:\n          python-version: \"3.11\"\n      - run: pip install --upgrade \"desloppify[full]\"\n      - run: desloppify scan --path . --profile ci --no-badge\n      - run: desloppify status --json\n```\n\nFor monorepos, run one job or matrix entry per project path instead of scanning the workspace root. True incremental or diff-only scanning is not the supported model yet; compare full-codebase results across runs or enforce a project-level threshold.\n\n## How it works\n\n```\nscan ──→ score ──→ review ──→ triage ──→ execute ──→ rescan\n  │         │         │          │          │           │\n  │     dimensions    │     prioritize    fix it     verify\n  │     scored      LLM reviews  & cluster  & resolve  improvements\n  │                 subjective   the queue\n  │                 quality\n  detectors find\n  mechanical issues\n  (dead code, smells,\n  test gaps, etc.)\n```\n\n**Scan** runs mechanical detectors across your codebase — dead code, duplication, complexity, test coverage gaps, naming issues, and more. Each issue is scored by dimension (File health, Code quality, Test health, etc.).\n\n**Review** uses an LLM to assess subjective quality dimensions — naming, abstractions, error handling patterns, module boundaries. These score alongside the mechanical dimensions.\n\n**Triage** is where prioritization happens. The agent (or you) observes the findings, reflects on patterns, organizes issues into clusters, and enriches them with implementation detail. This produces an ordered execution queue — only items explicitly queued appear in `next`. Before triage, all mechanical issues are visible in the queue sorted by impact, which can be noisy.\n\n**Execute** is the fix loop: `next` → fix → `resolve` → `next`. Items come from the triaged queue. Autofix handles what it can; the rest needs manual or agent work.\n\n**Rescan** verifies improvements, catches cascading effects, and feeds the next cycle.\n\nState persists in `.desloppify\u002F` so progress carries across sessions. The scoring resists gaming — wontfix items widen the gap between lenient and strict scores, and re-reviewing dimensions can lower scores if the reviewer finds new issues.\n\n## From Vibe Coding to Vibe Engineering\n\nVibe coding gets things built fast. But the codebases it produces tend to rot in ways that are hard to see and harder to fix — not just the mechanical stuff like dead imports, but the structural kind. Abstractions that made sense at first stop making sense. Naming drifts. Error handling is done three different ways. The codebase works, but working in it gets worse over time.\n\nLLMs are actually good at spotting this now, if you ask them the right questions. That's the core bet here — that an agent with the right framework can hold a codebase to a real standard, the kind that used to require a senior engineer paying close attention over months.\n\nSo we're trying to define what \"good\" looks like as a score that's actually worth optimizing. Not a lint score you game to 100 by suppressing warnings. Something where improving the number means the codebase genuinely got better. That's hard, and we're not done, but the anti-gaming stuff matters to us a lot — it's the difference between a useful signal and a vanity metric.\n\nThe hope is that anyone can use this to build something a seasoned engineer would look at and respect. That's the bar we're aiming for.\n\nIf you'd like to join a community of vibe engineers who want to build beautiful things, [come hang out](https:\u002F\u002Fdiscord.gg\u002FaZdzbZrHaY).\n\n\u003Cimg src=\"assets\u002Fengineering.png\" width=\"100%\">\n\n---\n\nIssues, improvements, and PRs are hugely appreciated — [github.com\u002Fpeteromallet\u002Fdesloppify](https:\u002F\u002Fgithub.com\u002Fpeteromallet\u002Fdesloppify).\n\nDesloppify is free for any individual — whether working independently or at a company — to use for their own work. It is also free for open source companies to use in any capacity, including commercial. Non-open source companies who wish to commercialize it should refer to the [LICENSE](LICENSE) for transparent pricing details.\n","Desloppify 是一个用于提升代码库质量和美观度的代理工具。它通过结合机械检测（如死代码、重复代码和复杂性）与主观的大语言模型审查（如命名、抽象和模块边界），系统地识别并改进代码问题。该工具支持29种编程语言，包括TypeScript、Python、C#等，并为每种语言提供了不同程度的支持。Desloppify适合那些希望提高现有项目代码质量或保持新项目代码高标准的开发者及团队使用。其持续的状态保存机制允许在多次会话中逐步改善代码，而抗作弊设计确保了只有真正改进代码才能提高评分。",2,"2026-06-11 03:48:52","high_star"]