| Name | Modified | Size | Downloads / Week |
|---|---|---|---|
| Parent folder | |||
| README.md | 2026-03-21 | 5.7 kB | |
| v0.9.12 source code.tar.gz | 2026-03-21 | 5.2 MB | |
| v0.9.12 source code.zip | 2026-03-21 | 6.1 MB | |
| Totals: 3 Items | 11.3 MB | 0 | |
This release adds the strategist triage role for trend-aware strategic oversight, a desloppify setup command for one-step global skill installation, and a cluster of fixes that finally get stale subjective reviews unstuck from queue ordering issues. It also includes community-contributed fixes for Python src-layout projects, Windows encoding, and Knip hangs.
149 files changed | 21 commits | 6,485 tests passing
Headline Feature
Strategist Triage Role
The triage pipeline gains a new "strategist" stage that acts as a CEO-level overseer for the cleanup cycle. Instead of blindly trusting agent-reported trends, the strategist cross-checks score and debt trends against computed trajectory data, overriding mismatches. It can create high-priority strategy:: work items that jump to the front of the queue, and it supports an explicit confirmation gate (like other triage stages) so humans can review strategic assessments before they take effect.
The underlying ScoreTrajectory now tracks all-time highs from full scan history (not just the 5-scan window), introduces a "recovering" trend for scores that are improving but haven't reached their previous peak, and detects cross-cycle regression where a plateau masks a post-reset decline.
Other Features
desloppify setup Command
New command: pip install desloppify && desloppify setup. Copies bundled skill definitions to ~/.claude/ and ~/.cursor/ without network access, so agents discover desloppify globally across all projects. Per-project installs remain via update-skill.
Subjective Anti-Gaming Policy Disabled
The integrity policy that zeroed dimension scores when they converged near the target was producing false positives — blind-packet subagent reviews have no way to anchor to target scores, so legitimate convergence was being penalized. The policy now passes assessments through unchanged. It can be re-enabled later if a better detection strategy emerges.
Bug Fixes
- Stale subjective reviews blocked by queue state — Three related fixes ensure stale reviews are always detected and injected regardless of whether mechanical items remain in the queue. Previously, the
live_planned_queue_emptyguard blocked all reconciliation when objective items existed, leaving review dimensions perpetually stale. - Phase ordering for stale reviews — Stale subjective reviews now take priority over non-critical workflows (communicate score) and triage items. Pre-review workflows (deferred disposition, run scan, import scores) still jump ahead of everything.
- Force-rescan stale review injection — Force-rescan now correctly injects stale reviews by bypassing both queue-empty guards and the cycle-just-completed deferral logic. Also adds
_refresh_plan_start_baseline()that reseeds scores without clearing workflow sentinels. - Clusters not marked done — Clusters stayed
activeeven when all their items were resolved, causing completed work to reappear after rescan. Now setsexecution_status="done"on completion and sweeps active clusters during reconciliation. - Resolved items superseded from clusters —
_supersede_dead_referenceswas stripping resolved/fixed/wontfix items from clusters, making completed clusters appear incomplete. Now only supersedes items that are truly gone from state. - Python src-layout test coverage —
resolve_import_specnow triessrc/-prefixed candidates, and module name computation strips thesrc/prefix. Fixes false "transitive_only" reports for PEP 621 src-layout projects. Cherry-picked from PR [#489] by @AreboursTLS. - Python multi-line import regex —
PY_IMPORT_REnow handles parenthesized imports (from pkg import (\n name, ...)), fixing the root cause of false transitive-only coverage reports. - Test coverage graph supplementation — Source parsing now always runs as a supplement to the import graph, catching submodule imports the graph resolves to
__init__.pyinstead of the actual file. - Knip hang on missing dependency — Added
stdin=subprocess.DEVNULLand--yesflag to prevent npx from blocking on interactive prompts when Knip is not a local dependency. Closes [#494], reported by @goobsnake. - Windows UTF-8 encoding in review runner — Explicit
encoding="utf-8", errors="replace"on all file reads in the review pipeline. Prevents charmap decode errors when Codex runners emit UTF-8 on Windows. Cherry-picked from PR [#495] by @pietrondo. - Force-rescan queue-empty guard bypass —
reconcile_plan()was double-guarded by queue emptiness, preventing stale review injection when any objective items remained.
Refactoring & Internal
- Skill doc improvements — Tightened skill descriptions to reduce false activations on generic programming questions. Added explicit "run next after scan" instruction so agents follow the tool's workflow instead of interpreting scan output themselves.
- Review pipeline results — Stage 1/2/3 assessments for PRs [#495], [#493], [#489], [#189] and issues [#494]-#490. Backfilled Stage 2 files for older items.
- Setup command scope trim — Removed
--localmode and global skill discovery integration from the initial implementation, keeping the command focused on a single responsibility.
Community
Thanks to @AreboursTLS for the Python src-layout test coverage fix (PR [#489]), @pietrondo for the Windows UTF-8 encoding fix (PR [#495]), and @goobsnake for reporting the Knip hang issue (#494).