[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6KNV3PXYAG6SXAPD7EB78SH":3,"skill-same:01M6KNV3PXYAG6SXAPD7EB78SH":164},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":16,"categories":17,"keywords":23,"publishedAt":44,"linkOnly":45,"markdownContent":46,"markdownBody":47,"frontMatter":48,"refName":49,"commitSha":50,"skillDirectory":51,"forksCount":52,"repositoryHtmlUrl":53,"repositoryHomepageUrl":54,"ownerHtmlUrl":55,"ownerBlogUrl":54,"ownerDescription":56,"updatedAt":57,"install":58,"resources":71},"01M6KNV3PXYAG6SXAPD7EB78SH","code-slop",null,"Detect and strip AI-slop in source code without changing behavior. Use when the user asks to de-slop code, asks 'does this look AI-generated', wants to clean up AI code, run a code slop audit, or check whether a function reads as machine-written. Also fires on Russian requests: 'убери слоп из кода', 'выглядит как ИИ-код', 'почисти сгенерированный код'. Targets the machine-generated fingerprint — over-commenting, defensive bloat, single-use abstractions, generic naming, forced symmetry, ceremony — in JS\u002FTS, Python, Go, Rust, Java, PHP. Pairs a deterministic 0-100 scanner (CI-gateable) with a rewrite mode. NOT a bug-finder (use code-reviewer) and NOT general quality (use simplify).","ForgePlan\u002Fmarketplace","ForgePlan","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F269949194?v=4","01M6KN4SXR81GE3ZM7MHC8TP8C","Forgeplan","01M6KN4T21K1JSB160ZHPSFRTG",4,"MIT","https:\u002F\u002Fgithub.com\u002FForgePlan\u002Fmarketplace\u002Fblob\u002Fmain\u002Fplugins\u002Fslopocop-code\u002Fskills\u002Fcode-slop\u002FSKILL.md",[18],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000030","开发工程师","PROFESSION","适用职业",[24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43],"code slop","slop","code","bug","bloat","source","mode","de","russian","clean","scanner","go","up","generated","reviewer","simplify","ci","audit","run","rust","2026-11-10 10:12:30",false,"---\nname: code-slop\ndescription: \"Detect and strip AI-slop in source code without changing behavior. Use when the user asks to de-slop code, asks 'does this look AI-generated', wants to clean up AI code, run a code slop audit, or check whether a function reads as machine-written. Also fires on Russian requests: 'убери слоп из кода', 'выглядит как ИИ-код', 'почисти сгенерированный код'. Targets the machine-generated fingerprint — over-commenting, defensive bloat, single-use abstractions, generic naming, forced symmetry, ceremony — in JS\u002FTS, Python, Go, Rust, Java, PHP. Pairs a deterministic 0-100 scanner (CI-gateable) with a rewrite mode. NOT a bug-finder (use code-reviewer) and NOT general quality (use simplify).\"\nlicense: MIT\n---\n\n# code-slop\n\nThe code sibling of slopocop (text) and slopocop-design (design). It finds the fingerprint that machine-generated code leaves behind and strips it **without changing behavior**.\n\n## The one question\n\n> **Does this code read as machine-generated or over-engineered, and how do we strip that without changing what it does?**\n\nThat is the whole scope. Not \"is it correct\", not \"is it fast\", not \"is it good\" — those are other tools' jobs. code-slop asks only whether the code carries the AI tell, and if so, how to remove the tell while keeping behavior byte-for-byte identical.\n\n## What \"slop\" means here\n\nAI coding assistants leave a recognizable residue: a comment on every line, a null-check for inputs that cannot be null, an interface with one implementation, three variables named `data`, `result`, and `temp`, a helper extracted for a single caller, and a banner comment fencing off each section. None of it is a bug. All of it is noise that a human author would not have written. code-slop targets exactly that residue.\n\n## Boundary — what this is NOT\n\ncode-slop overlaps with three neighbors but is distinct from each. Keep the lanes separate.\n\n| Tool | Question it answers | Changes behavior? | Deterministic score? |\n|---|---|---|---|\n| **code-slop** (this) | Does this read as machine-generated \u002F over-engineered? | Never | Yes — 0-100 |\n| **code-reviewer** | Is this correct? Are there bugs, races, security holes? | May propose logic fixes | No |\n| **simplify** (built-in) | Is this good code by general quality standards? | May refactor for quality | No |\n| **code-analyzer** | What is the structure \u002F complexity \u002F dependency shape? | No — reports only | Metrics, not a slop verdict |\n\nThe sharp line: a fully correct, well-structured, fast function can still be pure slop (over-commented, over-abstracted, generic-named). code-slop flags it; the other three pass it. Conversely, a buggy function with a human fingerprint scores clean on the slop scale — code-slop is silent, code-reviewer is not.\n\n## The 6 tell groups (A-F)\n\nEvery slop signal falls into one of six groups. This is the mental index; the full ~35 patterns with before\u002Fafter examples live in [`references\u002Fcatalog.md`](references\u002Fcatalog.md).\n\n- **A · Comments** — a comment on every line, comments restating the code, decorative banner separators, emoji in source. The tell: the code narrates itself.\n- **B · Defensive bloat** — null-checks for values that cannot be null, try\u002Fexcept around code that cannot throw, validating inputs already validated upstream, redundant guard clauses. The tell: fear of inputs that do not exist.\n- **C · Abstraction** — interfaces\u002Fabstract classes\u002Ftraits with one implementation, factories that build one type, wrappers that only forward, config for one caller. The tell: generality no caller asked for.\n- **D · Naming** — generic names (`data`, `result`, `temp`, `obj`, `item`, `helper`, `util`, `manager`, `handler`), over-long descriptive identifiers, `Impl`\u002F`Base` ceremony. The tell: names that describe the type, not the intent.\n- **E · Symmetry \u002F rule-of-three** — near-identical copy-pasted blocks with one value swapped, forced parallel structure, exhaustive enumeration where a loop would do. The tell: a template applied three times instead of factored once.\n- **F · Ceremony** — `TODO: implement` \u002F `your code here` stubs, empty placeholder bodies, deep nesting where early-return would flatten, wrapper layers with no behavior. The tell: scaffolding left standing after the work is done.\n\nRead [`references\u002Fcatalog.md`](references\u002Fcatalog.md) for the exhaustive list, weights, and per-pattern rewrites before doing an audit or a de-slop.\n\n## Language idioms are NOT slop (the #1 correctness rule)\n\nThe fastest way to make this skill useless is to flag idiomatic code as slop. Each supported language has patterns that **look** repetitive or defensive but are the correct, expected way to write it. Never flag:\n\n- **Go** — `if err != nil { return err }` and explicit error returns. This is the language, not bloat.\n- **Rust** — `Result`\u002F`Option`\u002F`match`\u002Fthe `?` operator, and `unwrap()`\u002F`expect()` **inside tests**.\n- **Python** — required docstrings when a linter (pydocstyle, ruff D-rules) mandates them.\n- **TS\u002FJS** — type guards at trust boundaries (API responses, `unknown` narrowing, parse points).\n\nPer-language thresholds apply throughout. The complete idiom allowlist and the threshold table are in [`references\u002Flanguage-idioms.md`](references\u002Flanguage-idioms.md) — consult it before scoring any file, and when in doubt, treat a language idiom as clean.\n\n## The deterministic scanner\n\n`scripts\u002Fscan_code.py` computes a 0-100 \"human-code\" score from exactly ten metrics. The scanner is the CI-gateable half of the skill — same input, same score, no LLM in the loop.\n\nThe ten metrics:\n\n1. **comment_ratio** — comment-lines \u002F code-lines, file-wide and per-function. High ratio = slop.\n2. **redundant_comment** — a comment whose words are a subset of the next code line (restates the code).\n3. **banner_comment** — decorative separator comments (`\u002F\u002F =====`, `# -----`, `\u002F* ---- *\u002F`).\n4. **emoji_in_source** — emoji codepoints outside string literals.\n5. **todo_placeholder** — `TODO: implement`, `your code here`, `stub`, empty placeholder bodies.\n6. **max_nesting_depth** — deepest block nesting per function.\n7. **long_identifier** — any identifier longer than 30 characters.\n8. **generic_name_density** — frequency of `data`\u002F`result`\u002F`temp`\u002F`tmp`\u002F`obj`\u002F`item`\u002F`helper`\u002F`util`\u002F`manager`\u002F`handler`\u002F`foo`\u002F`bar`.\n9. **single_impl_abstraction** — an interface\u002Fabstract\u002Ftrait declaration, counted at low weight (a heuristic; it does not count implementations across files).\n10. **duplicate_block** — near-identical runs of >= 3 lines (copy-paste with one value changed).\n\n**Scoring**: start at 100, apply weighted subtractions per metric, land in a band.\n\n| Band | Score | Meaning |\n|---|---|---|\n| **clean** | >= 85 | ships as-is |\n| **spot-fix** | 60-84 | targeted de-slop, no rewrite |\n| **rewrite** | \u003C 60 | pervasive slop, rework the file |\n\nThe scanner exits **non-zero when the score is \u003C 60**, so a rewrite-band file fails a CI gate.\n\n**Usage**:\n\n```bash\npython3 scan_code.py \u003Cfile-or-dir>          # human-readable report\npython3 scan_code.py \u003Cfile-or-dir> --json   # machine-readable, for CI\ngit diff --name-only | python3 scan_code.py -   # score stdin file list\n```\n\nEvery metric name above is the contract — commands, the agent, and the catalog all use these exact identifiers. Do not rename or invent metrics.\n\n## The two modes\n\ncode-slop runs in one of two modes. Detection never edits; rewrite never guesses at behavior.\n\n| Mode | Command | What it does |\n|---|---|---|\n| **detect-only** | `\u002Fcode-audit \u003Ctarget>` | Runs the scanner + the A-F tell analysis, returns a ranked findings report with the 0-100 score and band. **Reads only. Never edits.** |\n| **rewrite** | `\u002Fcode-deslop \u003Ctarget>` | Strips the slop the audit found and rewrites the code with **behavior preserved**. |\n\nUse `\u002Fcode-audit` to see what is slop; use `\u002Fcode-deslop` to remove it.\n\n## The HARD behavior-preserving rule\n\nThis is non-negotiable and it is what separates code-slop from a general refactor tool.\n\n1. **Never change logic.** De-slopping removes comments, collapses one-use abstractions, renames generics, flattens needless nesting, and de-duplicates copy-paste. It does **not** change control flow, alter outputs, \"fix\" a suspected bug, tighten a type in a way that rejects previously-valid input, or touch anything observable. If a change would alter behavior, it is out of scope — hand it to code-reviewer instead.\n\n2. **After a rewrite, run the test suite.** A de-slop is not done until the existing tests pass on the rewritten code. Run them. If they pass, the behavior-preservation claim is evidenced; if they fail, revert and narrow the change.\n\n3. **If there are no tests, warn loudly.** State explicitly, in the output, that the rewrite could not be verified because the target has no test coverage, and that the user must review the diff by hand before trusting it. Do not present an unverified de-slop as safe. Silence here is the failure mode.\n\nWhen in doubt about whether a change preserves behavior, do less. A smaller, obviously-safe de-slop beats an aggressive one that might have moved behavior.\n\n## Honest about false positives\n\nDeterministic detection is blunt. A high comment_ratio can be a genuinely gnarly algorithm that earns its explanation. A single-impl interface can be a deliberate seam for a plugin boundary that will grow a second implementation next sprint. A duplicate block can be two cases that only look alike today. The scanner flags the shape; judgment decides. Report findings as \"reads as slop, confirm before stripping\", not as \"this is wrong\". The language-idiom allowlist exists precisely because the naive signal over-fires — respect it, and surface uncertainty rather than hiding it.\n\n## Languages\n\nJS\u002FTS, Python, Go, Rust, Java, PHP. Other extensions get a generic C-like profile — the comment\u002Fbanner\u002Femoji\u002Ftodo\u002Fnaming\u002Fduplicate\u002Fnesting metrics still work; only the per-language idiom exemptions are absent.\n","# code-slop\n\nThe code sibling of slopocop (text) and slopocop-design (design). It finds the fingerprint that machine-generated code leaves behind and strips it **without changing behavior**.\n\n## The one question\n\n> **Does this code read as machine-generated or over-engineered, and how do we strip that without changing what it does?**\n\nThat is the whole scope. Not \"is it correct\", not \"is it fast\", not \"is it good\" — those are other tools' jobs. code-slop asks only whether the code carries the AI tell, and if so, how to remove the tell while keeping behavior byte-for-byte identical.\n\n## What \"slop\" means here\n\nAI coding assistants leave a recognizable residue: a comment on every line, a null-check for inputs that cannot be null, an interface with one implementation, three variables named `data`, `result`, and `temp`, a helper extracted for a single caller, and a banner comment fencing off each section. None of it is a bug. All of it is noise that a human author would not have written. code-slop targets exactly that residue.\n\n## Boundary — what this is NOT\n\ncode-slop overlaps with three neighbors but is distinct from each. Keep the lanes separate.\n\n| Tool | Question it answers | Changes behavior? | Deterministic score? |\n|---|---|---|---|\n| **code-slop** (this) | Does this read as machine-generated \u002F over-engineered? | Never | Yes — 0-100 |\n| **code-reviewer** | Is this correct? Are there bugs, races, security holes? | May propose logic fixes | No |\n| **simplify** (built-in) | Is this good code by general quality standards? | May refactor for quality | No |\n| **code-analyzer** | What is the structure \u002F complexity \u002F dependency shape? | No — reports only | Metrics, not a slop verdict |\n\nThe sharp line: a fully correct, well-structured, fast function can still be pure slop (over-commented, over-abstracted, generic-named). code-slop flags it; the other three pass it. Conversely, a buggy function with a human fingerprint scores clean on the slop scale — code-slop is silent, code-reviewer is not.\n\n## The 6 tell groups (A-F)\n\nEvery slop signal falls into one of six groups. This is the mental index; the full ~35 patterns with before\u002Fafter examples live in [`references\u002Fcatalog.md`](references\u002Fcatalog.md).\n\n- **A · Comments** — a comment on every line, comments restating the code, decorative banner separators, emoji in source. The tell: the code narrates itself.\n- **B · Defensive bloat** — null-checks for values that cannot be null, try\u002Fexcept around code that cannot throw, validating inputs already validated upstream, redundant guard clauses. The tell: fear of inputs that do not exist.\n- **C · Abstraction** — interfaces\u002Fabstract classes\u002Ftraits with one implementation, factories that build one type, wrappers that only forward, config for one caller. The tell: generality no caller asked for.\n- **D · Naming** — generic names (`data`, `result`, `temp`, `obj`, `item`, `helper`, `util`, `manager`, `handler`), over-long descriptive identifiers, `Impl`\u002F`Base` ceremony. The tell: names that describe the type, not the intent.\n- **E · Symmetry \u002F rule-of-three** — near-identical copy-pasted blocks with one value swapped, forced parallel structure, exhaustive enumeration where a loop would do. The tell: a template applied three times instead of factored once.\n- **F · Ceremony** — `TODO: implement` \u002F `your code here` stubs, empty placeholder bodies, deep nesting where early-return would flatten, wrapper layers with no behavior. The tell: scaffolding left standing after the work is done.\n\nRead [`references\u002Fcatalog.md`](references\u002Fcatalog.md) for the exhaustive list, weights, and per-pattern rewrites before doing an audit or a de-slop.\n\n## Language idioms are NOT slop (the #1 correctness rule)\n\nThe fastest way to make this skill useless is to flag idiomatic code as slop. Each supported language has patterns that **look** repetitive or defensive but are the correct, expected way to write it. Never flag:\n\n- **Go** — `if err != nil { return err }` and explicit error returns. This is the language, not bloat.\n- **Rust** — `Result`\u002F`Option`\u002F`match`\u002Fthe `?` operator, and `unwrap()`\u002F`expect()` **inside tests**.\n- **Python** — required docstrings when a linter (pydocstyle, ruff D-rules) mandates them.\n- **TS\u002FJS** — type guards at trust boundaries (API responses, `unknown` narrowing, parse points).\n\nPer-language thresholds apply throughout. The complete idiom allowlist and the threshold table are in [`references\u002Flanguage-idioms.md`](references\u002Flanguage-idioms.md) — consult it before scoring any file, and when in doubt, treat a language idiom as clean.\n\n## The deterministic scanner\n\n`scripts\u002Fscan_code.py` computes a 0-100 \"human-code\" score from exactly ten metrics. The scanner is the CI-gateable half of the skill — same input, same score, no LLM in the loop.\n\nThe ten metrics:\n\n1. **comment_ratio** — comment-lines \u002F code-lines, file-wide and per-function. High ratio = slop.\n2. **redundant_comment** — a comment whose words are a subset of the next code line (restates the code).\n3. **banner_comment** — decorative separator comments (`\u002F\u002F =====`, `# -----`, `\u002F* ---- *\u002F`).\n4. **emoji_in_source** — emoji codepoints outside string literals.\n5. **todo_placeholder** — `TODO: implement`, `your code here`, `stub`, empty placeholder bodies.\n6. **max_nesting_depth** — deepest block nesting per function.\n7. **long_identifier** — any identifier longer than 30 characters.\n8. **generic_name_density** — frequency of `data`\u002F`result`\u002F`temp`\u002F`tmp`\u002F`obj`\u002F`item`\u002F`helper`\u002F`util`\u002F`manager`\u002F`handler`\u002F`foo`\u002F`bar`.\n9. **single_impl_abstraction** — an interface\u002Fabstract\u002Ftrait declaration, counted at low weight (a heuristic; it does not count implementations across files).\n10. **duplicate_block** — near-identical runs of >= 3 lines (copy-paste with one value changed).\n\n**Scoring**: start at 100, apply weighted subtractions per metric, land in a band.\n\n| Band | Score | Meaning |\n|---|---|---|\n| **clean** | >= 85 | ships as-is |\n| **spot-fix** | 60-84 | targeted de-slop, no rewrite |\n| **rewrite** | \u003C 60 | pervasive slop, rework the file |\n\nThe scanner exits **non-zero when the score is \u003C 60**, so a rewrite-band file fails a CI gate.\n\n**Usage**:\n\n```bash\npython3 scan_code.py \u003Cfile-or-dir>          # human-readable report\npython3 scan_code.py \u003Cfile-or-dir> --json   # machine-readable, for CI\ngit diff --name-only | python3 scan_code.py -   # score stdin file list\n```\n\nEvery metric name above is the contract — commands, the agent, and the catalog all use these exact identifiers. Do not rename or invent metrics.\n\n## The two modes\n\ncode-slop runs in one of two modes. Detection never edits; rewrite never guesses at behavior.\n\n| Mode | Command | What it does |\n|---|---|---|\n| **detect-only** | `\u002Fcode-audit \u003Ctarget>` | Runs the scanner + the A-F tell analysis, returns a ranked findings report with the 0-100 score and band. **Reads only. Never edits.** |\n| **rewrite** | `\u002Fcode-deslop \u003Ctarget>` | Strips the slop the audit found and rewrites the code with **behavior preserved**. |\n\nUse `\u002Fcode-audit` to see what is slop; use `\u002Fcode-deslop` to remove it.\n\n## The HARD behavior-preserving rule\n\nThis is non-negotiable and it is what separates code-slop from a general refactor tool.\n\n1. **Never change logic.** De-slopping removes comments, collapses one-use abstractions, renames generics, flattens needless nesting, and de-duplicates copy-paste. It does **not** change control flow, alter outputs, \"fix\" a suspected bug, tighten a type in a way that rejects previously-valid input, or touch anything observable. If a change would alter behavior, it is out of scope — hand it to code-reviewer instead.\n\n2. **After a rewrite, run the test suite.** A de-slop is not done until the existing tests pass on the rewritten code. Run them. If they pass, the behavior-preservation claim is evidenced; if they fail, revert and narrow the change.\n\n3. **If there are no tests, warn loudly.** State explicitly, in the output, that the rewrite could not be verified because the target has no test coverage, and that the user must review the diff by hand before trusting it. Do not present an unverified de-slop as safe. Silence here is the failure mode.\n\nWhen in doubt about whether a change preserves behavior, do less. A smaller, obviously-safe de-slop beats an aggressive one that might have moved behavior.\n\n## Honest about false positives\n\nDeterministic detection is blunt. A high comment_ratio can be a genuinely gnarly algorithm that earns its explanation. A single-impl interface can be a deliberate seam for a plugin boundary that will grow a second implementation next sprint. A duplicate block can be two cases that only look alike today. The scanner flags the shape; judgment decides. Report findings as \"reads as slop, confirm before stripping\", not as \"this is wrong\". The language-idiom allowlist exists precisely because the naive signal over-fires — respect it, and surface uncertainty rather than hiding it.\n\n## Languages\n\nJS\u002FTS, Python, Go, Rust, Java, PHP. Other extensions get a generic C-like profile — the comment\u002Fbanner\u002Femoji\u002Ftodo\u002Fnaming\u002Fduplicate\u002Fnesting metrics still work; only the per-language idiom exemptions are absent.\n",{"name":5,"license":15,"description":7},"main","1532e1fc6110f95206bfd44bff998c6b57cae6d6","plugins\u002Fslopocop-code\u002Fskills\u002Fcode-slop",1,"https:\u002F\u002Fgithub.com\u002FForgePlan\u002Fmarketplace","https:\u002F\u002Fforgeplan.dev","https:\u002F\u002Fgithub.com\u002FForgePlan","Engineering decision tools and methodology frameworks for AI-native teams","2026-11-01 09:33:58",{"source":8,"skillName":5,"commands":59,"prompt":69,"zipAvailable":70},[60,63,66],{"tool":61,"command":62},"npx","npx skills add ForgePlan\u002Fmarketplace --skill code-slop",{"tool":64,"command":65},"bunx","bunx skills add ForgePlan\u002Fmarketplace --skill code-slop",{"tool":67,"command":68},"pnpm","pnpm dlx skills add ForgePlan\u002Fmarketplace --skill code-slop","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002FForgePlan\u002Fmarketplace\u002Fblob\u002Fmain\u002Fplugins\u002Fslopocop-code\u002Fskills\u002Fcode-slop\u002FSKILL.md",true,[72,78,82,88,92,96,100,104,108,112,116,120,124,128,132,136,140,144,148,152,156,160],{"path":73,"resourceType":74,"resourceTypeDesc":75,"sizeBytes":76,"sourceHtmlUrl":77},"references\u002Fcatalog.md","REFERENCE","参考文档",14871,"https:\u002F\u002Fgithub.com\u002FForgePlan\u002Fmarketplace\u002Fblob\u002Fmain\u002Fplugins\u002Fslopocop-code\u002Fskills\u002Fcode-slop\u002Freferences\u002Fcatalog.md",{"path":79,"resourceType":74,"resourceTypeDesc":75,"sizeBytes":80,"sourceHtmlUrl":81},"references\u002Flanguage-idioms.md",16892,"https:\u002F\u002Fgithub.com\u002FForgePlan\u002Fmarketplace\u002Fblob\u002Fmain\u002Fplugins\u002Fslopocop-code\u002Fskills\u002Fcode-slop\u002Freferences\u002Flanguage-idioms.md",{"path":83,"resourceType":84,"resourceTypeDesc":85,"sizeBytes":86,"sourceHtmlUrl":87},"scripts\u002Fcode_slop_metrics\u002F__init__.py","SCRIPT","脚本",789,"https:\u002F\u002Fgithub.com\u002FForgePlan\u002Fmarketplace\u002Fblob\u002Fmain\u002Fplugins\u002Fslopocop-code\u002Fskills\u002Fcode-slop\u002Fscripts\u002Fcode_slop_metrics\u002F__init__.py",{"path":89,"resourceType":84,"resourceTypeDesc":85,"sizeBytes":90,"sourceHtmlUrl":91},"scripts\u002Fcode_slop_metrics\u002Fcomments.py",4372,"https:\u002F\u002Fgithub.com\u002FForgePlan\u002Fmarketplace\u002Fblob\u002Fmain\u002Fplugins\u002Fslopocop-code\u002Fskills\u002Fcode-slop\u002Fscripts\u002Fcode_slop_metrics\u002Fcomments.py",{"path":93,"resourceType":84,"resourceTypeDesc":85,"sizeBytes":94,"sourceHtmlUrl":95},"scripts\u002Fcode_slop_metrics\u002Flangs.py",2798,"https:\u002F\u002Fgithub.com\u002FForgePlan\u002Fmarketplace\u002Fblob\u002Fmain\u002Fplugins\u002Fslopocop-code\u002Fskills\u002Fcode-slop\u002Fscripts\u002Fcode_slop_metrics\u002Flangs.py",{"path":97,"resourceType":84,"resourceTypeDesc":85,"sizeBytes":98,"sourceHtmlUrl":99},"scripts\u002Fcode_slop_metrics\u002Fnaming.py",766,"https:\u002F\u002Fgithub.com\u002FForgePlan\u002Fmarketplace\u002Fblob\u002Fmain\u002Fplugins\u002Fslopocop-code\u002Fskills\u002Fcode-slop\u002Fscripts\u002Fcode_slop_metrics\u002Fnaming.py",{"path":101,"resourceType":84,"resourceTypeDesc":85,"sizeBytes":102,"sourceHtmlUrl":103},"scripts\u002Fcode_slop_metrics\u002Fscore.py",2166,"https:\u002F\u002Fgithub.com\u002FForgePlan\u002Fmarketplace\u002Fblob\u002Fmain\u002Fplugins\u002Fslopocop-code\u002Fskills\u002Fcode-slop\u002Fscripts\u002Fcode_slop_metrics\u002Fscore.py",{"path":105,"resourceType":84,"resourceTypeDesc":85,"sizeBytes":106,"sourceHtmlUrl":107},"scripts\u002Fcode_slop_metrics\u002Fstructure.py",4115,"https:\u002F\u002Fgithub.com\u002FForgePlan\u002Fmarketplace\u002Fblob\u002Fmain\u002Fplugins\u002Fslopocop-code\u002Fskills\u002Fcode-slop\u002Fscripts\u002Fcode_slop_metrics\u002Fstructure.py",{"path":109,"resourceType":84,"resourceTypeDesc":85,"sizeBytes":110,"sourceHtmlUrl":111},"scripts\u002Fscan_code.py",4700,"https:\u002F\u002Fgithub.com\u002FForgePlan\u002Fmarketplace\u002Fblob\u002Fmain\u002Fplugins\u002Fslopocop-code\u002Fskills\u002Fcode-slop\u002Fscripts\u002Fscan_code.py",{"path":113,"resourceType":84,"resourceTypeDesc":85,"sizeBytes":114,"sourceHtmlUrl":115},"scripts\u002Ftests\u002Ffixtures\u002Fclean.go",285,"https:\u002F\u002Fgithub.com\u002FForgePlan\u002Fmarketplace\u002Fblob\u002Fmain\u002Fplugins\u002Fslopocop-code\u002Fskills\u002Fcode-slop\u002Fscripts\u002Ftests\u002Ffixtures\u002Fclean.go",{"path":117,"resourceType":84,"resourceTypeDesc":85,"sizeBytes":118,"sourceHtmlUrl":119},"scripts\u002Ftests\u002Ffixtures\u002Fclean.java",454,"https:\u002F\u002Fgithub.com\u002FForgePlan\u002Fmarketplace\u002Fblob\u002Fmain\u002Fplugins\u002Fslopocop-code\u002Fskills\u002Fcode-slop\u002Fscripts\u002Ftests\u002Ffixtures\u002Fclean.java",{"path":121,"resourceType":84,"resourceTypeDesc":85,"sizeBytes":122,"sourceHtmlUrl":123},"scripts\u002Ftests\u002Ffixtures\u002Fclean.php",397,"https:\u002F\u002Fgithub.com\u002FForgePlan\u002Fmarketplace\u002Fblob\u002Fmain\u002Fplugins\u002Fslopocop-code\u002Fskills\u002Fcode-slop\u002Fscripts\u002Ftests\u002Ffixtures\u002Fclean.php",{"path":125,"resourceType":84,"resourceTypeDesc":85,"sizeBytes":126,"sourceHtmlUrl":127},"scripts\u002Ftests\u002Ffixtures\u002Fclean.py",215,"https:\u002F\u002Fgithub.com\u002FForgePlan\u002Fmarketplace\u002Fblob\u002Fmain\u002Fplugins\u002Fslopocop-code\u002Fskills\u002Fcode-slop\u002Fscripts\u002Ftests\u002Ffixtures\u002Fclean.py",{"path":129,"resourceType":84,"resourceTypeDesc":85,"sizeBytes":130,"sourceHtmlUrl":131},"scripts\u002Ftests\u002Ffixtures\u002Fclean.rs",315,"https:\u002F\u002Fgithub.com\u002FForgePlan\u002Fmarketplace\u002Fblob\u002Fmain\u002Fplugins\u002Fslopocop-code\u002Fskills\u002Fcode-slop\u002Fscripts\u002Ftests\u002Ffixtures\u002Fclean.rs",{"path":133,"resourceType":84,"resourceTypeDesc":85,"sizeBytes":134,"sourceHtmlUrl":135},"scripts\u002Ftests\u002Ffixtures\u002Fclean.ts",266,"https:\u002F\u002Fgithub.com\u002FForgePlan\u002Fmarketplace\u002Fblob\u002Fmain\u002Fplugins\u002Fslopocop-code\u002Fskills\u002Fcode-slop\u002Fscripts\u002Ftests\u002Ffixtures\u002Fclean.ts",{"path":137,"resourceType":84,"resourceTypeDesc":85,"sizeBytes":138,"sourceHtmlUrl":139},"scripts\u002Ftests\u002Ffixtures\u002Fslop.go",1174,"https:\u002F\u002Fgithub.com\u002FForgePlan\u002Fmarketplace\u002Fblob\u002Fmain\u002Fplugins\u002Fslopocop-code\u002Fskills\u002Fcode-slop\u002Fscripts\u002Ftests\u002Ffixtures\u002Fslop.go",{"path":141,"resourceType":84,"resourceTypeDesc":85,"sizeBytes":142,"sourceHtmlUrl":143},"scripts\u002Ftests\u002Ffixtures\u002Fslop.java",1740,"https:\u002F\u002Fgithub.com\u002FForgePlan\u002Fmarketplace\u002Fblob\u002Fmain\u002Fplugins\u002Fslopocop-code\u002Fskills\u002Fcode-slop\u002Fscripts\u002Ftests\u002Ffixtures\u002Fslop.java",{"path":145,"resourceType":84,"resourceTypeDesc":85,"sizeBytes":146,"sourceHtmlUrl":147},"scripts\u002Ftests\u002Ffixtures\u002Fslop.php",2129,"https:\u002F\u002Fgithub.com\u002FForgePlan\u002Fmarketplace\u002Fblob\u002Fmain\u002Fplugins\u002Fslopocop-code\u002Fskills\u002Fcode-slop\u002Fscripts\u002Ftests\u002Ffixtures\u002Fslop.php",{"path":149,"resourceType":84,"resourceTypeDesc":85,"sizeBytes":150,"sourceHtmlUrl":151},"scripts\u002Ftests\u002Ffixtures\u002Fslop.py",989,"https:\u002F\u002Fgithub.com\u002FForgePlan\u002Fmarketplace\u002Fblob\u002Fmain\u002Fplugins\u002Fslopocop-code\u002Fskills\u002Fcode-slop\u002Fscripts\u002Ftests\u002Ffixtures\u002Fslop.py",{"path":153,"resourceType":84,"resourceTypeDesc":85,"sizeBytes":154,"sourceHtmlUrl":155},"scripts\u002Ftests\u002Ffixtures\u002Fslop.rs",1303,"https:\u002F\u002Fgithub.com\u002FForgePlan\u002Fmarketplace\u002Fblob\u002Fmain\u002Fplugins\u002Fslopocop-code\u002Fskills\u002Fcode-slop\u002Fscripts\u002Ftests\u002Ffixtures\u002Fslop.rs",{"path":157,"resourceType":84,"resourceTypeDesc":85,"sizeBytes":158,"sourceHtmlUrl":159},"scripts\u002Ftests\u002Ffixtures\u002Fslop.ts",1136,"https:\u002F\u002Fgithub.com\u002FForgePlan\u002Fmarketplace\u002Fblob\u002Fmain\u002Fplugins\u002Fslopocop-code\u002Fskills\u002Fcode-slop\u002Fscripts\u002Ftests\u002Ffixtures\u002Fslop.ts",{"path":161,"resourceType":84,"resourceTypeDesc":85,"sizeBytes":162,"sourceHtmlUrl":163},"scripts\u002Ftests\u002Ftest_scan.py",3674,"https:\u002F\u002Fgithub.com\u002FForgePlan\u002Fmarketplace\u002Fblob\u002Fmain\u002Fplugins\u002Fslopocop-code\u002Fskills\u002Fcode-slop\u002Fscripts\u002Ftests\u002Ftest_scan.py",[165,187,198,232,258],{"skillNo":166,"name":167,"nameZh":6,"description":168,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":169,"categories":170,"keywords":171,"publishedAt":44},"01M6KNWKMAQ8393HAK6VT7KT6R","slopocop","Slopocop communication layer for compact, clear Russian and English replies. Apply to every reply, question and progress update when installed as always-on or loaded (объясни понятнее); artifacts follow their task.","https:\u002F\u002Fgithub.com\u002FForgePlan\u002Fmarketplace\u002Fblob\u002Fmain\u002Fplugins\u002Fslopocop\u002Fskills\u002Fslopocop\u002FSKILL.md",[],[167,172,173,174,175,176,177,178,179,180,181,182,183,184,185,32,186],"for","apply","compact","layer","replies","progress","english","clear","as","update","artifacts","communication","question","reply","task",{"skillNo":188,"name":189,"nameZh":6,"description":190,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":191,"categories":192,"keywords":193,"publishedAt":44},"01M6KNW7K3TTRZNRRXPN86NBGC","humanizer-ru","Скилл для очеловечивания русскоязычного текста. Убирает признаки AI-генерации, делает текст живым. Используй ВСЕГДА, когда пользователь просит: очеловечить текст, убрать следы нейросети, сделать текст живым\u002Fестественным, переписать как человек, humanize на русском, убрать канцелярит, убрать водянистость, сделать текст менее формальным. Также используй если пользователь вставляет русскоязычный текст и говорит что-то вроде 'перепиши', 'сделай лучше', 'звучит как робот', 'слишком искусственно'. Работает ТОЛЬКО с русским языком. Для английского используй оригинальный humanizer. НЕ используй для: перевод, написание с нуля, грамматика, код.","https:\u002F\u002Fgithub.com\u002FForgePlan\u002Fmarketplace\u002Fblob\u002Fmain\u002Fplugins\u002Fslopocop\u002Fskills\u002Fhumanizer-ru\u002FSKILL.md",[],[194,195,196,197],"humanizer","ru","humanizer ru","humanize",{"skillNo":199,"name":200,"nameZh":6,"description":201,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":202,"categories":203,"keywords":212,"publishedAt":44},"01M6KNMVYW4S8SSSSETCRB0MXS","forge-report","Structured report formats for Claude — card-based, human-readable, no ASCII frame noise. Use when finishing a multi-step task (≥5 tool calls, ≥3 files modified, multi-task TaskList, or cross-system effects like git push\u002FPR\u002Fdeploy). Output-only skill, no forgeplan dependency (per PRD-022 Tier B): reads no MCP state, produces plain markdown for the conversation. Triggers on: report, summary, summarise, отчёт, итоги, завершение задачи, build complete, audit complete, deployment complete, decision recorded, incident resolved, migration done. Provides 5 templates (build\u002Faudit\u002Fdecision\u002Fincident\u002Fmigration), anchor conventions (section icons, plain-prose TL;DR, confidence labels), required sections (not-done, reversibility, drift-risks, next-steps), and 5 anti-patterns. Not for simple Q&A or single-file edits.","https:\u002F\u002Fgithub.com\u002FForgePlan\u002Fmarketplace\u002Fblob\u002Fmain\u002Fplugins\u002Ffpl-skills\u002Fskills\u002Fforge-report\u002FSKILL.md",[204,209],{"categoryNo":205,"categoryName":206,"taxonomyType":207,"taxonomyTypeDesc":208},"01JBSEEDCAT000000000000023","Skill与智能体开发","SCENARIO","使用场景",{"categoryNo":210,"categoryName":211,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000034","行政与办公人员",[213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,41,231],"forge","report","forge report","files","reversibility","card","human","incident","next","drift","done","conversation","labels","dependency","only","decision","MCP","effects","markdown",{"skillNo":233,"name":234,"nameZh":6,"description":235,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":236,"categories":237,"keywords":238,"publishedAt":44},"01M6KNCZSV9VPWXBV5A6M0YHPA","fpf-knowledge","First Principles Framework (FPF) — thinking amplifier. Use when user wants to think through a complex problem, architect a system, evaluate alternatives, decompose complexity, or plan rigorously. Also triggers on: FPF, bounded contexts, SoTA packs, assurance calculus, FPF Parts A-K. Not for simple task planning, general philosophy, or Agile unrelated to FPF.","https:\u002F\u002Fgithub.com\u002FForgePlan\u002Fmarketplace\u002Fblob\u002Fmain\u002Fplugins\u002Ffpf\u002Fskills\u002Ffpf-knowledge\u002FSKILL.md",[],[239,240,241,242,243,244,245,172,246,247,248,249,250,251,252,253,254,255,256,257],"fpf knowledge","knowledge","agile","planning","thinking","bounded","alternatives","problem","triggers","first principles","philosophy","unrelated","complexity","decompose","system","plan","architect","framework","task planning",{"skillNo":259,"name":200,"nameZh":6,"description":260,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":261,"categories":262,"keywords":264,"publishedAt":44},"01M6KN8TVZ7KWWFJYG1KP38DT4","Structured report formats for Claude — card-based, human-readable, no ASCII frame noise. Use when finishing a multi-step task (≥5 tool calls, ≥3 files modified, multi-task TaskList, or cross-system effects like git push\u002FPR\u002Fdeploy). Triggers on: report, summary, summarise, отчёт, итоги, завершение задачи, build complete, audit complete, deployment complete, decision recorded, incident resolved, migration done. Provides 5 templates (build\u002Faudit\u002Fdecision\u002Fincident\u002Fmigration), anchor conventions (section icons, plain-prose TL;DR, confidence labels), required sections (not-done, reversibility, drift-risks, next-steps), and 5 anti-patterns. Not for simple Q&A or single-file edits.","https:\u002F\u002Fgithub.com\u002FForgePlan\u002Fmarketplace\u002Fblob\u002Fmain\u002Fplugins\u002Fdev-toolkit\u002Fskills\u002Fforge-report\u002FSKILL.md",[263],{"categoryNo":210,"categoryName":211,"taxonomyType":21,"taxonomyTypeDesc":22},[214,215,213,221,230,225,217,265,266,218,219,220,222,223,267,216,268,228,41,269],"q&a","formats","patterns","anti-patterns","git"]