[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6KAB7CPT8Z73VTP9MWSFR73":3,"skill-same:01M6KAB7CPT8Z73VTP9MWSFR73":70},{"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":44,"linkOnly":45,"markdownContent":46,"markdownBody":47,"frontMatter":48,"refName":49,"commitSha":50,"skillDirectory":51,"forksCount":52,"repositoryHtmlUrl":53,"repositoryHomepageUrl":6,"ownerHtmlUrl":54,"ownerBlogUrl":6,"ownerDescription":6,"updatedAt":55,"install":56,"resources":69},"01M6KAB7CPT8Z73VTP9MWSFR73","ci-results",null,"This skill should be used when looking up CI results for this repo, fetching workflow logs or artifacts, or investigating CI failures. Triggers include \"did CI pass\", \"check the latest run\", \"why did CI fail\", \"show me the failed tests\", \"download the test artifact\", \"what's failing in CI\", \"look at the CI run\", and \"what does CI think\". Also use proactively whenever you'd otherwise ask the user to paste CI output.","dflor003\u002Fskill-unit","dflor003","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F103017?v=4","01M6KAA2KT1J24AER5WN842M8G","Danil Flores","01M6KAA2R86BRS9BEKDQDP4F1Q",1,"MIT","https:\u002F\u002Fgithub.com\u002Fdflor003\u002Fskill-unit\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Fci-results\u002FSKILL.md",[18],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000023","Skill与智能体开发","SCENARIO","使用场景",[24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43],"ci results","ci","results","use","for","you","output","triggers","tests","me","show","up","workflow","ask","check","repo","show me","logs","artifacts","test","2026-11-10 10:12:30",false,"---\nname: ci-results\ndescription: This skill should be used when looking up CI results for this repo, fetching workflow logs or artifacts, or investigating CI failures. Triggers include \"did CI pass\", \"check the latest run\", \"why did CI fail\", \"show me the failed tests\", \"download the test artifact\", \"what's failing in CI\", \"look at the CI run\", and \"what does CI think\". Also use proactively whenever you'd otherwise ask the user to paste CI output.\n---\n\n# CI Results Lookup\n\nThe `gh` CLI is allow-listed (`Bash(gh *)`). Use it directly. Don't ask the user to paste output you can fetch yourself — almost everything is one `gh` call away.\n\n## Finding the run you want\n\nThe user usually won't hand over a run ID. Resolve it yourself.\n\n| Need                              | Command                                                                                                                   |\n| --------------------------------- | ------------------------------------------------------------------------------------------------------------------------- |\n| Latest run on the current branch  | `gh run list --branch $(git branch --show-current) --limit 1 --json databaseId,conclusion,status,headSha,createdAt`       |\n| Recent runs on the current branch | `gh run list --branch $(git branch --show-current) --limit 5 --json databaseId,displayTitle,conclusion,createdAt,headSha` |\n| Run ID from a GitHub URL          | The digits after `\u002Factions\u002Fruns\u002F` are the ID                                                                              |\n| Jobs in a run + their conclusions | `gh run view \u003Cid> --json jobs --jq '.jobs[] \\| {name, conclusion, status}'`                                               |\n| Per-step conclusions for one job  | `gh run view \u003Cid> --json jobs --jq '.jobs[] \\| select(.name == \"Skill-Unit Tests\") \\| .steps[] \\| {name, conclusion}'`    |\n\nWhen the user gives you a GitHub URL, extract the ID, but **also confirm it matches the latest run on the branch** if they've pushed since — they may be referring to an obsolete run without realizing it.\n\n## Extracting test results from logs\n\nThe log step for the skill-unit run is large (~50KB) and ANSI-colored. Don't `cat` or read the full log directly; pipe through `grep` from the start.\n\n| Need                       | Command                                                                                         |\n| -------------------------- | ----------------------------------------------------------------------------------------------- |\n| Per-test pass\u002Ffail summary | \u003Ccode>gh run view &lt;id&gt; --log-failed \\| grep -aE \"(✅\\|❌\\|✗\\|Tests:) \" \\| head -60\u003C\u002Fcode> |\n| Just the failing tests     | \u003Ccode>gh run view &lt;id&gt; --log-failed \\| grep -aE \"(❌\\|✗) \" \\| head -30\u003C\u002Fcode>             |\n| Full log (last resort)     | `gh run view \u003Cid> --log` — only when `--log-failed` is empty                                    |\n\n### Why these flags\n\n- `grep -a` forces text mode. Without it, grep can mark the output as binary because of ANSI escape bytes and timestamps. The \"Binary file (standard input) matches\" message means you forgot `-a`.\n- Anchor on the unicode markers (`✅` \u002F `❌` \u002F `✗`). The skill-unit reporter uses those consistently, so they're a reliable parse hook even with color codes interleaved.\n- Prefer `--log-failed` over `--log`. The former skips the giant setup-and-teardown noise. Only fall back to `--log` if `--log-failed` is empty (cancelled job, infra failure before tests ran).\n\n### The shape of a passing\u002Ffailing summary\n\nThe skill-unit job prints a final summary that looks like:\n\n```\nPASS  skill-unit > runner\n  ✅ SU-1 Runs Tests and Produces a Report (6\u002F6)  35.6s\n  ❌ SU-2 Activates Via Slash Command (3\u002F5)  108.3s\n    ✗ Begins executing test prompts\n...\nTests:     ✅ 19 passed  ❌ 2 failed  21 total\nDuration:  131.7s\nCost:      $0.7863\nTokens:    3,397,738\n```\n\nPer-test lines start with `✅` or `❌`; failing-expectation lines start with `✗`. Grep on those, you get the picture in 5 lines.\n\n## Artifacts\n\nThe `skill-unit-results` artifact contains the actual `.workspace\u002Fruns\u002F\u003Ctimestamp>\u002Fresults\u002F` directory — per-test transcripts, grader transcripts, results JSON. **This is the only way to see what the agent and grader actually did during the run.** The GitHub web UI doesn't expose it.\n\n| Need                          | Command                                                                                              |\n| ----------------------------- | ---------------------------------------------------------------------------------------------------- |\n| List artifacts                | `gh api repos\u002F\u003Cowner>\u002F\u003Crepo>\u002Factions\u002Fruns\u002F\u003Cid>\u002Fartifacts --jq '.artifacts[] \\| {name, id, expired}'` |\n| Owner\u002Frepo from current dir   | `gh repo view --json owner,name --jq '.owner.login + \"\u002F\" + .name'`                                   |\n| Download `skill-unit-results` | `gh run download \u003Cid> --name skill-unit-results --dir \u002Ftmp\u002Fsu-results`                               |\n\n**Retention is 14 days** (`.github\u002Fworkflows\u002Fci.yml` sets `retention-days: 14`). After that, `gh run download` returns `no valid artifacts found to download`. **Pull the artifact early in any investigation**, even before you think you need it, since an investigation that takes a few days can age out the only source of truth.\n\nAfter downloading, the layout is `.workspace\u002Fruns\u002F\u003Ctimestamp>\u002Fresults\u002F\u003Cspec>.\u003Ctest-id>.transcript.md` (agent transcript), `.grader-transcript.md` (grader's reasoning), and `.results.json` (per-expectation verdicts).\n\n## Workflows in this repo\n\nThree workflows live in `.github\u002Fworkflows\u002F`. Read the YAML directly to confirm details — do not ask the user.\n\n| Workflow              | Trigger                                             | What it runs                                                 | Cost \u002F gating                                    |\n| --------------------- | --------------------------------------------------- | ------------------------------------------------------------ | ------------------------------------------------ |\n| `ci.yml`              | `pull_request`, `push` to main, `workflow_dispatch` | Two jobs (see below)                                         | Build & Test is free; Skill-Unit Tests is opt-in |\n| `publish-next.yml`    | `push` to main                                      | typecheck, test, build, then `npm publish --tag next` to npm | Publishes a pre-release tag on every main push   |\n| `publish-release.yml` | GitHub release published                            | Same as above but `npm publish` (latest tag)                 | Tied to release publication                      |\n\n### `ci.yml` jobs\n\n1. **`Build & Test`** — matrix over Node 22\u002F24\u002F25. Steps: `npm ci`, typecheck, format check, lint, `test:coverage` (vitest), build. Free. Runs on every PR and push. If your change is lint\u002Ftypecheck\u002Funit-test scope, this is the only job that matters.\n2. **`Skill-Unit Tests`** — runs `npm run test:skills`, which executes the spec files using a real Anthropic API key (`CLAUDE_CODE_OAUTH_TOKEN`). **Costs API tokens (~$0.5–$1.5 per run).** Gated:\n   - PR-triggered run requires the `run-skill-tests` label on the PR.\n   - Manual run via `gh workflow run CI -f run-skill-tests=true`.\n   - A bare push to the branch does **not** trigger it. The user has to apply the label or dispatch.\n\nDon't push trivial tweaks just to \"see what CI thinks\" of the skill tests — every run costs money. When iterating on skill behavior, prefer `npm run su -- test --test \u003CID>` locally first.\n\n## Common gotchas\n\n- **`--log-failed` returning \"Binary file (standard input) matches\"** when piped to grep: add `-a` (force text). The timestamps look like binary to grep's heuristic.\n- **The skill-unit job's failures can be flaky** because the agent under test is a nondeterministic model (whichever `runner.model` is set in `.skill-unit.yml`; do not assume a specific one). Before declaring a real regression, re-run the failing test locally: `npm run su -- test --test \u003CID>`. Local should match CI in pass\u002Ffail most of the time; if local consistently passes and CI consistently fails, it's the spec design (often expectation strictness vs. the model's response style) rather than a code bug.\n- **Don't `gh run rerun \u003Cid>`** the Skill-Unit Tests job to \"see if it stabilizes\" without confirming with the user first — every rerun costs tokens.\n- **The artifact name is `skill-unit-results`**, exactly. Not `skill-unit-tests` or `test-results`. `gh run download \u003Cid>` with no `--name` will fail if other artifacts also exist; use `--name` explicitly.\n- **`gh run view \u003Cid>` without `--log` or `--log-failed`** shows a high-level summary that does NOT include test results. The summary lives in the step log, not the run metadata.\n- **The `dorny\u002Ftest-reporter` step's GitHub Checks output** is an alternative source for failing-test names — check it via `gh pr checks` or the PR's Checks tab in the web UI. But for failure _reasons_, you still need the log.\n\n## When not to use this skill\n\n- For unit-test or typecheck failures that didn't run in CI, run them locally instead (`npm run test`, `npm run typecheck`). CI doesn't give you anything new.\n- For investigating why a _local_ skill-unit test failed, use `skill-unit` skill's troubleshooting subcommands (`runs`, `show`, `grading`, `transcript`) instead — they're faster and read directly from `.workspace\u002Fruns\u002F`.\n","# CI Results Lookup\n\nThe `gh` CLI is allow-listed (`Bash(gh *)`). Use it directly. Don't ask the user to paste output you can fetch yourself — almost everything is one `gh` call away.\n\n## Finding the run you want\n\nThe user usually won't hand over a run ID. Resolve it yourself.\n\n| Need                              | Command                                                                                                                   |\n| --------------------------------- | ------------------------------------------------------------------------------------------------------------------------- |\n| Latest run on the current branch  | `gh run list --branch $(git branch --show-current) --limit 1 --json databaseId,conclusion,status,headSha,createdAt`       |\n| Recent runs on the current branch | `gh run list --branch $(git branch --show-current) --limit 5 --json databaseId,displayTitle,conclusion,createdAt,headSha` |\n| Run ID from a GitHub URL          | The digits after `\u002Factions\u002Fruns\u002F` are the ID                                                                              |\n| Jobs in a run + their conclusions | `gh run view \u003Cid> --json jobs --jq '.jobs[] \\| {name, conclusion, status}'`                                               |\n| Per-step conclusions for one job  | `gh run view \u003Cid> --json jobs --jq '.jobs[] \\| select(.name == \"Skill-Unit Tests\") \\| .steps[] \\| {name, conclusion}'`    |\n\nWhen the user gives you a GitHub URL, extract the ID, but **also confirm it matches the latest run on the branch** if they've pushed since — they may be referring to an obsolete run without realizing it.\n\n## Extracting test results from logs\n\nThe log step for the skill-unit run is large (~50KB) and ANSI-colored. Don't `cat` or read the full log directly; pipe through `grep` from the start.\n\n| Need                       | Command                                                                                         |\n| -------------------------- | ----------------------------------------------------------------------------------------------- |\n| Per-test pass\u002Ffail summary | \u003Ccode>gh run view &lt;id&gt; --log-failed \\| grep -aE \"(✅\\|❌\\|✗\\|Tests:) \" \\| head -60\u003C\u002Fcode> |\n| Just the failing tests     | \u003Ccode>gh run view &lt;id&gt; --log-failed \\| grep -aE \"(❌\\|✗) \" \\| head -30\u003C\u002Fcode>             |\n| Full log (last resort)     | `gh run view \u003Cid> --log` — only when `--log-failed` is empty                                    |\n\n### Why these flags\n\n- `grep -a` forces text mode. Without it, grep can mark the output as binary because of ANSI escape bytes and timestamps. The \"Binary file (standard input) matches\" message means you forgot `-a`.\n- Anchor on the unicode markers (`✅` \u002F `❌` \u002F `✗`). The skill-unit reporter uses those consistently, so they're a reliable parse hook even with color codes interleaved.\n- Prefer `--log-failed` over `--log`. The former skips the giant setup-and-teardown noise. Only fall back to `--log` if `--log-failed` is empty (cancelled job, infra failure before tests ran).\n\n### The shape of a passing\u002Ffailing summary\n\nThe skill-unit job prints a final summary that looks like:\n\n```\nPASS  skill-unit > runner\n  ✅ SU-1 Runs Tests and Produces a Report (6\u002F6)  35.6s\n  ❌ SU-2 Activates Via Slash Command (3\u002F5)  108.3s\n    ✗ Begins executing test prompts\n...\nTests:     ✅ 19 passed  ❌ 2 failed  21 total\nDuration:  131.7s\nCost:      $0.7863\nTokens:    3,397,738\n```\n\nPer-test lines start with `✅` or `❌`; failing-expectation lines start with `✗`. Grep on those, you get the picture in 5 lines.\n\n## Artifacts\n\nThe `skill-unit-results` artifact contains the actual `.workspace\u002Fruns\u002F\u003Ctimestamp>\u002Fresults\u002F` directory — per-test transcripts, grader transcripts, results JSON. **This is the only way to see what the agent and grader actually did during the run.** The GitHub web UI doesn't expose it.\n\n| Need                          | Command                                                                                              |\n| ----------------------------- | ---------------------------------------------------------------------------------------------------- |\n| List artifacts                | `gh api repos\u002F\u003Cowner>\u002F\u003Crepo>\u002Factions\u002Fruns\u002F\u003Cid>\u002Fartifacts --jq '.artifacts[] \\| {name, id, expired}'` |\n| Owner\u002Frepo from current dir   | `gh repo view --json owner,name --jq '.owner.login + \"\u002F\" + .name'`                                   |\n| Download `skill-unit-results` | `gh run download \u003Cid> --name skill-unit-results --dir \u002Ftmp\u002Fsu-results`                               |\n\n**Retention is 14 days** (`.github\u002Fworkflows\u002Fci.yml` sets `retention-days: 14`). After that, `gh run download` returns `no valid artifacts found to download`. **Pull the artifact early in any investigation**, even before you think you need it, since an investigation that takes a few days can age out the only source of truth.\n\nAfter downloading, the layout is `.workspace\u002Fruns\u002F\u003Ctimestamp>\u002Fresults\u002F\u003Cspec>.\u003Ctest-id>.transcript.md` (agent transcript), `.grader-transcript.md` (grader's reasoning), and `.results.json` (per-expectation verdicts).\n\n## Workflows in this repo\n\nThree workflows live in `.github\u002Fworkflows\u002F`. Read the YAML directly to confirm details — do not ask the user.\n\n| Workflow              | Trigger                                             | What it runs                                                 | Cost \u002F gating                                    |\n| --------------------- | --------------------------------------------------- | ------------------------------------------------------------ | ------------------------------------------------ |\n| `ci.yml`              | `pull_request`, `push` to main, `workflow_dispatch` | Two jobs (see below)                                         | Build & Test is free; Skill-Unit Tests is opt-in |\n| `publish-next.yml`    | `push` to main                                      | typecheck, test, build, then `npm publish --tag next` to npm | Publishes a pre-release tag on every main push   |\n| `publish-release.yml` | GitHub release published                            | Same as above but `npm publish` (latest tag)                 | Tied to release publication                      |\n\n### `ci.yml` jobs\n\n1. **`Build & Test`** — matrix over Node 22\u002F24\u002F25. Steps: `npm ci`, typecheck, format check, lint, `test:coverage` (vitest), build. Free. Runs on every PR and push. If your change is lint\u002Ftypecheck\u002Funit-test scope, this is the only job that matters.\n2. **`Skill-Unit Tests`** — runs `npm run test:skills`, which executes the spec files using a real Anthropic API key (`CLAUDE_CODE_OAUTH_TOKEN`). **Costs API tokens (~$0.5–$1.5 per run).** Gated:\n   - PR-triggered run requires the `run-skill-tests` label on the PR.\n   - Manual run via `gh workflow run CI -f run-skill-tests=true`.\n   - A bare push to the branch does **not** trigger it. The user has to apply the label or dispatch.\n\nDon't push trivial tweaks just to \"see what CI thinks\" of the skill tests — every run costs money. When iterating on skill behavior, prefer `npm run su -- test --test \u003CID>` locally first.\n\n## Common gotchas\n\n- **`--log-failed` returning \"Binary file (standard input) matches\"** when piped to grep: add `-a` (force text). The timestamps look like binary to grep's heuristic.\n- **The skill-unit job's failures can be flaky** because the agent under test is a nondeterministic model (whichever `runner.model` is set in `.skill-unit.yml`; do not assume a specific one). Before declaring a real regression, re-run the failing test locally: `npm run su -- test --test \u003CID>`. Local should match CI in pass\u002Ffail most of the time; if local consistently passes and CI consistently fails, it's the spec design (often expectation strictness vs. the model's response style) rather than a code bug.\n- **Don't `gh run rerun \u003Cid>`** the Skill-Unit Tests job to \"see if it stabilizes\" without confirming with the user first — every rerun costs tokens.\n- **The artifact name is `skill-unit-results`**, exactly. Not `skill-unit-tests` or `test-results`. `gh run download \u003Cid>` with no `--name` will fail if other artifacts also exist; use `--name` explicitly.\n- **`gh run view \u003Cid>` without `--log` or `--log-failed`** shows a high-level summary that does NOT include test results. The summary lives in the step log, not the run metadata.\n- **The `dorny\u002Ftest-reporter` step's GitHub Checks output** is an alternative source for failing-test names — check it via `gh pr checks` or the PR's Checks tab in the web UI. But for failure _reasons_, you still need the log.\n\n## When not to use this skill\n\n- For unit-test or typecheck failures that didn't run in CI, run them locally instead (`npm run test`, `npm run typecheck`). CI doesn't give you anything new.\n- For investigating why a _local_ skill-unit test failed, use `skill-unit` skill's troubleshooting subcommands (`runs`, `show`, `grading`, `transcript`) instead — they're faster and read directly from `.workspace\u002Fruns\u002F`.\n",{"name":5,"description":7},"main","b230f73cc21185b9f8b63763bdf5cef1cd0fe06b",".claude\u002Fskills\u002Fci-results",0,"https:\u002F\u002Fgithub.com\u002Fdflor003\u002Fskill-unit","https:\u002F\u002Fgithub.com\u002Fdflor003","2026-09-20 23:49:13",{"source":8,"skillName":5,"commands":57,"prompt":67,"zipAvailable":68},[58,61,64],{"tool":59,"command":60},"npx","npx skills add dflor003\u002Fskill-unit --skill ci-results",{"tool":62,"command":63},"bunx","bunx skills add dflor003\u002Fskill-unit --skill ci-results",{"tool":65,"command":66},"pnpm","pnpm dlx skills add dflor003\u002Fskill-unit --skill ci-results","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fdflor003\u002Fskill-unit\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Fci-results\u002FSKILL.md",true,[],[71,99,122,147,172,183],{"skillNo":72,"name":73,"nameZh":6,"description":74,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":75,"categories":76,"keywords":81,"publishedAt":44},"01M6KAE9GMECB97DPWD6YF6F32","skill-unit","This skill should be used when the user asks to \"run skill tests\", \"test my skill\", \"evaluate a skill\", \"check skill quality\", \"run the test suite\", \"\u002Fskill-unit\", \"did the last run pass\", \"why did my skill test fail\", \"show the transcript for a skill test\", \"print the conversation for a test\", \"what did the X test do\", \"what runs do I have\", or mentions skill testing, spec files, test case IDs (e.g. SU-1, EX-2, WG-1), failing tests, test transcripts, or inspecting test-run artifacts. Anything involving a named test case, a past test run, a transcript, or a grader verdict belongs to this skill.","https:\u002F\u002Fgithub.com\u002Fdflor003\u002Fskill-unit\u002Fblob\u002Fmain\u002Fskills\u002Fskill-unit\u002FSKILL.md",[77,80],{"categoryNo":78,"categoryName":79,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000008","测试与质量",{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},[82,83,84,85,86,87,88,89,90,91,92,93,34,94,95,32,96,97,28,98],"unit","skill unit","testing","run","my skill","transcript","ids","why","prompt","grader","test suite","files","conversation","do","past","my","suite",{"skillNo":100,"name":101,"nameZh":6,"description":102,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":103,"categories":104,"keywords":107,"publishedAt":44},"01M6KAE1A3Q46FXP3HW4ZY56B9","skill-test-troubleshooting","Use when the user wants a failing or flaky skill test fixed, not just inspected. Triggers on \"why does X keep failing\", \"make X pass reliably\", \"fix the flaky test\", \"this test keeps timing out\", \"diagnose the failures from the last run\", \"fix any failed tests\", \"\u002Fskill-test-troubleshooting\", or any request that names a test\u002Fskill\u002Frun and asks to repair, stabilize, or make-green. Does NOT activate on \"run the tests\" (that is the skill-unit skill) or on read-only inspection requests like \"show the transcript\" \u002F \"what happened in the last run\" (also skill-unit). Does NOT activate on requests to write or add a new test case (that is the skill-test-design skill).","https:\u002F\u002Fgithub.com\u002Fdflor003\u002Fskill-unit\u002Fblob\u002Fmain\u002Fskills\u002Fskill-test-troubleshooting\u002FSKILL.md",[105,106],{"categoryNo":78,"categoryName":79,"taxonomyType":21,"taxonomyTypeDesc":22},{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},[43,108,109,110,111,85,87,89,112,113,114,115,34,116,117,118,119,82,120,121],"troubleshooting","Skill Test","skill test troubleshooting","design","read","write","fix","only","activate","green","repair","add","make","request",{"skillNo":123,"name":124,"nameZh":6,"description":125,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":126,"categories":127,"keywords":138,"publishedAt":44},"01M6KAD8JXQH1ZZDY24EASYNJC","skill-test-design","ALWAYS use this skill when the user mentions writing, designing, creating, or adding test cases for any skill, even if they also describe specific behavior to test. Triggers on \"write a test case\", \"write me a test case\", \"write test cases\", \"design tests\", \"create a spec file\", \"help me write tests\", \"add tests\", \"no tests yet\", \"\u002Fskill-test-design\", or any request that involves creating test cases, spec files, or test coverage for a skill. If the user says \"write a test case for X that covers Y\", this skill handles it, not the skill being tested.","https:\u002F\u002Fgithub.com\u002Fdflor003\u002Fskill-unit\u002Fblob\u002Fmain\u002Fskills\u002Fskill-test-design\u002FSKILL.md",[128,129,132,133],{"categoryNo":78,"categoryName":79,"taxonomyType":21,"taxonomyTypeDesc":22},{"categoryNo":130,"categoryName":131,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000015","视觉设计",{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},{"categoryNo":134,"categoryName":135,"taxonomyType":136,"taxonomyTypeDesc":137},"01JBSEEDCAT000000000000032","设计师","PROFESSION","适用职业",[111,43,139,109,140,141,142,143,113,144,27,145,93,33,32,31,119,28,146,121],"test design","skill test design","writing","write tests","create","coverage","test coverage","test cases",{"skillNo":148,"name":149,"nameZh":6,"description":150,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":151,"categories":152,"keywords":156,"publishedAt":44},"01M6KACP1ZG1D6E48TD1RDZ9Q9","report-card","This skill should be used when the user asks to \"summarize grades\", \"show me the class report\", \"generate a report card\", \"how are the students doing\", or mentions student grades, class performance, or grade summaries. It reads a students.json file and produces a formatted grade report.","https:\u002F\u002Fgithub.com\u002Fdflor003\u002Fskill-unit\u002Fblob\u002Fmain\u002Fskill-tests\u002Fskill-unit\u002Ffixtures\u002Freport-card\u002F.claude\u002Fskills\u002Freport-card\u002FSKILL.md",[153],{"categoryNo":154,"categoryName":155,"taxonomyType":136,"taxonomyTypeDesc":137},"01JBSEEDCAT000000000000034","行政与办公人员",[157,158,159,160,161,162,163,40,164,165,166,167,34,33,168,169,170,171],"report","card","report card","summarize","performance","generate","file","how","json","user","grade report","it","students","summaries","student",{"skillNo":173,"name":149,"nameZh":6,"description":174,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":175,"categories":176,"keywords":178,"publishedAt":44},"01M6KACGKJ6K76RG7DFBNJR2AR","Use when the user asks for a student progress summary, grade breakdown, or class report. Triggers on \"how is X doing in school\", \"show me the grades\", \"summarize class performance\", \"report card for X\", \"what are my child's grades\".","https:\u002F\u002Fgithub.com\u002Fdflor003\u002Fskill-unit\u002Fblob\u002Fmain\u002Fskill-tests\u002Fskill-test-troubleshooting\u002Ffixtures\u002Fvague-test-prompt\u002F.claude\u002Fskills\u002Freport-card\u002FSKILL.md",[177],{"categoryNo":154,"categoryName":155,"taxonomyType":136,"taxonomyTypeDesc":137},[157,158,159,160,161,40,164,166,27,34,179,33,31,180,97,28,181,182,171],"summary","progress","school","child",{"skillNo":184,"name":185,"nameZh":6,"description":186,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":187,"categories":188,"keywords":189,"publishedAt":44},"01M6KACERE2CRDYS4W90DA40T0","inventory","Use when the user requests an SKU lookup or a warehouse delta report. Triggers on \"SKU lookup\", \"warehouse delta\", \"WMS variance\".","https:\u002F\u002Fgithub.com\u002Fdflor003\u002Fskill-unit\u002Fblob\u002Fmain\u002Fskill-tests\u002Fskill-test-troubleshooting\u002Ffixtures\u002Fskill-bug-not-test-bug\u002Fskills\u002Finventory\u002FSKILL.md",[],[185,157,190,166,27,191,31,192,193],"lookup","delta","warehouse","requests"]