[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6CANFNP8RHNAPW5Y2NANGGP":3,"skill-same:01M6CANFNP8RHNAPW5Y2NANGGP":73},{"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":42,"linkOnly":43,"markdownContent":44,"markdownBody":45,"frontMatter":46,"refName":50,"commitSha":51,"skillDirectory":52,"forksCount":53,"repositoryHtmlUrl":54,"repositoryHomepageUrl":55,"ownerHtmlUrl":56,"ownerBlogUrl":57,"ownerDescription":58,"updatedAt":59,"install":60,"resources":72},"01M6CANFNP8RHNAPW5Y2NANGGP","pnpm-release-age-gate",null,"Configure pnpm's minimumReleaseAge gate (7-day default, 10-day high-sensitivity) plus blockExoticSubdeps for workspace-scope dep-source enforcement. Includes Corepack detection and lockfile-caveat warning.","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\u002Fplugins\u002Fsecurity-engineering\u002Fskills\u002Fpnpm-release-age-gate\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],"pnpm release age gate","age","gate","release","pnpm","default","source","for","high","warning","scope","sensitivity","enforcement","workspace","configure","DEP","detection","lockfile","2026-11-10 10:12:30",false,"---\nnamespace: aiwg\nname: pnpm-release-age-gate\nplatforms: [all]\ndescription: Configure pnpm's minimumReleaseAge gate (7-day default, 10-day high-sensitivity) plus blockExoticSubdeps for workspace-scope dep-source enforcement. Includes Corepack detection and lockfile-caveat warning.\n---\n\n# pnpm-release-age-gate\n\nUse this skill when a user has chosen pnpm as their package manager\nand wants to apply the same release-age-gate hardening that\n`npm-release-age-gate` provides for npm. pnpm is often the **preferred\nbaseline** for new projects because `minimumReleaseAge` AND\n`blockExoticSubdeps` can be enforced at the workspace level — npm\nhas no equivalent for the latter.\n\n## Triggers\n\n- \"pnpm release age gate\"\n- \"pnpm minimumReleaseAge\"\n- \"pnpm blockExoticSubdeps\"\n- \"pnpm supply chain hardening\"\n- \"configure pnpm 7 day gate\"\n\n## Prerequisites\n\n- pnpm v9.0+ installed (`pnpm --version`)\n- `package.json` exists at repo root\n\nIf pnpm is below v9.0, the skill should refuse to proceed and direct\nthe user to upgrade — `minimumReleaseAge` was introduced in v9.0 and\nolder versions silently ignore it.\n\n## Configuration paths — pick one based on workspace shape\n\n### Option A — Single-package repo (most common)\n\nAdd the gate to `.npmrc` at repo root:\n\n```ini\n# Refuse dependency versions published less than 7 days ago.\n# pnpm interprets the value in MINUTES. 10080 = 7 days; 14400 = 10 days.\n# Defends against newly-published malicious versions.\nminimum-release-age=10080\n\n# Reject git+, tarball-URL, file:, link: sources — these bypass\n# registry signature verification (companion to npm-supply-chain-audit\n# dep-source policy).\nblock-exotic-subdeps=true\n```\n\n### Option B — Multi-package workspace\n\nAdd the gate to `pnpm-workspace.yaml`:\n\n```yaml\npackages:\n  - 'packages\u002F*'\n  - 'apps\u002F*'\n\n# Workspace-scope release-age enforcement.\n# Value is in MINUTES. 10080 = 7 days; 14400 = 10 days.\nminimumReleaseAge: 10080\n\n# Reject non-registry dep sources fleet-wide.\nblockExoticSubdeps: true\n```\n\nWorkspace-scope is the pnpm advantage over npm — every nested package\ninherits the gate without per-package config.\n\n### Option C — Operator-wide via pnpm global config\n\n```bash\npnpm config set minimum-release-age 10080  # minutes — 7 days\npnpm config set block-exotic-subdeps true\n```\n\nUse this only when the entire dev machine should apply the gate\nacross all projects. Per-repo config (Option A or B) is preferred —\nit travels with the repo and works in CI without machine setup.\n\n## Unit conversion reference\n\npnpm uses **minutes** for `minimumReleaseAge`:\n\n| Days | Minutes value |\n|---|---|\n| 1 | `1440` |\n| 7 (recommended default) | `10080` |\n| 10 (high-sensitivity profile) | `14400` |\n| 14 | `20160` |\n| 30 | `43200` |\n\nThis differs from npm (`min-release-age` in **days**) and Bun\n(`install.minimumReleaseAge` in **seconds**). Document the unit\ninline when committing the config so future readers don't misread it.\n\n## Lockfile caveat\n\nThe gate must be active **before** `pnpm install` or `pnpm update`\nresolves dependencies. If the existing `pnpm-lock.yaml` was generated\nwithout the gate, the gate is checked on the NEXT resolution pass —\nnot retroactively against the lockfile.\n\nTo apply the gate retroactively:\n\n```bash\n# Force re-resolution with the gate active\nrm pnpm-lock.yaml\npnpm install\n```\n\nThis is destructive to existing pins and may pull in newer\nintermediate versions. Coordinate with the team before running.\n\n## Corepack detection\n\nCheck whether the project pins a pnpm version via Corepack:\n\n```bash\nnode -p \"require('.\u002Fpackage.json').packageManager\"\n```\n\nOutput like `pnpm@9.15.0` means Corepack will use that exact version\nin CI. The skill should:\n\n1. Confirm the pinned version is ≥ v9.0 (else flag — gate is silently ignored)\n2. Document the pinned version in the audit output\n3. Suggest a Corepack pin if the project doesn't have one yet:\n   ```bash\n   corepack use pnpm@latest\n   # writes packageManager to package.json\n   ```\n\n## Override policy\n\nGenuine emergency overrides:\n\n```bash\n# One-off install bypassing the gate\npnpm install \u003Cpkg>@\u003Cversion> --ignore-min-release-age\n\n# Permanently allow a specific package (rare; record rationale in\n# a SECURITY-OVERRIDE.md or equivalent)\n```\n\nDocument every override with reason + sunset date. Overrides should\nbe reviewed quarterly.\n\n## CI integration\n\nAdd a verification step to the publish\u002Fbuild workflow:\n\n```yaml\n- name: Verify pnpm gate active\n  run: |\n    set -euo pipefail\n    AGE=$(pnpm config get minimum-release-age 2>\u002Fdev\u002Fnull || echo \"0\")\n    EXOTIC=$(pnpm config get block-exotic-subdeps 2>\u002Fdev\u002Fnull || echo \"false\")\n    if [ \"$AGE\" -lt 10080 ] || [ \"$EXOTIC\" != \"true\" ]; then\n      echo \"✗ pnpm gate not configured to baseline (minimumReleaseAge≥10080, blockExoticSubdeps=true)\"\n      exit 1\n    fi\n    echo \"✓ pnpm gate active: $AGE minutes, blockExoticSubdeps=$EXOTIC\"\n```\n\n## What to inspect during review\n\n- `.npmrc` OR `pnpm-workspace.yaml` for `minimumReleaseAge` and `blockExoticSubdeps`\n- `package.json` `packageManager` field for Corepack pin\n- CI workflow has the verification step above\n- `pnpm-lock.yaml` was generated AFTER the gate was committed (timestamp check)\n\n## Output format\n\nWhen auditing an existing pnpm project, produce a structured report\nat `.aiwg\u002Fsecurity\u002Fworking\u002Fpnpm-release-age-audit.md`:\n\n```markdown\n# pnpm Release-Age Gate Audit\n\n**pnpm version**: \u003Cversion>  (Corepack pinned: yes\u002Fno)\n**Workspace shape**: single-package \u002F multi-package\n**Gate active**: yes (10080 min) \u002F yes (custom: \u003Cvalue>) \u002F no\n**blockExoticSubdeps**: true \u002F false \u002F unset\n\n## Findings\n\n### \u003Cseverity> — \u003Cdescription>\n\n- File: \u003Cpath>\n- Issue: \u003Cwhat's wrong>\n- Fix: \u003Cexact change>\n\n## Clean Checks\n\n- ...\n\n## Recommendations\n\n- ...\n```\n\n## See Also\n\n- [`npm-release-age-gate` skill](..\u002Fnpm-release-age-gate\u002FSKILL.md) — npm equivalent\n- [`yarn-release-age-gate` skill](..\u002Fyarn-release-age-gate\u002FSKILL.md) — Yarn equivalent\n- [`bun-release-age-gate` skill](..\u002Fbun-release-age-gate\u002FSKILL.md) — Bun equivalent\n- [`npm-supply-chain-audit` skill](..\u002Fnpm-supply-chain-audit\u002FSKILL.md) — companion audit\n- [`supply-chain-hardening-quickstart` skill](..\u002Fsupply-chain-hardening-quickstart\u002FSKILL.md) — orchestrator\n\n## References\n\n- pnpm `minimumReleaseAge`: \u003Chttps:\u002F\u002Fpnpm.io\u002Fsettings#minimumreleaseage>\n- pnpm `blockExoticSubdeps`: \u003Chttps:\u002F\u002Fpnpm.io\u002Fsettings#blockexoticsubdeps>\n- pnpm workspace settings: \u003Chttps:\u002F\u002Fpnpm.io\u002Fpnpm-workspace_yaml>\n- Corepack: \u003Chttps:\u002F\u002Fgithub.com\u002Fnodejs\u002Fcorepack>\n","# pnpm-release-age-gate\n\nUse this skill when a user has chosen pnpm as their package manager\nand wants to apply the same release-age-gate hardening that\n`npm-release-age-gate` provides for npm. pnpm is often the **preferred\nbaseline** for new projects because `minimumReleaseAge` AND\n`blockExoticSubdeps` can be enforced at the workspace level — npm\nhas no equivalent for the latter.\n\n## Triggers\n\n- \"pnpm release age gate\"\n- \"pnpm minimumReleaseAge\"\n- \"pnpm blockExoticSubdeps\"\n- \"pnpm supply chain hardening\"\n- \"configure pnpm 7 day gate\"\n\n## Prerequisites\n\n- pnpm v9.0+ installed (`pnpm --version`)\n- `package.json` exists at repo root\n\nIf pnpm is below v9.0, the skill should refuse to proceed and direct\nthe user to upgrade — `minimumReleaseAge` was introduced in v9.0 and\nolder versions silently ignore it.\n\n## Configuration paths — pick one based on workspace shape\n\n### Option A — Single-package repo (most common)\n\nAdd the gate to `.npmrc` at repo root:\n\n```ini\n# Refuse dependency versions published less than 7 days ago.\n# pnpm interprets the value in MINUTES. 10080 = 7 days; 14400 = 10 days.\n# Defends against newly-published malicious versions.\nminimum-release-age=10080\n\n# Reject git+, tarball-URL, file:, link: sources — these bypass\n# registry signature verification (companion to npm-supply-chain-audit\n# dep-source policy).\nblock-exotic-subdeps=true\n```\n\n### Option B — Multi-package workspace\n\nAdd the gate to `pnpm-workspace.yaml`:\n\n```yaml\npackages:\n  - 'packages\u002F*'\n  - 'apps\u002F*'\n\n# Workspace-scope release-age enforcement.\n# Value is in MINUTES. 10080 = 7 days; 14400 = 10 days.\nminimumReleaseAge: 10080\n\n# Reject non-registry dep sources fleet-wide.\nblockExoticSubdeps: true\n```\n\nWorkspace-scope is the pnpm advantage over npm — every nested package\ninherits the gate without per-package config.\n\n### Option C — Operator-wide via pnpm global config\n\n```bash\npnpm config set minimum-release-age 10080  # minutes — 7 days\npnpm config set block-exotic-subdeps true\n```\n\nUse this only when the entire dev machine should apply the gate\nacross all projects. Per-repo config (Option A or B) is preferred —\nit travels with the repo and works in CI without machine setup.\n\n## Unit conversion reference\n\npnpm uses **minutes** for `minimumReleaseAge`:\n\n| Days | Minutes value |\n|---|---|\n| 1 | `1440` |\n| 7 (recommended default) | `10080` |\n| 10 (high-sensitivity profile) | `14400` |\n| 14 | `20160` |\n| 30 | `43200` |\n\nThis differs from npm (`min-release-age` in **days**) and Bun\n(`install.minimumReleaseAge` in **seconds**). Document the unit\ninline when committing the config so future readers don't misread it.\n\n## Lockfile caveat\n\nThe gate must be active **before** `pnpm install` or `pnpm update`\nresolves dependencies. If the existing `pnpm-lock.yaml` was generated\nwithout the gate, the gate is checked on the NEXT resolution pass —\nnot retroactively against the lockfile.\n\nTo apply the gate retroactively:\n\n```bash\n# Force re-resolution with the gate active\nrm pnpm-lock.yaml\npnpm install\n```\n\nThis is destructive to existing pins and may pull in newer\nintermediate versions. Coordinate with the team before running.\n\n## Corepack detection\n\nCheck whether the project pins a pnpm version via Corepack:\n\n```bash\nnode -p \"require('.\u002Fpackage.json').packageManager\"\n```\n\nOutput like `pnpm@9.15.0` means Corepack will use that exact version\nin CI. The skill should:\n\n1. Confirm the pinned version is ≥ v9.0 (else flag — gate is silently ignored)\n2. Document the pinned version in the audit output\n3. Suggest a Corepack pin if the project doesn't have one yet:\n   ```bash\n   corepack use pnpm@latest\n   # writes packageManager to package.json\n   ```\n\n## Override policy\n\nGenuine emergency overrides:\n\n```bash\n# One-off install bypassing the gate\npnpm install \u003Cpkg>@\u003Cversion> --ignore-min-release-age\n\n# Permanently allow a specific package (rare; record rationale in\n# a SECURITY-OVERRIDE.md or equivalent)\n```\n\nDocument every override with reason + sunset date. Overrides should\nbe reviewed quarterly.\n\n## CI integration\n\nAdd a verification step to the publish\u002Fbuild workflow:\n\n```yaml\n- name: Verify pnpm gate active\n  run: |\n    set -euo pipefail\n    AGE=$(pnpm config get minimum-release-age 2>\u002Fdev\u002Fnull || echo \"0\")\n    EXOTIC=$(pnpm config get block-exotic-subdeps 2>\u002Fdev\u002Fnull || echo \"false\")\n    if [ \"$AGE\" -lt 10080 ] || [ \"$EXOTIC\" != \"true\" ]; then\n      echo \"✗ pnpm gate not configured to baseline (minimumReleaseAge≥10080, blockExoticSubdeps=true)\"\n      exit 1\n    fi\n    echo \"✓ pnpm gate active: $AGE minutes, blockExoticSubdeps=$EXOTIC\"\n```\n\n## What to inspect during review\n\n- `.npmrc` OR `pnpm-workspace.yaml` for `minimumReleaseAge` and `blockExoticSubdeps`\n- `package.json` `packageManager` field for Corepack pin\n- CI workflow has the verification step above\n- `pnpm-lock.yaml` was generated AFTER the gate was committed (timestamp check)\n\n## Output format\n\nWhen auditing an existing pnpm project, produce a structured report\nat `.aiwg\u002Fsecurity\u002Fworking\u002Fpnpm-release-age-audit.md`:\n\n```markdown\n# pnpm Release-Age Gate Audit\n\n**pnpm version**: \u003Cversion>  (Corepack pinned: yes\u002Fno)\n**Workspace shape**: single-package \u002F multi-package\n**Gate active**: yes (10080 min) \u002F yes (custom: \u003Cvalue>) \u002F no\n**blockExoticSubdeps**: true \u002F false \u002F unset\n\n## Findings\n\n### \u003Cseverity> — \u003Cdescription>\n\n- File: \u003Cpath>\n- Issue: \u003Cwhat's wrong>\n- Fix: \u003Cexact change>\n\n## Clean Checks\n\n- ...\n\n## Recommendations\n\n- ...\n```\n\n## See Also\n\n- [`npm-release-age-gate` skill](..\u002Fnpm-release-age-gate\u002FSKILL.md) — npm equivalent\n- [`yarn-release-age-gate` skill](..\u002Fyarn-release-age-gate\u002FSKILL.md) — Yarn equivalent\n- [`bun-release-age-gate` skill](..\u002Fbun-release-age-gate\u002FSKILL.md) — Bun equivalent\n- [`npm-supply-chain-audit` skill](..\u002Fnpm-supply-chain-audit\u002FSKILL.md) — companion audit\n- [`supply-chain-hardening-quickstart` skill](..\u002Fsupply-chain-hardening-quickstart\u002FSKILL.md) — orchestrator\n\n## References\n\n- pnpm `minimumReleaseAge`: \u003Chttps:\u002F\u002Fpnpm.io\u002Fsettings#minimumreleaseage>\n- pnpm `blockExoticSubdeps`: \u003Chttps:\u002F\u002Fpnpm.io\u002Fsettings#blockexoticsubdeps>\n- pnpm workspace settings: \u003Chttps:\u002F\u002Fpnpm.io\u002Fpnpm-workspace_yaml>\n- Corepack: \u003Chttps:\u002F\u002Fgithub.com\u002Fnodejs\u002Fcorepack>\n",{"name":5,"namespace":47,"platforms":48,"description":7},"aiwg",[49],"all","main","6754967c344ccb087a8de06972f55a41067b291b","agentic\u002Fcode\u002Fplugins\u002Fsecurity-engineering\u002Fskills\u002Fpnpm-release-age-gate",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":61,"prompt":70,"zipAvailable":71},[62,65,68],{"tool":63,"command":64},"npx","npx skills add jmagly\u002Faiwg --skill pnpm-release-age-gate",{"tool":66,"command":67},"bunx","bunx skills add jmagly\u002Faiwg --skill pnpm-release-age-gate",{"tool":28,"command":69},"pnpm dlx skills add jmagly\u002Faiwg --skill pnpm-release-age-gate","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fjmagly\u002Faiwg\u002Fblob\u002Fmain\u002Fagentic\u002Fcode\u002Fplugins\u002Fsecurity-engineering\u002Fskills\u002Fpnpm-release-age-gate\u002FSKILL.md",true,[],[74,102,125,131,138,152],{"skillNo":75,"name":76,"nameZh":6,"description":77,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":78,"categories":79,"keywords":81,"publishedAt":42},"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",[80],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},[82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101],"host","host hardening","hardening","read","re","recommendations","remediation","plan","port","verification","Bash","access","only","retention","audit","never","firewall","bind","secrets","request",{"skillNo":103,"name":104,"nameZh":6,"description":105,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":106,"categories":107,"keywords":112,"publishedAt":42},"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",[108,111],{"categoryNo":109,"categoryName":110,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000011","运维与部署",{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},[113,114,115,85,116,90,117,118,92,119,82,120,94,121,34,97,98,122,123,124],"exposure analysis","analysis","unknown","credentials","collection","ufw","ports","internet","local","reconstruction","operator","write",{"skillNo":126,"name":76,"nameZh":6,"description":77,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":127,"categories":128,"keywords":130,"publishedAt":42},"01M70P8QATMPKA78E4FT5D2TNA","https:\u002F\u002Fgithub.com\u002Fjmagly\u002Faiwg\u002Fblob\u002Fmain\u002Fagentic\u002Fcode\u002Fframeworks\u002Fsecurity-engineering\u002Fskills\u002Fhost-hardening\u002FSKILL.md",[129],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},[84,82,83,93,85,101,88,87,96,89,90,91,92,100,94,95,86,97,98,99],{"skillNo":132,"name":104,"nameZh":6,"description":105,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":133,"categories":134,"keywords":137,"publishedAt":42},"01M70NMPVJ5H0JH131P60FW4R8","https:\u002F\u002Fgithub.com\u002Fjmagly\u002Faiwg\u002Fblob\u002Fmain\u002Fagentic\u002Fcode\u002Fframeworks\u002Fforensics-complete\u002Fskills\u002Fexposure-analysis\u002FSKILL.md",[135,136],{"categoryNo":109,"categoryName":110,"taxonomyType":21,"taxonomyTypeDesc":22},{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},[114,113,97,116,90,117,92,115,82,120,94,121,34,85,98,119,118,122,123,124],{"skillNo":139,"name":140,"nameZh":6,"description":141,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":142,"categories":143,"keywords":145,"publishedAt":42},"01M6CB4DDR0B4NNCFK7ZK7449H","fixture-skill","Exercise rule delivery.","https:\u002F\u002Fgithub.com\u002Fjmagly\u002Faiwg\u002Fblob\u002Fmain\u002Ftest\u002Ffixtures\u002Frule-delivery\u002Fskills\u002Ffixture-skill\u002FSKILL.md",[144],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},[146,147,148,149,150,151],"fixture skill","fixture","rule","delivery","true","exercise",{"skillNo":153,"name":154,"nameZh":6,"description":155,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":156,"categories":157,"keywords":159,"publishedAt":42},"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",[158],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},[160,161,121,162,147],"pi","pi local","duplicate"]