[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6NQ45EEDXWN4H9S1V42Z0EV":3,"skill-same:01M6NQ45EEDXWN4H9S1V42Z0EV":208},{"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":28,"publishedAt":48,"linkOnly":49,"markdownContent":50,"markdownBody":51,"frontMatter":52,"refName":56,"commitSha":57,"skillDirectory":58,"forksCount":14,"repositoryHtmlUrl":59,"repositoryHomepageUrl":6,"ownerHtmlUrl":60,"ownerBlogUrl":61,"ownerDescription":6,"updatedAt":62,"install":63,"resources":76},"01M6NQ45EEDXWN4H9S1V42Z0EV","agentteams",null,"Orchestrate plan execution — analyze a plan tree, score it against expectations, resolve a dependency DAG, slice work into token-budgeted groups, and drive a human-in-the-loop iteration loop with canonical handoff blocks. Use to orchestrate agent teams, run plan analysis, render scoreboards, build punch lists (P0\u002FP1\u002FP2), slice plans by token budget, drive iteration loops, render handoff blocks (Landed \u002F Tested \u002F Acceptance \u002F Next \u002F To Resume), and resume after \u002Fclear.","carlosmarte\u002Fai-agent-artifacts","carlosmarte","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F3478576?v=4","01M6NPRTEXZG86XJXMGQ05A24X","Carlos Marte","01M6NPRTK4A6A4Q8CMWMH1ZY7W",0,"MIT","https:\u002F\u002Fgithub.com\u002Fcarlosmarte\u002Fai-agent-artifacts\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Fagentteams\u002FSKILL.md",[18,23],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000023","Skill与智能体开发","SCENARIO","使用场景",{"categoryNo":24,"categoryName":25,"taxonomyType":26,"taxonomyTypeDesc":27},"01JBSEEDCAT000000000000040","财务","PROFESSION","适用职业",[5,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47],"dependency","render","loops","iteration","token","human","next","agent teams","run plan","dag","work","analyze","plan","loop","analysis","Budget","orchestrate","acceptance","run","2026-11-10 10:12:30",false,"---\nname: agentteams\ndescription: Orchestrate plan execution — analyze a plan tree, score it against expectations, resolve a dependency DAG, slice work into token-budgeted groups, and drive a human-in-the-loop iteration loop with canonical handoff blocks. Use to orchestrate agent teams, run plan analysis, render scoreboards, build punch lists (P0\u002FP1\u002FP2), slice plans by token budget, drive iteration loops, render handoff blocks (Landed \u002F Tested \u002F Acceptance \u002F Next \u002F To Resume), and resume after \u002Fclear.\ntier: org\ndependencies:\n  - agent-skills-toolkit\n---\n\n# AgentTeams — Orchestrator Skill\n\n## Purpose\n\nDrive a plan from \"tree of markdown\" to \"shipped feature\" without losing state across context resets. The skill is a thin contract over six executable subcommands.\n\n## CLI surface\n\n```\nagentteams analyze \u003Cplan-dir>                    # five-doc bundle: README, fit-matrix, analysis, gaps, schema-deltas, state-flow\nagentteams dag     \u003Cplan-dir>                    # topo-sorted JSON DAG + cycle report + P0\u002FP1\u002FP2 priorities\nagentteams slice   \u003Cplan-dir> --budget \u003CP>       # write .ai-harness\u002Fgroups\u002FNN-\u003Cslug>.md per group\nagentteams run     \u003Cplan-dir> [--group N]        # execute one group; emit handoff block; exit 7 on HITL hard pause\nagentteams report  \u003Cplan-dir>                    # print the most-recently-emitted handoff block\nagentteams resume  \u003Cplan-dir>                    # print the exact prompt to paste after \u002Fclear\n```\n\n## Runtime selection — mjs vs py\n\nThe skill ships two parity-tested implementations:\n\n- **`scripts\u002Fmjs\u002F`** — Node ESM (primary; broader ecosystem, faster cold start).\n- **`scripts\u002Fpy\u002F`** — Python twin (uv-managed; parity-tested byte-equal JSON).\n\nA single entry point — **`scripts\u002Fbin\u002Fagentteams`** — picks between them at invocation time:\n\n| `AGENTTEAMS_RUNTIME` | Behavior |\n| --- | --- |\n| unset \u002F `auto` (default) | Prefer `mjs` if `node` is on `$PATH`; otherwise fall back to `py` via `uv`. |\n| `mjs` | Force the Node runtime. Exits 127 if `node` is missing. |\n| `py` | Force the Python runtime. Exits 127 if `uv` is missing. |\n\nThe Makefile, the install alias (below), and the Claude Code agent wrapper all invoke the shim — none of them hardcodes `node` or `uv`, so swapping runtimes is one env-var flip.\n\n## Install (`agentteams` on $PATH)\n\nThe runtime-selecting shim is at `scripts\u002Fbin\u002Fagentteams` and is not auto-installed globally. Add a shell alias keyed off an env var so the path stays portable across machines:\n\n```sh\n# In ~\u002F.zshrc (or ~\u002F.bashrc):\nexport AGENTTEAMS_HOME=\"${HOME}\u002F\u003Cpath-to-this-checkout>\"   # adjust per-machine\nalias agentteams='\"$AGENTTEAMS_HOME\u002F.agents\u002Fskills\u002Fagentteams\u002Fscripts\u002Fbin\u002Fagentteams\"'\n\n# Optional: pin to one runtime\n# export AGENTTEAMS_RUNTIME=mjs   # or: py\n```\n\nThen `agentteams analyze \u003Cplan-dir>` resolves from any working directory and auto-picks mjs\u002Fpy based on what's installed.\n\nAlternative install paths (all relative to the repo root):\n\n| Method | Command | Notes |\n| --- | --- | --- |\n| Shell alias (above) | edit `~\u002F.zshrc` | Lightest touch; survives code edits without reinstall. |\n| `npm link` (mjs only) | `cd .agents\u002Fskills\u002Fagentteams\u002Fscripts\u002Fmjs && npm link` | Symlinks `agentteams-mjs` into the npm global bin, bypassing the shim. Reverse with `npm unlink -g agentteams-mjs`. |\n| `uv tool install` (py only) | `uv tool install -e .agents\u002Fskills\u002Fagentteams\u002Fscripts\u002Fpy` | Installs the py CLI to `~\u002F.local\u002Fbin`, bypassing the shim. Reverse with `uv tool uninstall agentteams`. |\n| No install | `.agents\u002Fskills\u002Fagentteams\u002Fscripts\u002Fbin\u002Fagentteams …` | Always works from the repo root; root `Makefile` wraps the common verbs. |\n\n## HITL modes\n\n- `hard` (default, **recommended**) — emit handoff, exit 7. Forces a `\u002Fclear` between groups.\n- `soft` — emit handoff, then prompt for stdin confirmation before continuing.\n- `phase-only` — exit 7 only when the current group ends a phase boundary.\n\n## Budget profiles\n\n| Profile        | Max tokens | Features\u002Fgroup |\n| -------------- | ---------: | -------------: |\n| conservative   |   ~120,000 |            1–3 |\n| comfortable    |   ~180,000 |            2–4 |\n| aggressive     |   ~250,000 |            3–5 |\n\nDefault: **conservative** (the safest mode against context exhaustion).\n\n## Exit-code matrix\n\n| Code | Meaning |\n| ---: | --- |\n| 0   | success |\n| 1   | generic failure |\n| 2   | misuse (bad flag \u002F arg) |\n| 3   | plan-not-found |\n| 4   | parse-error |\n| 5   | cycle-detected |\n| 6   | budget-exceeded |\n| 7   | hitl-pause (intentional, clean) |\n| 8   | gate-failed (testing or acceptance gate) |\n| 100 | not-implemented (stub) |\n\n## Canonical handoff block\n\n```\nGROUP N COMPLETE — \u003Cfeature title summary>\n\nLanded: - \u003Cfeature-id>: \u003Cdescription> — tests \u003Cgreen|red>, \u003CN> files\n  • \u003Cpath\u002Fto\u002Ffile> (new|extended: \u003Cwhat>)\n\nTests: \u003Cpass\u002Ftotal> green. \u003Cbullets describing test coverage>\n\nAcceptance: \u003CPASS|FAIL|no gate in this group (gate lands in Group M)>\n\nNext: GROUP \u003CN+1> — \u003Cnext group title>\n\nTo resume: 1) Run \u002Fclear to drop this session's context. 2) Paste this prompt:\n\n       implement group \u003CN+1> of \u003Cplan-path> per \u003Csession-plan-path>\n```\n\n## State persistence\n\n`state.json` lives at `\u003Cplan-dir>\u002F.ai-harness\u002Fstate.json`:\n\n```json\n{\n  \"schemaVersion\": 1,\n  \"currentGroup\": 2,\n  \"lastCompletedGroup\": 1,\n  \"hitlMode\": \"hard\",\n  \"budgetProfile\": \"conservative\",\n  \"testingMode\": \"tests+gate\",\n  \"phaseAcceptanceGates\": { \"phase-1\": { \"status\": \"PASS\", \"timestamp\": \"...\" } }\n}\n```\n\nWrites are atomic (tmp + rename). `resume` reads this file to pick the next group.\n\n## When to use\n\n- The user names a plan tree under `features\u002F`, `stories\u002F`, `tasks\u002F` and asks to \"orchestrate\", \"drive iteration\", \"slice by token budget\", or \"emit handoff\".\n- The user wants a multi-document plan scoreboard (fit matrix + analysis + punch list).\n- The user wants to resume after `\u002Fclear` without losing state.\n\n## Skip when\n\n- The plan does not yet exist — use the upstream `plan-feature-story-task` skill to author it first.\n- The work is API-package scaffolding rather than execution — use `implement-polyglot-project-plan` instead.\n\n## Project-local overrides\n\nModel id, HITL defaults, and budget profile override live in a sibling `agentteams-config` skill at the consuming project's `.agents\u002Fskills\u002Fagentteams-config\u002F`. This skill is read-only of those settings; it never authors them.\n","# AgentTeams — Orchestrator Skill\n\n## Purpose\n\nDrive a plan from \"tree of markdown\" to \"shipped feature\" without losing state across context resets. The skill is a thin contract over six executable subcommands.\n\n## CLI surface\n\n```\nagentteams analyze \u003Cplan-dir>                    # five-doc bundle: README, fit-matrix, analysis, gaps, schema-deltas, state-flow\nagentteams dag     \u003Cplan-dir>                    # topo-sorted JSON DAG + cycle report + P0\u002FP1\u002FP2 priorities\nagentteams slice   \u003Cplan-dir> --budget \u003CP>       # write .ai-harness\u002Fgroups\u002FNN-\u003Cslug>.md per group\nagentteams run     \u003Cplan-dir> [--group N]        # execute one group; emit handoff block; exit 7 on HITL hard pause\nagentteams report  \u003Cplan-dir>                    # print the most-recently-emitted handoff block\nagentteams resume  \u003Cplan-dir>                    # print the exact prompt to paste after \u002Fclear\n```\n\n## Runtime selection — mjs vs py\n\nThe skill ships two parity-tested implementations:\n\n- **`scripts\u002Fmjs\u002F`** — Node ESM (primary; broader ecosystem, faster cold start).\n- **`scripts\u002Fpy\u002F`** — Python twin (uv-managed; parity-tested byte-equal JSON).\n\nA single entry point — **`scripts\u002Fbin\u002Fagentteams`** — picks between them at invocation time:\n\n| `AGENTTEAMS_RUNTIME` | Behavior |\n| --- | --- |\n| unset \u002F `auto` (default) | Prefer `mjs` if `node` is on `$PATH`; otherwise fall back to `py` via `uv`. |\n| `mjs` | Force the Node runtime. Exits 127 if `node` is missing. |\n| `py` | Force the Python runtime. Exits 127 if `uv` is missing. |\n\nThe Makefile, the install alias (below), and the Claude Code agent wrapper all invoke the shim — none of them hardcodes `node` or `uv`, so swapping runtimes is one env-var flip.\n\n## Install (`agentteams` on $PATH)\n\nThe runtime-selecting shim is at `scripts\u002Fbin\u002Fagentteams` and is not auto-installed globally. Add a shell alias keyed off an env var so the path stays portable across machines:\n\n```sh\n# In ~\u002F.zshrc (or ~\u002F.bashrc):\nexport AGENTTEAMS_HOME=\"${HOME}\u002F\u003Cpath-to-this-checkout>\"   # adjust per-machine\nalias agentteams='\"$AGENTTEAMS_HOME\u002F.agents\u002Fskills\u002Fagentteams\u002Fscripts\u002Fbin\u002Fagentteams\"'\n\n# Optional: pin to one runtime\n# export AGENTTEAMS_RUNTIME=mjs   # or: py\n```\n\nThen `agentteams analyze \u003Cplan-dir>` resolves from any working directory and auto-picks mjs\u002Fpy based on what's installed.\n\nAlternative install paths (all relative to the repo root):\n\n| Method | Command | Notes |\n| --- | --- | --- |\n| Shell alias (above) | edit `~\u002F.zshrc` | Lightest touch; survives code edits without reinstall. |\n| `npm link` (mjs only) | `cd .agents\u002Fskills\u002Fagentteams\u002Fscripts\u002Fmjs && npm link` | Symlinks `agentteams-mjs` into the npm global bin, bypassing the shim. Reverse with `npm unlink -g agentteams-mjs`. |\n| `uv tool install` (py only) | `uv tool install -e .agents\u002Fskills\u002Fagentteams\u002Fscripts\u002Fpy` | Installs the py CLI to `~\u002F.local\u002Fbin`, bypassing the shim. Reverse with `uv tool uninstall agentteams`. |\n| No install | `.agents\u002Fskills\u002Fagentteams\u002Fscripts\u002Fbin\u002Fagentteams …` | Always works from the repo root; root `Makefile` wraps the common verbs. |\n\n## HITL modes\n\n- `hard` (default, **recommended**) — emit handoff, exit 7. Forces a `\u002Fclear` between groups.\n- `soft` — emit handoff, then prompt for stdin confirmation before continuing.\n- `phase-only` — exit 7 only when the current group ends a phase boundary.\n\n## Budget profiles\n\n| Profile        | Max tokens | Features\u002Fgroup |\n| -------------- | ---------: | -------------: |\n| conservative   |   ~120,000 |            1–3 |\n| comfortable    |   ~180,000 |            2–4 |\n| aggressive     |   ~250,000 |            3–5 |\n\nDefault: **conservative** (the safest mode against context exhaustion).\n\n## Exit-code matrix\n\n| Code | Meaning |\n| ---: | --- |\n| 0   | success |\n| 1   | generic failure |\n| 2   | misuse (bad flag \u002F arg) |\n| 3   | plan-not-found |\n| 4   | parse-error |\n| 5   | cycle-detected |\n| 6   | budget-exceeded |\n| 7   | hitl-pause (intentional, clean) |\n| 8   | gate-failed (testing or acceptance gate) |\n| 100 | not-implemented (stub) |\n\n## Canonical handoff block\n\n```\nGROUP N COMPLETE — \u003Cfeature title summary>\n\nLanded: - \u003Cfeature-id>: \u003Cdescription> — tests \u003Cgreen|red>, \u003CN> files\n  • \u003Cpath\u002Fto\u002Ffile> (new|extended: \u003Cwhat>)\n\nTests: \u003Cpass\u002Ftotal> green. \u003Cbullets describing test coverage>\n\nAcceptance: \u003CPASS|FAIL|no gate in this group (gate lands in Group M)>\n\nNext: GROUP \u003CN+1> — \u003Cnext group title>\n\nTo resume: 1) Run \u002Fclear to drop this session's context. 2) Paste this prompt:\n\n       implement group \u003CN+1> of \u003Cplan-path> per \u003Csession-plan-path>\n```\n\n## State persistence\n\n`state.json` lives at `\u003Cplan-dir>\u002F.ai-harness\u002Fstate.json`:\n\n```json\n{\n  \"schemaVersion\": 1,\n  \"currentGroup\": 2,\n  \"lastCompletedGroup\": 1,\n  \"hitlMode\": \"hard\",\n  \"budgetProfile\": \"conservative\",\n  \"testingMode\": \"tests+gate\",\n  \"phaseAcceptanceGates\": { \"phase-1\": { \"status\": \"PASS\", \"timestamp\": \"...\" } }\n}\n```\n\nWrites are atomic (tmp + rename). `resume` reads this file to pick the next group.\n\n## When to use\n\n- The user names a plan tree under `features\u002F`, `stories\u002F`, `tasks\u002F` and asks to \"orchestrate\", \"drive iteration\", \"slice by token budget\", or \"emit handoff\".\n- The user wants a multi-document plan scoreboard (fit matrix + analysis + punch list).\n- The user wants to resume after `\u002Fclear` without losing state.\n\n## Skip when\n\n- The plan does not yet exist — use the upstream `plan-feature-story-task` skill to author it first.\n- The work is API-package scaffolding rather than execution — use `implement-polyglot-project-plan` instead.\n\n## Project-local overrides\n\nModel id, HITL defaults, and budget profile override live in a sibling `agentteams-config` skill at the consuming project's `.agents\u002Fskills\u002Fagentteams-config\u002F`. This skill is read-only of those settings; it never authors them.\n",{"name":5,"tier":53,"description":7,"dependencies":54},"org",[55],"agent-skills-toolkit","main","b78f8878258c912b66be9d4b56b316515e44c728",".claude\u002Fskills\u002Fagentteams","https:\u002F\u002Fgithub.com\u002Fcarlosmarte\u002Fai-agent-artifacts","https:\u002F\u002Fgithub.com\u002Fcarlosmarte","http:\u002F\u002Fcarlosmarte.me\u002F","2026-08-25 00:53:46",{"source":8,"skillName":5,"commands":64,"prompt":74,"zipAvailable":75},[65,68,71],{"tool":66,"command":67},"npx","npx skills add carlosmarte\u002Fai-agent-artifacts --skill agentteams",{"tool":69,"command":70},"bunx","bunx skills add carlosmarte\u002Fai-agent-artifacts --skill agentteams",{"tool":72,"command":73},"pnpm","pnpm dlx skills add carlosmarte\u002Fai-agent-artifacts --skill agentteams","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fcarlosmarte\u002Fai-agent-artifacts\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Fagentteams\u002FSKILL.md",true,[77,82,87,93,97,101,105,109,113,117,121,125,129,133,137,141,145,149,153,157,161,165,169,173,177,181,185,189,192,196,200,204],{"path":78,"resourceType":79,"resourceTypeDesc":80,"sizeBytes":14,"sourceHtmlUrl":81},"assets\u002F.gitkeep","ASSET","资产文件","https:\u002F\u002Fgithub.com\u002Fcarlosmarte\u002Fai-agent-artifacts\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Fagentteams\u002Fassets\u002F.gitkeep",{"path":83,"resourceType":84,"resourceTypeDesc":85,"sizeBytes":14,"sourceHtmlUrl":86},"references\u002F.gitkeep","REFERENCE","参考文档","https:\u002F\u002Fgithub.com\u002Fcarlosmarte\u002Fai-agent-artifacts\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Fagentteams\u002Freferences\u002F.gitkeep",{"path":88,"resourceType":89,"resourceTypeDesc":90,"sizeBytes":91,"sourceHtmlUrl":92},"scripts\u002Facceptance-gate.mjs","SCRIPT","脚本",4708,"https:\u002F\u002Fgithub.com\u002Fcarlosmarte\u002Fai-agent-artifacts\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Fagentteams\u002Fscripts\u002Facceptance-gate.mjs",{"path":94,"resourceType":89,"resourceTypeDesc":90,"sizeBytes":95,"sourceHtmlUrl":96},"scripts\u002Fbin\u002Fagentteams",1076,"https:\u002F\u002Fgithub.com\u002Fcarlosmarte\u002Fai-agent-artifacts\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Fagentteams\u002Fscripts\u002Fbin\u002Fagentteams",{"path":98,"resourceType":89,"resourceTypeDesc":90,"sizeBytes":99,"sourceHtmlUrl":100},"scripts\u002Fmjs\u002Fbin\u002Fagentteams",180,"https:\u002F\u002Fgithub.com\u002Fcarlosmarte\u002Fai-agent-artifacts\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Fagentteams\u002Fscripts\u002Fmjs\u002Fbin\u002Fagentteams",{"path":102,"resourceType":89,"resourceTypeDesc":90,"sizeBytes":103,"sourceHtmlUrl":104},"scripts\u002Fmjs\u002FMakefile",515,"https:\u002F\u002Fgithub.com\u002Fcarlosmarte\u002Fai-agent-artifacts\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Fagentteams\u002Fscripts\u002Fmjs\u002FMakefile",{"path":106,"resourceType":89,"resourceTypeDesc":90,"sizeBytes":107,"sourceHtmlUrl":108},"scripts\u002Fmjs\u002Fpackage.json",543,"https:\u002F\u002Fgithub.com\u002Fcarlosmarte\u002Fai-agent-artifacts\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Fagentteams\u002Fscripts\u002Fmjs\u002Fpackage.json",{"path":110,"resourceType":89,"resourceTypeDesc":90,"sizeBytes":111,"sourceHtmlUrl":112},"scripts\u002Fmjs\u002Fsrc\u002Fanalyzer.mjs",6593,"https:\u002F\u002Fgithub.com\u002Fcarlosmarte\u002Fai-agent-artifacts\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Fagentteams\u002Fscripts\u002Fmjs\u002Fsrc\u002Fanalyzer.mjs",{"path":114,"resourceType":89,"resourceTypeDesc":90,"sizeBytes":115,"sourceHtmlUrl":116},"scripts\u002Fmjs\u002Fsrc\u002Fcli.mjs",10482,"https:\u002F\u002Fgithub.com\u002Fcarlosmarte\u002Fai-agent-artifacts\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Fagentteams\u002Fscripts\u002Fmjs\u002Fsrc\u002Fcli.mjs",{"path":118,"resourceType":89,"resourceTypeDesc":90,"sizeBytes":119,"sourceHtmlUrl":120},"scripts\u002Fmjs\u002Fsrc\u002Fdag.mjs",6566,"https:\u002F\u002Fgithub.com\u002Fcarlosmarte\u002Fai-agent-artifacts\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Fagentteams\u002Fscripts\u002Fmjs\u002Fsrc\u002Fdag.mjs",{"path":122,"resourceType":89,"resourceTypeDesc":90,"sizeBytes":123,"sourceHtmlUrl":124},"scripts\u002Fmjs\u002Fsrc\u002Fexit-codes.mjs",753,"https:\u002F\u002Fgithub.com\u002Fcarlosmarte\u002Fai-agent-artifacts\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Fagentteams\u002Fscripts\u002Fmjs\u002Fsrc\u002Fexit-codes.mjs",{"path":126,"resourceType":89,"resourceTypeDesc":90,"sizeBytes":127,"sourceHtmlUrl":128},"scripts\u002Fmjs\u002Fsrc\u002Findex.mjs",692,"https:\u002F\u002Fgithub.com\u002Fcarlosmarte\u002Fai-agent-artifacts\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Fagentteams\u002Fscripts\u002Fmjs\u002Fsrc\u002Findex.mjs",{"path":130,"resourceType":89,"resourceTypeDesc":90,"sizeBytes":131,"sourceHtmlUrl":132},"scripts\u002Fmjs\u002Fsrc\u002Fparser.mjs",6233,"https:\u002F\u002Fgithub.com\u002Fcarlosmarte\u002Fai-agent-artifacts\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Fagentteams\u002Fscripts\u002Fmjs\u002Fsrc\u002Fparser.mjs",{"path":134,"resourceType":89,"resourceTypeDesc":90,"sizeBytes":135,"sourceHtmlUrl":136},"scripts\u002Fmjs\u002Fsrc\u002Frunner.mjs",3892,"https:\u002F\u002Fgithub.com\u002Fcarlosmarte\u002Fai-agent-artifacts\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Fagentteams\u002Fscripts\u002Fmjs\u002Fsrc\u002Frunner.mjs",{"path":138,"resourceType":89,"resourceTypeDesc":90,"sizeBytes":139,"sourceHtmlUrl":140},"scripts\u002Fmjs\u002Fsrc\u002Fslicer.mjs",4122,"https:\u002F\u002Fgithub.com\u002Fcarlosmarte\u002Fai-agent-artifacts\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Fagentteams\u002Fscripts\u002Fmjs\u002Fsrc\u002Fslicer.mjs",{"path":142,"resourceType":89,"resourceTypeDesc":90,"sizeBytes":143,"sourceHtmlUrl":144},"scripts\u002Fmjs\u002Ftest\u002Fsmoke.test.mjs",3100,"https:\u002F\u002Fgithub.com\u002Fcarlosmarte\u002Fai-agent-artifacts\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Fagentteams\u002Fscripts\u002Fmjs\u002Ftest\u002Fsmoke.test.mjs",{"path":146,"resourceType":89,"resourceTypeDesc":90,"sizeBytes":147,"sourceHtmlUrl":148},"scripts\u002Fparity.mjs",2942,"https:\u002F\u002Fgithub.com\u002Fcarlosmarte\u002Fai-agent-artifacts\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Fagentteams\u002Fscripts\u002Fparity.mjs",{"path":150,"resourceType":89,"resourceTypeDesc":90,"sizeBytes":151,"sourceHtmlUrl":152},"scripts\u002Fpy\u002FMakefile",827,"https:\u002F\u002Fgithub.com\u002Fcarlosmarte\u002Fai-agent-artifacts\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Fagentteams\u002Fscripts\u002Fpy\u002FMakefile",{"path":154,"resourceType":89,"resourceTypeDesc":90,"sizeBytes":155,"sourceHtmlUrl":156},"scripts\u002Fpy\u002Fpyproject.toml",452,"https:\u002F\u002Fgithub.com\u002Fcarlosmarte\u002Fai-agent-artifacts\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Fagentteams\u002Fscripts\u002Fpy\u002Fpyproject.toml",{"path":158,"resourceType":89,"resourceTypeDesc":90,"sizeBytes":159,"sourceHtmlUrl":160},"scripts\u002Fpy\u002Fsrc\u002Fagentteams\u002F__init__.py",865,"https:\u002F\u002Fgithub.com\u002Fcarlosmarte\u002Fai-agent-artifacts\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Fagentteams\u002Fscripts\u002Fpy\u002Fsrc\u002Fagentteams\u002F__init__.py",{"path":162,"resourceType":89,"resourceTypeDesc":90,"sizeBytes":163,"sourceHtmlUrl":164},"scripts\u002Fpy\u002Fsrc\u002Fagentteams\u002Fanalyzer.py",7159,"https:\u002F\u002Fgithub.com\u002Fcarlosmarte\u002Fai-agent-artifacts\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Fagentteams\u002Fscripts\u002Fpy\u002Fsrc\u002Fagentteams\u002Fanalyzer.py",{"path":166,"resourceType":89,"resourceTypeDesc":90,"sizeBytes":167,"sourceHtmlUrl":168},"scripts\u002Fpy\u002Fsrc\u002Fagentteams\u002Fcli.py",11087,"https:\u002F\u002Fgithub.com\u002Fcarlosmarte\u002Fai-agent-artifacts\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Fagentteams\u002Fscripts\u002Fpy\u002Fsrc\u002Fagentteams\u002Fcli.py",{"path":170,"resourceType":89,"resourceTypeDesc":90,"sizeBytes":171,"sourceHtmlUrl":172},"scripts\u002Fpy\u002Fsrc\u002Fagentteams\u002Fdag.py",6897,"https:\u002F\u002Fgithub.com\u002Fcarlosmarte\u002Fai-agent-artifacts\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Fagentteams\u002Fscripts\u002Fpy\u002Fsrc\u002Fagentteams\u002Fdag.py",{"path":174,"resourceType":89,"resourceTypeDesc":90,"sizeBytes":175,"sourceHtmlUrl":176},"scripts\u002Fpy\u002Fsrc\u002Fagentteams\u002Fexit_codes.py",762,"https:\u002F\u002Fgithub.com\u002Fcarlosmarte\u002Fai-agent-artifacts\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Fagentteams\u002Fscripts\u002Fpy\u002Fsrc\u002Fagentteams\u002Fexit_codes.py",{"path":178,"resourceType":89,"resourceTypeDesc":90,"sizeBytes":179,"sourceHtmlUrl":180},"scripts\u002Fpy\u002Fsrc\u002Fagentteams\u002Fparser.py",6996,"https:\u002F\u002Fgithub.com\u002Fcarlosmarte\u002Fai-agent-artifacts\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Fagentteams\u002Fscripts\u002Fpy\u002Fsrc\u002Fagentteams\u002Fparser.py",{"path":182,"resourceType":89,"resourceTypeDesc":90,"sizeBytes":183,"sourceHtmlUrl":184},"scripts\u002Fpy\u002Fsrc\u002Fagentteams\u002Frunner.py",4491,"https:\u002F\u002Fgithub.com\u002Fcarlosmarte\u002Fai-agent-artifacts\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Fagentteams\u002Fscripts\u002Fpy\u002Fsrc\u002Fagentteams\u002Frunner.py",{"path":186,"resourceType":89,"resourceTypeDesc":90,"sizeBytes":187,"sourceHtmlUrl":188},"scripts\u002Fpy\u002Fsrc\u002Fagentteams\u002Fslicer.py",4311,"https:\u002F\u002Fgithub.com\u002Fcarlosmarte\u002Fai-agent-artifacts\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Fagentteams\u002Fscripts\u002Fpy\u002Fsrc\u002Fagentteams\u002Fslicer.py",{"path":190,"resourceType":89,"resourceTypeDesc":90,"sizeBytes":14,"sourceHtmlUrl":191},"scripts\u002Fpy\u002Ftests\u002F__init__.py","https:\u002F\u002Fgithub.com\u002Fcarlosmarte\u002Fai-agent-artifacts\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Fagentteams\u002Fscripts\u002Fpy\u002Ftests\u002F__init__.py",{"path":193,"resourceType":89,"resourceTypeDesc":90,"sizeBytes":194,"sourceHtmlUrl":195},"scripts\u002Fpy\u002Ftests\u002Ftest_smoke.py",2795,"https:\u002F\u002Fgithub.com\u002Fcarlosmarte\u002Fai-agent-artifacts\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Fagentteams\u002Fscripts\u002Fpy\u002Ftests\u002Ftest_smoke.py",{"path":197,"resourceType":89,"resourceTypeDesc":90,"sizeBytes":198,"sourceHtmlUrl":199},"scripts\u002Fpy\u002Fuv.lock",131,"https:\u002F\u002Fgithub.com\u002Fcarlosmarte\u002Fai-agent-artifacts\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Fagentteams\u002Fscripts\u002Fpy\u002Fuv.lock",{"path":201,"resourceType":89,"resourceTypeDesc":90,"sizeBytes":202,"sourceHtmlUrl":203},"scripts\u002Fresolve_target.py",954,"https:\u002F\u002Fgithub.com\u002Fcarlosmarte\u002Fai-agent-artifacts\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Fagentteams\u002Fscripts\u002Fresolve_target.py",{"path":205,"resourceType":89,"resourceTypeDesc":90,"sizeBytes":206,"sourceHtmlUrl":207},"scripts\u002Fresolve-target.mjs",726,"https:\u002F\u002Fgithub.com\u002Fcarlosmarte\u002Fai-agent-artifacts\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Fagentteams\u002Fscripts\u002Fresolve-target.mjs",[209,236,262,298,323,346],{"skillNo":210,"name":211,"nameZh":6,"description":212,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":213,"categories":214,"keywords":215,"publishedAt":48},"01M6NQ7MN7FKWQE3CKRWKVAC9K","validation_handoff","Forces the agent to conclude its response by generating a strict validation checklist and outlining pending actions, focusing heavily on defensive execution and edge-case testing.","https:\u002F\u002Fgithub.com\u002Fcarlosmarte\u002Fai-agent-artifacts\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Fvalidation_handoff\u002FSKILL.md",[],[216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235],"handoff","validation","validation handoff","testing","architecture","edge","actions","refactor","execution","system","implementation","checklist","feature implementation","feature","end","case","defensive","hook","at","pending",{"skillNo":237,"name":238,"nameZh":6,"description":239,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":240,"categories":241,"keywords":242,"publishedAt":48},"01M6NQ74C8EKMSABDNN4T6TFBD","project-ployglot-project-scafford","Scaffold a polyglot library project as TypeScript + Python twin packages under `packages\u002Fts\u002F` + `packages\u002Fpy\u002F`, with a shared `SPEC.md`, cross-language `tests\u002Fparity\u002Ffixtures.json`, side-by-side `examples\u002Fsdk\u002F` + `examples\u002Fapi\u002F` documentation, per-package `Makefile`, and a root orchestrator that exposes `make ci`. Open-source friendly — no organization-specific paths or scopes baked in. Use when starting a new polyglot library, porting a single-language library to a twin, or auditing\u002Fregularizing an existing two-language repo against the canonical layout.","https:\u002F\u002Fgithub.com\u002Fcarlosmarte\u002Fai-agent-artifacts\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Fproject-ployglot-project-scafford\u002FSKILL.md",[],[243,244,245,246,47,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261],"project","project ployglot project scafford","documentation","packages","ci","api","open","makefile","Bash","read","orchestrator","only","organization","shared","layout","dry","false","scope","\u003Cslug>",{"skillNo":263,"name":264,"nameZh":6,"description":265,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":266,"categories":267,"keywords":280,"publishedAt":48},"01M6NQ6VJVPM37YA73T8BCD3VF","playwright-ui-locator","Auto-heal Playwright tests after a frontend developer changes a div's class, id, or other selector. Catches a failing Playwright test, captures the old vs new DOM tree, finds the element that drifted, derives the most stable replacement locator, and proposes the fix as a GitHub pull request (confident heals) or files a GitHub issue (ambiguous \u002F element-removed cases) — never editing the working tree directly. Trigger when Playwright tests fail with \"locator resolved to 0 elements\", \"Timeout waiting for selector\", or after a UI refactor \u002F class rename \u002F Tailwind cleanup broke previously-passing tests.","https:\u002F\u002Fgithub.com\u002Fcarlosmarte\u002Fai-agent-artifacts\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Fplaywright-test-gh-auto-heal-ui-locator\u002FSKILL.md",[268,271,274,277],{"categoryNo":269,"categoryName":270,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000007","代码审查",{"categoryNo":272,"categoryName":273,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000008","测试与质量",{"categoryNo":275,"categoryName":276,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000009","前端开发",{"categoryNo":278,"categoryName":279,"taxonomyType":26,"taxonomyTypeDesc":27},"01JBSEEDCAT000000000000032","设计师",[281,282,283,284,285,286,251,252,287,288,289,290,291,292,293,294,295,259,296,297],"playwright","ui","playwright ui locator","frontend","cleanup","Tailwind","write","edit","fix","snapshot","auto","never","issue","files","rename","element","request",{"skillNo":299,"name":300,"nameZh":6,"description":301,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":302,"categories":303,"keywords":305,"publishedAt":48},"01M6NQ6BCW05C6Y6VRV0RBQD1V","org-learn-context-window","Distill the current conversation into a reusable command or skill artifact. Use when the user wants to capture a workflow they just executed (create a reusable slash command) or formalize a resolution\u002Fmistake\u002Fcorrection into a reusable skill so the same class of issue never recurs.","https:\u002F\u002Fgithub.com\u002Fcarlosmarte\u002Fai-agent-artifacts\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Forg-learn-context-window\u002FSKILL.md",[304],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},[306,307,53,308,309,310,311,312,313,314,315,316,317,292,293,318,319,320,321,322],"learn","context","window","org learn context window","workflow","create","just","capture","distill","command","user","use","reusable","conversation","artifact","resolution","skill artifact",{"skillNo":324,"name":325,"nameZh":6,"description":326,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":327,"categories":328,"keywords":330,"publishedAt":48},"01M6NQ66NFPQM1PDBHP1B2G82X","org-agent-skill-creator","Scaffold and validate scope-aware agent skills (company, enterprise, org, team, project, application). Use when the user asks to create a new agent skill, generate a SKILL.md file, scaffold a skill directory, or validate that existing skill directories meet SKILL_SPEC.md (frontmatter, naming rules, structure, scope\u002Ftier).","https:\u002F\u002Fgithub.com\u002Fcarlosmarte\u002Fai-agent-artifacts\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Forg-agent-skill-creator\u002FSKILL.md",[329],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},[331,332,53,333,334,335,311,336,337,338,339,317,340,341,243,260,342,343,344,345],"skill creator","agent skill","agent skill creator","creator","org agent skill creator","file","Enterprise","team","Rules","structure","new agent","directories","Existing","company","Meet",{"skillNo":347,"name":348,"nameZh":6,"description":349,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":350,"categories":351,"keywords":355,"publishedAt":48},"01M6NQ5VSH5M682YMYDF9H9KFE","app-workshop-session-pdf-recap-next","Extract content from a workshop session PDF and produce a structured recap focused on (1) what was learned, (2) next steps, and (3) possible enhancements. Ingests a single PDF file path, parses session material (slides, transcripts, exercises, Q&A), and emits a Markdown report with Learning Recap, Next Steps, and Enhancement Opportunities sections with page-level traceability. Use when the user asks to \"summarize a workshop\", \"recap a training PDF\", \"pull next steps from a session deck\", or provides a workshop\u002Fseminar\u002Ftutorial PDF and wants a learn-and-act summary.","https:\u002F\u002Fgithub.com\u002Fcarlosmarte\u002Fai-agent-artifacts\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Fapp-workshop-session-pdf-recap-next\u002FSKILL.md",[352],{"categoryNo":353,"categoryName":354,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000002","文档处理",[356,357,358,35,359,360,361,306,362,363,364,365,366,367,317,368,259,369,370,371],"PDF","recap","session","app","app workshop session pdf recap next","training","pull","produce","learning","slides","page","tutorial","deck","material","traceability","next steps"]