{"id":"cmuxiru560ykkad07tv5m4ke6","slug":"pufferlib","publicId":"49f18a7f-7777-4a86-9ea8-7c4a08499e53","name":"pufferlib","description":"Version-aware guidance for PufferLib reinforcement-learning environments, vectorization, policies, PuffeRL training, evaluation, and safe checkpoint review. Covers the native 5.0 build and environment API, published 3.0.0 Gymnasium/PettingZoo adaptation, and a pinned historical 4.0 profile.","version":"1.4","author":"k-dense-ai","license":"MIT","compatibility":"Bundled CLIs require Python 3.10+ (standard library only). PufferLib 5.0 requires a native C/CUDA toolchain; CPU builds support evaluation, not training. PyPI 3.0.0 declares Python >=3.9 and needs a native source build with NumPy <2 and Gymnasium <=0.29.1. Native dependencies and network access are needed for installation; bundled checks require neither.","status":"completed","overallGrade":"B","scannerVersion":11,"fileCount":16,"hasSkillMd":true,"hasScripts":true,"hasReferences":true,"hasEvals":false,"hasAssets":false,"sourceType":"github","sourceUrl":"https://github.com/k-dense-ai/scientific-agent-skills/tree/main/skills/pufferlib","createdAt":"2026-10-07T02:59:55.756Z","completedAt":"2026-10-07T02:59:55.754Z","visibility":"public","publishedAt":"2026-09-10T21:05:52.406Z","category":"","frameworks":[],"badgeStatus":"conditional","downloadCount":0,"verdictRationale":{"summary":"Skill has warnings: 1 warning in security or structure checks.","verdict":"warn","scanners":[{"source":"vettd","weight":1,"verdict":"warn"},{"source":"cisco","weight":0.8,"verdict":"pass"}],"consensus":"warn","warnTriggers":["References external URL — review for indirect prompt injection risk"],"policyVersion":"consensus-v1","hardFailTriggers":[]},"verdictPolicyVersion":"consensus-v1","skillId":"cmtw0od8pbba6ad07im0xj0kx","findings":[{"id":"cmuxiru560ykmad075lf38b1d","source":"vettd","category":"security","label":"References external URL — review for indirect prompt injection risk","detail":"External URL(s) detected in SKILL.md — referenced content can change after audit","severity":"medium","ruleId":"VTD-0088","owaspLlmCategory":null,"intent":null,"chainId":null,"fingerprint":"42638a8b7e9fc5df27449992eaebc724","filepath":"SKILL.md"}],"scannerRuns":[{"source":"cisco","status":"success","verdict":null,"grade":"A","findingCount":0,"criticalCount":0,"highCount":0},{"source":"vettd","status":"success","verdict":null,"grade":"B","findingCount":1,"criticalCount":0,"highCount":0}],"user":{"name":"Kris Mondlane","image":"https://avatars.githubusercontent.com/u/237055?v=4"},"repository":{"owner":"k-dense-ai","name":"scientific-agent-skills"},"freshness":{"status":"verified_unchanged","reason":null,"retryable":false,"renamedTo":null,"lastCheckedAt":"2026-10-21T19:50:08.370Z","lastVerifiedAt":"2026-10-21T19:50:08.370Z","lastChangeDetectedAt":"2026-10-06T19:21:06.560Z","scannedHash":"e615784aed12baad6dc22f582f22e95f5961024a","latestUpstreamHash":"e615784aed12baad6dc22f582f22e95f5961024a","nextCheckDueAt":"2026-10-22T21:28:18.087Z"},"signalCategories":[{"category":"safety","label":"Safety","form":"graded","verdict":null,"rows":[]},{"category":"reliability","label":"Reliability & Quality","form":"graded","verdict":null,"rows":[]},{"category":"performance","label":"Performance","form":"measured","verdict":{"form":"measured","magnitudes":[{"ruleId":"performance/static-context-tokens","label":"Static context tokens","value":3744,"unit":null,"method":"tiktoken/cl100k_base/skill-md-body"}]},"rows":[{"origin":"signal","id":"cmuxis0md0z3cad0755j5w1yz","subjectType":"skill_audit","subjectId":"cmuxiru560ykkad07tv5m4ke6","relatedType":"","relatedId":"","dataCategory":"performance","sourceClass":"scan","source":"vettd","ruleId":"performance/progressive-disclosure","severity":null,"label":"Progressive disclosure","detail":null,"valueNum":null,"valueText":"present","unit":null,"method":null,"derivation":"read","confidence":null,"sampleSize":null,"synthetic":false,"firstParty":true,"observedAt":"2026-10-07T02:59:50.000Z","payload":null},{"origin":"signal","id":"cmuxiruro0yorad07zkxfjkdq","subjectType":"skill_audit","subjectId":"cmuxiru560ykkad07tv5m4ke6","relatedType":"","relatedId":"","dataCategory":"performance","sourceClass":"scan","source":"vettd","ruleId":"performance/static-context-tokens","severity":null,"label":"Static context tokens","detail":null,"valueNum":3744,"valueText":null,"unit":null,"method":"tiktoken/cl100k_base/skill-md-body","derivation":null,"confidence":null,"sampleSize":null,"synthetic":false,"firstParty":true,"observedAt":"2026-10-07T02:59:50.000Z","payload":null}]},{"category":"cost","label":"Cost","form":"measured","verdict":null,"rows":[]},{"category":"compatibility","label":"Compatibility","form":"unjudged","verdict":{"form":"unjudged"},"rows":[{"origin":"signal","id":"cmuxis0n60z3xad07gsd6jrv2","subjectType":"skill_audit","subjectId":"cmuxiru560ykkad07tv5m4ke6","relatedType":"","relatedId":"","dataCategory":"compatibility","sourceClass":"scan","source":"vettd","ruleId":"compatibility/cli-help","severity":null,"label":"CLI help","detail":null,"valueNum":null,"valueText":"present","unit":null,"method":null,"derivation":"read","confidence":null,"sampleSize":null,"synthetic":false,"firstParty":true,"observedAt":"2026-10-07T02:59:50.000Z","payload":null},{"origin":"signal","id":"cmuxiruzi0ypwad07ndmikqxp","subjectType":"skill_audit","subjectId":"cmuxiru560ykkad07tv5m4ke6","relatedType":"","relatedId":"","dataCategory":"compatibility","sourceClass":"scan","source":"vettd","ruleId":"compatibility/declared-environment-assumptions","severity":null,"label":"Declared environment assumptions","detail":null,"valueNum":null,"valueText":"Bundled CLIs require Python 3.10+ (standard library only). PufferLib 5.0 requires a native C/CUDA toolchain; CPU builds support evaluation, not training. PyPI 3.0.0 declares Python >=3.9 and needs a native source build with NumPy <2 and Gymnasium <=0.29.1. Native dependencies and network access are needed for installation; bundled checks require neither.","unit":null,"method":null,"derivation":"read","confidence":null,"sampleSize":null,"synthetic":false,"firstParty":true,"observedAt":"2026-10-07T02:59:50.000Z","payload":null},{"origin":"signal","id":"cmuxiry550yygad07lq7iee6o","subjectType":"skill_audit","subjectId":"cmuxiru560ykkad07tv5m4ke6","relatedType":"","relatedId":"","dataCategory":"compatibility","sourceClass":"scan","source":"vettd","ruleId":"compatibility/declared-name","severity":null,"label":"Declared skill name","detail":null,"valueNum":null,"valueText":"pufferlib","unit":null,"method":null,"derivation":"read","confidence":null,"sampleSize":null,"synthetic":false,"firstParty":true,"observedAt":"2026-10-07T02:59:50.000Z","payload":null},{"origin":"signal","id":"cmuxirvov0yt1ad078olfq5qs","subjectType":"skill_audit","subjectId":"cmuxiru560ykkad07tv5m4ke6","relatedType":"declared_tool","relatedId":"Bash","dataCategory":"compatibility","sourceClass":"scan","source":"vettd","ruleId":"compatibility/declared-required-tools","severity":null,"label":"Declared required tool","detail":null,"valueNum":null,"valueText":"Bash","unit":null,"method":null,"derivation":"read","confidence":null,"sampleSize":null,"synthetic":false,"firstParty":true,"observedAt":"2026-10-07T02:59:50.000Z","payload":null},{"origin":"signal","id":"cmuxirw2q0ytxad07fsy4t9qj","subjectType":"skill_audit","subjectId":"cmuxiru560ykkad07tv5m4ke6","relatedType":"declared_tool","relatedId":"Grep","dataCategory":"compatibility","sourceClass":"scan","source":"vettd","ruleId":"compatibility/declared-required-tools","severity":null,"label":"Declared required tool","detail":null,"valueNum":null,"valueText":"Grep","unit":null,"method":null,"derivation":"read","confidence":null,"sampleSize":null,"synthetic":false,"firstParty":true,"observedAt":"2026-10-07T02:59:50.000Z","payload":null},{"origin":"signal","id":"cmuxirw8h0yuvad07apzbs2s7","subjectType":"skill_audit","subjectId":"cmuxiru560ykkad07tv5m4ke6","relatedType":"declared_tool","relatedId":"Python","dataCategory":"compatibility","sourceClass":"scan","source":"vettd","ruleId":"compatibility/declared-required-tools","severity":null,"label":"Declared required tool","detail":null,"valueNum":null,"valueText":"Python","unit":null,"method":null,"derivation":"read","confidence":null,"sampleSize":null,"synthetic":false,"firstParty":true,"observedAt":"2026-10-07T02:59:50.000Z","payload":null},{"origin":"signal","id":"cmuxirx7u0yw1ad0758y3qlrq","subjectType":"skill_audit","subjectId":"cmuxiru560ykkad07tv5m4ke6","relatedType":"declared_tool","relatedId":"Read","dataCategory":"compatibility","sourceClass":"scan","source":"vettd","ruleId":"compatibility/declared-required-tools","severity":null,"label":"Declared required tool","detail":null,"valueNum":null,"valueText":"Read","unit":null,"method":null,"derivation":"read","confidence":null,"sampleSize":null,"synthetic":false,"firstParty":true,"observedAt":"2026-10-07T02:59:50.000Z","payload":null},{"origin":"signal","id":"cmuxis0pz0z4gad07l9hr256w","subjectType":"skill_audit","subjectId":"cmuxiru560ykkad07tv5m4ke6","relatedType":"","relatedId":"","dataCategory":"compatibility","sourceClass":"scan","source":"vettd","ruleId":"compatibility/structured-output","severity":null,"label":"Structured output","detail":null,"valueNum":null,"valueText":"present","unit":null,"method":null,"derivation":"read","confidence":null,"sampleSize":null,"synthetic":false,"firstParty":true,"observedAt":"2026-10-07T02:59:50.000Z","payload":null},{"origin":"signal","id":"cmuxis0uk0z4tad07oudpnvey","subjectType":"skill_audit","subjectId":"cmuxiru560ykkad07tv5m4ke6","relatedType":"","relatedId":"","dataCategory":"compatibility","sourceClass":"scan","source":"vettd","ruleId":"compatibility/unpinned-dependencies","severity":"low","label":"Unpinned dependency versions","detail":"Pin dependency versions for reproducibility (e.g., >=4.12,<5 instead of >=4.12)","valueNum":null,"valueText":null,"unit":null,"method":null,"derivation":null,"confidence":null,"sampleSize":null,"synthetic":false,"firstParty":true,"observedAt":"2026-10-07T02:59:50.000Z","payload":null}]},{"category":"sentiment","label":"Popularity","form":"unjudged","verdict":null,"rows":[]},{"category":"characteristics","label":"Characteristics","form":"unjudged","verdict":null,"rows":[]}],"signalCount":31,"publisherSupplied":["name","description","author","version","license"]}