[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6KCQ6SWRWWAT2EPNS6H37M8":3,"skill-same:01M6KCQ6SWRWWAT2EPNS6H37M8":65},{"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":35,"linkOnly":36,"markdownContent":37,"markdownBody":38,"frontMatter":39,"refName":41,"commitSha":42,"skillDirectory":43,"forksCount":44,"repositoryHtmlUrl":45,"repositoryHomepageUrl":46,"ownerHtmlUrl":47,"ownerBlogUrl":48,"ownerDescription":49,"updatedAt":50,"install":51,"resources":64},"01M6KCQ6SWRWWAT2EPNS6H37M8","agenteval",null,"Use after editing agent instruction files (CLAUDE.md, AGENTS.md, GEMINI.md, rules, skills, subagents), when asked whether they are broken or stale, or when asked whether they help the agent. Lints them with agenteval and fixes the findings.","lukasmetzler\u002Fagenteval","lukasmetzler","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F61692229?v=4","01M6KCPXM7YK9NK5F46Y78SFHA","Lukas Metzler","01M6KCPXRXX04EV3118G322E1Q",8,"MIT","https:\u002F\u002Fgithub.com\u002Flukasmetzler\u002Fagenteval\u002Fblob\u002Fmain\u002Fskills\u002Fagenteval\u002FSKILL.md",[],[5,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34],"broken","fixes","with","files","stale","use","subagents","install","cli","editing","Rules","repository","npm","git","help","gemini","2026-11-10 10:12:30",false,"---\nname: agenteval\ndescription: Use after editing agent instruction files (CLAUDE.md, AGENTS.md, GEMINI.md, rules, skills, subagents), when asked whether they are broken or stale, or when asked whether they help the agent. Lints them with agenteval and fixes the findings.\nlicense: MIT\ncompatibility: Requires the agenteval CLI (npm install -g agenteval-cli) and a git repository.\n---\n\n## Overview\n\nagenteval checks instruction files against the repo they describe: paths, `package.json` scripts, the lockfile, linter configs. Fix a finding by changing the instructions to match the repo; change the repo only when the user asks for it.\n\nRun the CLI as `agenteval`. If that is not on PATH, use `npx -y agenteval-cli` in its place.\n\n## Lint after every instruction edit\n\n1. Run `agenteval lint --format json` from the repo root. Each entry in `diagnostics[]` has `ruleId`, `severity`, `filePath`, `line`, `message`, and often `suggestion`.\n2. Fix every `error`, then every `warning`, using the table below.\n3. Run `agenteval lint --severity warning` again.\n\nThe lint is **clean** when that run reports no errors and no warnings, or each remaining warning is one you told the user about, with the reason you left it. Repeat steps 2 and 3 until it is clean. `info` findings are suggestions; mention them only when they touch lines you edited.\n\n| Rule prefix | Finding | Fix |\n|---|---|---|\n| `dead-ref\u002F` | A path, link, or anchor points at nothing | Correct the path, or remove the reference if the target is gone |\n| `import\u002F` | An `@path` import is missing, circular, or more than 4 hops deep | Fix the path (relative to the importing file) or flatten the chain |\n| `toolchain\u002F` | A command doesn't match the repo: wrong package manager, missing script, a linter the repo doesn't use, or a tool nobody documents | Write the command the repo uses: `package.json` scripts, the lockfile's package manager, the configured linter |\n| `frontmatter\u002F`, `skill\u002F` | Frontmatter the agent rejects or ignores | Use the field names and values in the message; a skill's `name` must equal its directory |\n| `agent-limits\u002F` | An agent truncates or skips the file | Split the file, move detail into `.claude\u002Frules\u002F` or nested files, or rename `.md` rules in `.cursor\u002Frules\u002F` to `.mdc` |\n| `context-budget\u002F`, `token-count\u002F` | Too much loads at session start | Move rarely needed sections behind a link or into path-scoped rules |\n| `overlap\u002F` | Two sections say nearly the same thing | Keep one and delete or merge the other |\n| `anti-pattern\u002F`, `bloat\u002F` | Vague, contradictory, or padded prose | Rewrite as a concrete instruction; `agenteval lint --fix` removes filler phrases |\n| `drift\u002F` | A referenced file changed long after the instructions did | Read the file and update the instructions that describe it |\n\nWhen a finding is intentional (an example that shows a broken path, for instance), put `\u003C!-- agenteval-disable rule-id -->` above that section to suppress the rule for it, and keep the text.\n\n## Measure whether instructions help\n\nEvals run a real agent and cost money. Ask the user before starting one, and name the harness and model you will use.\n\n1. Write a task file (`name`, `prompt`, `assertions` such as `files-changed`, `test-pass`, `lint-delta`), or use one from `tasks\u002F`. `agenteval harvest` turns past AI commits into task files under `tasks\u002Fharvested\u002F`; `--dry-run` lists them first.\n2. Run `agenteval run --task \u003Cfile> --harness \u003Cagent> --model \u003Ccheap model> --trials 3 --baseline`.\n3. Report the Δ column: pass rate, score, tokens, cost, and turns with instructions versus without. With fewer than 3 trials, say the result may be noise.\n\n`agenteval doctor` shows which agent CLIs and toolchain agenteval detected. Harness names, assertion fields, and scoring are in the docs at https:\u002F\u002Fgithub.com\u002Flukasmetzler\u002Fagenteval\u002Ftree\u002Fmain\u002Fdocs.\n","## Overview\n\nagenteval checks instruction files against the repo they describe: paths, `package.json` scripts, the lockfile, linter configs. Fix a finding by changing the instructions to match the repo; change the repo only when the user asks for it.\n\nRun the CLI as `agenteval`. If that is not on PATH, use `npx -y agenteval-cli` in its place.\n\n## Lint after every instruction edit\n\n1. Run `agenteval lint --format json` from the repo root. Each entry in `diagnostics[]` has `ruleId`, `severity`, `filePath`, `line`, `message`, and often `suggestion`.\n2. Fix every `error`, then every `warning`, using the table below.\n3. Run `agenteval lint --severity warning` again.\n\nThe lint is **clean** when that run reports no errors and no warnings, or each remaining warning is one you told the user about, with the reason you left it. Repeat steps 2 and 3 until it is clean. `info` findings are suggestions; mention them only when they touch lines you edited.\n\n| Rule prefix | Finding | Fix |\n|---|---|---|\n| `dead-ref\u002F` | A path, link, or anchor points at nothing | Correct the path, or remove the reference if the target is gone |\n| `import\u002F` | An `@path` import is missing, circular, or more than 4 hops deep | Fix the path (relative to the importing file) or flatten the chain |\n| `toolchain\u002F` | A command doesn't match the repo: wrong package manager, missing script, a linter the repo doesn't use, or a tool nobody documents | Write the command the repo uses: `package.json` scripts, the lockfile's package manager, the configured linter |\n| `frontmatter\u002F`, `skill\u002F` | Frontmatter the agent rejects or ignores | Use the field names and values in the message; a skill's `name` must equal its directory |\n| `agent-limits\u002F` | An agent truncates or skips the file | Split the file, move detail into `.claude\u002Frules\u002F` or nested files, or rename `.md` rules in `.cursor\u002Frules\u002F` to `.mdc` |\n| `context-budget\u002F`, `token-count\u002F` | Too much loads at session start | Move rarely needed sections behind a link or into path-scoped rules |\n| `overlap\u002F` | Two sections say nearly the same thing | Keep one and delete or merge the other |\n| `anti-pattern\u002F`, `bloat\u002F` | Vague, contradictory, or padded prose | Rewrite as a concrete instruction; `agenteval lint --fix` removes filler phrases |\n| `drift\u002F` | A referenced file changed long after the instructions did | Read the file and update the instructions that describe it |\n\nWhen a finding is intentional (an example that shows a broken path, for instance), put `\u003C!-- agenteval-disable rule-id -->` above that section to suppress the rule for it, and keep the text.\n\n## Measure whether instructions help\n\nEvals run a real agent and cost money. Ask the user before starting one, and name the harness and model you will use.\n\n1. Write a task file (`name`, `prompt`, `assertions` such as `files-changed`, `test-pass`, `lint-delta`), or use one from `tasks\u002F`. `agenteval harvest` turns past AI commits into task files under `tasks\u002Fharvested\u002F`; `--dry-run` lists them first.\n2. Run `agenteval run --task \u003Cfile> --harness \u003Cagent> --model \u003Ccheap model> --trials 3 --baseline`.\n3. Report the Δ column: pass rate, score, tokens, cost, and turns with instructions versus without. With fewer than 3 trials, say the result may be noise.\n\n`agenteval doctor` shows which agent CLIs and toolchain agenteval detected. Harness names, assertion fields, and scoring are in the docs at https:\u002F\u002Fgithub.com\u002Flukasmetzler\u002Fagenteval\u002Ftree\u002Fmain\u002Fdocs.\n",{"name":5,"license":15,"description":7,"compatibility":40},"Requires the agenteval CLI (npm install -g agenteval-cli) and a git repository.","main","a027c381156fead08e9599cf33574b47846d4b24","skills\u002Fagenteval",0,"https:\u002F\u002Fgithub.com\u002Flukasmetzler\u002Fagenteval","https:\u002F\u002Fgithub.com\u002Flukasmetzler\u002Fagenteval#get-started-in-10-seconds","https:\u002F\u002Fgithub.com\u002Flukasmetzler","https:\u002F\u002Fwww.lukasmetzler.com\u002F","TypeScript | React | Learning Rust currently","2026-10-31 06:33:36",{"source":8,"skillName":5,"commands":52,"prompt":62,"zipAvailable":63},[53,56,59],{"tool":54,"command":55},"npx","npx skills add lukasmetzler\u002Fagenteval --skill agenteval",{"tool":57,"command":58},"bunx","bunx skills add lukasmetzler\u002Fagenteval --skill agenteval",{"tool":60,"command":61},"pnpm","pnpm dlx skills add lukasmetzler\u002Fagenteval --skill agenteval","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Flukasmetzler\u002Fagenteval\u002Fblob\u002Fmain\u002Fskills\u002Fagenteval\u002FSKILL.md",true,[],[66,81,91],{"skillNo":67,"name":68,"nameZh":6,"description":69,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":70,"categories":71,"keywords":77,"publishedAt":35},"01M6KCQDDW1RFKBRF6WSFHMM9D","pdf","Use when extracting text from PDF files.","https:\u002F\u002Fgithub.com\u002Flukasmetzler\u002Fagenteval\u002Fblob\u002Fmain\u002Ftests\u002Ffixtures\u002Fformats\u002F.claude\u002Fskills\u002Fpdf\u002FSKILL.md",[72],{"categoryNo":73,"categoryName":74,"taxonomyType":75,"taxonomyTypeDesc":76},"01JBSEEDCAT000000000000002","文档处理","SCENARIO","使用场景",[78,79,22,24,80],"PDF","extracting","text",{"skillNo":82,"name":83,"nameZh":6,"description":84,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":85,"categories":86,"keywords":87,"publishedAt":35},"01M6KCQAJFPG64R9NSQY0BJ1TT","review","Use when reviewing a pull request.","https:\u002F\u002Fgithub.com\u002Flukasmetzler\u002Fagenteval\u002Fblob\u002Fmain\u002Ftests\u002Ffixtures\u002Fformats\u002F.agents\u002Fskills\u002Freview\u002FSKILL.md",[],[83,88,24,89,90],"request","pull","pull request",{"skillNo":92,"name":93,"nameZh":6,"description":94,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":95,"categories":96,"keywords":100,"publishedAt":35},"01M6KCQ3P76KWJ8AFZEAG6B7VX","deploy-to-production","I deploy the application to production via GitHub Actions","https:\u002F\u002Fgithub.com\u002Flukasmetzler\u002Fagenteval\u002Fblob\u002Fmain\u002Fdemo\u002F.claude\u002Fskills\u002Fdeploy\u002FSKILL.md",[97],{"categoryNo":98,"categoryName":99,"taxonomyType":75,"taxonomyTypeDesc":76},"01JBSEEDCAT000000000000011","运维与部署",[101,102,103,104,105,106,107,108],"deploy","Production","deploy to production","github","via","application","github actions","actions"]