一键导入
deslop
Remove AI-generated artifacts from code. Three-phase certainty-graded cleanup. Use after any AI implementation session or before PR creation.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
Remove AI-generated artifacts from code. Three-phase certainty-graded cleanup. Use after any AI implementation session or before PR creation.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
Canonical b00t reviewer capability — adversarial multi-framework code/datum review. Shared across all harnesses (Claude Code, opencode, Hermes, b00t-cli). Loaded via: b00t learn reviewer, or by harness-specific role supplements.
8-phase agile workflow — strategy→ideate→brainstorm→plan→work→review→compound→pulse. State machine with FOL-guarded transitions, gh-issues backlog, executable just harness. Inspired by everyinc/compound-engineering-plugin.
Australian crypto tax treatment per ATO guidance QC 53725. Crypto assets are CGT assets under ITAA 1997 s 108-5. Each disposal triggers CGT event A1. Covers personal-use exception, trading stock test, and the 50% CGT discount.
Australian R&D Tax Incentive (RDTI) — ITAA 1997 Division 355. Covers eligibility criteria for core and supporting R&D activities, registration with AusIndustry/IP Australia, expenditure categories, offset rates, and the company size threshold test.
Evidence graph construction for tax audit trails. Each Satisfies check emits EvidenceNode structs with Blake3 content hashes. Evidence chains are tamper-evident and link legislative citations to factual findings.
ISO and IFRS accounting standards used in the Tax-Lawyer Platform: ISO 20022 (financial messaging), IFRS 9 (financial instruments), LEI (ISO 17442), and ISO 4217 (currency codes). Grounds monetary domain objects in formal standards.
| name | deslop |
| description | Remove AI-generated artifacts from code. Three-phase certainty-graded cleanup. Use after any AI implementation session or before PR creation. |
| disable-model-invocation | false |
Three-phase pipeline: deterministic first, heuristic second, AI last. Never removes without certainty grade.
--dry-rungit commit -m "chore: deslop AI artifacts" # output: commit_shaOnly patterns that are unambiguously debug/leftover artifacts with near-zero false positive rate. Do NOT auto-remove patterns that are context-dependent — those belong in Phase 2.
console\.log\( → JS/TS debug output (lib files only, not scripts)
\bpdb\.set_trace\(\) → Python interactive debugger — always wrong in committed code
debugger; → JS/TS breakpoint — always wrong in committed code
except:\s*pass → Python silent exception swallow
// TODO(?!.*#[0-9]+) → Rust/JS TODO without issue reference (use # prefix for Python/shell)
# TODO(?!.*#[0-9]+) → Python/Shell TODO without issue reference
// FIXME(?!.*#[0-9]+) → Rust/JS FIXME without issue reference
# FIXME(?!.*#[0-9]+) → Python/Shell FIXME without issue reference
// HACK\b → Hack marker (Rust/JS/TS)
// XXX\b → Unresolved marker (Rust/JS/TS)
Respect file-level # deslop:ignore annotation to skip a file.
Skip tests/, *_test.*, *.spec.*, *_spec.*, src/bin/, src/main.rs.
Removed from HIGH (too many false positives — demoted to MEDIUM):
println!( — valid in Rust binary crates, CLI entry points; only an artifact in lib cratesprint( — standard output in Python scripts, not always debug"placeholder" — valid HTML attribute, CSS, UI framework value"example.com" — IANA-reserved domain; legitimately used in docs, RFC examples, tests, config templates.unwrap() — requires context: legitimate after .contains() guards, in main.rs, prototypes// or # lines that parse as valid code# increment i by 1 before i += 1import X where X never appears in file bodyprintln!( in Rust lib crate files (not main.rs, not src/bin/, not #[cfg(test)])print( in Python non-script files (not __main__, not CLIs, not test helpers).unwrap() in Rust: flag if there is no preceding .is_some()/.contains()/assert guard and not in main.rs or test"placeholder" as a runtime value (not as an HTML/CSS attribute name or UI label)"example.com" in non-documentation Rust/Python source as a live URL (not in doc comments, not in tests)return None / pass / throw new Error("not implemented")/deslop # Run on git diff (staged + unstaged)
/deslop --path <path> # Specific file or directory
/deslop --dry-run # Show findings only, no changes
/deslop --phase <1|2|3> # Run specific phase only
/deslop --skip-low # Skip Phase 3 (faster)
deslop report: src/
━━━━━━━━━━━━━━━
[HIGH] removed 4 artifacts automatically
✓ console.log() at src/app.ts:12
✓ TODO (no issue) at src/utils.ts:88
✓ debugger; at src/debug.ts:3
✓ .unwrap() at src/main.rs:45
[MEDIUM] 2 findings — awaiting review
⚠ commented-out block at src/parser.ts:55-62
⚠ dead import `useState` at src/foo.tsx:2
[LOW] 1 finding — human gate
? scaffold fn `processPayment()` returns None — was this implemented?
Runs automatically at IMPLEMENT phase of /next-task.
Can be invoked standalone pre-PR.