[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M72TVC2EVBHQHCX96VTTYKB8":3,"skill-same:01M72TVC2EVBHQHCX96VTTYKB8":51},{"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":18,"publishedAt":19,"linkOnly":20,"markdownContent":21,"markdownBody":22,"frontMatter":23,"refName":24,"commitSha":25,"skillDirectory":26,"forksCount":14,"repositoryHtmlUrl":27,"repositoryHomepageUrl":27,"ownerHtmlUrl":28,"ownerBlogUrl":6,"ownerDescription":29,"updatedAt":30,"install":31,"resources":44},"01M72TVC2EVBHQHCX96VTTYKB8","rigor-evaluator",null,"Use when you need a quick heuristic rigor score (10 criteria, 0-2 each) for the features in a .gitcore\u002Ffeatures.json file, to decide which features are ready to ship.","iberi22\u002Fskills","iberi22","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F10615454?v=4","01M72SQ2NXAA3GW0FSH053A5ES","Brahyan Belalcazar","01M72SQ2PYCH0SSA1K61NGEHDV",0,"MIT","https:\u002F\u002Fgithub.com\u002Fiberi22\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Ftools\u002Frigor-evaluator\u002FSKILL.md",[],[],"2026-11-10 22:39:42",false,"---\nname: rigor-evaluator\ndescription: Use when you need a quick heuristic rigor score (10 criteria, 0-2 each) for the features in a .gitcore\u002Ffeatures.json file, to decide which features are ready to ship.\nlicense: MIT\n---\n\n# rigor-evaluator\n\nNode CLI that scores every feature in a `features.json` against 10 rigor\ncriteria (0-2 each, max 20) and writes a JSON report.\n\n## Criteria\n\n1. Completitud SRS (IEEE 830 sections)\n2. Contrato de datos (types, endpoints)\n3. Acceptance criteria (happy, edge, error)\n4. Escenarios de falla\n5. Trazabilidad (requirements to code\u002Ftests)\n6. Dependencias mesh\n7. Cobertura de permisos (**hard: must be 2**)\n8. Modelo de amenaza (**hard: must be 2**)\n9. Offline\u002Fparticion\n10. Cobertura de tests\n\n## PASS rule\n\nA feature passes when all hold:\n\n- total >= 14 of 20\n- criterion 7 = 2 and criterion 8 = 2\n- no criterion scores 0\n\n## Invocation\n\n```sh\nnode scripts\u002Frigor-eval.js\nnode scripts\u002Frigor-eval.js --features .\u002F.gitcore\u002Ffeatures.json --output .\u002Frigor-report.json\nnode scripts\u002Frigor-eval.js --help\n```\n\nFlags (only these exist):\n\n- `--features \u003Cpath>`: input. Default `.gitcore\u002Ffeatures.json`, relative to the cwd.\n- `--output \u003Cpath>`: report. Default `rigor-report.json`, relative to the cwd.\n- `--help`, `-h`: print usage and exit 0 (read-only).\n\nExits 1 if the input file is missing, is not valid JSON, or has no `features` array.\n\n## Input\n\nA JSON object with a `features` array. Fields read per feature: `id`, `name`,\n`module`, `stage`, `status`, `maturity`, `implementation_percentage`, `gaps[]`,\n`dependencies[]`. Optional top-level `protocol` is echoed to stdout.\n\n## Output\n\nWrites JSON with `schema_version`, `generated_at`, `summary` (features passed\u002Ffailed,\npass rate, overall score), `pass_conditions`, `criteria_definitions`, and `features[]`.\nEach feature entry has `total_score`, `passed`, `errors[]`, and per-criterion `criteria[]`.\n\nStdout prints one line per feature (`Score: x\u002F20 | PASS: SI|NO`) and a global summary.\n\n## Limits\n\n- Scores are **heuristics** derived from metadata fields (stage, module, percentage,\n  gap text, dependency count, and feature id prefix). It does not read SRS documents,\n  contracts, or test files, so it cannot verify them.\n- Some rules are hard-coded to specific ids (`RF-001`, `RF-002`, `RF-004`, `RF-005`)\n  and to module names (`authz`, `governance`, `identity`, `protocol`, `sync`,\n  `presence`, `mesh`, `tests`). Features with other naming get the generic branch.\n- A feature with `stage` `specced` and an `RF-` id receives fixed scores. Treat\n  the output as a triage signal, not an audit.\n- Overwrites the output file without asking.\n","# rigor-evaluator\n\nNode CLI that scores every feature in a `features.json` against 10 rigor\ncriteria (0-2 each, max 20) and writes a JSON report.\n\n## Criteria\n\n1. Completitud SRS (IEEE 830 sections)\n2. Contrato de datos (types, endpoints)\n3. Acceptance criteria (happy, edge, error)\n4. Escenarios de falla\n5. Trazabilidad (requirements to code\u002Ftests)\n6. Dependencias mesh\n7. Cobertura de permisos (**hard: must be 2**)\n8. Modelo de amenaza (**hard: must be 2**)\n9. Offline\u002Fparticion\n10. Cobertura de tests\n\n## PASS rule\n\nA feature passes when all hold:\n\n- total >= 14 of 20\n- criterion 7 = 2 and criterion 8 = 2\n- no criterion scores 0\n\n## Invocation\n\n```sh\nnode scripts\u002Frigor-eval.js\nnode scripts\u002Frigor-eval.js --features .\u002F.gitcore\u002Ffeatures.json --output .\u002Frigor-report.json\nnode scripts\u002Frigor-eval.js --help\n```\n\nFlags (only these exist):\n\n- `--features \u003Cpath>`: input. Default `.gitcore\u002Ffeatures.json`, relative to the cwd.\n- `--output \u003Cpath>`: report. Default `rigor-report.json`, relative to the cwd.\n- `--help`, `-h`: print usage and exit 0 (read-only).\n\nExits 1 if the input file is missing, is not valid JSON, or has no `features` array.\n\n## Input\n\nA JSON object with a `features` array. Fields read per feature: `id`, `name`,\n`module`, `stage`, `status`, `maturity`, `implementation_percentage`, `gaps[]`,\n`dependencies[]`. Optional top-level `protocol` is echoed to stdout.\n\n## Output\n\nWrites JSON with `schema_version`, `generated_at`, `summary` (features passed\u002Ffailed,\npass rate, overall score), `pass_conditions`, `criteria_definitions`, and `features[]`.\nEach feature entry has `total_score`, `passed`, `errors[]`, and per-criterion `criteria[]`.\n\nStdout prints one line per feature (`Score: x\u002F20 | PASS: SI|NO`) and a global summary.\n\n## Limits\n\n- Scores are **heuristics** derived from metadata fields (stage, module, percentage,\n  gap text, dependency count, and feature id prefix). It does not read SRS documents,\n  contracts, or test files, so it cannot verify them.\n- Some rules are hard-coded to specific ids (`RF-001`, `RF-002`, `RF-004`, `RF-005`)\n  and to module names (`authz`, `governance`, `identity`, `protocol`, `sync`,\n  `presence`, `mesh`, `tests`). Features with other naming get the generic branch.\n- A feature with `stage` `specced` and an `RF-` id receives fixed scores. Treat\n  the output as a triage signal, not an audit.\n- Overwrites the output file without asking.\n",{"name":5,"license":15,"description":7},"main","688810f2886d212632acf81e532b24e483dd8b98","skills\u002Ftools\u002Frigor-evaluator","https:\u002F\u002Fgithub.com\u002Fiberi22\u002Fskills","https:\u002F\u002Fgithub.com\u002Fiberi22","Senior WEB Full-Stack","2026-10-12 02:46:21",{"source":8,"skillName":5,"commands":32,"prompt":42,"zipAvailable":43},[33,36,39],{"tool":34,"command":35},"npx","npx skills add iberi22\u002Fskills --skill rigor-evaluator",{"tool":37,"command":38},"bunx","bunx skills add iberi22\u002Fskills --skill rigor-evaluator",{"tool":40,"command":41},"pnpm","pnpm dlx skills add iberi22\u002Fskills --skill rigor-evaluator","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fiberi22\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Ftools\u002Frigor-evaluator\u002FSKILL.md",true,[45],{"path":46,"resourceType":47,"resourceTypeDesc":48,"sizeBytes":49,"sourceHtmlUrl":50},"scripts\u002Frigor-eval.js","SCRIPT","脚本",16484,"https:\u002F\u002Fgithub.com\u002Fiberi22\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Ftools\u002Frigor-evaluator\u002Fscripts\u002Frigor-eval.js",[52,58,65,71,77,83],{"skillNo":53,"name":54,"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":55,"categories":56,"keywords":57,"publishedAt":19},"01M72TWQEQD46ZC9TRBAABF78P","web-design-guidelines","https:\u002F\u002Fgithub.com\u002Fiberi22\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Fweb\u002Fweb-design-guidelines\u002FSKILL.md",[],[],{"skillNo":59,"name":60,"nameZh":6,"description":61,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":62,"categories":63,"keywords":64,"publishedAt":19},"01M72TWMQFTYD08DGXVAXRPPEB","blocked-page-recovery","Use when a fetch fails: 403\u002F429, paywall, WAF, bot wall. Recovers the page via archives and provenance-checked fallbacks.","https:\u002F\u002Fgithub.com\u002Fiberi22\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Fweb\u002Fblocked-page-recovery\u002FSKILL.md",[],[],{"skillNo":66,"name":67,"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":68,"categories":69,"keywords":70,"publishedAt":19},"01M72TVQMS3HCTX18C8T97WTQQ","studio-coach","https:\u002F\u002Fgithub.com\u002Fiberi22\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Ftools\u002Fstudio-coach\u002FSKILL.md",[],[],{"skillNo":72,"name":73,"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":74,"categories":75,"keywords":76,"publishedAt":19},"01M72TVNA2PR9RZW0ZAXYP1G6J","src-generator","https:\u002F\u002Fgithub.com\u002Fiberi22\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Ftools\u002Fsrc-generator\u002FSKILL.md",[],[],{"skillNo":78,"name":79,"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":80,"categories":81,"keywords":82,"publishedAt":19},"01M72TVEJHHB6SAT3R3TY9MJKS","sqlite-pro","https:\u002F\u002Fgithub.com\u002Fiberi22\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Ftools\u002Fsqlite-pro\u002FSKILL.md",[],[],{"skillNo":84,"name":85,"nameZh":6,"description":86,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":87,"sourceHtmlUrl":88,"categories":89,"keywords":90,"publishedAt":19},"01M72TV7M21NMB4P4YBVGRDVNB","remote-displays","Discover, cast to, and control screens on the LAN.","https:\u002F\u002Fgithub.com\u002Fiberi22\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Ftools\u002Fremote-displays\u002FLICENSE","https:\u002F\u002Fgithub.com\u002Fiberi22\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Ftools\u002Fremote-displays\u002FSKILL.md",[],[]]