[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6CHRGV55D56XHZZ3WC1M8ZG":3,"skill-same:01M6CHRGV55D56XHZZ3WC1M8ZG":147},{"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":45,"linkOnly":46,"markdownContent":47,"markdownBody":48,"frontMatter":49,"refName":50,"commitSha":51,"skillDirectory":52,"forksCount":53,"repositoryHtmlUrl":54,"repositoryHomepageUrl":6,"ownerHtmlUrl":55,"ownerBlogUrl":56,"ownerDescription":6,"updatedAt":57,"install":58,"resources":71},"01M6CHRGV55D56XHZZ3WC1M8ZG","pasture-usage",null,"Use when operating the Pasture task tracker from the command line — creating, reading, updating, and closing tasks; labels; dependencies; comments and timelines; agent\u002Fauthor attribution; and store\u002Fnamespace selection. Covers the required --author flag, exit codes, and the gotchas we have hit in practice (write-lock contention, shell quoting, URI capture, two-dash vs slash IDs).","dayvidpham\u002Faura-plugins","dayvidpham","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F22456875?v=4","01M6CHR0F6J2M4QEHFR85XRNSR","David Huu Pham","01M6CHR0KQJ4DK5KSZ9TRTP7DW",2,"MIT","https:\u002F\u002Fgithub.com\u002Fdayvidpham\u002Faura-plugins\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Fpasture-usage\u002FSKILL.md",[],[19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44],"usage","pasture usage","task","when","author","dash","labels","lock","closing","comments","codes","store","operating","tasks","selection","exit","tracker","use","task tracker","write","command","capture","shell","ids","attribution","command line","2026-11-10 10:12:30",false,"---\nname: pasture-usage\ndescription: Use when operating the Pasture task tracker from the command line — creating, reading, updating, and closing tasks; labels; dependencies; comments and timelines; agent\u002Fauthor attribution; and store\u002Fnamespace selection. Covers the required --author flag, exit codes, and the gotchas we have hit in practice (write-lock contention, shell quoting, URI capture, two-dash vs slash IDs).\n---\n\n# Using Pasture\n\nPasture is the task tracker for this workspace. It keeps every task, comment,\nlabel, dependency, and lifecycle event in one SQLite database with durable,\nappend-only audit history. Treat the store as durable: **never delete tasks or\naudit rows** — correct the record by adding labels and attributed comments.\n\nEntry points: `pasture task …` (generic task operations), `pasture epoch …`\n(typed lifecycle decisions), `pasture hook …` (lifecycle hook events),\n`pasture migrate` (schema migration), `pasture upgrade`.\n\n## 1. Pick the store\n\nResolution order, first match wins:\n\n1. `--db \u003Cpath>` flag\n2. `PASTURE_DB_PATH` environment variable\n3. `$XDG_DATA_HOME\u002Fpasture\u002Fpasture.db`\n4. `$HOME\u002F.local\u002Fshare\u002Fpasture\u002Fpasture.db` (default)\n\nUse one store for the whole session. `--db` is a global flag accepted by every\nsubcommand.\n\n## 2. Pick the namespace\n\nThe namespace scopes task IDs. It resolves as:\n\n1. explicit `--namespace \u003Curi>`\n2. derived from the `origin` git remote\n3. `file:\u002F\u002F\u003Ccwd>` when there is no git remote\n\n- `create` derives the namespace automatically — you normally do **not** need to\n  export `PASTURE_NAMESPACE`.\n- `list` should get the namespace explicitly so results do not depend on cwd.\n- `ready` and `blocked` do **not** scope by namespace — they accept only an exact\n  `--label` filter. Check the full URI on every returned row before picking up\n  work.\n\nConvention for a scripted session:\n\n```bash\nexport PASTURE_NAMESPACE=https:\u002F\u002Fgithub.com\u002F\u003Cowner>\u002F\u003Crepo>\n```\n\n## 3. Core task commands\n\n```bash\n# Create. The id is a URI. Capture it; creation and labeling are separate writes.\nTASK_URI=$(pasture task create \"Short imperative title\" \\\n  --namespace \"$PASTURE_NAMESPACE\" --type task --priority medium \\\n  --description \"Approved scope and acceptance cases\" --format json \\\n  | python3 -c 'import json,sys; print(json.load(sys.stdin)[\"id\"])')\n\npasture task show   \"$TASK_URI\" --namespace \"$PASTURE_NAMESPACE\"\npasture task list   --namespace \"$PASTURE_NAMESPACE\" --status in_progress\npasture task update \"$TASK_URI\" --status in_progress --namespace \"$PASTURE_NAMESPACE\"\npasture task close  \"$TASK_URI\" --reason \"Reviewed and verified\" --namespace \"$PASTURE_NAMESPACE\"\n```\n\nStatuses are only `open`, `in_progress`, `closed`. There is no `blocked` status:\nblockage is a live dependency edge plus a note or comment.\n\n## 4. Labels\n\n```bash\npasture task label add \"$TASK_URI\" pasture:work --namespace \"$PASTURE_NAMESPACE\"\n```\n\nCreate + label is **not atomic**. If the label step fails, keep the URI and retry\nonly the label — never re-create the task (that is how duplicate tasks happen).\n\n## 5. Dependencies\n\nWork flows bottom-up, closure flows top-down. A parent stays open until its child\nfinishes.\n\n```bash\npasture task dep add  \"$PARENT_URI\" --blocked-by \"$CHILD_URI\" --namespace \"$PASTURE_NAMESPACE\"\npasture task dep tree \"$PARENT_URI\" --kind all --namespace \"$PASTURE_NAMESPACE\"\n```\n\nAlways `parent --blocked-by child`; never reverse the edge. Reference documents\n(specs, proposals) go in the description, not in fake blocking edges.\n\n## 6. Comments, attribution, and the `--author` flag\n\nEvery comment must carry an explicit `--author`. Pasture does not infer one.\n\n```bash\npasture task comment add \"$TASK_URI\" \"Progress: evidence and next step\" \\\n  --author \"$PASTURE_AUTHOR\" --namespace \"$PASTURE_NAMESPACE\"\n\npasture task comments \"$TASK_URI\" --namespace \"$PASTURE_NAMESPACE\"  # chronological read\npasture task timeline \"$TASK_URI\" --namespace \"$PASTURE_NAMESPACE\"  # every event\n```\n\nRules:\n\n- Discover identities, never invent them:\n  `pasture task agents list`, `pasture task agents show \u003CACTOR-ID>`.\n  Never auto-register an actor or guess an ID mid-recovery.\n- Quote a human's words **as evidence** under your own actor — do not forge a new\n  author.\n- The machine actor for automated runs is\n  `pasture-system--00000000-0000-0000-0000-000000000000`.\n- Other agents have their own registered actors; use the one the supervisor\n  assigned.\n\n## 7. Session recovery\n\nAt session start and after context compaction, recover from live state — never\ntrust a cached task list:\n\n```bash\npasture task ready   --namespace \"$PASTURE_NAMESPACE\" --format json\npasture task blocked --namespace \"$PASTURE_NAMESPACE\"\npasture task list    --namespace \"$PASTURE_NAMESPACE\" --status in_progress\n```\n\nFor each active task: `show`, `comments`, `timeline`. Separate reads are not an\natomic snapshot.\n\n## 8. Gotchas we have actually hit\n\n**Write-lock contention — `Error: Couldn't connect` (exit code 2).**\nEvery invocation opens the shared DB and runs a write-lock schema activation (up\nto a 30 s budget). When lifecycle hooks are enabled, `pasture hook lifecycle …`\nfires on many events and they contend for the same file. Symptom: intermittent\n`SQLITE_BUSY … gave up after 30s`, with or without `--namespace`. It is a\nconnectivity\u002Flock failure, **not** proof that there is no work.\n- Retry the command.\n- Find the holder: `lsof ~\u002F.local\u002Fshare\u002Fpasture\u002Fpasture.db` (or `fuser`).\n- Do not report the store empty or broken from one failure.\n\n**Exit codes:** `0` ok · `1` bad flags\u002Fargs · `2` cannot open DB · `3` task or\nworkflow error (not found, cycle, gate rejected) · `4` config · `5`\nstorage\u002Fmigration. Branch on the code, not on message text.\n\n**Backticks inside double-quoted shell strings are command-substituted.** Do not\nwrite `comment add \"$U\" \"use \\`pasture task\\`\"`. Use a single-quoted heredoc or\nsingle quotes so the text survives verbatim.\n\n**Capture the ID as JSON, not from human output.** Use `--format json` and parse\n`.id`; or `grep '^ID'` when reading text output (namespace-aware). Legacy short\nIDs are never valid operands — only full URIs.\n\n**Run tracker writes from the repo whose namespace you mean.** Otherwise the\ngit-remote-derived namespace is the wrong repository and the task lands in the\nwrong place.\n\n**`ready`\u002F`blocked` are not namespace-scoped.** Filter by the full URI yourself.\n\n**URI format — two-dash vs slash.** Older stored IDs look like\n`https:\u002F\u002Fgithub.com\u002F\u003Cowner>\u002F\u003Crepo>--\u003Cuuid>`; the newer format joins with a slash:\n`https:\u002F\u002Fgithub.com\u002F\u003Cowner>\u002F\u003Crepo>\u002F\u003Cuuid>`. Existing rows are **not** rewritten\nretroactively, so an ID's format depends on when and with which build it was\ncreated. Accept both; never assume one.\n\n**`pasture migrate` is a schema migration**, not a data import. There is no\nuser-facing \"import beads\" command.\n\n## 9. Installing in harnesses\n\nAuthor once, install per harness (keep the `name:` frontmatter stable so the\nskill triggers identically everywhere):\n\n- Claude Code: `~\u002F.claude\u002Fskills\u002Fpasture-usage\u002FSKILL.md` (or project-local\n  `.claude\u002Fskills\u002Fpasture-usage\u002FSKILL.md`)\n- OpenCode: `~\u002F.config\u002Fopencode\u002Fskills\u002Fpasture-usage\u002FSKILL.md`\n- Codex: `~\u002F.agents\u002Fskills\u002Fpasture-usage\u002FSKILL.md`\n","# Using Pasture\n\nPasture is the task tracker for this workspace. It keeps every task, comment,\nlabel, dependency, and lifecycle event in one SQLite database with durable,\nappend-only audit history. Treat the store as durable: **never delete tasks or\naudit rows** — correct the record by adding labels and attributed comments.\n\nEntry points: `pasture task …` (generic task operations), `pasture epoch …`\n(typed lifecycle decisions), `pasture hook …` (lifecycle hook events),\n`pasture migrate` (schema migration), `pasture upgrade`.\n\n## 1. Pick the store\n\nResolution order, first match wins:\n\n1. `--db \u003Cpath>` flag\n2. `PASTURE_DB_PATH` environment variable\n3. `$XDG_DATA_HOME\u002Fpasture\u002Fpasture.db`\n4. `$HOME\u002F.local\u002Fshare\u002Fpasture\u002Fpasture.db` (default)\n\nUse one store for the whole session. `--db` is a global flag accepted by every\nsubcommand.\n\n## 2. Pick the namespace\n\nThe namespace scopes task IDs. It resolves as:\n\n1. explicit `--namespace \u003Curi>`\n2. derived from the `origin` git remote\n3. `file:\u002F\u002F\u003Ccwd>` when there is no git remote\n\n- `create` derives the namespace automatically — you normally do **not** need to\n  export `PASTURE_NAMESPACE`.\n- `list` should get the namespace explicitly so results do not depend on cwd.\n- `ready` and `blocked` do **not** scope by namespace — they accept only an exact\n  `--label` filter. Check the full URI on every returned row before picking up\n  work.\n\nConvention for a scripted session:\n\n```bash\nexport PASTURE_NAMESPACE=https:\u002F\u002Fgithub.com\u002F\u003Cowner>\u002F\u003Crepo>\n```\n\n## 3. Core task commands\n\n```bash\n# Create. The id is a URI. Capture it; creation and labeling are separate writes.\nTASK_URI=$(pasture task create \"Short imperative title\" \\\n  --namespace \"$PASTURE_NAMESPACE\" --type task --priority medium \\\n  --description \"Approved scope and acceptance cases\" --format json \\\n  | python3 -c 'import json,sys; print(json.load(sys.stdin)[\"id\"])')\n\npasture task show   \"$TASK_URI\" --namespace \"$PASTURE_NAMESPACE\"\npasture task list   --namespace \"$PASTURE_NAMESPACE\" --status in_progress\npasture task update \"$TASK_URI\" --status in_progress --namespace \"$PASTURE_NAMESPACE\"\npasture task close  \"$TASK_URI\" --reason \"Reviewed and verified\" --namespace \"$PASTURE_NAMESPACE\"\n```\n\nStatuses are only `open`, `in_progress`, `closed`. There is no `blocked` status:\nblockage is a live dependency edge plus a note or comment.\n\n## 4. Labels\n\n```bash\npasture task label add \"$TASK_URI\" pasture:work --namespace \"$PASTURE_NAMESPACE\"\n```\n\nCreate + label is **not atomic**. If the label step fails, keep the URI and retry\nonly the label — never re-create the task (that is how duplicate tasks happen).\n\n## 5. Dependencies\n\nWork flows bottom-up, closure flows top-down. A parent stays open until its child\nfinishes.\n\n```bash\npasture task dep add  \"$PARENT_URI\" --blocked-by \"$CHILD_URI\" --namespace \"$PASTURE_NAMESPACE\"\npasture task dep tree \"$PARENT_URI\" --kind all --namespace \"$PASTURE_NAMESPACE\"\n```\n\nAlways `parent --blocked-by child`; never reverse the edge. Reference documents\n(specs, proposals) go in the description, not in fake blocking edges.\n\n## 6. Comments, attribution, and the `--author` flag\n\nEvery comment must carry an explicit `--author`. Pasture does not infer one.\n\n```bash\npasture task comment add \"$TASK_URI\" \"Progress: evidence and next step\" \\\n  --author \"$PASTURE_AUTHOR\" --namespace \"$PASTURE_NAMESPACE\"\n\npasture task comments \"$TASK_URI\" --namespace \"$PASTURE_NAMESPACE\"  # chronological read\npasture task timeline \"$TASK_URI\" --namespace \"$PASTURE_NAMESPACE\"  # every event\n```\n\nRules:\n\n- Discover identities, never invent them:\n  `pasture task agents list`, `pasture task agents show \u003CACTOR-ID>`.\n  Never auto-register an actor or guess an ID mid-recovery.\n- Quote a human's words **as evidence** under your own actor — do not forge a new\n  author.\n- The machine actor for automated runs is\n  `pasture-system--00000000-0000-0000-0000-000000000000`.\n- Other agents have their own registered actors; use the one the supervisor\n  assigned.\n\n## 7. Session recovery\n\nAt session start and after context compaction, recover from live state — never\ntrust a cached task list:\n\n```bash\npasture task ready   --namespace \"$PASTURE_NAMESPACE\" --format json\npasture task blocked --namespace \"$PASTURE_NAMESPACE\"\npasture task list    --namespace \"$PASTURE_NAMESPACE\" --status in_progress\n```\n\nFor each active task: `show`, `comments`, `timeline`. Separate reads are not an\natomic snapshot.\n\n## 8. Gotchas we have actually hit\n\n**Write-lock contention — `Error: Couldn't connect` (exit code 2).**\nEvery invocation opens the shared DB and runs a write-lock schema activation (up\nto a 30 s budget). When lifecycle hooks are enabled, `pasture hook lifecycle …`\nfires on many events and they contend for the same file. Symptom: intermittent\n`SQLITE_BUSY … gave up after 30s`, with or without `--namespace`. It is a\nconnectivity\u002Flock failure, **not** proof that there is no work.\n- Retry the command.\n- Find the holder: `lsof ~\u002F.local\u002Fshare\u002Fpasture\u002Fpasture.db` (or `fuser`).\n- Do not report the store empty or broken from one failure.\n\n**Exit codes:** `0` ok · `1` bad flags\u002Fargs · `2` cannot open DB · `3` task or\nworkflow error (not found, cycle, gate rejected) · `4` config · `5`\nstorage\u002Fmigration. Branch on the code, not on message text.\n\n**Backticks inside double-quoted shell strings are command-substituted.** Do not\nwrite `comment add \"$U\" \"use \\`pasture task\\`\"`. Use a single-quoted heredoc or\nsingle quotes so the text survives verbatim.\n\n**Capture the ID as JSON, not from human output.** Use `--format json` and parse\n`.id`; or `grep '^ID'` when reading text output (namespace-aware). Legacy short\nIDs are never valid operands — only full URIs.\n\n**Run tracker writes from the repo whose namespace you mean.** Otherwise the\ngit-remote-derived namespace is the wrong repository and the task lands in the\nwrong place.\n\n**`ready`\u002F`blocked` are not namespace-scoped.** Filter by the full URI yourself.\n\n**URI format — two-dash vs slash.** Older stored IDs look like\n`https:\u002F\u002Fgithub.com\u002F\u003Cowner>\u002F\u003Crepo>--\u003Cuuid>`; the newer format joins with a slash:\n`https:\u002F\u002Fgithub.com\u002F\u003Cowner>\u002F\u003Crepo>\u002F\u003Cuuid>`. Existing rows are **not** rewritten\nretroactively, so an ID's format depends on when and with which build it was\ncreated. Accept both; never assume one.\n\n**`pasture migrate` is a schema migration**, not a data import. There is no\nuser-facing \"import beads\" command.\n\n## 9. Installing in harnesses\n\nAuthor once, install per harness (keep the `name:` frontmatter stable so the\nskill triggers identically everywhere):\n\n- Claude Code: `~\u002F.claude\u002Fskills\u002Fpasture-usage\u002FSKILL.md` (or project-local\n  `.claude\u002Fskills\u002Fpasture-usage\u002FSKILL.md`)\n- OpenCode: `~\u002F.config\u002Fopencode\u002Fskills\u002Fpasture-usage\u002FSKILL.md`\n- Codex: `~\u002F.agents\u002Fskills\u002Fpasture-usage\u002FSKILL.md`\n",{"name":5,"description":7},"main","7fe8098d35c17a7d6497a81e4c08abb4c2d02735",".claude\u002Fskills\u002Fpasture-usage",0,"https:\u002F\u002Fgithub.com\u002Fdayvidpham\u002Faura-plugins","https:\u002F\u002Fgithub.com\u002Fdayvidpham","dhpham.com","2026-11-11 16:48:56",{"source":8,"skillName":5,"commands":59,"prompt":69,"zipAvailable":70},[60,63,66],{"tool":61,"command":62},"npx","npx skills add dayvidpham\u002Faura-plugins --skill pasture-usage",{"tool":64,"command":65},"bunx","bunx skills add dayvidpham\u002Faura-plugins --skill pasture-usage",{"tool":67,"command":68},"pnpm","pnpm dlx skills add dayvidpham\u002Faura-plugins --skill pasture-usage","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fdayvidpham\u002Faura-plugins\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Fpasture-usage\u002FSKILL.md",true,[72,78,82,86,92,98,102,108,112,115,119,123,127,131,135,139,143],{"path":73,"resourceType":74,"resourceTypeDesc":75,"sizeBytes":76,"sourceHtmlUrl":77},"agents\u002Fanalyzer.md","REFERENCE","参考文档",10376,"https:\u002F\u002Fgithub.com\u002FSESELOVSKYDarian\u002FVase\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fskill-creator\u002Fagents\u002Fanalyzer.md",{"path":79,"resourceType":74,"resourceTypeDesc":75,"sizeBytes":80,"sourceHtmlUrl":81},"agents\u002Fcomparator.md",7287,"https:\u002F\u002Fgithub.com\u002FSESELOVSKYDarian\u002FVase\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fskill-creator\u002Fagents\u002Fcomparator.md",{"path":83,"resourceType":74,"resourceTypeDesc":75,"sizeBytes":84,"sourceHtmlUrl":85},"agents\u002Fgrader.md",9049,"https:\u002F\u002Fgithub.com\u002FSESELOVSKYDarian\u002FVase\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fskill-creator\u002Fagents\u002Fgrader.md",{"path":87,"resourceType":88,"resourceTypeDesc":89,"sizeBytes":90,"sourceHtmlUrl":91},"assets\u002Feval_review.html","ASSET","资产文件",7058,"https:\u002F\u002Fgithub.com\u002FSESELOVSKYDarian\u002FVase\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fskill-creator\u002Fassets\u002Feval_review.html",{"path":93,"resourceType":94,"resourceTypeDesc":95,"sizeBytes":96,"sourceHtmlUrl":97},"eval-viewer\u002Fgenerate_review.py","SCRIPT","脚本",16365,"https:\u002F\u002Fgithub.com\u002FSESELOVSKYDarian\u002FVase\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fskill-creator\u002Feval-viewer\u002Fgenerate_review.py",{"path":99,"resourceType":74,"resourceTypeDesc":75,"sizeBytes":100,"sourceHtmlUrl":101},"eval-viewer\u002Fviewer.html",44998,"https:\u002F\u002Fgithub.com\u002FSESELOVSKYDarian\u002FVase\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fskill-creator\u002Feval-viewer\u002Fviewer.html",{"path":103,"resourceType":104,"resourceTypeDesc":105,"sizeBytes":106,"sourceHtmlUrl":107},"LICENSE.txt","LICENSE","许可证",11357,"https:\u002F\u002Fgithub.com\u002FSESELOVSKYDarian\u002FVase\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fskill-creator\u002FLICENSE.txt",{"path":109,"resourceType":74,"resourceTypeDesc":75,"sizeBytes":110,"sourceHtmlUrl":111},"references\u002Fschemas.md",12061,"https:\u002F\u002Fgithub.com\u002FSESELOVSKYDarian\u002FVase\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fskill-creator\u002Freferences\u002Fschemas.md",{"path":113,"resourceType":94,"resourceTypeDesc":95,"sizeBytes":53,"sourceHtmlUrl":114},"scripts\u002F__init__.py","https:\u002F\u002Fgithub.com\u002FSESELOVSKYDarian\u002FVase\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fskill-creator\u002Fscripts\u002F__init__.py",{"path":116,"resourceType":94,"resourceTypeDesc":95,"sizeBytes":117,"sourceHtmlUrl":118},"scripts\u002Faggregate_benchmark.py",14386,"https:\u002F\u002Fgithub.com\u002FSESELOVSKYDarian\u002FVase\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fskill-creator\u002Fscripts\u002Faggregate_benchmark.py",{"path":120,"resourceType":94,"resourceTypeDesc":95,"sizeBytes":121,"sourceHtmlUrl":122},"scripts\u002Fgenerate_report.py",12847,"https:\u002F\u002Fgithub.com\u002FSESELOVSKYDarian\u002FVase\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fskill-creator\u002Fscripts\u002Fgenerate_report.py",{"path":124,"resourceType":94,"resourceTypeDesc":95,"sizeBytes":125,"sourceHtmlUrl":126},"scripts\u002Fimprove_description.py",11116,"https:\u002F\u002Fgithub.com\u002FSESELOVSKYDarian\u002FVase\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fskill-creator\u002Fscripts\u002Fimprove_description.py",{"path":128,"resourceType":94,"resourceTypeDesc":95,"sizeBytes":129,"sourceHtmlUrl":130},"scripts\u002Fpackage_skill.py",4234,"https:\u002F\u002Fgithub.com\u002FSESELOVSKYDarian\u002FVase\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fskill-creator\u002Fscripts\u002Fpackage_skill.py",{"path":132,"resourceType":94,"resourceTypeDesc":95,"sizeBytes":133,"sourceHtmlUrl":134},"scripts\u002Fquick_validate.py",3972,"https:\u002F\u002Fgithub.com\u002FSESELOVSKYDarian\u002FVase\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fskill-creator\u002Fscripts\u002Fquick_validate.py",{"path":136,"resourceType":94,"resourceTypeDesc":95,"sizeBytes":137,"sourceHtmlUrl":138},"scripts\u002Frun_eval.py",11464,"https:\u002F\u002Fgithub.com\u002FSESELOVSKYDarian\u002FVase\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fskill-creator\u002Fscripts\u002Frun_eval.py",{"path":140,"resourceType":94,"resourceTypeDesc":95,"sizeBytes":141,"sourceHtmlUrl":142},"scripts\u002Frun_loop.py",13605,"https:\u002F\u002Fgithub.com\u002FSESELOVSKYDarian\u002FVase\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fskill-creator\u002Fscripts\u002Frun_loop.py",{"path":144,"resourceType":94,"resourceTypeDesc":95,"sizeBytes":145,"sourceHtmlUrl":146},"scripts\u002Futils.py",1661,"https:\u002F\u002Fgithub.com\u002FSESELOVSKYDarian\u002FVase\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fskill-creator\u002Fscripts\u002Futils.py",[148,174,203,208,214,219],{"skillNo":149,"name":150,"nameZh":6,"description":151,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":152,"categories":153,"keywords":154,"publishedAt":45},"01M70PPVS3CW9RYWGZ4KSNV7MV","afk-implement","Run an unattended (\"AFK\") implementation session as the supervisor — scope small progressive iterations, push feature branches, open pull requests, drive review waves to clean, and never merge. Use when the user says they are going AFK or to bed, asks for overnight autonomous implementation, says \"don't block on me\", \"open PRs but don't merge\", \"progressive adoption\", or \"stack changes\".","https:\u002F\u002Fgithub.com\u002Fdayvidpham\u002Faura-plugins\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Fafk-implement\u002FSKILL.md",[],[155,156,157,158,159,160,161,162,163,164,22,165,166,167,168,169,170,171,172,173],"implement","afk implement","pull","bed","never","scope","clean","branches","open","autonomous","review","pull requests","stack","me","run","merge","unattended","overnight","but",{"skillNo":175,"name":176,"nameZh":6,"description":177,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":178,"categories":179,"keywords":185,"publishedAt":45},"01M6CHSCKDTSV05385SJ05XWW6","protocol","Aura protocol reference documentation — 12-phase workflow, agent roles, constraints, and coding standards. Read when you need to understand the full workflow or look up conventions.","https:\u002F\u002Fgithub.com\u002Fdayvidpham\u002Faura-plugins\u002Fblob\u002Fmain\u002Fskills\u002Fprotocol\u002FSKILL.md",[180],{"categoryNo":181,"categoryName":182,"taxonomyType":183,"taxonomyTypeDesc":184},"01JBSEEDCAT000000000000023","Skill与智能体开发","SCENARIO","使用场景",[176,186,187,188,189,190,191,192,193,194,195,196,22,197,198,199,200,201,202],"coding","standards","documentation","read","up","coding standards","reference","look","workflow","full","constraints","you","phase","roles","understand","conventions","aura",{"skillNo":204,"name":176,"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":205,"categories":206,"keywords":207,"publishedAt":45},"01M6CHSBJDVKGWAJWQCNQ22F9F","https:\u002F\u002Fgithub.com\u002Fdayvidpham\u002Faura-plugins\u002Fblob\u002Fmain\u002Fnix\u002Fhm-module-test-data\u002Ffull\u002Fskills\u002Fprotocol\u002FSKILL.md",[],[176],{"skillNo":209,"name":210,"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":211,"categories":212,"keywords":213,"publishedAt":45},"01M6CHSAJY85M0W8NEAN4PRF82","example","https:\u002F\u002Fgithub.com\u002Fdayvidpham\u002Faura-plugins\u002Fblob\u002Fmain\u002Fnix\u002Fhm-module-test-data\u002Ffull\u002Fskills\u002Fexample\u002FSKILL.md",[],[210],{"skillNo":215,"name":210,"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":216,"categories":217,"keywords":218,"publishedAt":45},"01M6CHS9KQJYCWR1C9F2GJDZYX","https:\u002F\u002Fgithub.com\u002Fdayvidpham\u002Faura-plugins\u002Fblob\u002Fmain\u002Fnix\u002Fhm-module-test-data\u002Ffull\u002F.opencode\u002Fskill\u002Fexample\u002FSKILL.md",[],[210],{"skillNo":220,"name":210,"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":221,"categories":222,"keywords":223,"publishedAt":45},"01M6CHS8MSW2SDQ5Y05A3GZES4","https:\u002F\u002Fgithub.com\u002Fdayvidpham\u002Faura-plugins\u002Fblob\u002Fmain\u002Fnix\u002Fhm-module-test-data\u002Ffull\u002F.agents\u002Fskills\u002Fexample\u002FSKILL.md",[],[210]]