[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6D1CSPX6T1V9ZP60TNTDMS4":3,"skill-same:01M6D1CSPX6T1V9ZP60TNTDMS4":164},{"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":51,"commitSha":52,"skillDirectory":53,"forksCount":54,"repositoryHtmlUrl":55,"repositoryHomepageUrl":6,"ownerHtmlUrl":56,"ownerBlogUrl":6,"ownerDescription":6,"updatedAt":57,"install":58,"resources":71},"01M6D1CSPX6T1V9ZP60TNTDMS4","eval-skill",null,"Evaluate a Codex skill by running it against a test scenario and checking behavior against its own Completion Criteria and Critical Rules. Use for requests like: \"eval skill commit\", \"eval skill commit --scenario 'commit my changes'\", and \"eval skill commit --runs 3\". Trigger phrases: eval skill; test skill; review skill behavior; check skill; debug skill.","lrozanski\u002Fagent-skills-tui","lrozanski","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F3831019?v=4","01M6D1CNE6TBEMY10G3HJEWTN1","Lech Różański","01M6D1CNHRE409K11TFBFY2KP1",0,"Apache-2.0","https:\u002F\u002Fgithub.com\u002Flrozanski\u002Fagent-skills-tui\u002Fblob\u002Fmaster\u002F.agents\u002Fskills\u002Feval-skill\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],"eval skill","eval","node","scenario","review skill","codex skill","skill commit","use","behavior","read","cli","Rules","json","Bash","debug","Test Skill","commit","codex cli","test","codex","2026-11-10 10:12:30",false,"---\nname: eval-skill\ndescription: >-\n  Evaluate a Codex skill by running it against a test scenario and checking\n  behavior against its own Completion Criteria and Critical Rules. Use for\n  requests like: \"eval skill commit\", \"eval skill commit --scenario 'commit my\n  changes'\", and \"eval skill commit --runs 3\". Trigger phrases: eval skill;\n  test skill; review skill behavior; check skill; debug skill.\nlicense: Apache-2.0\ncompatibility: Requires the Codex CLI with `codex exec --json` and Node 24+.\nallowed-tools: Read Bash(node:*) Bash(codex exec:*) Bash(bash .agents\u002Fskills\u002Feval-skill\u002Fscripts\u002F*:*)\n---\n\n# Eval Skill\n\n## Purpose\n\nEvaluate a Codex skill by running a realistic test scenario in a non-interactive\nCodex subprocess, normalizing the resulting JSONL event stream, and judging the\nobserved behavior against the skill's own specification.\n\n## Inputs\n\nExpected invocation pattern in the user message:\n\n`eval skill \u003Cskill-name> [--scenario \"\u003Cuser message>\"] [--runs N] [--eval-profile \u003Cstandard|runtime-full>]`\n\nParameters:\n\n- `skill-name` (required): the target skill to evaluate\n- `--scenario` (optional): the exact user request to test\n- `--runs` (optional): the number of runs to perform; default `1`\n- `--eval-profile` (optional): evaluator runtime profile override. Supported values:\n  - `standard`: sandboxed local evaluation for file-oriented skills\n  - `runtime-full`: full-runtime evaluation for skills that need network access, app launch, port binding, MCP sessions, or process cleanup\n\nIf `--scenario` is omitted, derive one from the target skill's Purpose and\nInputs sections. If `skill-name` is missing, ask the user for it.\n\nIf `--eval-profile` is omitted, resolve it from a repo-local evaluator mapping\nfor known runtime-heavy skills; otherwise default to `standard`.\n\n## Critical Rules\n\n- Parse the requested `skill-name`, `--scenario`, and `--runs` from the user's\n  message before starting the evaluator\n- Prefer a repo-local skill at `.agents\u002Fskills\u002F\u003Cname>\u002FSKILL.md` before falling\n  back to `$CODEX_HOME\u002Fskills\u002F\u003Cname>\u002FSKILL.md`\n- Clear stale artifacts from `.agents\u002F.tmp\u002Fskill-eval\u002F` before generating new\n  evaluator outputs for the requested run\n- Write evaluator artifacts under `.agents\u002F.tmp\u002Fskill-eval\u002F`\n- Run the parser with Node's native TypeScript execution support\n- Cite concrete step indexes when judging failures\n- Preserve the full prompt text when invoking `codex exec`; do not let leading\n  `---` front matter get parsed as CLI flags\n- When evaluating inside a Git repo under `workspace-write`, grant\n  `codex exec` explicit write access to the repo's `.git` directory\n- Use `runtime-full` when the target skill launches apps, binds local ports,\n  uses MCP driver sessions, requires network access, or manages long-running\n  processes\n- During evaluation, instruct the subprocess that it may directly create,\n  modify, or delete files only inside the current repository. It must not\n  directly target paths outside the repository, though side effects from repo\n  commands or runtime tools are allowed\n- When the evaluated skill spawns subagents, inject eval-only instructions that\n  ask each subagent to write a repo-local execution log under\n  `.agents\u002F.tmp\u002Fskill-eval\u002F`; use those logs to report full-session tools and\n  commands without changing the standalone skill contract\n- Treat the run as incomplete until the final Markdown report for each run has\n  been fully written and then read back from disk\n- Do not report success based only on intermediate artifacts such as a stream\n  log, steps log, verification report, or the existence of a report path\n- If the subprocess times out or the trace is incomplete, report that as a\n  finding rather than hiding it\n\n## Workflow\n\n1. Parse the user request for the target skill, optional scenario override, and\n   optional run count and eval-profile override.\n1. Resolve the target skill path, preferring `.agents\u002Fskills\u002F\u003Cname>\u002FSKILL.md`\n   inside the current repository.\n1. Resolve the evaluation profile from the explicit override, the evaluator's\n   repo-local skill mapping, or the `standard` default.\n1. If no scenario was supplied, derive a minimal plausible one from the skill's\n   Purpose and Inputs sections.\n1. Clear `.agents\u002F.tmp\u002Fskill-eval\u002F` so the upcoming run starts from a clean\n   artifact directory.\n1. Run `bash .agents\u002Fskills\u002Feval-skill\u002Fscripts\u002Frun-codex-skill-eval.sh ...`\n   with the resolved inputs.\n1. Ensure the subprocess prompt includes the repository-only direct file-write\n   boundary before the target skill text.\n1. When the evaluated skill uses subagents, collect the eval-only subagent log\n   artifacts and aggregate them into a full-session tool\u002Fcommand manifest.\n1. Wait until the final Markdown report file for each run exists and has\n   non-empty contents. This step may take a long time because the judge model\n   still has to finish writing the final report after the evaluated skill run is\n   over.\n1. Read the generated report or reports from `.agents\u002F.tmp\u002Fskill-eval\u002F` only\n   after that non-empty report check passes.\n1. Return the full generated Markdown report inline in the final user-facing\n   response for each run, not just a summary or artifact path.\n1. Add a short lead-in before the inline report that names the skill, the run\n   result, and the report artifact path.\n\n## Final User Response\n\nReturn, for each run:\n\n1. A short lead-in naming the evaluated skill, overall outcome, and report path.\n2. The full generated Markdown report inline, preserving its section headings\n   and criterion-level PASS\u002FFAIL\u002FPARTIAL\u002FNOT EXERCISED lines.\n\nDo not replace the report with a paraphrased summary unless the user explicitly\nasks for a shorter answer. The inline report is the default output.\n\n## Completion Criteria\n\n- The evaluator resolves the correct target skill file\n- The evaluator resolves the intended evaluation profile\n- The evaluator clears stale artifacts from `.agents\u002F.tmp\u002Fskill-eval\u002F` before\n  writing new run outputs\n- The run produces a criteria JSON artifact, a raw JSONL stream, a normalized\n  steps log, and a Markdown report in `.agents\u002F.tmp\u002Fskill-eval\u002F`\n- When subagents are used, the run also produces per-subagent eval logs and an\n  aggregated full-session tool\u002Fcommand manifest in `.agents\u002F.tmp\u002Fskill-eval\u002F`\n- The report evaluates completion criteria, critical rules, workflow adherence,\n  observed tools and commands, failure points, and improvement suggestions\n- The evaluator does not finish early; it waits for the final report to exist\n  and have non-empty contents, even if that final report write takes a while,\n  then reads that final report before responding\n- The final user-facing response includes the full generated report inline for\n  each run, not only the artifact path or a compressed summary\n- When the user requests multiple runs, the evaluator produces separate\n  artifacts per run\n","# Eval Skill\n\n## Purpose\n\nEvaluate a Codex skill by running a realistic test scenario in a non-interactive\nCodex subprocess, normalizing the resulting JSONL event stream, and judging the\nobserved behavior against the skill's own specification.\n\n## Inputs\n\nExpected invocation pattern in the user message:\n\n`eval skill \u003Cskill-name> [--scenario \"\u003Cuser message>\"] [--runs N] [--eval-profile \u003Cstandard|runtime-full>]`\n\nParameters:\n\n- `skill-name` (required): the target skill to evaluate\n- `--scenario` (optional): the exact user request to test\n- `--runs` (optional): the number of runs to perform; default `1`\n- `--eval-profile` (optional): evaluator runtime profile override. Supported values:\n  - `standard`: sandboxed local evaluation for file-oriented skills\n  - `runtime-full`: full-runtime evaluation for skills that need network access, app launch, port binding, MCP sessions, or process cleanup\n\nIf `--scenario` is omitted, derive one from the target skill's Purpose and\nInputs sections. If `skill-name` is missing, ask the user for it.\n\nIf `--eval-profile` is omitted, resolve it from a repo-local evaluator mapping\nfor known runtime-heavy skills; otherwise default to `standard`.\n\n## Critical Rules\n\n- Parse the requested `skill-name`, `--scenario`, and `--runs` from the user's\n  message before starting the evaluator\n- Prefer a repo-local skill at `.agents\u002Fskills\u002F\u003Cname>\u002FSKILL.md` before falling\n  back to `$CODEX_HOME\u002Fskills\u002F\u003Cname>\u002FSKILL.md`\n- Clear stale artifacts from `.agents\u002F.tmp\u002Fskill-eval\u002F` before generating new\n  evaluator outputs for the requested run\n- Write evaluator artifacts under `.agents\u002F.tmp\u002Fskill-eval\u002F`\n- Run the parser with Node's native TypeScript execution support\n- Cite concrete step indexes when judging failures\n- Preserve the full prompt text when invoking `codex exec`; do not let leading\n  `---` front matter get parsed as CLI flags\n- When evaluating inside a Git repo under `workspace-write`, grant\n  `codex exec` explicit write access to the repo's `.git` directory\n- Use `runtime-full` when the target skill launches apps, binds local ports,\n  uses MCP driver sessions, requires network access, or manages long-running\n  processes\n- During evaluation, instruct the subprocess that it may directly create,\n  modify, or delete files only inside the current repository. It must not\n  directly target paths outside the repository, though side effects from repo\n  commands or runtime tools are allowed\n- When the evaluated skill spawns subagents, inject eval-only instructions that\n  ask each subagent to write a repo-local execution log under\n  `.agents\u002F.tmp\u002Fskill-eval\u002F`; use those logs to report full-session tools and\n  commands without changing the standalone skill contract\n- Treat the run as incomplete until the final Markdown report for each run has\n  been fully written and then read back from disk\n- Do not report success based only on intermediate artifacts such as a stream\n  log, steps log, verification report, or the existence of a report path\n- If the subprocess times out or the trace is incomplete, report that as a\n  finding rather than hiding it\n\n## Workflow\n\n1. Parse the user request for the target skill, optional scenario override, and\n   optional run count and eval-profile override.\n1. Resolve the target skill path, preferring `.agents\u002Fskills\u002F\u003Cname>\u002FSKILL.md`\n   inside the current repository.\n1. Resolve the evaluation profile from the explicit override, the evaluator's\n   repo-local skill mapping, or the `standard` default.\n1. If no scenario was supplied, derive a minimal plausible one from the skill's\n   Purpose and Inputs sections.\n1. Clear `.agents\u002F.tmp\u002Fskill-eval\u002F` so the upcoming run starts from a clean\n   artifact directory.\n1. Run `bash .agents\u002Fskills\u002Feval-skill\u002Fscripts\u002Frun-codex-skill-eval.sh ...`\n   with the resolved inputs.\n1. Ensure the subprocess prompt includes the repository-only direct file-write\n   boundary before the target skill text.\n1. When the evaluated skill uses subagents, collect the eval-only subagent log\n   artifacts and aggregate them into a full-session tool\u002Fcommand manifest.\n1. Wait until the final Markdown report file for each run exists and has\n   non-empty contents. This step may take a long time because the judge model\n   still has to finish writing the final report after the evaluated skill run is\n   over.\n1. Read the generated report or reports from `.agents\u002F.tmp\u002Fskill-eval\u002F` only\n   after that non-empty report check passes.\n1. Return the full generated Markdown report inline in the final user-facing\n   response for each run, not just a summary or artifact path.\n1. Add a short lead-in before the inline report that names the skill, the run\n   result, and the report artifact path.\n\n## Final User Response\n\nReturn, for each run:\n\n1. A short lead-in naming the evaluated skill, overall outcome, and report path.\n2. The full generated Markdown report inline, preserving its section headings\n   and criterion-level PASS\u002FFAIL\u002FPARTIAL\u002FNOT EXERCISED lines.\n\nDo not replace the report with a paraphrased summary unless the user explicitly\nasks for a shorter answer. The inline report is the default output.\n\n## Completion Criteria\n\n- The evaluator resolves the correct target skill file\n- The evaluator resolves the intended evaluation profile\n- The evaluator clears stale artifacts from `.agents\u002F.tmp\u002Fskill-eval\u002F` before\n  writing new run outputs\n- The run produces a criteria JSON artifact, a raw JSONL stream, a normalized\n  steps log, and a Markdown report in `.agents\u002F.tmp\u002Fskill-eval\u002F`\n- When subagents are used, the run also produces per-subagent eval logs and an\n  aggregated full-session tool\u002Fcommand manifest in `.agents\u002F.tmp\u002Fskill-eval\u002F`\n- The report evaluates completion criteria, critical rules, workflow adherence,\n  observed tools and commands, failure points, and improvement suggestions\n- The evaluator does not finish early; it waits for the final report to exist\n  and have non-empty contents, even if that final report write takes a while,\n  then reads that final report before responding\n- The final user-facing response includes the full generated report inline for\n  each run, not only the artifact path or a compressed summary\n- When the user requests multiple runs, the evaluator produces separate\n  artifacts per run\n",{"name":5,"license":15,"description":7,"allowed-tools":49,"compatibility":50},"Read Bash(node:*) Bash(codex exec:*) Bash(bash .agents\u002Fskills\u002Feval-skill\u002Fscripts\u002F*:*)","Requires the Codex CLI with `codex exec --json` and Node 24+.","master","840ef24c1e419d79836a9bb232bcab12eebf1b4c",".agents\u002Fskills\u002Feval-skill",1,"https:\u002F\u002Fgithub.com\u002Flrozanski\u002Fagent-skills-tui","https:\u002F\u002Fgithub.com\u002Flrozanski","2026-03-23 00:21:33",{"source":8,"skillName":5,"commands":59,"prompt":69,"zipAvailable":70},[60,63,66],{"tool":61,"command":62},"npx","npx skills add lrozanski\u002Fagent-skills-tui --skill eval-skill",{"tool":64,"command":65},"bunx","bunx skills add lrozanski\u002Fagent-skills-tui --skill eval-skill",{"tool":67,"command":68},"pnpm","pnpm dlx skills add lrozanski\u002Fagent-skills-tui --skill eval-skill","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Flrozanski\u002Fagent-skills-tui\u002Fblob\u002Fmaster\u002F.agents\u002Fskills\u002Feval-skill\u002FSKILL.md",true,[72,78,82,86,90,94,98,102,106,110,114,118,122,126,130,134,140,144,148,152,156,160],{"path":73,"resourceType":74,"resourceTypeDesc":75,"sizeBytes":76,"sourceHtmlUrl":77},"references\u002Fauth-best-practices.md","REFERENCE","参考文档",6207,"https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fazure-skills\u002Fblob\u002Fmain\u002Fskills\u002Fazure-compliance\u002Freferences\u002Fauth-best-practices.md",{"path":79,"resourceType":74,"resourceTypeDesc":75,"sizeBytes":80,"sourceHtmlUrl":81},"references\u002Fazqr-recommendations.md",5786,"https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fazure-skills\u002Fblob\u002Fmain\u002Fskills\u002Fazure-compliance\u002Freferences\u002Fazqr-recommendations.md",{"path":83,"resourceType":74,"resourceTypeDesc":75,"sizeBytes":84,"sourceHtmlUrl":85},"references\u002Fazqr-remediation-patterns.md",7946,"https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fazure-skills\u002Fblob\u002Fmain\u002Fskills\u002Fazure-compliance\u002Freferences\u002Fazqr-remediation-patterns.md",{"path":87,"resourceType":74,"resourceTypeDesc":75,"sizeBytes":88,"sourceHtmlUrl":89},"references\u002Fazure-keyvault-expiration-audit.md",5152,"https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fazure-skills\u002Fblob\u002Fmain\u002Fskills\u002Fazure-compliance\u002Freferences\u002Fazure-keyvault-expiration-audit.md",{"path":91,"resourceType":74,"resourceTypeDesc":75,"sizeBytes":92,"sourceHtmlUrl":93},"references\u002Fazure-quick-review.md",5069,"https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fazure-skills\u002Fblob\u002Fmain\u002Fskills\u002Fazure-compliance\u002Freferences\u002Fazure-quick-review.md",{"path":95,"resourceType":74,"resourceTypeDesc":75,"sizeBytes":96,"sourceHtmlUrl":97},"references\u002Fazure-resource-graph.md",2697,"https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fazure-skills\u002Fblob\u002Fmain\u002Fskills\u002Fazure-compliance\u002Freferences\u002Fazure-resource-graph.md",{"path":99,"resourceType":74,"resourceTypeDesc":75,"sizeBytes":100,"sourceHtmlUrl":101},"references\u002Fsdk\u002Fazure-keyvault-certificates-rust.md",1013,"https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fazure-skills\u002Fblob\u002Fmain\u002Fskills\u002Fazure-compliance\u002Freferences\u002Fsdk\u002Fazure-keyvault-certificates-rust.md",{"path":103,"resourceType":74,"resourceTypeDesc":75,"sizeBytes":104,"sourceHtmlUrl":105},"references\u002Fsdk\u002Fazure-keyvault-keys-rust.md",1291,"https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fazure-skills\u002Fblob\u002Fmain\u002Fskills\u002Fazure-compliance\u002Freferences\u002Fsdk\u002Fazure-keyvault-keys-rust.md",{"path":107,"resourceType":74,"resourceTypeDesc":75,"sizeBytes":108,"sourceHtmlUrl":109},"references\u002Fsdk\u002Fazure-keyvault-keys-ts.md",1019,"https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fazure-skills\u002Fblob\u002Fmain\u002Fskills\u002Fazure-compliance\u002Freferences\u002Fsdk\u002Fazure-keyvault-keys-ts.md",{"path":111,"resourceType":74,"resourceTypeDesc":75,"sizeBytes":112,"sourceHtmlUrl":113},"references\u002Fsdk\u002Fazure-keyvault-py.md",1135,"https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fazure-skills\u002Fblob\u002Fmain\u002Fskills\u002Fazure-compliance\u002Freferences\u002Fsdk\u002Fazure-keyvault-py.md",{"path":115,"resourceType":74,"resourceTypeDesc":75,"sizeBytes":116,"sourceHtmlUrl":117},"references\u002Fsdk\u002Fazure-keyvault-secrets-rust.md",1334,"https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fazure-skills\u002Fblob\u002Fmain\u002Fskills\u002Fazure-compliance\u002Freferences\u002Fsdk\u002Fazure-keyvault-secrets-rust.md",{"path":119,"resourceType":74,"resourceTypeDesc":75,"sizeBytes":120,"sourceHtmlUrl":121},"references\u002Fsdk\u002Fazure-keyvault-secrets-ts.md",1043,"https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fazure-skills\u002Fblob\u002Fmain\u002Fskills\u002Fazure-compliance\u002Freferences\u002Fsdk\u002Fazure-keyvault-secrets-ts.md",{"path":123,"resourceType":74,"resourceTypeDesc":75,"sizeBytes":124,"sourceHtmlUrl":125},"references\u002Fsdk\u002Fazure-security-keyvault-keys-dotnet.md",1170,"https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fazure-skills\u002Fblob\u002Fmain\u002Fskills\u002Fazure-compliance\u002Freferences\u002Fsdk\u002Fazure-security-keyvault-keys-dotnet.md",{"path":127,"resourceType":74,"resourceTypeDesc":75,"sizeBytes":128,"sourceHtmlUrl":129},"references\u002Fsdk\u002Fazure-security-keyvault-keys-java.md",1381,"https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fazure-skills\u002Fblob\u002Fmain\u002Fskills\u002Fazure-compliance\u002Freferences\u002Fsdk\u002Fazure-security-keyvault-keys-java.md",{"path":131,"resourceType":74,"resourceTypeDesc":75,"sizeBytes":132,"sourceHtmlUrl":133},"references\u002Fsdk\u002Fazure-security-keyvault-secrets-java.md",1517,"https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fazure-skills\u002Fblob\u002Fmain\u002Fskills\u002Fazure-compliance\u002Freferences\u002Fsdk\u002Fazure-security-keyvault-secrets-java.md",{"path":135,"resourceType":136,"resourceTypeDesc":137,"sizeBytes":138,"sourceHtmlUrl":139},"scripts\u002Fcollect-subagent-logs.ts","SCRIPT","脚本",2563,"https:\u002F\u002Fgithub.com\u002Flrozanski\u002Fagent-skills-tui\u002Fblob\u002Fmaster\u002F.agents\u002Fskills\u002Feval-skill\u002Fscripts\u002Fcollect-subagent-logs.ts",{"path":141,"resourceType":136,"resourceTypeDesc":137,"sizeBytes":142,"sourceHtmlUrl":143},"scripts\u002Fextract-skill-eval-criteria.ts",585,"https:\u002F\u002Fgithub.com\u002Flrozanski\u002Fagent-skills-tui\u002Fblob\u002Fmaster\u002F.agents\u002Fskills\u002Feval-skill\u002Fscripts\u002Fextract-skill-eval-criteria.ts",{"path":145,"resourceType":136,"resourceTypeDesc":137,"sizeBytes":146,"sourceHtmlUrl":147},"scripts\u002Fjudge-codex-skill-eval.sh",3756,"https:\u002F\u002Fgithub.com\u002Flrozanski\u002Fagent-skills-tui\u002Fblob\u002Fmaster\u002F.agents\u002Fskills\u002Feval-skill\u002Fscripts\u002Fjudge-codex-skill-eval.sh",{"path":149,"resourceType":136,"resourceTypeDesc":137,"sizeBytes":150,"sourceHtmlUrl":151},"scripts\u002Flib\u002Fparse-codex-skill-eval.ts",5387,"https:\u002F\u002Fgithub.com\u002Flrozanski\u002Fagent-skills-tui\u002Fblob\u002Fmaster\u002F.agents\u002Fskills\u002Feval-skill\u002Fscripts\u002Flib\u002Fparse-codex-skill-eval.ts",{"path":153,"resourceType":136,"resourceTypeDesc":137,"sizeBytes":154,"sourceHtmlUrl":155},"scripts\u002Flib\u002Fskill-criteria.ts",7341,"https:\u002F\u002Fgithub.com\u002Flrozanski\u002Fagent-skills-tui\u002Fblob\u002Fmaster\u002F.agents\u002Fskills\u002Feval-skill\u002Fscripts\u002Flib\u002Fskill-criteria.ts",{"path":157,"resourceType":136,"resourceTypeDesc":137,"sizeBytes":158,"sourceHtmlUrl":159},"scripts\u002Fparse-codex-skill-eval.ts",617,"https:\u002F\u002Fgithub.com\u002Flrozanski\u002Fagent-skills-tui\u002Fblob\u002Fmaster\u002F.agents\u002Fskills\u002Feval-skill\u002Fscripts\u002Fparse-codex-skill-eval.ts",{"path":161,"resourceType":136,"resourceTypeDesc":137,"sizeBytes":162,"sourceHtmlUrl":163},"scripts\u002Frun-codex-skill-eval.sh",7490,"https:\u002F\u002Fgithub.com\u002Flrozanski\u002Fagent-skills-tui\u002Fblob\u002Fmaster\u002F.agents\u002Fskills\u002Feval-skill\u002Fscripts\u002Frun-codex-skill-eval.sh",[165,178,189,202,209,219],{"skillNo":166,"name":167,"nameZh":6,"description":168,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":169,"categories":170,"keywords":172,"publishedAt":44},"01M6D1DKQCJDNCAEQWV7F67R7T","good-skill","A valid skill alongside a malformed one.","https:\u002F\u002Fgithub.com\u002Flrozanski\u002Fagent-skills-tui\u002Fblob\u002Fmaster\u002Ftestdata\u002Fmixed-malformed-skills\u002Fgood-skill\u002FSKILL.md",[171],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},[173,174,175,176,177],"good skill","good","malformed","valid","valid skill",{"skillNo":179,"name":180,"nameZh":6,"description":181,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":182,"categories":183,"keywords":185,"publishedAt":44},"01M6D1DJ7BYEG23WR14G214GFN","bad-skill","Missing name field on purpose.","https:\u002F\u002Fgithub.com\u002Flrozanski\u002Fagent-skills-tui\u002Fblob\u002Fmaster\u002Ftestdata\u002Fmixed-malformed-skills\u002Fbad-skill\u002FSKILL.md",[184],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},[186,187,188],"bad","bad skill","missing name",{"skillNo":190,"name":191,"nameZh":6,"description":192,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":193,"categories":194,"keywords":196,"publishedAt":44},"01M6D1DGHF5BQH6XPYBSJN80ED","actual-skill-name","Fixture for testing mismatched folder and skill names","https:\u002F\u002Fgithub.com\u002Flrozanski\u002Fagent-skills-tui\u002Fblob\u002Fmaster\u002Ftestdata\u002Fmismatched-skill-name\u002Falias-folder\u002FSKILL.md",[195],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},[197,198,199,200,201],"skill name","actual skill name","fixture","mismatched","testing",{"skillNo":203,"name":180,"nameZh":6,"description":204,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":205,"categories":206,"keywords":208,"publishedAt":44},"01M6D1DF1XH3RFS03HFMTG0BY0","Missing required name field.","https:\u002F\u002Fgithub.com\u002Flrozanski\u002Fagent-skills-tui\u002Fblob\u002Fmaster\u002Ftestdata\u002Fmalformed-frontmatter\u002Fbad-skill\u002FSKILL.md",[207],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},[187,186],{"skillNo":210,"name":211,"nameZh":6,"description":212,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":213,"categories":214,"keywords":216,"publishedAt":44},"01M6D1DDFV0HZNQRVBKHRB0Z48","grouped-skill","Grouped skill boundary fixture.","https:\u002F\u002Fgithub.com\u002Flrozanski\u002Fagent-skills-tui\u002Fblob\u002Fmaster\u002Ftestdata\u002Flocal-skill-boundaries\u002Fgrouped-skill\u002FSKILL.md",[215],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},[217,199,218],"grouped skill","boundary",{"skillNo":220,"name":221,"nameZh":6,"description":222,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":223,"categories":224,"keywords":226,"publishedAt":44},"01M6D1DCBWPCR9DZ1HTCKV3BHY","boundary-skill","Skill boundary fixture.","https:\u002F\u002Fgithub.com\u002Flrozanski\u002Fagent-skills-tui\u002Fblob\u002Fmaster\u002Ftestdata\u002Flocal-skill-boundaries\u002Fboundary-skill\u002FSKILL.md",[225],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},[218,227,199],"boundary skill"]