[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6CHRW0ESTTCD8VAJF5M5HV6":3,"skill-same:01M6CHRW0ESTTCD8VAJF5M5HV6":85},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":16,"categories":17,"keywords":23,"publishedAt":48,"linkOnly":49,"markdownContent":50,"markdownBody":51,"frontMatter":52,"refName":53,"commitSha":54,"skillDirectory":55,"forksCount":56,"repositoryHtmlUrl":57,"repositoryHomepageUrl":6,"ownerHtmlUrl":58,"ownerBlogUrl":59,"ownerDescription":6,"updatedAt":60,"install":61,"resources":74},"01M6CHRW0ESTTCD8VAJF5M5HV6","test-and-validate",null,"Use when running tests, validation, CI checks, coverage, race detection, vet, build, or verifying strike-cli changes. Trigger on make test, go test, lint, verify, validate, regression, or before claiming work done.","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\u002Ftest-and-validate\u002FSKILL.md",[18],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000008","测试与质量","SCENARIO","使用场景",[24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47],"test","validate","test and validate","coverage","running","when","changes","trigger","tests","vet","done","build","strike","use","cli","work","regression","verify","detection","ci","running tests","validation","lint","go","2026-11-10 10:12:30",false,"---\nname: test-and-validate\ndescription: Use when running tests, validation, CI checks, coverage, race detection, vet, build, or verifying strike-cli changes. Trigger on make test, go test, lint, verify, validate, regression, or before claiming work done.\n---\n\n# Test and validate (strike-cli)\n\nRead-only verification skill. Observe and report — do not fix failures here\n(use built-in `\u002Fverify` or implement fixes under `issue-handler` when owning a branch).\n\n**Single source of truth for gates:** root `AGENTS.md` → *Verification tiers*.\nThis skill runs those tiers; do not invent softer or harder local suites.\n\n## CI mirror (order matters)\n\nMatch `.github\u002Fworkflows\u002Fci.yml`:\n\n1. `gofmt -l .` must be empty\n2. `go generate .\u002Finternal\u002Ftui` (TUI flatten; required before build\u002Ftest if `_src` changed or generate is stale)\n3. `make web-check` when `web\u002F` is touched or `web\u002Fpackage.json` exists and UI may be affected\n4. `go build .\u002F...` or `make build`\n5. `make vet`\n6. `go test .\u002F...` — CI uses `go test -race .\u002F...` on every PR\n\nLocal convenience: `make test && make vet && make build` after gofmt (+ generate\u002Fweb when needed).\n\n## Risk tiers (pick one per change)\n\n| Tier | When | Local gate |\n|---|---|---|\n| **A** | Docs, skills, comments, markdown-only, no Go\u002Fweb | `test -z \"$(gofmt -l .)\"` (skip if no `.go` touched); no full suite required |\n| **B** | Normal Go\u002Fweb\u002FTUI code (default) | gofmt → generate if TUI `_src` → `make web-check` if `web\u002F` → `make test && make vet && make build` |\n| **C** | Trust boundary: `internal\u002Ftool`, `permission`, `auth`, `session`, `engine` concurrency\u002Fturn loop, `protocol` wire, sandbox\u002Fworkspace | Tier B + `go test -race .\u002F... -count=1` + focused package tests first |\n\nCI still runs race on every PR. **Do not** pay full local race on Tier A\u002FB unless reproducing a CI failure.\n\nOptional: `make cover` \u002F `make cover-check` (soft in CI). Offline product smoke: load skill `smoke` when user-visible startup\u002Finput\u002Fsession\u002Fauth paths change.\n\n## Commands\n\n| Check | Command |\n|---|---|\n| Format | `test -z \"$(gofmt -l .)\"` |\n| TUI generate | `go generate .\u002Finternal\u002Ftui` |\n| Web | `make web-check` |\n| Unit suite | `make test` or `go test .\u002F...` |\n| Fresh run | `go test .\u002F... -count=1` |\n| Race | `go test -race .\u002F... -count=1` |\n| Coverage | `make cover` \u002F `make cover-check` |\n| Package focus | `go test .\u002Finternal\u002Ftool\u002F -count=1 -v` |\n| Single test | `go test .\u002Finternal\u002Fpermission\u002F -run TestEvaluate -count=1 -v` |\n| Vet \u002F build | `make vet` \u002F `make build` |\n| Offline boot | `make run-echo` |\n\n## Required workflow\n\n1. Discover what changed (`git diff --stat`, package paths) → assign **tier A\u002FB\u002FC**.\n2. Run focused package tests for touched packages first (Tier B\u002FC).\n3. Run the tier gate above.\n4. If Tier C or CI-red reproduction: full race suite.\n5. If user-visible CLI\u002FTUI\u002Fsession\u002Fauth: load `smoke` (or note gap if smoke not run).\n\n## Report format\n\n1. **Verdict** — pass\u002Ffail with tier.\n2. **Commands run** — exact shell lines.\n3. **Failures** — verbatim output, never paraphrased.\n4. **Gaps** — packages or flows not exercised and why.\n5. **Flakes** — see below; never silent skip.\n\n## Flake policy\n\nA **flake** fails intermittently or only on one OS\u002Fenv while CI (or 3 local reruns) disagrees.\n\n1. Capture: platform, command, pass\u002Ffail of **3** reruns, snippet.\n2. Open or link a `wave: 0` \u002F `priority: bugs-first` issue with repro.\n3. Do **not** block unrelated feature merges on a known env-only flake.\n4. Quarantine only with `t.Skip(\"…\")` + issue link — never delete coverage silently.\n5. Prefer fixing root cause (e.g. `EvalSymlinks` path compare, mtime granularity) over skip.\n\n## Package risk map\n\n| Area | Higher risk signals |\n|---|---|\n| `internal\u002Ftool` | filesystem mutation, shell, sandbox, filestate freshness, workspace roots |\n| `internal\u002Fpermission` | last-match-wins, always grants, reject cascade |\n| `internal\u002Fauth` | credentials mode 0600, env precedence, OAuth |\n| `internal\u002Fsession` + `protocol` | transcript integrity, replay |\n| `internal\u002Fprovider` | HTTP\u002FSSE, cancellation |\n| `internal\u002Fengine` | turn state machine, tool loop, prune\u002Fcompaction, interrupt |\n| `internal\u002Ftui` | Bubble Tea update loops (existing harnesses) |\n| `internal\u002Fhistory` | concurrency + path security |\n\n## Rules\n\n- Never edit source or tests to make verification green.\n- Never skip a failing package without marking it FAIL with output.\n- Prefer project Make targets over inventing new scripts.\n- Prefer tiered gates over always-max ceremony.\n","# Test and validate (strike-cli)\n\nRead-only verification skill. Observe and report — do not fix failures here\n(use built-in `\u002Fverify` or implement fixes under `issue-handler` when owning a branch).\n\n**Single source of truth for gates:** root `AGENTS.md` → *Verification tiers*.\nThis skill runs those tiers; do not invent softer or harder local suites.\n\n## CI mirror (order matters)\n\nMatch `.github\u002Fworkflows\u002Fci.yml`:\n\n1. `gofmt -l .` must be empty\n2. `go generate .\u002Finternal\u002Ftui` (TUI flatten; required before build\u002Ftest if `_src` changed or generate is stale)\n3. `make web-check` when `web\u002F` is touched or `web\u002Fpackage.json` exists and UI may be affected\n4. `go build .\u002F...` or `make build`\n5. `make vet`\n6. `go test .\u002F...` — CI uses `go test -race .\u002F...` on every PR\n\nLocal convenience: `make test && make vet && make build` after gofmt (+ generate\u002Fweb when needed).\n\n## Risk tiers (pick one per change)\n\n| Tier | When | Local gate |\n|---|---|---|\n| **A** | Docs, skills, comments, markdown-only, no Go\u002Fweb | `test -z \"$(gofmt -l .)\"` (skip if no `.go` touched); no full suite required |\n| **B** | Normal Go\u002Fweb\u002FTUI code (default) | gofmt → generate if TUI `_src` → `make web-check` if `web\u002F` → `make test && make vet && make build` |\n| **C** | Trust boundary: `internal\u002Ftool`, `permission`, `auth`, `session`, `engine` concurrency\u002Fturn loop, `protocol` wire, sandbox\u002Fworkspace | Tier B + `go test -race .\u002F... -count=1` + focused package tests first |\n\nCI still runs race on every PR. **Do not** pay full local race on Tier A\u002FB unless reproducing a CI failure.\n\nOptional: `make cover` \u002F `make cover-check` (soft in CI). Offline product smoke: load skill `smoke` when user-visible startup\u002Finput\u002Fsession\u002Fauth paths change.\n\n## Commands\n\n| Check | Command |\n|---|---|\n| Format | `test -z \"$(gofmt -l .)\"` |\n| TUI generate | `go generate .\u002Finternal\u002Ftui` |\n| Web | `make web-check` |\n| Unit suite | `make test` or `go test .\u002F...` |\n| Fresh run | `go test .\u002F... -count=1` |\n| Race | `go test -race .\u002F... -count=1` |\n| Coverage | `make cover` \u002F `make cover-check` |\n| Package focus | `go test .\u002Finternal\u002Ftool\u002F -count=1 -v` |\n| Single test | `go test .\u002Finternal\u002Fpermission\u002F -run TestEvaluate -count=1 -v` |\n| Vet \u002F build | `make vet` \u002F `make build` |\n| Offline boot | `make run-echo` |\n\n## Required workflow\n\n1. Discover what changed (`git diff --stat`, package paths) → assign **tier A\u002FB\u002FC**.\n2. Run focused package tests for touched packages first (Tier B\u002FC).\n3. Run the tier gate above.\n4. If Tier C or CI-red reproduction: full race suite.\n5. If user-visible CLI\u002FTUI\u002Fsession\u002Fauth: load `smoke` (or note gap if smoke not run).\n\n## Report format\n\n1. **Verdict** — pass\u002Ffail with tier.\n2. **Commands run** — exact shell lines.\n3. **Failures** — verbatim output, never paraphrased.\n4. **Gaps** — packages or flows not exercised and why.\n5. **Flakes** — see below; never silent skip.\n\n## Flake policy\n\nA **flake** fails intermittently or only on one OS\u002Fenv while CI (or 3 local reruns) disagrees.\n\n1. Capture: platform, command, pass\u002Ffail of **3** reruns, snippet.\n2. Open or link a `wave: 0` \u002F `priority: bugs-first` issue with repro.\n3. Do **not** block unrelated feature merges on a known env-only flake.\n4. Quarantine only with `t.Skip(\"…\")` + issue link — never delete coverage silently.\n5. Prefer fixing root cause (e.g. `EvalSymlinks` path compare, mtime granularity) over skip.\n\n## Package risk map\n\n| Area | Higher risk signals |\n|---|---|\n| `internal\u002Ftool` | filesystem mutation, shell, sandbox, filestate freshness, workspace roots |\n| `internal\u002Fpermission` | last-match-wins, always grants, reject cascade |\n| `internal\u002Fauth` | credentials mode 0600, env precedence, OAuth |\n| `internal\u002Fsession` + `protocol` | transcript integrity, replay |\n| `internal\u002Fprovider` | HTTP\u002FSSE, cancellation |\n| `internal\u002Fengine` | turn state machine, tool loop, prune\u002Fcompaction, interrupt |\n| `internal\u002Ftui` | Bubble Tea update loops (existing harnesses) |\n| `internal\u002Fhistory` | concurrency + path security |\n\n## Rules\n\n- Never edit source or tests to make verification green.\n- Never skip a failing package without marking it FAIL with output.\n- Prefer project Make targets over inventing new scripts.\n- Prefer tiered gates over always-max ceremony.\n",{"name":5,"description":7},"main","7fe8098d35c17a7d6497a81e4c08abb4c2d02735",".claude\u002Fskills\u002Ftest-and-validate",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":62,"prompt":72,"zipAvailable":73},[63,66,69],{"tool":64,"command":65},"npx","npx skills add dayvidpham\u002Faura-plugins --skill test-and-validate",{"tool":67,"command":68},"bunx","bunx skills add dayvidpham\u002Faura-plugins --skill test-and-validate",{"tool":70,"command":71},"pnpm","pnpm dlx skills add dayvidpham\u002Faura-plugins --skill test-and-validate","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fdayvidpham\u002Faura-plugins\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Ftest-and-validate\u002FSKILL.md",true,[75,81],{"path":76,"resourceType":77,"resourceTypeDesc":78,"sizeBytes":79,"sourceHtmlUrl":80},"scripts\u002Ftask-done","SCRIPT","脚本",1900,"https:\u002F\u002Fgithub.com\u002Fboisenoise\u002Fskills-collections\u002Fblob\u002Fmain\u002Fskills\u002Fsuperpowers-executing-plans\u002Fscripts\u002Ftask-done",{"path":82,"resourceType":77,"resourceTypeDesc":78,"sizeBytes":83,"sourceHtmlUrl":84},"scripts\u002Ftask-start",1185,"https:\u002F\u002Fgithub.com\u002Fboisenoise\u002Fskills-collections\u002Fblob\u002Fmain\u002Fskills\u002Fsuperpowers-executing-plans\u002Fscripts\u002Ftask-start",[86,112,139,144,150,155],{"skillNo":87,"name":88,"nameZh":6,"description":89,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":90,"categories":91,"keywords":92,"publishedAt":48},"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",[],[93,94,95,96,97,98,99,100,101,102,29,103,104,105,106,107,108,109,110,111],"implement","afk implement","pull","bed","never","scope","clean","branches","open","autonomous","review","pull requests","stack","me","run","merge","unattended","overnight","but",{"skillNo":113,"name":114,"nameZh":6,"description":115,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":116,"categories":117,"keywords":121,"publishedAt":48},"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",[118],{"categoryNo":119,"categoryName":120,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000023","Skill与智能体开发",[114,122,123,124,125,126,127,128,129,130,131,132,29,133,134,135,136,137,138],"coding","standards","documentation","read","up","coding standards","reference","look","workflow","full","constraints","you","phase","roles","understand","conventions","aura",{"skillNo":140,"name":114,"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":141,"categories":142,"keywords":143,"publishedAt":48},"01M6CHSBJDVKGWAJWQCNQ22F9F","https:\u002F\u002Fgithub.com\u002Fdayvidpham\u002Faura-plugins\u002Fblob\u002Fmain\u002Fnix\u002Fhm-module-test-data\u002Ffull\u002Fskills\u002Fprotocol\u002FSKILL.md",[],[114],{"skillNo":145,"name":146,"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":147,"categories":148,"keywords":149,"publishedAt":48},"01M6CHSAJY85M0W8NEAN4PRF82","example","https:\u002F\u002Fgithub.com\u002Fdayvidpham\u002Faura-plugins\u002Fblob\u002Fmain\u002Fnix\u002Fhm-module-test-data\u002Ffull\u002Fskills\u002Fexample\u002FSKILL.md",[],[146],{"skillNo":151,"name":146,"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":152,"categories":153,"keywords":154,"publishedAt":48},"01M6CHS9KQJYCWR1C9F2GJDZYX","https:\u002F\u002Fgithub.com\u002Fdayvidpham\u002Faura-plugins\u002Fblob\u002Fmain\u002Fnix\u002Fhm-module-test-data\u002Ffull\u002F.opencode\u002Fskill\u002Fexample\u002FSKILL.md",[],[146],{"skillNo":156,"name":146,"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":157,"categories":158,"keywords":159,"publishedAt":48},"01M6CHS8MSW2SDQ5Y05A3GZES4","https:\u002F\u002Fgithub.com\u002Fdayvidpham\u002Faura-plugins\u002Fblob\u002Fmain\u002Fnix\u002Fhm-module-test-data\u002Ffull\u002F.agents\u002Fskills\u002Fexample\u002FSKILL.md",[],[146]]