[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6GWBKCTFD4TKHZST2XRJA7T":3,"skill-same:01M6GWBKCTFD4TKHZST2XRJA7T":55},{"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":29,"linkOnly":30,"markdownContent":31,"markdownBody":32,"frontMatter":33,"refName":34,"commitSha":35,"skillDirectory":36,"forksCount":37,"repositoryHtmlUrl":38,"repositoryHomepageUrl":6,"ownerHtmlUrl":39,"ownerBlogUrl":6,"ownerDescription":6,"updatedAt":40,"install":41,"resources":54},"01M6GWBKCTFD4TKHZST2XRJA7T","folder-audit",null,"Walk a directory tree and audit whether each folder's children belong at the\nright level of abstraction. Produces a structured JSON audit plus a nested\nMarkdown annotated tree.","peteromallet\u002FArnold","peteromallet","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F4647941?v=4","01M6GW770S4CG20MPXS5PZWNF8","POM","01M6GW774TYWCS83WGXD72E15V",98,"Apache-2.0","https:\u002F\u002Fgithub.com\u002Fpeteromallet\u002FArnold\u002Fblob\u002Fmain\u002Fdocs\u002Farchive\u002Fm5\u002Fpipelines\u002Ffolder_audit\u002Fskills\u002Ffolder-audit\u002FSKILL.md",[],[19,20,21,22,23,24,25,26,27,28],"audit","folder","folder audit","directory","markdown","json","nested","structured","tree","at","2026-11-10 10:12:30",false,"---\nname: folder-audit\ndescription: |\n  Walk a directory tree and audit whether each folder's children belong at the\n  right level of abstraction. Produces a structured JSON audit plus a nested\n  Markdown annotated tree.\n---\n\n# folder-audit\n\n## What it does\n\nThe `folder-audit` pipeline inspects a target directory, builds a tree of\nfolders up to a configurable depth, and asks an LLM auditor to classify every\nimmediate child as `fit`, `misplaced`, `duplicate`, `naming_mismatch`, etc.\n\nIt emits two artifacts in the plan directory:\n\n- `audit.json` — machine-readable audit with summary and per-folder entries\n- `audit.md` — human-readable nested annotated tree\n\n## Running it\n\nThe pipeline is built around the native Arnold `AgentStep`. The `audit` stage\ninjects a worker callable that dispatches to Codex by default. A local profile\nis provided at `profiles\u002Fstandard.toml`.\n\n### Default mode (Codex worker)\n\n```bash\npython -m arnold run folder-audit \\\n  --inputs target_dir=\u002Fpath\u002Fto\u002Frepo,max_depth=2,chunk_size=5,max_workers=3 \\\n  --plan-dir \u002Ftmp\u002Ffolder-audit-plan\n```\n\nThe default profile resolves the `audit` stage to `codex`. If you want to use a\ndifferent model, override the profile:\n\n```bash\npython -m arnold run folder-audit \\\n  --inputs target_dir=\u002Fpath\u002Fto\u002Frepo,max_depth=2,chunk_size=5,max_workers=3 \\\n  --profile @folder-audit:standard \\\n  --plan-dir \u002Ftmp\u002Ffolder-audit-plan\n```\n\n### Using pre-generated subagent results\n\nFor faster iteration or when you want to supply audits from another agent\nharness, pass an `agent_results` JSON file:\n\n```bash\npython -m arnold run folder-audit \\\n  --inputs target_dir=\u002Fpath\u002Fto\u002Frepo,agent_results=\u002Ftmp\u002Fagent_results.json \\\n  --plan-dir \u002Ftmp\u002Ffolder-audit-plan\n```\n\nThe `agent_results` file must be a JSON object with a top-level `folders`\narray. The pipeline will compute a summary and reconcile the entries with the\nreal filesystem tree when rendering `audit.md`.\n\n## Inputs\n\n| Key | Default | Description |\n|---|---|---|\n| `target_dir` | required | Directory to audit |\n| `max_depth` | `8` | How many levels deep to walk |\n| `chunk_size` | `5` | Folders per Codex call |\n| `max_workers` | `3` | Parallel Codex calls per level |\n| `agent_results` | none | Path to external audit JSON |\n\n## Taxonomy\n\n- `fit` — belongs here and at this level\n- `too_granular` — should live one level deeper\n- `wrong_level_of_abstraction` — belongs at a higher or lower level\n- `mixed_concerns` — contains unrelated things that should split\n- `misplaced` — belongs under a sibling folder\n- `orphaned` — doesn't obviously belong anywhere\n- `naming_mismatch` — name doesn't match actual contents\n- `overpacked` — too many concerns crammed into one folder\n- `underpacked` — folder adds no value, should collapse upward\n- `duplicate` — redundant with another item\n- `unclear` — cannot determine\n\n## Worker injection\n\n`AuditStep` subclasses Arnold's `AgentStep`. The worker is supplied at pipeline\nconstruction time:\n\n```python\nfrom arnold.pipelines.folder_audit import build_pipeline\n\npipeline = build_pipeline(worker=my_worker)\n```\n\nIf no worker is supplied, `build_pipeline()` uses a default worker that calls\n`codex exec`. In tests, pass a fake worker to avoid network calls.\n\n## Testing\n\n```bash\npython -m pytest tests\u002Fpipelines\u002Ftest_folder_audit.py -v\n```\n","# folder-audit\n\n## What it does\n\nThe `folder-audit` pipeline inspects a target directory, builds a tree of\nfolders up to a configurable depth, and asks an LLM auditor to classify every\nimmediate child as `fit`, `misplaced`, `duplicate`, `naming_mismatch`, etc.\n\nIt emits two artifacts in the plan directory:\n\n- `audit.json` — machine-readable audit with summary and per-folder entries\n- `audit.md` — human-readable nested annotated tree\n\n## Running it\n\nThe pipeline is built around the native Arnold `AgentStep`. The `audit` stage\ninjects a worker callable that dispatches to Codex by default. A local profile\nis provided at `profiles\u002Fstandard.toml`.\n\n### Default mode (Codex worker)\n\n```bash\npython -m arnold run folder-audit \\\n  --inputs target_dir=\u002Fpath\u002Fto\u002Frepo,max_depth=2,chunk_size=5,max_workers=3 \\\n  --plan-dir \u002Ftmp\u002Ffolder-audit-plan\n```\n\nThe default profile resolves the `audit` stage to `codex`. If you want to use a\ndifferent model, override the profile:\n\n```bash\npython -m arnold run folder-audit \\\n  --inputs target_dir=\u002Fpath\u002Fto\u002Frepo,max_depth=2,chunk_size=5,max_workers=3 \\\n  --profile @folder-audit:standard \\\n  --plan-dir \u002Ftmp\u002Ffolder-audit-plan\n```\n\n### Using pre-generated subagent results\n\nFor faster iteration or when you want to supply audits from another agent\nharness, pass an `agent_results` JSON file:\n\n```bash\npython -m arnold run folder-audit \\\n  --inputs target_dir=\u002Fpath\u002Fto\u002Frepo,agent_results=\u002Ftmp\u002Fagent_results.json \\\n  --plan-dir \u002Ftmp\u002Ffolder-audit-plan\n```\n\nThe `agent_results` file must be a JSON object with a top-level `folders`\narray. The pipeline will compute a summary and reconcile the entries with the\nreal filesystem tree when rendering `audit.md`.\n\n## Inputs\n\n| Key | Default | Description |\n|---|---|---|\n| `target_dir` | required | Directory to audit |\n| `max_depth` | `8` | How many levels deep to walk |\n| `chunk_size` | `5` | Folders per Codex call |\n| `max_workers` | `3` | Parallel Codex calls per level |\n| `agent_results` | none | Path to external audit JSON |\n\n## Taxonomy\n\n- `fit` — belongs here and at this level\n- `too_granular` — should live one level deeper\n- `wrong_level_of_abstraction` — belongs at a higher or lower level\n- `mixed_concerns` — contains unrelated things that should split\n- `misplaced` — belongs under a sibling folder\n- `orphaned` — doesn't obviously belong anywhere\n- `naming_mismatch` — name doesn't match actual contents\n- `overpacked` — too many concerns crammed into one folder\n- `underpacked` — folder adds no value, should collapse upward\n- `duplicate` — redundant with another item\n- `unclear` — cannot determine\n\n## Worker injection\n\n`AuditStep` subclasses Arnold's `AgentStep`. The worker is supplied at pipeline\nconstruction time:\n\n```python\nfrom arnold.pipelines.folder_audit import build_pipeline\n\npipeline = build_pipeline(worker=my_worker)\n```\n\nIf no worker is supplied, `build_pipeline()` uses a default worker that calls\n`codex exec`. In tests, pass a fake worker to avoid network calls.\n\n## Testing\n\n```bash\npython -m pytest tests\u002Fpipelines\u002Ftest_folder_audit.py -v\n```\n",{"name":5,"description":7},"main","4815916805531030f062fc1c10bcc9f9cd10a40f","docs\u002Farchive\u002Fm5\u002Fpipelines\u002Ffolder_audit\u002Fskills\u002Ffolder-audit",7,"https:\u002F\u002Fgithub.com\u002Fpeteromallet\u002FArnold","https:\u002F\u002Fgithub.com\u002Fpeteromallet","2026-10-27 21:10:27",{"source":8,"skillName":5,"commands":42,"prompt":52,"zipAvailable":53},[43,46,49],{"tool":44,"command":45},"npx","npx skills add peteromallet\u002FArnold --skill folder-audit",{"tool":47,"command":48},"bunx","bunx skills add peteromallet\u002FArnold --skill folder-audit",{"tool":50,"command":51},"pnpm","pnpm dlx skills add peteromallet\u002FArnold --skill folder-audit","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fpeteromallet\u002FArnold\u002Fblob\u002Fmain\u002Fdocs\u002Farchive\u002Fm5\u002Fpipelines\u002Ffolder_audit\u002Fskills\u002Ffolder-audit\u002FSKILL.md",true,[],[56,65,71,77,83,100],{"skillNo":57,"name":58,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":59,"categories":60,"keywords":61,"publishedAt":29},"01M6GWC4WCKXPTH05M6D84CPC6","live_supervisor","https:\u002F\u002Fgithub.com\u002Fpeteromallet\u002FArnold\u002Fblob\u002Fmain\u002Fexamples\u002Fworkflow_authoring\u002Fshipped\u002Flive_supervisor\u002FSKILL.md",[],[62,63,64],"live supervisor","live","supervisor",{"skillNo":66,"name":67,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":68,"categories":69,"keywords":70,"publishedAt":29},"01M6GWC25QW59XZMZF5A8QB1R2","jokes","https:\u002F\u002Fgithub.com\u002Fpeteromallet\u002FArnold\u002Fblob\u002Fmain\u002Fexamples\u002Fworkflow_authoring\u002Fshipped\u002Fjokes\u002FSKILL.md",[],[67],{"skillNo":72,"name":73,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":74,"categories":75,"keywords":76,"publishedAt":29},"01M6GWBZ01NNK2NMGC4GSNK5EN","creative","https:\u002F\u002Fgithub.com\u002Fpeteromallet\u002FArnold\u002Fblob\u002Fmain\u002Fexamples\u002Fworkflow_authoring\u002Fshipped\u002Fcreative\u002FSKILL.md",[],[73],{"skillNo":78,"name":79,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":80,"categories":81,"keywords":82,"publishedAt":29},"01M6GWBX6DPACH6GV2MD07Z1Q9","hello","https:\u002F\u002Fgithub.com\u002Fpeteromallet\u002FArnold\u002Fblob\u002Fmain\u002Fexamples\u002Fworkflow_authoring\u002Fhello\u002FSKILL.md",[],[79],{"skillNo":84,"name":85,"nameZh":6,"description":86,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":87,"categories":88,"keywords":89,"publishedAt":29},"01M6GWBRWZSK3C7459P1H2X2HZ","vibecomfy-executor","Arnold pipeline that classifies a user query, optionally researches via Hivemind\u002FBanodoco, optionally edits a ComfyUI workflow, and always emits a final reply.","https:\u002F\u002Fgithub.com\u002Fpeteromallet\u002FArnold\u002Fblob\u002Fmain\u002Fdocs\u002Farchive\u002Fm5\u002Fpipelines\u002Fvibecomfy_executor\u002FSKILL.md",[],[90,91,92,93,94,95,96,97,98,99],"vibecomfy executor","executor","comfyui","via","query","reply","hivemind","user","pipeline","workflow",{"skillNo":101,"name":102,"nameZh":6,"description":103,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":104,"categories":105,"keywords":116,"publishedAt":29},"01M6GWBPM62R2V1X5P81WWX1C3","simplify-writing","Fan out DeepSeek Pro critics and a Kimi editor to iteratively simplify a piece of writing.","https:\u002F\u002Fgithub.com\u002Fpeteromallet\u002FArnold\u002Fblob\u002Fmain\u002Fdocs\u002Farchive\u002Fm5\u002Fpipelines\u002Fsimplify_writing\u002Fskills\u002Fsimplify-writing\u002FSKILL.md",[106,111],{"categoryNo":107,"categoryName":108,"taxonomyType":109,"taxonomyTypeDesc":110},"01JBSEEDCAT000000000000018","写作与文案","SCENARIO","使用场景",{"categoryNo":112,"categoryName":113,"taxonomyType":114,"taxonomyTypeDesc":115},"01JBSEEDCAT000000000000036","内容创作者","PROFESSION","适用职业",[117,118,119,120,121,122,123],"simplify","simplify writing","writing","pro","deepseek","kimi","editor"]