[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6DB0XWK10F9PCKPMN7ADB1G":3,"skill-same:01M6DB0XWK10F9PCKPMN7ADB1G":135},{"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":18,"publishedAt":39,"linkOnly":40,"markdownContent":41,"markdownBody":42,"frontMatter":43,"refName":52,"commitSha":53,"skillDirectory":54,"forksCount":14,"repositoryHtmlUrl":55,"repositoryHomepageUrl":6,"ownerHtmlUrl":56,"ownerBlogUrl":6,"ownerDescription":6,"updatedAt":57,"install":58,"resources":71},"01M6DB0XWK10F9PCKPMN7ADB1G","agentic-humanizer",null,"Use when the user invokes \u002Fagentic-humanizer or asks to humanize AI-generated text via a 5-pass rewrite with optional voice-matching and (when Slop or Not Pro is available) detector scoring and readability checks ; do NOT use for mere AI-detection without rewriting (use slop-check) ; returns humanized text with optional readability stats.","Prekzursil\u002Fagent-skills-toolchain","Prekzursil","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F54636077?v=4","01M6DACZ1PCQHD99SCR1YXG28B","Andrei Mihai Visalon","01M6DACZ670WZF535V3WYYSS4Z",0,"MIT","https:\u002F\u002Fgithub.com\u002FPrekzursil\u002Fagent-skills-toolchain\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fagentic-humanizer\u002FSKILL.md",[],[19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38],"agentic humanizer","agentic","humanizer","check","scoring","humanize","do","ai-detection","opencode","use","cursor","generated","cli","text","Bash","stats","code","codex","github","gemini","2026-11-10 10:12:30",false,"---\nname: agentic-humanizer\ndescription: Use when the user invokes \u002Fagentic-humanizer or asks to humanize AI-generated text via a 5-pass rewrite with optional voice-matching and (when Slop or Not Pro is available) detector scoring and readability checks ; do NOT use for mere AI-detection without rewriting (use slop-check) ; returns humanized text with optional readability stats.\nlicense: MIT\nallowed-tools:\n- Read\n- Bash\n- AskUserQuestion\nmetadata:\n  version: 0.1.0\n  compatibility: claude-code codex cursor gemini-cli opencode\n  source: https:\u002F\u002Fgithub.com\u002Fnumen-tech\u002Fslopornot\n  upstream_author: Numen Technologies\n---\n\n# Agentic Humanizer\n\nA 5-pass AI humanizer. It always runs the core rewrite workflow; Slop or Not\nPro adds measured on-device AI detector checks.\n\n- **Without Slop or Not:** runs the full rewrite workflow.\n- **With Slop or Not Pro:** adds on-device AI detector scoring, readability, Text Cleanup, and\n  cleanup stats.\n\n**Slash command:** `\u002Fagentic-humanizer [paste text]`\n\n**Inline overrides:** `\u002Fagentic-humanizer dialect=us|uk grade=N tone=casual|professional|academic length=±10|exp|trim threshold=N max=N voice=\u002Fpath\u002Fto\u002Ffile.txt|off voice-skip skip-interview [paste]`\n\n## What this skill does\n\n1. Detects the host harness (Claude Code, Codex, Cursor, Gemini CLI,\n   OpenCode, or generic).\n2. Handles profile and voice management commands before any rewrite.\n3. Resolves rewrite preferences from inline overrides, saved profile, or the\n   harness interview.\n4. Optionally resolves a writing sample and extracts a cached stylometric\n   fingerprint. Voice matching does not require Slop or Not.\n5. Probes whether Slop or Not Pro is reachable via MCP or CLI.\n6. Runs the 5-pass humanization workflow:\n   - Core mode logs unscored iterations.\n   - Slop or Not Pro runs Text Cleanup, detection, and readability checks.\n7. Returns the final text, loop history, highest-impact edits, and, when Slop\n   cleanup ran, a Text Cleanup summary.\n\n## Step 1: Detect the harness\n\nIdentify which harness is running by checking for the harness's distinctive\nquestion tool. Use the first match:\n\n| Harness | Distinctive tool present? | Read this file |\n|---|---|---|\n| Claude Code | `AskUserQuestion` | `harnesses\u002Fclaude-code.md` |\n| Codex CLI | `tool\u002FrequestUserInput` (or `ask_user_question`) | `harnesses\u002Fcodex.md` |\n| Cursor | `AskQuestion` | `harnesses\u002Fcursor.md` |\n| Gemini CLI | `ask_user` (or equivalent structured-question tool) | `harnesses\u002Fgemini-cli.md` |\n| OpenCode | OpenCode's built-in `question` tool, or AUQ MCP | `harnesses\u002Fopencode.md` |\n| Anything else | n\u002Fa; fall back to plain text | `harnesses\u002Fgeneric.md` |\n\nDo not load the harness file yet. Save the choice for Step 3.\n\n## Step 2: Profile management commands\n\nThe user can manage their saved profile with these subcommands:\n\n| Command | Action |\n|---|---|\n| `\u002Fagentic-humanizer show profile` | Print `~\u002F.agentic-humanizer\u002Fprofile.json` (or \"no profile saved\"). |\n| `\u002Fagentic-humanizer reset` | `rm ~\u002F.agentic-humanizer\u002Fprofile.json` and confirm. |\n| `\u002Fagentic-humanizer set dialect=uk grade=10 tone=casual length=±10` | Write a profile from inline params without running the interview. Any subset of keys is allowed; missing keys keep their current value or use the default if no profile exists. |\n| `\u002Fagentic-humanizer show voice` | Print `~\u002F.agentic-humanizer\u002Fvoice-fingerprint.json` if present, plus the sample path; otherwise say no voice is saved. |\n| `\u002Fagentic-humanizer reset voice` | Remove `~\u002F.agentic-humanizer\u002Fvoice.txt` and `~\u002F.agentic-humanizer\u002Fvoice-fingerprint.json`, then clear voice fields from the profile without deleting the rewrite preferences. |\n| `\u002Fagentic-humanizer set voice=\u002Fpath\u002Fto\u002Ffile.txt` | Save the profile's `voice_path`, clear `voice_skip`, and use that path on future runs. Do not extract the fingerprint until the next rewrite call. |\n\nWhen you see one of these subcommands, execute it and stop. Do not probe Slop\nor run the loop.\n\n## Step 3: Resolve rewrite preferences\n\n**Profile resolution order:**\n\n1. **Inline overrides** for all four rewrite parameters -> use them; do not\n   read the profile for dialect, grade, tone, or length.\n2. **`skip-interview` flag** -> use the saved profile if present, otherwise\n   fall back to defaults (American, High school, Professional, ±10%).\n3. **Saved profile at `~\u002F.agentic-humanizer\u002Fprofile.json`** -> use it\n   silently and skip the interview. Never re-prompt a user who already has a\n   profile unless they ask.\n4. **No profile, no overrides** -> run the harness interview as below.\n\nRead the saved profile with:\n\n```bash\nPROFILE=~\u002F.agentic-humanizer\u002Fprofile.json\n[ -f \"$PROFILE\" ] && cat \"$PROFILE\"\n```\n\nIf the file is missing, malformed JSON, or missing required rewrite keys,\ntreat it as absent and run the interview. Version 1 profiles load normally.\nMissing voice fields use their defaults in Step 4. If a parseable profile has\n`voice_skip` but is missing rewrite keys, ignore it for the rewrite interview\nbut still honor `voice_skip` in Step 4.\n\n**Run the interview** by reading the harness file selected in Step 1 and\nfollowing its interview protocol. The selected harness may batch the\nconditional voice question when it is eligible; Step 4 handles that answer.\nCapture these rewrite settings here:\n\n- `dialect` in {`us`, `uk`, `other:\u003Cstring>`}\n- `target_grade` in {4, 7, 10, 13, 17}\n- `tone` in {`casual`, `professional`, `academic`}\n- `length_policy` in {`±10`, `exp`, `trim`}\n\nAfter the rewrite answers, ask **one final yes\u002Fno question** (use the same\nharness question tool):\n\n> *\"Save these as your default so I don't ask again next time? You can reset anytime with `\u002Fagentic-humanizer reset`.\"*\n\nIf yes:\n\n```bash\nmkdir -p ~\u002F.agentic-humanizer\ncat > ~\u002F.agentic-humanizer\u002Fprofile.json \u003C\u003CEOF\n{\n  \"dialect\": \"\u003Cus|uk|other:...>\",\n  \"target_grade\": \u003C4|7|10|13|17>,\n  \"tone\": \"\u003Ccasual|professional|academic>\",\n  \"length_policy\": \"\u003C±10|exp|trim>\",\n  \"voice_path\": \"~\u002F.agentic-humanizer\u002Fvoice.txt\",\n  \"voice_skip\": false,\n  \"voice_fingerprint_hash\": null,\n  \"saved_at\": \"$(date -u +%Y-%m-%dT%H:%M:%SZ)\",\n  \"version\": 2\n}\nEOF\n```\n\nThen continue to Step 4. Inline overrides on a future call always win over a\nsaved profile for that one call only; they do not overwrite the file.\n\n## Step 4: Resolve voice sample\n\nRead `references\u002Fvoice-fingerprint.md` before running this step. Set\n`voice_active=false` by default.\n\n**Voice sample resolution order:**\n\n1. Inline `voice=off` or `voice-skip` -> skip voice matching for this call.\n2. Inline `voice=\u002Fpath\u002Fto\u002Ffile.txt` -> use that sample for this call only.\n   If the path does not exist or is not readable, warn the user once, then\n   fall through to rules 3 onward as if the inline override were absent.\n3. Saved `profile.json` has `voice_path` and that file exists -> use it.\n4. Default `~\u002F.agentic-humanizer\u002Fvoice.txt` exists -> use it.\n5. Saved `profile.json` has `\"voice_skip\": true` -> skip silently.\n6. Otherwise -> use the conditional Q5 answer already captured by the\n   selected harness, or ask it now if the harness did not batch it:\n\n   > *\"Mimic a writing sample of yours?\"*\n\n   Options: `Yes`, `No`, `Never ask again`.\n\nIf Q5 is `No`, skip voice matching for this call. If Q5 is `Never ask again`,\nwrite or update `~\u002F.agentic-humanizer\u002Fprofile.json` with `\"voice_skip\": true`\nand `\"version\": 2`, then skip voice matching.\n\nIf Q5 is `Yes`, say exactly:\n\n> *\"Paste 200+ words as your next message.\"*\n\nCapture the next user turn as the sample. Validate it before writing:\n\n- Under 50 words: reject it, say the sample is too short, leave\n  `voice_active=false`, and continue without changing the profile.\n- 50-199 words: warn that 200+ words works better, then ask whether to\n  continue with the shorter sample or paste a longer one.\n- 200+ words: write it to `~\u002F.agentic-humanizer\u002Fvoice.txt`.\n\nFor every accepted sample, use only the first 3000 words for fingerprint\nextraction. Hash the first 50 KB of the sample content:\n\n```bash\nVOICE_SAMPLE=\"\u003Cresolved-sample-path>\"\nhead -c 51200 \"$VOICE_SAMPLE\" | shasum -a 256\n```\n\nPrefix the stored value with `sha256:`.\n\n**Fingerprint cache:**\n\nThe cache lives at `~\u002F.agentic-humanizer\u002Fvoice-fingerprint.json`. Validate it\nagainst every rule in `references\u002Fvoice-fingerprint.md` Cache invalidation\n(file present, `version: 1`, `sample_hash` match, all required fields\npopulated). On a clean cache hit, use it silently and set\n`voice_active=true`. On any invalidation trigger, treat it as a cache miss and\nrun extraction.\n\nOn cache miss, run the extraction prompt from `references\u002Fvoice-fingerprint.md`\nagainst the host LLM. Render the JSON fingerprint and ask:\n\n> *\"Looks right?\"*\n\nOptions: `Yes`, `Edit`, `Re-extract`.\n\n- `Yes`: write the approved JSON to\n  `~\u002F.agentic-humanizer\u002Fvoice-fingerprint.json`, then rewrite\n  `~\u002F.agentic-humanizer\u002Fprofile.json` so `voice_path` points to the resolved\n  sample, `voice_skip` is `false`, `voice_fingerprint_hash` matches the sample\n  hash, and `version` is `2`. Use the same heredoc pattern as Step 3,\n  replacing only those four fields and preserving everything else:\n\n  ```bash\n  mkdir -p ~\u002F.agentic-humanizer\n  cat > ~\u002F.agentic-humanizer\u002Fprofile.json \u003C\u003CEOF\n  {\n    \"dialect\": \"\u003Ckeep current>\",\n    \"target_grade\": \u003Ckeep current>,\n    \"tone\": \"\u003Ckeep current>\",\n    \"length_policy\": \"\u003Ckeep current>\",\n    \"voice_path\": \"\u003Cresolved-sample-path>\",\n    \"voice_skip\": false,\n    \"voice_fingerprint_hash\": \"sha256:\u003Ccurrent-sample-hash>\",\n    \"saved_at\": \"$(date -u +%Y-%m-%dT%H:%M:%SZ)\",\n    \"version\": 2\n  }\n  EOF\n  ```\n\n  Then set `voice_active=true`.\n- `Edit`: let the user correct the JSON inline. Validate it against the\n  required-field list in `references\u002Fvoice-fingerprint.md` Required fields\n  before saving. If the edit drops a required field, refuse to save and offer\n  Re-extract.\n- `Re-extract`: ask what to change, then re-run extraction with that hint.\n\nOn harnesses without a structured-question tool (the `generic` fallback), the\napproval gate degrades to print-and-continue. See `harnesses\u002Fgeneric.md`\nFingerprint approval.\n\nInline `voice=\u002Fpath\u002Fto\u002Ffile.txt` does not overwrite the default sample or\nsaved profile path. It may refresh the shared fingerprint cache for that\nsample hash.\n\nIf extraction fails, if the sample is binary or unreadable, or if no host LLM\nis available for the extraction prompt, set `voice_active=false`, add the\nextraction-failure footer flag for Step 7, and continue without voice\nmatching.\n\n## Step 5: Probe Slop or Not Pro\n\nSet `slop_mode=\"llm-only\"` and `slop_backend=null` by default. Probing Slop\nselects the enhancement path only; it never decides whether the humanizer runs.\n\nRun a real `detect_text` fixture call to verify both presence AND Pro tier.\n`slop status` succeeds for non-Pro; only `detect_text` Pro-gates.\n\nUse this fixture for both paths:\n\n```text\nIn today's digital environment, organizations often adopt new software because it promises efficiency, but the real value depends on whether people can trust it. A useful tool should explain what it does, respect the user's context, and avoid turning simple decisions into complicated workflows. Clear documentation helps teams evaluate those tradeoffs before they commit time or money.\n```\n\n**MCP path (try first):**\n\nCall `mcp__SlopOrNot__detect_text` with the fixture and\n`include_readability: true`. If the tool call succeeds and the parsed response\nhas a numeric `score` or `ai_probability` field, set\n`slop_mode=\"slop-or-not-pro\"` and `slop_backend=\"mcp\"`. Treat scores from\n`score` and `ai_probability` as 0-1 decimals unless the value is already\ngreater than 1. For readability, read the Flesch-Kincaid grade from\n`readability.scores[]` where `kind` is `fleschKincaidGradeLevel`.\n\n**CLI path (try second):**\n\nRun via Bash with the app-bundle binary:\n\n```bash\ncat \u003C\u003C'EOF' | \"\u002FApplications\u002FSlop Or Not.app\u002FContents\u002FMacOS\u002Fslop\" text --json\nIn today's digital environment, organizations often adopt new software because it promises efficiency, but the real value depends on whether people can trust it. A useful tool should explain what it does, respect the user's context, and avoid turning simple decisions into complicated workflows. Clear documentation helps teams evaluate those tradeoffs before they commit time or money.\nEOF\n```\n\nIf exit code is 0 AND stdout parses as JSON with one of these numeric score\npaths, set `slop_mode=\"slop-or-not-pro\"` and `slop_backend=\"cli\"`:\n\n- `detection.result._0`\n- `detection.resultFewSentences._0`\n- `ai_probability`\n\nFor CLI readability, read the grade from `readability.scores[]` where `kind`\nis `fleschKincaidGradeLevel`. Treat the score as a 0-1 decimal unless the\nvalue is already greater than 1.\n\nIf neither path is live, keep `slop_mode=\"llm-only\"` and continue to Step 6.\nDo not skip the interview, voice matching, or rewrite loop.\n\n## Step 6: Run the loop\n\nRead `references\u002Fpatterns.md` (the canonical 29-pattern rewrite vocabulary).\nRead `references\u002Fsupplemental-ai-tells.md` (the supplemental AI-tell checks).\nRead `references\u002Fper-iteration-strategies.md` (the per-iteration cookbook).\nApply the loop as specified there.\n\nWhen `voice_active=true`, Iteration 2 and Iteration 5 consume the cached\nfingerprint using the contracts in `references\u002Fper-iteration-strategies.md`.\nNo other iteration uses the voice fingerprint.\n\nConstants (overridable via inline params when Slop or Not Pro is available):\n\n- `AI_THRESHOLD = 40` (override: `threshold=N`)\n- `MAX_ITER = 5` (override: `max=N`)\n- Grade tolerance: ±1\n\n### Slop or Not Pro setup\n\nIf `slop_mode=\"slop-or-not-pro\"`, run Text Cleanup on the source before\nIteration 0. Store:\n\n- `source_cleaned_text`\n- `source_cleanup_stats`\n\nUse `source_cleaned_text` as the Iteration 0 baseline. Score and analyze the\ncleaned source, not the raw source.\n\n### Core setup\n\nIf `slop_mode=\"llm-only\"`, use the original source as Iteration 0. Do not\ncall `detect_text`, `analyze_readability`, or `clean_text`.\n\n### Cleanup stats parsing\n\nFor MCP `clean_text`, decode `content[0].text` as JSON before reading:\n\n- `cleaned_text`\n- `removed_invisibles`\n- `punctuation_replacements`\n- `homoglyphs_replaced`\n- `british_substitutions`\n\nFor CLI cleanup, pipe the selected text into the app-bundle binary:\n\n```bash\ncat \u003C\u003C'TEXT_TO_CLEAN' | \"\u002FApplications\u002FSlop Or Not.app\u002FContents\u002FMacOS\u002Fslop\" cleanup --json\n\u003Cselected source or final text>\nTEXT_TO_CLEAN\n```\n\nThen read:\n\n- `cleanedText`\n- Sum `invisibleCounts[].count`\n- Sum `punctuationCounts[].count`\n- Sum `homoglyphCounts[].count`\n- Count `britishMappings.length`\n\nNormalize those into this internal shape:\n\n```json\n{\n  \"invisibles\": 0,\n  \"punctuation\": 0,\n  \"homoglyphs\": 0,\n  \"dialect_substitutions\": 0\n}\n```\n\n### Termination with Slop or Not Pro\n\nTermination: AI score \u003C= `AI_THRESHOLD` AND `|grade - target_grade| \u003C= 1`,\nor after `MAX_ITER`. On non-convergence, return the best iteration:\nlowest score that meets grade tolerance; if none meet grade tolerance,\nlowest score outright.\n\nAfter selecting the final iteration, run Text Cleanup on that selected text.\nStore `final_cleanup_stats`, use the cleaned text as the final output, then\nrun final `detect_text` and `analyze_readability` on the cleaned final text.\n\n### Completion in Core mode\n\nRun all five rewrite strategies once unless the source is empty or unusable.\nLog score and grade as `null` for every iteration. Select the final iteration\nby rewrite quality: preserve meaning, honor the requested grade\u002Ftone\u002Flength,\nand remove the most visible AI tells from `references\u002Fpatterns.md` and\n`references\u002Fsupplemental-ai-tells.md`.\n\n### Mid-flight Pro-gate\n\nIf any `detect_text`, `analyze_readability`, or `clean_text` call returns\n`isError: true` (MCP) or non-zero exit (CLI) on iteration >= 1, fall through\nto Core mode for the remaining iterations. See\n`references\u002Fper-iteration-strategies.md` Mid-flight Pro-gate fallback.\n\n## Step 7: Output\n\nRender this canonical block:\n\n```markdown\n## Humanized text\n\u003Cfinal text>\n\n## Loop history\n| Iter | AI score | Grade | Strategy |\n|---|---:|---:|---|\n| 0 | 92% | 11.4 | baseline |\n| 1 | 71% | 10.8 | pattern surgery |\n| 2 | 48% | 10.4 | dialect + tone |\n| 3 | 27% | 9.7 | grade gap |\nConverged at iter 3 (\u003C=40% AI, grade target 9-11).\n\n## Text Cleanup summary\n| Stage | Invisibles | Punctuation | Homoglyphs | Dialect substitutions |\n|---|---:|---:|---:|---:|\n| Source cleanup | 1 | 2 | 0 | 0 |\n| Final cleanup | 0 | 1 | 0 | 0 |\n\n## Highest-impact edits\n- \u003Cbullet 1>\n- \u003Cbullet 2>\n- \u003Cbullet 3 (optional)>\n```\n\nShow `Text Cleanup summary` only when real Slop or Not Text Cleanup ran. Do\nnot show backend names in the user-facing output.\n\nIf every cleanup count is zero, replace the table with:\n\n```markdown\n## Text Cleanup summary\nSlop or Not found no hidden characters, punctuation artifacts, homoglyphs, or dialect substitutions to clean.\n```\n\nWhen Slop or Not Pro does not converge, replace the convergence line with:\n\n```markdown\nDid not converge below threshold in MAX_ITER iterations. Best result shown above\n(iter N at S%). Re-run with `threshold=40 max=8` for a more aggressive loop,\nor `tone=casual` if professional tone is constraining the rewrite.\n```\n\nWhen Slop or Not Pro is unavailable, render score and grade as `n\u002Fa` and add\nthis note after the history table:\n\n```markdown\n> _Ran without Slop or Not Pro. Add Slop or Not Pro for on-device AI detector scoring, readability checks, Text Cleanup, and cleanup stats: \u003Chttps:\u002F\u002Fslopornot.ai\u002Fdownload>_\n```\n\nFor mid-flight Core-mode fallback iterations, render score and grade as `n\u002Fa`\nand add this note:\n\n```markdown\n> _Iterations N-M ran without on-device scoring. Local stats are unavailable for those iterations._\n```\n\nIf voice matching was active, add this footer note:\n\n```markdown\n> _Voice matched from \u003Cpath> (fingerprint cached \u003Cdate>)._\n```\n\nIf voice extraction failed in Step 4, add this footer note instead:\n\n```markdown\n> _Voice extraction failed; ran without voice match. Re-run with `\u002Fagentic-humanizer reset voice` to retry._\n```\n\n## Pointer files\n\n- `harnesses\u002Fclaude-code.md` · `harnesses\u002Fcodex.md` · `harnesses\u002Fcursor.md`\n  · `harnesses\u002Fgemini-cli.md` · `harnesses\u002Fopencode.md` · `harnesses\u002Fgeneric.md`\n- `references\u002Fpatterns.md` (the canonical 29 AI tells)\n- `references\u002Fsupplemental-ai-tells.md` (supplemental AI tells)\n- `references\u002Fper-iteration-strategies.md` (the loop cookbook)\n- `references\u002Fvoice-fingerprint.md` (voice sample extraction and loop\n  injection contracts)\n- `references\u002Fslop-cli-setup.md` · `references\u002Fslop-mcp-setup.md`\n  (install guides; surface to user when they ask for on-device AI detector\n  scoring setup)\n","# Agentic Humanizer\n\nA 5-pass AI humanizer. It always runs the core rewrite workflow; Slop or Not\nPro adds measured on-device AI detector checks.\n\n- **Without Slop or Not:** runs the full rewrite workflow.\n- **With Slop or Not Pro:** adds on-device AI detector scoring, readability, Text Cleanup, and\n  cleanup stats.\n\n**Slash command:** `\u002Fagentic-humanizer [paste text]`\n\n**Inline overrides:** `\u002Fagentic-humanizer dialect=us|uk grade=N tone=casual|professional|academic length=±10|exp|trim threshold=N max=N voice=\u002Fpath\u002Fto\u002Ffile.txt|off voice-skip skip-interview [paste]`\n\n## What this skill does\n\n1. Detects the host harness (Claude Code, Codex, Cursor, Gemini CLI,\n   OpenCode, or generic).\n2. Handles profile and voice management commands before any rewrite.\n3. Resolves rewrite preferences from inline overrides, saved profile, or the\n   harness interview.\n4. Optionally resolves a writing sample and extracts a cached stylometric\n   fingerprint. Voice matching does not require Slop or Not.\n5. Probes whether Slop or Not Pro is reachable via MCP or CLI.\n6. Runs the 5-pass humanization workflow:\n   - Core mode logs unscored iterations.\n   - Slop or Not Pro runs Text Cleanup, detection, and readability checks.\n7. Returns the final text, loop history, highest-impact edits, and, when Slop\n   cleanup ran, a Text Cleanup summary.\n\n## Step 1: Detect the harness\n\nIdentify which harness is running by checking for the harness's distinctive\nquestion tool. Use the first match:\n\n| Harness | Distinctive tool present? | Read this file |\n|---|---|---|\n| Claude Code | `AskUserQuestion` | `harnesses\u002Fclaude-code.md` |\n| Codex CLI | `tool\u002FrequestUserInput` (or `ask_user_question`) | `harnesses\u002Fcodex.md` |\n| Cursor | `AskQuestion` | `harnesses\u002Fcursor.md` |\n| Gemini CLI | `ask_user` (or equivalent structured-question tool) | `harnesses\u002Fgemini-cli.md` |\n| OpenCode | OpenCode's built-in `question` tool, or AUQ MCP | `harnesses\u002Fopencode.md` |\n| Anything else | n\u002Fa; fall back to plain text | `harnesses\u002Fgeneric.md` |\n\nDo not load the harness file yet. Save the choice for Step 3.\n\n## Step 2: Profile management commands\n\nThe user can manage their saved profile with these subcommands:\n\n| Command | Action |\n|---|---|\n| `\u002Fagentic-humanizer show profile` | Print `~\u002F.agentic-humanizer\u002Fprofile.json` (or \"no profile saved\"). |\n| `\u002Fagentic-humanizer reset` | `rm ~\u002F.agentic-humanizer\u002Fprofile.json` and confirm. |\n| `\u002Fagentic-humanizer set dialect=uk grade=10 tone=casual length=±10` | Write a profile from inline params without running the interview. Any subset of keys is allowed; missing keys keep their current value or use the default if no profile exists. |\n| `\u002Fagentic-humanizer show voice` | Print `~\u002F.agentic-humanizer\u002Fvoice-fingerprint.json` if present, plus the sample path; otherwise say no voice is saved. |\n| `\u002Fagentic-humanizer reset voice` | Remove `~\u002F.agentic-humanizer\u002Fvoice.txt` and `~\u002F.agentic-humanizer\u002Fvoice-fingerprint.json`, then clear voice fields from the profile without deleting the rewrite preferences. |\n| `\u002Fagentic-humanizer set voice=\u002Fpath\u002Fto\u002Ffile.txt` | Save the profile's `voice_path`, clear `voice_skip`, and use that path on future runs. Do not extract the fingerprint until the next rewrite call. |\n\nWhen you see one of these subcommands, execute it and stop. Do not probe Slop\nor run the loop.\n\n## Step 3: Resolve rewrite preferences\n\n**Profile resolution order:**\n\n1. **Inline overrides** for all four rewrite parameters -> use them; do not\n   read the profile for dialect, grade, tone, or length.\n2. **`skip-interview` flag** -> use the saved profile if present, otherwise\n   fall back to defaults (American, High school, Professional, ±10%).\n3. **Saved profile at `~\u002F.agentic-humanizer\u002Fprofile.json`** -> use it\n   silently and skip the interview. Never re-prompt a user who already has a\n   profile unless they ask.\n4. **No profile, no overrides** -> run the harness interview as below.\n\nRead the saved profile with:\n\n```bash\nPROFILE=~\u002F.agentic-humanizer\u002Fprofile.json\n[ -f \"$PROFILE\" ] && cat \"$PROFILE\"\n```\n\nIf the file is missing, malformed JSON, or missing required rewrite keys,\ntreat it as absent and run the interview. Version 1 profiles load normally.\nMissing voice fields use their defaults in Step 4. If a parseable profile has\n`voice_skip` but is missing rewrite keys, ignore it for the rewrite interview\nbut still honor `voice_skip` in Step 4.\n\n**Run the interview** by reading the harness file selected in Step 1 and\nfollowing its interview protocol. The selected harness may batch the\nconditional voice question when it is eligible; Step 4 handles that answer.\nCapture these rewrite settings here:\n\n- `dialect` in {`us`, `uk`, `other:\u003Cstring>`}\n- `target_grade` in {4, 7, 10, 13, 17}\n- `tone` in {`casual`, `professional`, `academic`}\n- `length_policy` in {`±10`, `exp`, `trim`}\n\nAfter the rewrite answers, ask **one final yes\u002Fno question** (use the same\nharness question tool):\n\n> *\"Save these as your default so I don't ask again next time? You can reset anytime with `\u002Fagentic-humanizer reset`.\"*\n\nIf yes:\n\n```bash\nmkdir -p ~\u002F.agentic-humanizer\ncat > ~\u002F.agentic-humanizer\u002Fprofile.json \u003C\u003CEOF\n{\n  \"dialect\": \"\u003Cus|uk|other:...>\",\n  \"target_grade\": \u003C4|7|10|13|17>,\n  \"tone\": \"\u003Ccasual|professional|academic>\",\n  \"length_policy\": \"\u003C±10|exp|trim>\",\n  \"voice_path\": \"~\u002F.agentic-humanizer\u002Fvoice.txt\",\n  \"voice_skip\": false,\n  \"voice_fingerprint_hash\": null,\n  \"saved_at\": \"$(date -u +%Y-%m-%dT%H:%M:%SZ)\",\n  \"version\": 2\n}\nEOF\n```\n\nThen continue to Step 4. Inline overrides on a future call always win over a\nsaved profile for that one call only; they do not overwrite the file.\n\n## Step 4: Resolve voice sample\n\nRead `references\u002Fvoice-fingerprint.md` before running this step. Set\n`voice_active=false` by default.\n\n**Voice sample resolution order:**\n\n1. Inline `voice=off` or `voice-skip` -> skip voice matching for this call.\n2. Inline `voice=\u002Fpath\u002Fto\u002Ffile.txt` -> use that sample for this call only.\n   If the path does not exist or is not readable, warn the user once, then\n   fall through to rules 3 onward as if the inline override were absent.\n3. Saved `profile.json` has `voice_path` and that file exists -> use it.\n4. Default `~\u002F.agentic-humanizer\u002Fvoice.txt` exists -> use it.\n5. Saved `profile.json` has `\"voice_skip\": true` -> skip silently.\n6. Otherwise -> use the conditional Q5 answer already captured by the\n   selected harness, or ask it now if the harness did not batch it:\n\n   > *\"Mimic a writing sample of yours?\"*\n\n   Options: `Yes`, `No`, `Never ask again`.\n\nIf Q5 is `No`, skip voice matching for this call. If Q5 is `Never ask again`,\nwrite or update `~\u002F.agentic-humanizer\u002Fprofile.json` with `\"voice_skip\": true`\nand `\"version\": 2`, then skip voice matching.\n\nIf Q5 is `Yes`, say exactly:\n\n> *\"Paste 200+ words as your next message.\"*\n\nCapture the next user turn as the sample. Validate it before writing:\n\n- Under 50 words: reject it, say the sample is too short, leave\n  `voice_active=false`, and continue without changing the profile.\n- 50-199 words: warn that 200+ words works better, then ask whether to\n  continue with the shorter sample or paste a longer one.\n- 200+ words: write it to `~\u002F.agentic-humanizer\u002Fvoice.txt`.\n\nFor every accepted sample, use only the first 3000 words for fingerprint\nextraction. Hash the first 50 KB of the sample content:\n\n```bash\nVOICE_SAMPLE=\"\u003Cresolved-sample-path>\"\nhead -c 51200 \"$VOICE_SAMPLE\" | shasum -a 256\n```\n\nPrefix the stored value with `sha256:`.\n\n**Fingerprint cache:**\n\nThe cache lives at `~\u002F.agentic-humanizer\u002Fvoice-fingerprint.json`. Validate it\nagainst every rule in `references\u002Fvoice-fingerprint.md` Cache invalidation\n(file present, `version: 1`, `sample_hash` match, all required fields\npopulated). On a clean cache hit, use it silently and set\n`voice_active=true`. On any invalidation trigger, treat it as a cache miss and\nrun extraction.\n\nOn cache miss, run the extraction prompt from `references\u002Fvoice-fingerprint.md`\nagainst the host LLM. Render the JSON fingerprint and ask:\n\n> *\"Looks right?\"*\n\nOptions: `Yes`, `Edit`, `Re-extract`.\n\n- `Yes`: write the approved JSON to\n  `~\u002F.agentic-humanizer\u002Fvoice-fingerprint.json`, then rewrite\n  `~\u002F.agentic-humanizer\u002Fprofile.json` so `voice_path` points to the resolved\n  sample, `voice_skip` is `false`, `voice_fingerprint_hash` matches the sample\n  hash, and `version` is `2`. Use the same heredoc pattern as Step 3,\n  replacing only those four fields and preserving everything else:\n\n  ```bash\n  mkdir -p ~\u002F.agentic-humanizer\n  cat > ~\u002F.agentic-humanizer\u002Fprofile.json \u003C\u003CEOF\n  {\n    \"dialect\": \"\u003Ckeep current>\",\n    \"target_grade\": \u003Ckeep current>,\n    \"tone\": \"\u003Ckeep current>\",\n    \"length_policy\": \"\u003Ckeep current>\",\n    \"voice_path\": \"\u003Cresolved-sample-path>\",\n    \"voice_skip\": false,\n    \"voice_fingerprint_hash\": \"sha256:\u003Ccurrent-sample-hash>\",\n    \"saved_at\": \"$(date -u +%Y-%m-%dT%H:%M:%SZ)\",\n    \"version\": 2\n  }\n  EOF\n  ```\n\n  Then set `voice_active=true`.\n- `Edit`: let the user correct the JSON inline. Validate it against the\n  required-field list in `references\u002Fvoice-fingerprint.md` Required fields\n  before saving. If the edit drops a required field, refuse to save and offer\n  Re-extract.\n- `Re-extract`: ask what to change, then re-run extraction with that hint.\n\nOn harnesses without a structured-question tool (the `generic` fallback), the\napproval gate degrades to print-and-continue. See `harnesses\u002Fgeneric.md`\nFingerprint approval.\n\nInline `voice=\u002Fpath\u002Fto\u002Ffile.txt` does not overwrite the default sample or\nsaved profile path. It may refresh the shared fingerprint cache for that\nsample hash.\n\nIf extraction fails, if the sample is binary or unreadable, or if no host LLM\nis available for the extraction prompt, set `voice_active=false`, add the\nextraction-failure footer flag for Step 7, and continue without voice\nmatching.\n\n## Step 5: Probe Slop or Not Pro\n\nSet `slop_mode=\"llm-only\"` and `slop_backend=null` by default. Probing Slop\nselects the enhancement path only; it never decides whether the humanizer runs.\n\nRun a real `detect_text` fixture call to verify both presence AND Pro tier.\n`slop status` succeeds for non-Pro; only `detect_text` Pro-gates.\n\nUse this fixture for both paths:\n\n```text\nIn today's digital environment, organizations often adopt new software because it promises efficiency, but the real value depends on whether people can trust it. A useful tool should explain what it does, respect the user's context, and avoid turning simple decisions into complicated workflows. Clear documentation helps teams evaluate those tradeoffs before they commit time or money.\n```\n\n**MCP path (try first):**\n\nCall `mcp__SlopOrNot__detect_text` with the fixture and\n`include_readability: true`. If the tool call succeeds and the parsed response\nhas a numeric `score` or `ai_probability` field, set\n`slop_mode=\"slop-or-not-pro\"` and `slop_backend=\"mcp\"`. Treat scores from\n`score` and `ai_probability` as 0-1 decimals unless the value is already\ngreater than 1. For readability, read the Flesch-Kincaid grade from\n`readability.scores[]` where `kind` is `fleschKincaidGradeLevel`.\n\n**CLI path (try second):**\n\nRun via Bash with the app-bundle binary:\n\n```bash\ncat \u003C\u003C'EOF' | \"\u002FApplications\u002FSlop Or Not.app\u002FContents\u002FMacOS\u002Fslop\" text --json\nIn today's digital environment, organizations often adopt new software because it promises efficiency, but the real value depends on whether people can trust it. A useful tool should explain what it does, respect the user's context, and avoid turning simple decisions into complicated workflows. Clear documentation helps teams evaluate those tradeoffs before they commit time or money.\nEOF\n```\n\nIf exit code is 0 AND stdout parses as JSON with one of these numeric score\npaths, set `slop_mode=\"slop-or-not-pro\"` and `slop_backend=\"cli\"`:\n\n- `detection.result._0`\n- `detection.resultFewSentences._0`\n- `ai_probability`\n\nFor CLI readability, read the grade from `readability.scores[]` where `kind`\nis `fleschKincaidGradeLevel`. Treat the score as a 0-1 decimal unless the\nvalue is already greater than 1.\n\nIf neither path is live, keep `slop_mode=\"llm-only\"` and continue to Step 6.\nDo not skip the interview, voice matching, or rewrite loop.\n\n## Step 6: Run the loop\n\nRead `references\u002Fpatterns.md` (the canonical 29-pattern rewrite vocabulary).\nRead `references\u002Fsupplemental-ai-tells.md` (the supplemental AI-tell checks).\nRead `references\u002Fper-iteration-strategies.md` (the per-iteration cookbook).\nApply the loop as specified there.\n\nWhen `voice_active=true`, Iteration 2 and Iteration 5 consume the cached\nfingerprint using the contracts in `references\u002Fper-iteration-strategies.md`.\nNo other iteration uses the voice fingerprint.\n\nConstants (overridable via inline params when Slop or Not Pro is available):\n\n- `AI_THRESHOLD = 40` (override: `threshold=N`)\n- `MAX_ITER = 5` (override: `max=N`)\n- Grade tolerance: ±1\n\n### Slop or Not Pro setup\n\nIf `slop_mode=\"slop-or-not-pro\"`, run Text Cleanup on the source before\nIteration 0. Store:\n\n- `source_cleaned_text`\n- `source_cleanup_stats`\n\nUse `source_cleaned_text` as the Iteration 0 baseline. Score and analyze the\ncleaned source, not the raw source.\n\n### Core setup\n\nIf `slop_mode=\"llm-only\"`, use the original source as Iteration 0. Do not\ncall `detect_text`, `analyze_readability`, or `clean_text`.\n\n### Cleanup stats parsing\n\nFor MCP `clean_text`, decode `content[0].text` as JSON before reading:\n\n- `cleaned_text`\n- `removed_invisibles`\n- `punctuation_replacements`\n- `homoglyphs_replaced`\n- `british_substitutions`\n\nFor CLI cleanup, pipe the selected text into the app-bundle binary:\n\n```bash\ncat \u003C\u003C'TEXT_TO_CLEAN' | \"\u002FApplications\u002FSlop Or Not.app\u002FContents\u002FMacOS\u002Fslop\" cleanup --json\n\u003Cselected source or final text>\nTEXT_TO_CLEAN\n```\n\nThen read:\n\n- `cleanedText`\n- Sum `invisibleCounts[].count`\n- Sum `punctuationCounts[].count`\n- Sum `homoglyphCounts[].count`\n- Count `britishMappings.length`\n\nNormalize those into this internal shape:\n\n```json\n{\n  \"invisibles\": 0,\n  \"punctuation\": 0,\n  \"homoglyphs\": 0,\n  \"dialect_substitutions\": 0\n}\n```\n\n### Termination with Slop or Not Pro\n\nTermination: AI score \u003C= `AI_THRESHOLD` AND `|grade - target_grade| \u003C= 1`,\nor after `MAX_ITER`. On non-convergence, return the best iteration:\nlowest score that meets grade tolerance; if none meet grade tolerance,\nlowest score outright.\n\nAfter selecting the final iteration, run Text Cleanup on that selected text.\nStore `final_cleanup_stats`, use the cleaned text as the final output, then\nrun final `detect_text` and `analyze_readability` on the cleaned final text.\n\n### Completion in Core mode\n\nRun all five rewrite strategies once unless the source is empty or unusable.\nLog score and grade as `null` for every iteration. Select the final iteration\nby rewrite quality: preserve meaning, honor the requested grade\u002Ftone\u002Flength,\nand remove the most visible AI tells from `references\u002Fpatterns.md` and\n`references\u002Fsupplemental-ai-tells.md`.\n\n### Mid-flight Pro-gate\n\nIf any `detect_text`, `analyze_readability`, or `clean_text` call returns\n`isError: true` (MCP) or non-zero exit (CLI) on iteration >= 1, fall through\nto Core mode for the remaining iterations. See\n`references\u002Fper-iteration-strategies.md` Mid-flight Pro-gate fallback.\n\n## Step 7: Output\n\nRender this canonical block:\n\n```markdown\n## Humanized text\n\u003Cfinal text>\n\n## Loop history\n| Iter | AI score | Grade | Strategy |\n|---|---:|---:|---|\n| 0 | 92% | 11.4 | baseline |\n| 1 | 71% | 10.8 | pattern surgery |\n| 2 | 48% | 10.4 | dialect + tone |\n| 3 | 27% | 9.7 | grade gap |\nConverged at iter 3 (\u003C=40% AI, grade target 9-11).\n\n## Text Cleanup summary\n| Stage | Invisibles | Punctuation | Homoglyphs | Dialect substitutions |\n|---|---:|---:|---:|---:|\n| Source cleanup | 1 | 2 | 0 | 0 |\n| Final cleanup | 0 | 1 | 0 | 0 |\n\n## Highest-impact edits\n- \u003Cbullet 1>\n- \u003Cbullet 2>\n- \u003Cbullet 3 (optional)>\n```\n\nShow `Text Cleanup summary` only when real Slop or Not Text Cleanup ran. Do\nnot show backend names in the user-facing output.\n\nIf every cleanup count is zero, replace the table with:\n\n```markdown\n## Text Cleanup summary\nSlop or Not found no hidden characters, punctuation artifacts, homoglyphs, or dialect substitutions to clean.\n```\n\nWhen Slop or Not Pro does not converge, replace the convergence line with:\n\n```markdown\nDid not converge below threshold in MAX_ITER iterations. Best result shown above\n(iter N at S%). Re-run with `threshold=40 max=8` for a more aggressive loop,\nor `tone=casual` if professional tone is constraining the rewrite.\n```\n\nWhen Slop or Not Pro is unavailable, render score and grade as `n\u002Fa` and add\nthis note after the history table:\n\n```markdown\n> _Ran without Slop or Not Pro. Add Slop or Not Pro for on-device AI detector scoring, readability checks, Text Cleanup, and cleanup stats: \u003Chttps:\u002F\u002Fslopornot.ai\u002Fdownload>_\n```\n\nFor mid-flight Core-mode fallback iterations, render score and grade as `n\u002Fa`\nand add this note:\n\n```markdown\n> _Iterations N-M ran without on-device scoring. Local stats are unavailable for those iterations._\n```\n\nIf voice matching was active, add this footer note:\n\n```markdown\n> _Voice matched from \u003Cpath> (fingerprint cached \u003Cdate>)._\n```\n\nIf voice extraction failed in Step 4, add this footer note instead:\n\n```markdown\n> _Voice extraction failed; ran without voice match. Re-run with `\u002Fagentic-humanizer reset voice` to retry._\n```\n\n## Pointer files\n\n- `harnesses\u002Fclaude-code.md` · `harnesses\u002Fcodex.md` · `harnesses\u002Fcursor.md`\n  · `harnesses\u002Fgemini-cli.md` · `harnesses\u002Fopencode.md` · `harnesses\u002Fgeneric.md`\n- `references\u002Fpatterns.md` (the canonical 29 AI tells)\n- `references\u002Fsupplemental-ai-tells.md` (supplemental AI tells)\n- `references\u002Fper-iteration-strategies.md` (the loop cookbook)\n- `references\u002Fvoice-fingerprint.md` (voice sample extraction and loop\n  injection contracts)\n- `references\u002Fslop-cli-setup.md` · `references\u002Fslop-mcp-setup.md`\n  (install guides; surface to user when they ask for on-device AI detector\n  scoring setup)\n",{"name":5,"license":15,"metadata":44,"description":7,"allowed-tools":49},{"source":45,"version":46,"compatibility":47,"upstream_author":48},"https:\u002F\u002Fgithub.com\u002Fnumen-tech\u002Fslopornot","0.1.0","claude-code codex cursor gemini-cli opencode","Numen Technologies",[50,33,51],"Read","AskUserQuestion","main","a298c929b6cbd662e1fce54302ce520d5ceea1a5",".agents\u002Fskills\u002Fagentic-humanizer","https:\u002F\u002Fgithub.com\u002FPrekzursil\u002Fagent-skills-toolchain","https:\u002F\u002Fgithub.com\u002FPrekzursil","2026-11-02 14:30:57",{"source":8,"skillName":5,"commands":59,"prompt":69,"zipAvailable":70},[60,63,66],{"tool":61,"command":62},"npx","npx skills add Prekzursil\u002Fagent-skills-toolchain --skill agentic-humanizer",{"tool":64,"command":65},"bunx","bunx skills add Prekzursil\u002Fagent-skills-toolchain --skill agentic-humanizer",{"tool":67,"command":68},"pnpm","pnpm dlx skills add Prekzursil\u002Fagent-skills-toolchain --skill agentic-humanizer","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002FPrekzursil\u002Fagent-skills-toolchain\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fagentic-humanizer\u002FSKILL.md",true,[72,78,82,86,90,94,98,102,107,111,115,119,123,127,131],{"path":73,"resourceType":74,"resourceTypeDesc":75,"sizeBytes":76,"sourceHtmlUrl":77},"examples\u002Fsample-ai-text.md","REFERENCE","参考文档",1695,"https:\u002F\u002Fgithub.com\u002FPrekzursil\u002Fagent-skills-toolchain\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fagentic-humanizer\u002Fexamples\u002Fsample-ai-text.md",{"path":79,"resourceType":74,"resourceTypeDesc":75,"sizeBytes":80,"sourceHtmlUrl":81},"harnesses\u002Fclaude-code.md",3467,"https:\u002F\u002Fgithub.com\u002FPrekzursil\u002Fagent-skills-toolchain\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fagentic-humanizer\u002Fharnesses\u002Fclaude-code.md",{"path":83,"resourceType":74,"resourceTypeDesc":75,"sizeBytes":84,"sourceHtmlUrl":85},"harnesses\u002Fcodex.md",3266,"https:\u002F\u002Fgithub.com\u002FPrekzursil\u002Fagent-skills-toolchain\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fagentic-humanizer\u002Fharnesses\u002Fcodex.md",{"path":87,"resourceType":74,"resourceTypeDesc":75,"sizeBytes":88,"sourceHtmlUrl":89},"harnesses\u002Fcursor.md",2732,"https:\u002F\u002Fgithub.com\u002FPrekzursil\u002Fagent-skills-toolchain\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fagentic-humanizer\u002Fharnesses\u002Fcursor.md",{"path":91,"resourceType":74,"resourceTypeDesc":75,"sizeBytes":92,"sourceHtmlUrl":93},"harnesses\u002Fgemini-cli.md",3368,"https:\u002F\u002Fgithub.com\u002FPrekzursil\u002Fagent-skills-toolchain\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fagentic-humanizer\u002Fharnesses\u002Fgemini-cli.md",{"path":95,"resourceType":74,"resourceTypeDesc":75,"sizeBytes":96,"sourceHtmlUrl":97},"harnesses\u002Fgeneric.md",4552,"https:\u002F\u002Fgithub.com\u002FPrekzursil\u002Fagent-skills-toolchain\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fagentic-humanizer\u002Fharnesses\u002Fgeneric.md",{"path":99,"resourceType":74,"resourceTypeDesc":75,"sizeBytes":100,"sourceHtmlUrl":101},"harnesses\u002Fopencode.md",2354,"https:\u002F\u002Fgithub.com\u002FPrekzursil\u002Fagent-skills-toolchain\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fagentic-humanizer\u002Fharnesses\u002Fopencode.md",{"path":103,"resourceType":103,"resourceTypeDesc":104,"sizeBytes":105,"sourceHtmlUrl":106},"LICENSE","许可证",1096,"https:\u002F\u002Fgithub.com\u002FPrekzursil\u002Fagent-skills-toolchain\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fagentic-humanizer\u002FLICENSE",{"path":108,"resourceType":74,"resourceTypeDesc":75,"sizeBytes":109,"sourceHtmlUrl":110},"README.md",3854,"https:\u002F\u002Fgithub.com\u002FPrekzursil\u002Fagent-skills-toolchain\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fagentic-humanizer\u002FREADME.md",{"path":112,"resourceType":74,"resourceTypeDesc":75,"sizeBytes":113,"sourceHtmlUrl":114},"references\u002Fpatterns.md",16471,"https:\u002F\u002Fgithub.com\u002FPrekzursil\u002Fagent-skills-toolchain\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fagentic-humanizer\u002Freferences\u002Fpatterns.md",{"path":116,"resourceType":74,"resourceTypeDesc":75,"sizeBytes":117,"sourceHtmlUrl":118},"references\u002Fper-iteration-strategies.md",8871,"https:\u002F\u002Fgithub.com\u002FPrekzursil\u002Fagent-skills-toolchain\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fagentic-humanizer\u002Freferences\u002Fper-iteration-strategies.md",{"path":120,"resourceType":74,"resourceTypeDesc":75,"sizeBytes":121,"sourceHtmlUrl":122},"references\u002Fslop-cli-setup.md",4675,"https:\u002F\u002Fgithub.com\u002FPrekzursil\u002Fagent-skills-toolchain\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fagentic-humanizer\u002Freferences\u002Fslop-cli-setup.md",{"path":124,"resourceType":74,"resourceTypeDesc":75,"sizeBytes":125,"sourceHtmlUrl":126},"references\u002Fslop-mcp-setup.md",3925,"https:\u002F\u002Fgithub.com\u002FPrekzursil\u002Fagent-skills-toolchain\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fagentic-humanizer\u002Freferences\u002Fslop-mcp-setup.md",{"path":128,"resourceType":74,"resourceTypeDesc":75,"sizeBytes":129,"sourceHtmlUrl":130},"references\u002Fsupplemental-ai-tells.md",5713,"https:\u002F\u002Fgithub.com\u002FPrekzursil\u002Fagent-skills-toolchain\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fagentic-humanizer\u002Freferences\u002Fsupplemental-ai-tells.md",{"path":132,"resourceType":74,"resourceTypeDesc":75,"sizeBytes":133,"sourceHtmlUrl":134},"references\u002Fvoice-fingerprint.md",11799,"https:\u002F\u002Fgithub.com\u002FPrekzursil\u002Fagent-skills-toolchain\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fagentic-humanizer\u002Freferences\u002Fvoice-fingerprint.md",[136,157,187,213,227,243],{"skillNo":137,"name":138,"nameZh":6,"description":139,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":140,"categories":141,"keywords":142,"publishedAt":39},"01M6DF7D7478R55P46REYH4QAC","clarify-requirements","Resolve genuine pre-execution ambiguity by scanning repo context, generating 1-6 grounded options, and asking 1-3 focused questions via AskUserQuestion. NOT for mid-task use (injection risk); NOT when the goal is already unambiguous; use to disambiguate vague prompts before any file edits.","https:\u002F\u002Fgithub.com\u002FPrekzursil\u002Fagent-skills-toolchain\u002Fblob\u002Fmain\u002Ftools\u002Fworkspace-hooks\u002Fskills\u002Fclarify-requirements\u002FSKILL.md",[],[143,144,145,146,147,148,149,150,151,28,152,153,154,155,156],"clarify requirements","clarify","requirements","risk","options","task","prompts","goal","scanning","context","repo","injection","execution","file",{"skillNo":158,"name":159,"nameZh":6,"description":160,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":161,"categories":162,"keywords":168,"publishedAt":39},"01M6DF79CA4BHJS66J8EZDBPWJ","openmm-md","Run FREE, open-source, Windows-native GPU molecular dynamics via the openmm-md MCP (OpenMM + CUDA on the local NVIDIA GPU). Use for protein \u002F protein-ligand MD when you want a free stack or are on Windows without a Schrodinger license. Covers the full workflow (prepare, solvate, minimize, equilibrate, production, analyze, mmgbsa) AND an honest decision guide vs Schrodinger Desmond, including how to run Desmond legitimately on Linux or a cloud GPU with a real license. This is a deliberately LESSER free alternative and does NOT replace the schrodinger MCP tools. Do NOT use it to pick a free tool when a validated FEP+, WaterMap, IFD-MD, or Prime MM-GBSA result is actually required.","https:\u002F\u002Fgithub.com\u002FPrekzursil\u002Fagent-skills-toolchain\u002Fblob\u002Fmain\u002Ftools\u002Fmcp\u002Fopenmm-md-mcp\u002Fskill\u002Fopenmm-md\u002FSKILL.md",[163],{"categoryNo":164,"categoryName":165,"taxonomyType":166,"taxonomyTypeDesc":167},"01JBSEEDCAT000000000000023","Skill与智能体开发","SCENARIO","使用场景",[169,170,171,172,173,174,175,176,177,178,179,180,181,182,28,183,184,185,25,186],"openmm md","how","decision","pick","linux","analyze","tool","stack","open","NVIDIA","gpu","license","workflow","windows","free","molecular dynamics","local","MCP",{"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":199,"publishedAt":39},"01M6DF76C1MG85VEWP8VZCBNMN","visual-review","Take screenshots of web pages and UI using Playwright for visual review and iteration","https:\u002F\u002Fgithub.com\u002FPrekzursil\u002Fagent-skills-toolchain\u002Fblob\u002Fmain\u002Ftools\u002Feditor\u002Fmetaswarm\u002Fskills\u002Fvisual-review\u002FSKILL.md",[193,196],{"categoryNo":194,"categoryName":195,"taxonomyType":166,"taxonomyTypeDesc":167},"01JBSEEDCAT000000000000003","演示文稿",{"categoryNo":197,"categoryName":198,"taxonomyType":166,"taxonomyTypeDesc":167},"01JBSEEDCAT000000000000008","测试与质量",[200,201,202,203,204,205,206,207,22,208,170,209,210,211,212],"review","visual","visual review","pages","web","false","iteration","take","slides","ui","screenshot","playwright","screenshots",{"skillNo":214,"name":215,"nameZh":6,"description":216,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":217,"categories":218,"keywords":219,"publishedAt":39},"01M6DF73AQVCBZKEN0YXEX9FXP","status","Diagnostic status report — shows metaswarm installation state, project setup, and potential issues","https:\u002F\u002Fgithub.com\u002FPrekzursil\u002Fagent-skills-toolchain\u002Fblob\u002Fmain\u002Ftools\u002Feditor\u002Fmetaswarm\u002Fskills\u002Fstatus\u002FSKILL.md",[],[215,220,221,222,223,224,225,226],"setup","report","project","installation","project setup","issues","state",{"skillNo":228,"name":229,"nameZh":6,"description":230,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":231,"categories":232,"keywords":234,"publishedAt":39},"01M6DF6X6C2XB0P6GX76P7TTYV","start","Use when starting work on any task, when the user mentions metaswarm, or when the user wants to begin tracked development work","https:\u002F\u002Fgithub.com\u002FPrekzursil\u002Fagent-skills-toolchain\u002Fblob\u002Fmain\u002Ftools\u002Feditor\u002Fmetaswarm\u002Fskills\u002Fstart\u002FSKILL.md",[233],{"categoryNo":164,"categoryName":165,"taxonomyType":166,"taxonomyTypeDesc":167},[229,235,148,236,237,238,28,239,240,241,242],"start issue","issue","ready","work on issue","user","work","work on","development",{"skillNo":244,"name":220,"nameZh":6,"description":245,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":246,"categories":247,"keywords":248,"publishedAt":39},"01M6DF6QMJ9AJKFKHHKRT005PQ","Interactive project setup — detects your project, configures metaswarm, writes project-local files","https:\u002F\u002Fgithub.com\u002FPrekzursil\u002Fagent-skills-toolchain\u002Fblob\u002Fmain\u002Ftools\u002Feditor\u002Fmetaswarm\u002Fskills\u002Fsetup\u002FSKILL.md",[],[220,222,185,249,224,250],"files","interactive"]