[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6C13F4CDJSXNQV45ZNN4WJR":3,"skill-same:01M6C13F4CDJSXNQV45ZNN4WJR":69},{"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":37,"linkOnly":38,"markdownContent":39,"markdownBody":40,"frontMatter":41,"refName":45,"commitSha":46,"skillDirectory":47,"forksCount":48,"repositoryHtmlUrl":49,"repositoryHomepageUrl":50,"ownerHtmlUrl":51,"ownerBlogUrl":52,"ownerDescription":53,"updatedAt":54,"install":55,"resources":68},"01M6C13F4CDJSXNQV45ZNN4WJR","link-check",null,"Verify @file references in AIWG skills and agents against the linking contract — per-file or corpus-wide, with optional auto-fix","jmagly\u002Faiwg","jmagly","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F1159087?v=4","01M6C10AK8N2WCSQN11FYGTJWN","Joseph Magly","01M6C10AQ8A2RMED1Y1BSVY7NF",229,"MIT","https:\u002F\u002Fgithub.com\u002Fjmagly\u002Faiwg\u002Fblob\u002Fmain\u002Fagentic\u002Fcode\u002Faddons\u002Faiwg-dev\u002Fskills\u002Flink-check\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],"check","link check","link","file","verify","fix","auto","references","contract","with","wide","linking","auto-fix","2026-11-10 10:12:30",false,"---\nnamespace: aiwg\nname: link-check\ndescription: Verify @file references in AIWG skills and agents against the linking contract — per-file or corpus-wide, with optional auto-fix\nplatforms: [all]\n\n---\n\n# Link Check\n\nYou verify every `@file` reference in AIWG distributable skills and agents against the full linking contract, producing a structured PASS\u002FWARN\u002FFAIL report per reference. You can run against a single file, a directory, or the full `agentic\u002Fcode\u002F` corpus, and optionally auto-migrate legacy bare refs to the `@$AIWG_ROOT\u002F` prefix.\n\n## Triggers\n\n- \"link check\" \u002F \"check links\" → run against current file or directory\n- \"link check agentic\u002Fcode\u002F\" → full corpus scan\n- \"link check --fix\" → auto-migrate legacy bare refs\n- \"any bad links?\" → run link-check on current context\n- \"check for broken @-refs\" → run link-check\n- \"are there any legacy bare refs?\" → run link-check, focus on 4b\n\n## Usage\n\n```\n\u002Flink-check [path] [options]\n```\n\n| Argument | Default | Description |\n|----------|---------|-------------|\n| path | current file or `agentic\u002Fcode\u002F` | File or directory to check |\n| --fix | off | Auto-migrate `@agentic\u002Fcode\u002F`, `@src\u002F`, `@docs\u002F`, `@tools\u002F` → `@$AIWG_ROOT\u002F` |\n| --report | off | Output structured JSON report instead of human-readable |\n| --aiwg-only | off | Check only `.aiwg\u002F` refs (skip bare-core and forbidden checks) |\n| --fail-on-warn | off | Treat WARN as FAIL (useful for CI) |\n\n## Reference Classification\n\nEach `@\u003Cpath>` reference is classified per the AIWG linking contract:\n\n| Pattern | Result | Reason |\n|---------|--------|--------|\n| `@$AIWG_ROOT\u002F\u003Cpath>` | PASS | AIWG core file, install-relative |\n| `@$TOKEN\u002F\u003Cpath>` — TOKEN set in env | PASS | Registered corpus token |\n| `@$TOKEN\u002F\u003Cpath>` — TOKEN NOT set | WARN | Unknown token — add to `.env` or export |\n| `@.aiwg\u002F\u003Cpath>` — in Tier 1\u002F2 allowlist | PASS | Normalized project memory |\n| `@.aiwg\u002F\u003Cpath>` — not in allowlist | FAIL | Repo-local only — silently fails in user projects |\n| `@.claude\u002F\u003Cpath>` | FAIL | Deployment target — forbidden in distributable source |\n| `@agentic\u002Fcode\u002F\u003Cpath>` | WARN | Legacy bare ref — use `@$AIWG_ROOT\u002Fagentic\u002Fcode\u002F` |\n| `@src\u002F\u003Cpath>` | WARN | Legacy bare ref — use `@$AIWG_ROOT\u002Fsrc\u002F` |\n| `@docs\u002F\u003Cpath>` | WARN | Legacy bare ref — use `@$AIWG_ROOT\u002Fdocs\u002F` |\n| `@tools\u002F\u003Cpath>` | WARN | Legacy bare ref — use `@$AIWG_ROOT\u002Ftools\u002F` |\n| Relative path within component | PASS | Local ref |\n\n## Process\n\n1. **Resolve target path** — single file, directory, or default `agentic\u002Fcode\u002F`\n2. **Build normalized allowlist** — read all `manifest.json` files under `agentic\u002Fcode\u002F`; collect `memory.creates[*].path`; add Tier 1 entries\n3. **Load environment** — check which env vars are set (for `@$TOKEN\u002F` classification)\n4. **Extract all `@\u003Cpath>` refs** — regex: `@[\\$\\.]?[a-zA-Z0-9_\u002F.\\-]+` in each `.md` file\n5. **Classify each ref** per the table above\n6. **If `--fix`**: rewrite WARN-classified bare legacy refs in-place:\n   - `@agentic\u002Fcode\u002F` → `@$AIWG_ROOT\u002Fagentic\u002Fcode\u002F`\n   - `@src\u002F` → `@$AIWG_ROOT\u002Fsrc\u002F`\n   - `@docs\u002F` → `@$AIWG_ROOT\u002Fdocs\u002F`\n   - `@tools\u002F` → `@$AIWG_ROOT\u002Ftools\u002F`\n7. **Produce report**\n\n## Output Format\n\n### Human-readable (default)\n\n```\nLink Check: agentic\u002Fcode\u002Faddons\u002Faiwg-dev\u002Fskills\u002Fdev-doctor\u002FSKILL.md\n\n  PASS  $AIWG_ROOT\u002Fagentic\u002Fcode\u002Faddons\u002Faiwg-dev\u002Frules\u002Faddon-boundaries.md\n  PASS  .aiwg\u002FAIWG.md (Tier 1, always present)\n  WARN  agentic\u002Fcode\u002Faddons\u002Faiwg-dev\u002Frules\u002Fskill-placement.md\n        → legacy bare ref; use $AIWG_ROOT\u002Fagentic\u002Fcode\u002F... prefix\n  FAIL  .aiwg\u002Fplanning\u002Fissue-driven-ralph-loop-design.md\n        → non-normalized .aiwg\u002F path (repo-local only)\n\nResult: 2 issues (1 WARN, 1 FAIL)\n```\n\n### Corpus summary\n\nWhen run against a directory:\n\n```\nLink Check: agentic\u002Fcode\u002F (corpus-wide)\n\nFiles checked:  247\nReferences found: 1,341\n  PASS:  1,337\n  WARN:      3\n  FAIL:      1\n\nViolations:\n  WARN  agentic\u002Fcode\u002Faddons\u002Fmy-addon\u002Fskills\u002Fmy-skill\u002FSKILL.md:42\n        agentic\u002Fcode\u002F... (bare ref) → add $AIWG_ROOT\u002F prefix\n  FAIL  agentic\u002Fcode\u002Faddons\u002Fmy-addon\u002Fskills\u002Fmy-skill\u002FSKILL.md:89\n        .aiwg\u002Fplanning\u002Fmy-design.md → non-normalized (repo-local only)\n\nOverall: WARN (3 warnings, 1 failure)\nRun with --fix to auto-migrate WARN refs.\n```\n\n### JSON report (`--report`)\n\n```json\n{\n  \"target\": \"agentic\u002Fcode\u002F\",\n  \"timestamp\": \"2026-04-01T04:48:00Z\",\n  \"summary\": { \"files\": 247, \"refs\": 1341, \"pass\": 1337, \"warn\": 3, \"fail\": 1 },\n  \"violations\": [\n    {\n      \"file\": \"agentic\u002Fcode\u002Faddons\u002Fmy-addon\u002Fskills\u002Fmy-skill\u002FSKILL.md\",\n      \"line\": 42,\n      \"ref\": \"agentic\u002Fcode\u002Faddons\u002Faiwg-dev\u002Frules\u002Fskill-placement.md\",\n      \"result\": \"WARN\",\n      \"message\": \"legacy bare ref — add $AIWG_ROOT\u002F prefix\",\n      \"fix\": \"$AIWG_ROOT\u002Fagentic\u002Fcode\u002Faddons\u002Faiwg-dev\u002Frules\u002Fskill-placement.md\"\n    }\n  ]\n}\n```\n\n## Auto-Fix Behavior (`--fix`)\n\nOnly WARN-classified legacy bare refs are auto-fixed. FAIL refs (repo-local `.aiwg\u002F` paths, `.claude\u002F` refs) are **never auto-fixed** — they require a human decision:\n- Remove the reference\n- Replace with a normalized equivalent\n- Or normalize the path in a manifest's `memory.creates`\n\nAfter `--fix`, report how many refs were migrated and re-run the check to confirm the result.\n\n## CI Integration\n\nUse `--report --fail-on-warn` for CI:\n\n```bash\n# Fails if any FAIL or WARN refs found\naiwg link-check agentic\u002Fcode\u002F --report --fail-on-warn > link-report.json\n```\n\nExit codes:\n- `0` — all PASS\n- `1` — WARN found (only if `--fail-on-warn`)\n- `2` — FAIL found\n\n## Examples\n\n### Check a single skill\n\n**User**: \"check links in the dev-doctor skill\"\n\n**Action**: Run link-check on `agentic\u002Fcode\u002Faddons\u002Faiwg-dev\u002Fskills\u002Fdev-doctor\u002FSKILL.md`.\n\n### Full corpus check\n\n**User**: \"any bad links in the corpus?\"\n\n**Action**: Run link-check on `agentic\u002Fcode\u002F` and summarize violations.\n\n### Auto-fix\n\n**User**: \"link check --fix\"\n\n**Action**: Run link-check on `agentic\u002Fcode\u002F`, migrate all bare legacy refs, report how many were fixed.\n\n## References\n\n- @$AIWG_ROOT\u002Fagentic\u002Fcode\u002Faddons\u002Faiwg-dev\u002Frules\u002Faiwg-dir-reference-contract.md — Full linking contract\n- @$AIWG_ROOT\u002Fagentic\u002Fcode\u002Faddons\u002Faiwg-dev\u002Fskills\u002Fvalidate-component\u002FSKILL.md — Per-component validation\n- @$AIWG_ROOT\u002Fagentic\u002Fcode\u002Faddons\u002Faiwg-dev\u002Fskills\u002Fdev-doctor\u002FSKILL.md — Full repo health check\n","# Link Check\n\nYou verify every `@file` reference in AIWG distributable skills and agents against the full linking contract, producing a structured PASS\u002FWARN\u002FFAIL report per reference. You can run against a single file, a directory, or the full `agentic\u002Fcode\u002F` corpus, and optionally auto-migrate legacy bare refs to the `@$AIWG_ROOT\u002F` prefix.\n\n## Triggers\n\n- \"link check\" \u002F \"check links\" → run against current file or directory\n- \"link check agentic\u002Fcode\u002F\" → full corpus scan\n- \"link check --fix\" → auto-migrate legacy bare refs\n- \"any bad links?\" → run link-check on current context\n- \"check for broken @-refs\" → run link-check\n- \"are there any legacy bare refs?\" → run link-check, focus on 4b\n\n## Usage\n\n```\n\u002Flink-check [path] [options]\n```\n\n| Argument | Default | Description |\n|----------|---------|-------------|\n| path | current file or `agentic\u002Fcode\u002F` | File or directory to check |\n| --fix | off | Auto-migrate `@agentic\u002Fcode\u002F`, `@src\u002F`, `@docs\u002F`, `@tools\u002F` → `@$AIWG_ROOT\u002F` |\n| --report | off | Output structured JSON report instead of human-readable |\n| --aiwg-only | off | Check only `.aiwg\u002F` refs (skip bare-core and forbidden checks) |\n| --fail-on-warn | off | Treat WARN as FAIL (useful for CI) |\n\n## Reference Classification\n\nEach `@\u003Cpath>` reference is classified per the AIWG linking contract:\n\n| Pattern | Result | Reason |\n|---------|--------|--------|\n| `@$AIWG_ROOT\u002F\u003Cpath>` | PASS | AIWG core file, install-relative |\n| `@$TOKEN\u002F\u003Cpath>` — TOKEN set in env | PASS | Registered corpus token |\n| `@$TOKEN\u002F\u003Cpath>` — TOKEN NOT set | WARN | Unknown token — add to `.env` or export |\n| `@.aiwg\u002F\u003Cpath>` — in Tier 1\u002F2 allowlist | PASS | Normalized project memory |\n| `@.aiwg\u002F\u003Cpath>` — not in allowlist | FAIL | Repo-local only — silently fails in user projects |\n| `@.claude\u002F\u003Cpath>` | FAIL | Deployment target — forbidden in distributable source |\n| `@agentic\u002Fcode\u002F\u003Cpath>` | WARN | Legacy bare ref — use `@$AIWG_ROOT\u002Fagentic\u002Fcode\u002F` |\n| `@src\u002F\u003Cpath>` | WARN | Legacy bare ref — use `@$AIWG_ROOT\u002Fsrc\u002F` |\n| `@docs\u002F\u003Cpath>` | WARN | Legacy bare ref — use `@$AIWG_ROOT\u002Fdocs\u002F` |\n| `@tools\u002F\u003Cpath>` | WARN | Legacy bare ref — use `@$AIWG_ROOT\u002Ftools\u002F` |\n| Relative path within component | PASS | Local ref |\n\n## Process\n\n1. **Resolve target path** — single file, directory, or default `agentic\u002Fcode\u002F`\n2. **Build normalized allowlist** — read all `manifest.json` files under `agentic\u002Fcode\u002F`; collect `memory.creates[*].path`; add Tier 1 entries\n3. **Load environment** — check which env vars are set (for `@$TOKEN\u002F` classification)\n4. **Extract all `@\u003Cpath>` refs** — regex: `@[\\$\\.]?[a-zA-Z0-9_\u002F.\\-]+` in each `.md` file\n5. **Classify each ref** per the table above\n6. **If `--fix`**: rewrite WARN-classified bare legacy refs in-place:\n   - `@agentic\u002Fcode\u002F` → `@$AIWG_ROOT\u002Fagentic\u002Fcode\u002F`\n   - `@src\u002F` → `@$AIWG_ROOT\u002Fsrc\u002F`\n   - `@docs\u002F` → `@$AIWG_ROOT\u002Fdocs\u002F`\n   - `@tools\u002F` → `@$AIWG_ROOT\u002Ftools\u002F`\n7. **Produce report**\n\n## Output Format\n\n### Human-readable (default)\n\n```\nLink Check: agentic\u002Fcode\u002Faddons\u002Faiwg-dev\u002Fskills\u002Fdev-doctor\u002FSKILL.md\n\n  PASS  $AIWG_ROOT\u002Fagentic\u002Fcode\u002Faddons\u002Faiwg-dev\u002Frules\u002Faddon-boundaries.md\n  PASS  .aiwg\u002FAIWG.md (Tier 1, always present)\n  WARN  agentic\u002Fcode\u002Faddons\u002Faiwg-dev\u002Frules\u002Fskill-placement.md\n        → legacy bare ref; use $AIWG_ROOT\u002Fagentic\u002Fcode\u002F... prefix\n  FAIL  .aiwg\u002Fplanning\u002Fissue-driven-ralph-loop-design.md\n        → non-normalized .aiwg\u002F path (repo-local only)\n\nResult: 2 issues (1 WARN, 1 FAIL)\n```\n\n### Corpus summary\n\nWhen run against a directory:\n\n```\nLink Check: agentic\u002Fcode\u002F (corpus-wide)\n\nFiles checked:  247\nReferences found: 1,341\n  PASS:  1,337\n  WARN:      3\n  FAIL:      1\n\nViolations:\n  WARN  agentic\u002Fcode\u002Faddons\u002Fmy-addon\u002Fskills\u002Fmy-skill\u002FSKILL.md:42\n        agentic\u002Fcode\u002F... (bare ref) → add $AIWG_ROOT\u002F prefix\n  FAIL  agentic\u002Fcode\u002Faddons\u002Fmy-addon\u002Fskills\u002Fmy-skill\u002FSKILL.md:89\n        .aiwg\u002Fplanning\u002Fmy-design.md → non-normalized (repo-local only)\n\nOverall: WARN (3 warnings, 1 failure)\nRun with --fix to auto-migrate WARN refs.\n```\n\n### JSON report (`--report`)\n\n```json\n{\n  \"target\": \"agentic\u002Fcode\u002F\",\n  \"timestamp\": \"2026-04-01T04:48:00Z\",\n  \"summary\": { \"files\": 247, \"refs\": 1341, \"pass\": 1337, \"warn\": 3, \"fail\": 1 },\n  \"violations\": [\n    {\n      \"file\": \"agentic\u002Fcode\u002Faddons\u002Fmy-addon\u002Fskills\u002Fmy-skill\u002FSKILL.md\",\n      \"line\": 42,\n      \"ref\": \"agentic\u002Fcode\u002Faddons\u002Faiwg-dev\u002Frules\u002Fskill-placement.md\",\n      \"result\": \"WARN\",\n      \"message\": \"legacy bare ref — add $AIWG_ROOT\u002F prefix\",\n      \"fix\": \"$AIWG_ROOT\u002Fagentic\u002Fcode\u002Faddons\u002Faiwg-dev\u002Frules\u002Fskill-placement.md\"\n    }\n  ]\n}\n```\n\n## Auto-Fix Behavior (`--fix`)\n\nOnly WARN-classified legacy bare refs are auto-fixed. FAIL refs (repo-local `.aiwg\u002F` paths, `.claude\u002F` refs) are **never auto-fixed** — they require a human decision:\n- Remove the reference\n- Replace with a normalized equivalent\n- Or normalize the path in a manifest's `memory.creates`\n\nAfter `--fix`, report how many refs were migrated and re-run the check to confirm the result.\n\n## CI Integration\n\nUse `--report --fail-on-warn` for CI:\n\n```bash\n# Fails if any FAIL or WARN refs found\naiwg link-check agentic\u002Fcode\u002F --report --fail-on-warn > link-report.json\n```\n\nExit codes:\n- `0` — all PASS\n- `1` — WARN found (only if `--fail-on-warn`)\n- `2` — FAIL found\n\n## Examples\n\n### Check a single skill\n\n**User**: \"check links in the dev-doctor skill\"\n\n**Action**: Run link-check on `agentic\u002Fcode\u002Faddons\u002Faiwg-dev\u002Fskills\u002Fdev-doctor\u002FSKILL.md`.\n\n### Full corpus check\n\n**User**: \"any bad links in the corpus?\"\n\n**Action**: Run link-check on `agentic\u002Fcode\u002F` and summarize violations.\n\n### Auto-fix\n\n**User**: \"link check --fix\"\n\n**Action**: Run link-check on `agentic\u002Fcode\u002F`, migrate all bare legacy refs, report how many were fixed.\n\n## References\n\n- @$AIWG_ROOT\u002Fagentic\u002Fcode\u002Faddons\u002Faiwg-dev\u002Frules\u002Faiwg-dir-reference-contract.md — Full linking contract\n- @$AIWG_ROOT\u002Fagentic\u002Fcode\u002Faddons\u002Faiwg-dev\u002Fskills\u002Fvalidate-component\u002FSKILL.md — Per-component validation\n- @$AIWG_ROOT\u002Fagentic\u002Fcode\u002Faddons\u002Faiwg-dev\u002Fskills\u002Fdev-doctor\u002FSKILL.md — Full repo health check\n",{"name":5,"namespace":42,"platforms":43,"description":7},"aiwg",[44],"all","main","6754967c344ccb087a8de06972f55a41067b291b","agentic\u002Fcode\u002Faddons\u002Faiwg-dev\u002Fskills\u002Flink-check",36,"https:\u002F\u002Fgithub.com\u002Fjmagly\u002Faiwg","https:\u002F\u002Faiwg.io","https:\u002F\u002Fgithub.com\u002Fjmagly","https:\u002F\u002Fintegrolabs.io","ml\u002Fai, industrial automation, safety\u002Fsecurity, ssi\r\n\r\nmagly.net\r\nintegrolabs.io\r\naiwg.io\r\nfortemi.com\r\npagenary.com\r\nbytecask.com","2026-11-12 00:33:10",{"source":8,"skillName":5,"commands":56,"prompt":66,"zipAvailable":67},[57,60,63],{"tool":58,"command":59},"npx","npx skills add jmagly\u002Faiwg --skill link-check",{"tool":61,"command":62},"bunx","bunx skills add jmagly\u002Faiwg --skill link-check",{"tool":64,"command":65},"pnpm","pnpm dlx skills add jmagly\u002Faiwg --skill link-check","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fjmagly\u002Faiwg\u002Fblob\u002Fmain\u002Fagentic\u002Fcode\u002Faddons\u002Faiwg-dev\u002Fskills\u002Flink-check\u002FSKILL.md",true,[],[70,98,122,128,135,149],{"skillNo":71,"name":72,"nameZh":6,"description":73,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":74,"categories":75,"keywords":77,"publishedAt":37},"01M70QA0BSYJ49EES9V4RE8QH1","host-hardening","Read-only system hardening baseline and plan-first host hardening recommendations for SSH, Docker bind addresses, firewall persistence, datastores, exporters and audit retention.","https:\u002F\u002Fgithub.com\u002Fjmagly\u002Faiwg\u002Fblob\u002Fmain\u002Fagentic\u002Fcode\u002Fplugins\u002Fsecurity-engineering\u002Fskills\u002Fhost-hardening\u002FSKILL.md",[76],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},[78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97],"host","host hardening","hardening","read","re","recommendations","remediation","plan","port","verification","Bash","access","only","retention","audit","never","firewall","bind","secrets","request",{"skillNo":99,"name":100,"nameZh":6,"description":101,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":102,"categories":103,"keywords":108,"publishedAt":37},"01M70PNT2Z4HMZPRBTAF6073NN","exposure-analysis","Read-only firewall analysis and effective host exposure reconstruction for Docker published ports, UFW bypass, stale rules, CDN scope, IPv6 asymmetry and external probe allowlists.","https:\u002F\u002Fgithub.com\u002Fjmagly\u002Faiwg\u002Fblob\u002Fmain\u002Fagentic\u002Fcode\u002Fplugins\u002Fforensics\u002Fskills\u002Fexposure-analysis\u002FSKILL.md",[104,107],{"categoryNo":105,"categoryName":106,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000011","运维与部署",{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},[109,110,111,81,112,86,113,114,88,115,78,116,90,117,118,93,94,119,120,121],"exposure analysis","analysis","unknown","credentials","collection","ufw","ports","internet","local","scope","reconstruction","operator","write",{"skillNo":123,"name":72,"nameZh":6,"description":73,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":124,"categories":125,"keywords":127,"publishedAt":37},"01M70P8QATMPKA78E4FT5D2TNA","https:\u002F\u002Fgithub.com\u002Fjmagly\u002Faiwg\u002Fblob\u002Fmain\u002Fagentic\u002Fcode\u002Fframeworks\u002Fsecurity-engineering\u002Fskills\u002Fhost-hardening\u002FSKILL.md",[126],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},[80,78,79,89,81,97,84,83,92,85,86,87,88,96,90,91,82,93,94,95],{"skillNo":129,"name":100,"nameZh":6,"description":101,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":130,"categories":131,"keywords":134,"publishedAt":37},"01M70NMPVJ5H0JH131P60FW4R8","https:\u002F\u002Fgithub.com\u002Fjmagly\u002Faiwg\u002Fblob\u002Fmain\u002Fagentic\u002Fcode\u002Fframeworks\u002Fforensics-complete\u002Fskills\u002Fexposure-analysis\u002FSKILL.md",[132,133],{"categoryNo":105,"categoryName":106,"taxonomyType":21,"taxonomyTypeDesc":22},{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},[110,109,93,112,86,113,88,111,78,116,90,117,118,81,94,115,114,119,120,121],{"skillNo":136,"name":137,"nameZh":6,"description":138,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":139,"categories":140,"keywords":142,"publishedAt":37},"01M6CB4DDR0B4NNCFK7ZK7449H","fixture-skill","Exercise rule delivery.","https:\u002F\u002Fgithub.com\u002Fjmagly\u002Faiwg\u002Fblob\u002Fmain\u002Ftest\u002Ffixtures\u002Frule-delivery\u002Fskills\u002Ffixture-skill\u002FSKILL.md",[141],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},[143,144,145,146,147,148],"fixture skill","fixture","rule","delivery","true","exercise",{"skillNo":150,"name":151,"nameZh":6,"description":152,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":153,"categories":154,"keywords":156,"publishedAt":37},"01M6CB4AVK1W76MFMPP0JP32CJ","pi-local","Pi-local duplicate-precedence fixture.","https:\u002F\u002Fgithub.com\u002Fjmagly\u002Faiwg\u002Fblob\u002Fmain\u002Ftest\u002Ffixtures\u002Fproviders\u002Fpi\u002Fproject\u002F.pi\u002Fskills\u002Fpi-local\u002FSKILL.md",[155],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},[157,158,117,159,144],"pi","pi local","duplicate"]