[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6CYFZ15MDF61NP5823BKAPB":3,"skill-same:01M6CYFZ15MDF61NP5823BKAPB":59},{"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":32,"linkOnly":33,"markdownContent":34,"markdownBody":35,"frontMatter":36,"refName":37,"commitSha":38,"skillDirectory":39,"forksCount":40,"repositoryHtmlUrl":41,"repositoryHomepageUrl":6,"ownerHtmlUrl":42,"ownerBlogUrl":43,"ownerDescription":6,"updatedAt":44,"install":45,"resources":58},"01M6CYFZ15MDF61NP5823BKAPB","promptfoo-results",null,"Query Promptfoo behavioral test results from the local SQLite database. Use when asked about test results, eval outcomes, failures, what passed or failed, test comparisons, or promptfoo reports.","rnagrodzki\u002Fsdlc-marketplace","rnagrodzki","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F303481?v=4","01M6CYFWQK3A8WR9W324Z5Q5DR","Rafal Nagrodzki","01M6CYFWVKS23ECZCP9R7DTQVN",0,"MIT","https:\u002F\u002Fgithub.com\u002Frnagrodzki\u002Fsdlc-marketplace\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Fpromptfoo-results\u002FSKILL.md",[],[19,20,21,22,23,24,25,26,27,28,29,30,31],"promptfoo","results","promptfoo results","test","database","sqlite","eval","use","outcomes","behavioral","reports","query","local","2026-11-10 10:12:30",false,"---\nname: promptfoo-results\ndescription: \"Query Promptfoo behavioral test results from the local SQLite database. Use when asked about test results, eval outcomes, failures, what passed or failed, test comparisons, or promptfoo reports.\"\n---\n\n# Promptfoo Results Reader\n\nQuery behavioral test results directly from the Promptfoo SQLite database without\nlaunching the web UI. All queries use the `sqlite3` CLI.\n\n## When to Use This Skill\n\n- User asks about test results, eval outcomes, or what passed\u002Ffailed\n- User wants to see recent Promptfoo eval runs\n- User wants to drill into specific test failures or grading reasons\n- User wants to compare results across multiple eval runs\n- After running `promptfoo eval` and wanting a quick summary\n\n## Configuration\n\n```\nDB=tests\u002Fpromptfoo\u002F.promptfoo-data\u002Fpromptfoo.db\n```\n\nVerify the file exists before querying:\n\n```bash\ntest -f tests\u002Fpromptfoo\u002F.promptfoo-data\u002Fpromptfoo.db \\\n  && echo \"DB exists\" \\\n  || echo \"DB not found — run: cd tests\u002Fpromptfoo && promptfoo eval --env-file .env\"\n```\n\n## Workflow\n\n### Step 1 — List All Eval Runs\n\n```bash\nsqlite3 tests\u002Fpromptfoo\u002F.promptfoo-data\u002Fpromptfoo.db \\\n  \"SELECT id,\n          datetime(created_at\u002F1000, 'unixepoch', 'localtime') AS run_time,\n          description\n   FROM evals\n   ORDER BY created_at DESC;\"\n```\n\n### Step 2 — Latest Run Summary (Pass\u002FFail Counts)\n\n```bash\nsqlite3 -header -column tests\u002Fpromptfoo\u002F.promptfoo-data\u002Fpromptfoo.db \\\n  \"SELECT\n     SUM(CASE WHEN success = 1 THEN 1 ELSE 0 END) AS passed,\n     SUM(CASE WHEN success = 0 THEN 1 ELSE 0 END) AS failed,\n     COUNT(*) AS total,\n     ROUND(AVG(latency_ms)) AS avg_latency_ms,\n     ROUND(SUM(cost), 4) AS total_cost\n   FROM eval_results\n   WHERE eval_id = (SELECT id FROM evals ORDER BY created_at DESC LIMIT 1);\"\n```\n\n### Step 3 — Per-Test Breakdown\n\n```bash\nsqlite3 -header -column tests\u002Fpromptfoo\u002F.promptfoo-data\u002Fpromptfoo.db \\\n  \"SELECT\n     CASE WHEN success = 1 THEN 'PASS' ELSE 'FAIL' END AS status,\n     json_extract(test_case, '$.description') AS test_name,\n     score,\n     latency_ms\n   FROM eval_results\n   WHERE eval_id = (SELECT id FROM evals ORDER BY created_at DESC LIMIT 1)\n   ORDER BY success ASC, test_idx ASC;\"\n```\n\n### Step 4 — Drill Into Failures\n\n```bash\nsqlite3 -header -column tests\u002Fpromptfoo\u002F.promptfoo-data\u002Fpromptfoo.db \\\n  \"SELECT\n     json_extract(test_case, '$.description') AS test_name,\n     json_extract(grading_result, '$.reason') AS fail_reason,\n     substr(response, 1, 400) AS response_preview\n   FROM eval_results\n   WHERE eval_id = (SELECT id FROM evals ORDER BY created_at DESC LIMIT 1)\n     AND success = 0\n   ORDER BY test_idx;\"\n```\n\nFor per-assertion detail on a specific failed test:\n\n```bash\nsqlite3 tests\u002Fpromptfoo\u002F.promptfoo-data\u002Fpromptfoo.db \\\n  \"SELECT json_extract(grading_result, '$.componentResults') AS assertions\n   FROM eval_results\n   WHERE eval_id = (SELECT id FROM evals ORDER BY created_at DESC LIMIT 1)\n     AND success = 0\n   LIMIT 1;\"\n```\n\n`componentResults` is a JSON array. Each element has:\n- `pass` — boolean, whether this assertion passed\n- `score` — 0 or 1\n- `reason` — human-readable explanation\n- `assertion.type` — e.g. `icontains`, `regex`, `llm-rubric`\n- `assertion.value` — the expected value or rubric text\n\n### Step 5 — Full Response for a Specific Test\n\n```bash\nsqlite3 tests\u002Fpromptfoo\u002F.promptfoo-data\u002Fpromptfoo.db \\\n  \"SELECT response\n   FROM eval_results\n   WHERE eval_id = (SELECT id FROM evals ORDER BY created_at DESC LIMIT 1)\n     AND json_extract(test_case, '$.description') LIKE '%\u003Csearch-term>%';\"\n```\n\nReplace `\u003Csearch-term>` with a keyword from the test name (e.g. `rebuild`, `scaffolder`).\n\n### Step 6 — Compare Two Most Recent Runs\n\nPass\u002Ffail counts side by side:\n\n```bash\nsqlite3 -header -column tests\u002Fpromptfoo\u002F.promptfoo-data\u002Fpromptfoo.db \\\n  \"WITH recent AS (\n     SELECT id, ROW_NUMBER() OVER (ORDER BY created_at DESC) AS rn\n     FROM evals\n   )\n   SELECT\n     r.rn AS run_num,\n     datetime(e.created_at\u002F1000, 'unixepoch', 'localtime') AS run_time,\n     SUM(CASE WHEN er.success = 1 THEN 1 ELSE 0 END) AS passed,\n     SUM(CASE WHEN er.success = 0 THEN 1 ELSE 0 END) AS failed\n   FROM recent r\n   JOIN evals e ON e.id = r.id\n   JOIN eval_results er ON er.eval_id = e.id\n   WHERE r.rn \u003C= 2\n   GROUP BY r.rn, e.id, e.created_at\n   ORDER BY r.rn ASC;\"\n```\n\nFind regressions (passed before, fail now):\n\n```bash\nsqlite3 -header -column tests\u002Fpromptfoo\u002F.promptfoo-data\u002Fpromptfoo.db \\\n  \"WITH recent AS (\n     SELECT id, ROW_NUMBER() OVER (ORDER BY created_at DESC) AS rn FROM evals\n   ),\n   curr AS (\n     SELECT json_extract(test_case, '$.description') AS name, success\n     FROM eval_results WHERE eval_id = (SELECT id FROM recent WHERE rn = 1)\n   ),\n   prev AS (\n     SELECT json_extract(test_case, '$.description') AS name, success\n     FROM eval_results WHERE eval_id = (SELECT id FROM recent WHERE rn = 2)\n   )\n   SELECT curr.name, prev.success AS was, curr.success AS now\n   FROM curr JOIN prev ON curr.name = prev.name\n   WHERE prev.success = 1 AND curr.success = 0;\"\n```\n\n### Step 7 — Query a Specific Eval by ID\n\n```bash\nsqlite3 -header -column tests\u002Fpromptfoo\u002F.promptfoo-data\u002Fpromptfoo.db \\\n  \"SELECT\n     CASE WHEN success = 1 THEN 'PASS' ELSE 'FAIL' END AS status,\n     json_extract(test_case, '$.description') AS test_name,\n     json_extract(grading_result, '$.reason') AS reason\n   FROM eval_results\n   WHERE eval_id = '\u003Ceval-id>'\n   ORDER BY success ASC, test_idx ASC;\"\n```\n\n### Step 8 — Test Variables and Metadata\n\nSee which skill and fixture each test used:\n\n```bash\nsqlite3 -header -column tests\u002Fpromptfoo\u002F.promptfoo-data\u002Fpromptfoo.db \\\n  \"SELECT\n     json_extract(test_case, '$.description') AS test_name,\n     json_extract(test_case, '$.vars.skill_path') AS skill,\n     json_extract(test_case, '$.vars.project_context') AS fixture\n   FROM eval_results\n   WHERE eval_id = (SELECT id FROM evals ORDER BY created_at DESC LIMIT 1);\"\n```\n\n## Best Practices\n\n1. Start with Steps 1+2 every time — know which run you are inspecting before drilling down\n2. Use `-header -column` flags for readable output; omit when piping to other tools\n3. Use `substr(response, 1, N)` to avoid dumping large LLM responses\n4. For `llm-rubric` assertion failures, the `reason` field has the grader's explanation — most useful debugging signal\n5. `componentResults` shows exactly which assertion in a multi-assert test failed\n6. `created_at` is Unix epoch milliseconds — always divide by 1000 for `datetime()`\n\n## DO NOT\n\n- Do not modify or vacuum the database — read-only only\n- Do not query `evals.results` for per-test data — it only contains `durationMs`; use `eval_results`\n- Do not assume `named_scores` has data — it is typically `{}` for this project\n- Do not run `promptfoo view` when the user asks for results — use sqlite3 queries instead\n\n## Error Recovery\n\n> **Flow**: detect → diagnose → auto-recover (retry once if transient) → invoke `error-report-sdlc` for persistent actionable failures.\n\n| Error | Recovery | Invoke error-report-sdlc? |\n|-------|----------|---------------------------|\n| DB file not found | Show `promptfoo eval` instructions; stop | No — user setup |\n| `sqlite3` not installed | Show install instructions (`brew install sqlite3`); stop | No — user setup |\n| `sqlite3` query fails with schema error | Try `promptfoo eval --list` to verify DB schema version; stop | No — environment issue |\n| No results for latest eval | List all available evals; ask user to pick one | No — expected (empty run) |\n| `sqlite3` crashes unexpectedly | Show full error; ask user to verify DB is not corrupted | Yes if persistent |\n\nWhen invoking `error-report-sdlc`, provide:\n- **Skill**: promptfoo-results\n- **Step**: whichever step failed (Step 1–8)\n- **Operation**: sqlite3 query against promptfoo.db\n- **Error**: Full sqlite3 error output\n- **Suggested investigation**: Verify DB schema with `.schema eval_results`; check promptfoo version compatibility\n\n---\n\n## Quality Gates\n\nBefore presenting results to the user:\n\n- [ ] Verified DB file exists\n- [ ] Confirmed which eval run is being inspected (show eval ID and timestamp)\n- [ ] For failure analysis: showed both `fail_reason` AND a response preview\n- [ ] For comparisons: verified both runs cover the same test names\n\n## Learning Capture\n\nIf analysis reveals patterns (e.g. \"llm-rubric assertions flaky on skill X\",\n\"latency spikes correlate with fixture size\"), append entries to\n`.sdlc\u002Flearnings\u002Flog.md`.\n","# Promptfoo Results Reader\n\nQuery behavioral test results directly from the Promptfoo SQLite database without\nlaunching the web UI. All queries use the `sqlite3` CLI.\n\n## When to Use This Skill\n\n- User asks about test results, eval outcomes, or what passed\u002Ffailed\n- User wants to see recent Promptfoo eval runs\n- User wants to drill into specific test failures or grading reasons\n- User wants to compare results across multiple eval runs\n- After running `promptfoo eval` and wanting a quick summary\n\n## Configuration\n\n```\nDB=tests\u002Fpromptfoo\u002F.promptfoo-data\u002Fpromptfoo.db\n```\n\nVerify the file exists before querying:\n\n```bash\ntest -f tests\u002Fpromptfoo\u002F.promptfoo-data\u002Fpromptfoo.db \\\n  && echo \"DB exists\" \\\n  || echo \"DB not found — run: cd tests\u002Fpromptfoo && promptfoo eval --env-file .env\"\n```\n\n## Workflow\n\n### Step 1 — List All Eval Runs\n\n```bash\nsqlite3 tests\u002Fpromptfoo\u002F.promptfoo-data\u002Fpromptfoo.db \\\n  \"SELECT id,\n          datetime(created_at\u002F1000, 'unixepoch', 'localtime') AS run_time,\n          description\n   FROM evals\n   ORDER BY created_at DESC;\"\n```\n\n### Step 2 — Latest Run Summary (Pass\u002FFail Counts)\n\n```bash\nsqlite3 -header -column tests\u002Fpromptfoo\u002F.promptfoo-data\u002Fpromptfoo.db \\\n  \"SELECT\n     SUM(CASE WHEN success = 1 THEN 1 ELSE 0 END) AS passed,\n     SUM(CASE WHEN success = 0 THEN 1 ELSE 0 END) AS failed,\n     COUNT(*) AS total,\n     ROUND(AVG(latency_ms)) AS avg_latency_ms,\n     ROUND(SUM(cost), 4) AS total_cost\n   FROM eval_results\n   WHERE eval_id = (SELECT id FROM evals ORDER BY created_at DESC LIMIT 1);\"\n```\n\n### Step 3 — Per-Test Breakdown\n\n```bash\nsqlite3 -header -column tests\u002Fpromptfoo\u002F.promptfoo-data\u002Fpromptfoo.db \\\n  \"SELECT\n     CASE WHEN success = 1 THEN 'PASS' ELSE 'FAIL' END AS status,\n     json_extract(test_case, '$.description') AS test_name,\n     score,\n     latency_ms\n   FROM eval_results\n   WHERE eval_id = (SELECT id FROM evals ORDER BY created_at DESC LIMIT 1)\n   ORDER BY success ASC, test_idx ASC;\"\n```\n\n### Step 4 — Drill Into Failures\n\n```bash\nsqlite3 -header -column tests\u002Fpromptfoo\u002F.promptfoo-data\u002Fpromptfoo.db \\\n  \"SELECT\n     json_extract(test_case, '$.description') AS test_name,\n     json_extract(grading_result, '$.reason') AS fail_reason,\n     substr(response, 1, 400) AS response_preview\n   FROM eval_results\n   WHERE eval_id = (SELECT id FROM evals ORDER BY created_at DESC LIMIT 1)\n     AND success = 0\n   ORDER BY test_idx;\"\n```\n\nFor per-assertion detail on a specific failed test:\n\n```bash\nsqlite3 tests\u002Fpromptfoo\u002F.promptfoo-data\u002Fpromptfoo.db \\\n  \"SELECT json_extract(grading_result, '$.componentResults') AS assertions\n   FROM eval_results\n   WHERE eval_id = (SELECT id FROM evals ORDER BY created_at DESC LIMIT 1)\n     AND success = 0\n   LIMIT 1;\"\n```\n\n`componentResults` is a JSON array. Each element has:\n- `pass` — boolean, whether this assertion passed\n- `score` — 0 or 1\n- `reason` — human-readable explanation\n- `assertion.type` — e.g. `icontains`, `regex`, `llm-rubric`\n- `assertion.value` — the expected value or rubric text\n\n### Step 5 — Full Response for a Specific Test\n\n```bash\nsqlite3 tests\u002Fpromptfoo\u002F.promptfoo-data\u002Fpromptfoo.db \\\n  \"SELECT response\n   FROM eval_results\n   WHERE eval_id = (SELECT id FROM evals ORDER BY created_at DESC LIMIT 1)\n     AND json_extract(test_case, '$.description') LIKE '%\u003Csearch-term>%';\"\n```\n\nReplace `\u003Csearch-term>` with a keyword from the test name (e.g. `rebuild`, `scaffolder`).\n\n### Step 6 — Compare Two Most Recent Runs\n\nPass\u002Ffail counts side by side:\n\n```bash\nsqlite3 -header -column tests\u002Fpromptfoo\u002F.promptfoo-data\u002Fpromptfoo.db \\\n  \"WITH recent AS (\n     SELECT id, ROW_NUMBER() OVER (ORDER BY created_at DESC) AS rn\n     FROM evals\n   )\n   SELECT\n     r.rn AS run_num,\n     datetime(e.created_at\u002F1000, 'unixepoch', 'localtime') AS run_time,\n     SUM(CASE WHEN er.success = 1 THEN 1 ELSE 0 END) AS passed,\n     SUM(CASE WHEN er.success = 0 THEN 1 ELSE 0 END) AS failed\n   FROM recent r\n   JOIN evals e ON e.id = r.id\n   JOIN eval_results er ON er.eval_id = e.id\n   WHERE r.rn \u003C= 2\n   GROUP BY r.rn, e.id, e.created_at\n   ORDER BY r.rn ASC;\"\n```\n\nFind regressions (passed before, fail now):\n\n```bash\nsqlite3 -header -column tests\u002Fpromptfoo\u002F.promptfoo-data\u002Fpromptfoo.db \\\n  \"WITH recent AS (\n     SELECT id, ROW_NUMBER() OVER (ORDER BY created_at DESC) AS rn FROM evals\n   ),\n   curr AS (\n     SELECT json_extract(test_case, '$.description') AS name, success\n     FROM eval_results WHERE eval_id = (SELECT id FROM recent WHERE rn = 1)\n   ),\n   prev AS (\n     SELECT json_extract(test_case, '$.description') AS name, success\n     FROM eval_results WHERE eval_id = (SELECT id FROM recent WHERE rn = 2)\n   )\n   SELECT curr.name, prev.success AS was, curr.success AS now\n   FROM curr JOIN prev ON curr.name = prev.name\n   WHERE prev.success = 1 AND curr.success = 0;\"\n```\n\n### Step 7 — Query a Specific Eval by ID\n\n```bash\nsqlite3 -header -column tests\u002Fpromptfoo\u002F.promptfoo-data\u002Fpromptfoo.db \\\n  \"SELECT\n     CASE WHEN success = 1 THEN 'PASS' ELSE 'FAIL' END AS status,\n     json_extract(test_case, '$.description') AS test_name,\n     json_extract(grading_result, '$.reason') AS reason\n   FROM eval_results\n   WHERE eval_id = '\u003Ceval-id>'\n   ORDER BY success ASC, test_idx ASC;\"\n```\n\n### Step 8 — Test Variables and Metadata\n\nSee which skill and fixture each test used:\n\n```bash\nsqlite3 -header -column tests\u002Fpromptfoo\u002F.promptfoo-data\u002Fpromptfoo.db \\\n  \"SELECT\n     json_extract(test_case, '$.description') AS test_name,\n     json_extract(test_case, '$.vars.skill_path') AS skill,\n     json_extract(test_case, '$.vars.project_context') AS fixture\n   FROM eval_results\n   WHERE eval_id = (SELECT id FROM evals ORDER BY created_at DESC LIMIT 1);\"\n```\n\n## Best Practices\n\n1. Start with Steps 1+2 every time — know which run you are inspecting before drilling down\n2. Use `-header -column` flags for readable output; omit when piping to other tools\n3. Use `substr(response, 1, N)` to avoid dumping large LLM responses\n4. For `llm-rubric` assertion failures, the `reason` field has the grader's explanation — most useful debugging signal\n5. `componentResults` shows exactly which assertion in a multi-assert test failed\n6. `created_at` is Unix epoch milliseconds — always divide by 1000 for `datetime()`\n\n## DO NOT\n\n- Do not modify or vacuum the database — read-only only\n- Do not query `evals.results` for per-test data — it only contains `durationMs`; use `eval_results`\n- Do not assume `named_scores` has data — it is typically `{}` for this project\n- Do not run `promptfoo view` when the user asks for results — use sqlite3 queries instead\n\n## Error Recovery\n\n> **Flow**: detect → diagnose → auto-recover (retry once if transient) → invoke `error-report-sdlc` for persistent actionable failures.\n\n| Error | Recovery | Invoke error-report-sdlc? |\n|-------|----------|---------------------------|\n| DB file not found | Show `promptfoo eval` instructions; stop | No — user setup |\n| `sqlite3` not installed | Show install instructions (`brew install sqlite3`); stop | No — user setup |\n| `sqlite3` query fails with schema error | Try `promptfoo eval --list` to verify DB schema version; stop | No — environment issue |\n| No results for latest eval | List all available evals; ask user to pick one | No — expected (empty run) |\n| `sqlite3` crashes unexpectedly | Show full error; ask user to verify DB is not corrupted | Yes if persistent |\n\nWhen invoking `error-report-sdlc`, provide:\n- **Skill**: promptfoo-results\n- **Step**: whichever step failed (Step 1–8)\n- **Operation**: sqlite3 query against promptfoo.db\n- **Error**: Full sqlite3 error output\n- **Suggested investigation**: Verify DB schema with `.schema eval_results`; check promptfoo version compatibility\n\n---\n\n## Quality Gates\n\nBefore presenting results to the user:\n\n- [ ] Verified DB file exists\n- [ ] Confirmed which eval run is being inspected (show eval ID and timestamp)\n- [ ] For failure analysis: showed both `fail_reason` AND a response preview\n- [ ] For comparisons: verified both runs cover the same test names\n\n## Learning Capture\n\nIf analysis reveals patterns (e.g. \"llm-rubric assertions flaky on skill X\",\n\"latency spikes correlate with fixture size\"), append entries to\n`.sdlc\u002Flearnings\u002Flog.md`.\n",{"name":5,"description":7},"main","3480d74fa3b8cb64fff5c365fbeb6e00d2708e53",".claude\u002Fskills\u002Fpromptfoo-results",6,"https:\u002F\u002Fgithub.com\u002Frnagrodzki\u002Fsdlc-marketplace","https:\u002F\u002Fgithub.com\u002Frnagrodzki","http:\u002F\u002Fnagrodzki.net","2026-09-05 21:47:31",{"source":8,"skillName":5,"commands":46,"prompt":56,"zipAvailable":57},[47,50,53],{"tool":48,"command":49},"npx","npx skills add rnagrodzki\u002Fsdlc-marketplace --skill promptfoo-results",{"tool":51,"command":52},"bunx","bunx skills add rnagrodzki\u002Fsdlc-marketplace --skill promptfoo-results",{"tool":54,"command":55},"pnpm","pnpm dlx skills add rnagrodzki\u002Fsdlc-marketplace --skill promptfoo-results","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Frnagrodzki\u002Fsdlc-marketplace\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Fpromptfoo-results\u002FSKILL.md",true,[],[60,77,84,94,103,118],{"skillNo":61,"name":62,"nameZh":6,"description":63,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":64,"categories":65,"keywords":71,"publishedAt":32},"01M6CYJDSW8MAAJAM62G7ZPRVB","example-skill","Test fixture — passing case for script-resolution-version rule.","https:\u002F\u002Fgithub.com\u002Frnagrodzki\u002Fsdlc-marketplace\u002Fblob\u002Fmain\u002Ftests\u002Fpromptfoo\u002Ffixtures-fs\u002Fresolution-validator-cases\u002Fgood-project\u002Fplugins\u002Fsdlc-utilities\u002Fskills\u002Fexample-skill\u002FSKILL.md",[66],{"categoryNo":67,"categoryName":68,"taxonomyType":69,"taxonomyTypeDesc":70},"01JBSEEDCAT000000000000023","Skill与智能体开发","SCENARIO","使用场景",[72,73,74,22,75,76],"example skill","example","fixture","version","resolution",{"skillNo":78,"name":62,"nameZh":6,"description":79,"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":83,"publishedAt":32},"01M6CYJCBDNB7S40VZ1B0TEFE1","Test fixture — failing case for script-resolution-version rule.","https:\u002F\u002Fgithub.com\u002Frnagrodzki\u002Fsdlc-marketplace\u002Fblob\u002Fmain\u002Ftests\u002Fpromptfoo\u002Ffixtures-fs\u002Fresolution-validator-cases\u002Fbad-project\u002Fplugins\u002Fsdlc-utilities\u002Fskills\u002Fexample-skill\u002FSKILL.md",[82],{"categoryNo":67,"categoryName":68,"taxonomyType":69,"taxonomyTypeDesc":70},[73,72,22,75,74,76],{"skillNo":85,"name":62,"nameZh":6,"description":86,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":87,"categories":88,"keywords":90,"publishedAt":32},"01M6CYJARTK87CH0T6EJ7ZQCZV","Test fixture — passing case for the orchestrator-await-barrier rule (#487). Marks a fan-out dispatch as await-barrier-required and states the guard.","https:\u002F\u002Fgithub.com\u002Frnagrodzki\u002Fsdlc-marketplace\u002Fblob\u002Fmain\u002Ftests\u002Fpromptfoo\u002Ffixtures-fs\u002Forchestrator-await-barrier-cases\u002Fgood-project\u002Fplugins\u002Fsdlc-utilities\u002Fskills\u002Fexample-skill\u002FSKILL.md",[89],{"categoryNo":67,"categoryName":68,"taxonomyType":69,"taxonomyTypeDesc":70},[72,73,91,92,93,74,22],"guard","orchestrator","dispatch",{"skillNo":95,"name":62,"nameZh":6,"description":96,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":97,"categories":98,"keywords":100,"publishedAt":32},"01M6CYJ8T4G8CQDWGZKGW1THNZ","Test fixture — failing case for the orchestrator-await-barrier rule (#487). Marks a fan-out dispatch as await-barrier-required but never states the guard.","https:\u002F\u002Fgithub.com\u002Frnagrodzki\u002Fsdlc-marketplace\u002Fblob\u002Fmain\u002Ftests\u002Fpromptfoo\u002Ffixtures-fs\u002Forchestrator-await-barrier-cases\u002Fbad-project\u002Fplugins\u002Fsdlc-utilities\u002Fskills\u002Fexample-skill\u002FSKILL.md",[99],{"categoryNo":67,"categoryName":68,"taxonomyType":69,"taxonomyTypeDesc":70},[73,72,22,91,92,101,93,102,74],"never","but",{"skillNo":104,"name":105,"nameZh":6,"description":106,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":107,"categories":108,"keywords":109,"publishedAt":32},"01M6CYJ78NG35A6BGVDG3DTDV8","pr-sdlc","Creates or updates GitHub pull requests with auto-generated 8-section descriptions.","https:\u002F\u002Fgithub.com\u002Frnagrodzki\u002Fsdlc-marketplace\u002Fblob\u002Fmain\u002Ftests\u002Fpromptfoo\u002Ffixtures-fs\u002Fhealthy-marketplace\u002Fplugins\u002Fsdlc-utilities\u002Fskills\u002Fpr-sdlc\u002FSKILL.md",[],[110,111,112,113,114,115,116,117],"pr sdlc","sdlc","pr","auto","github","pull requests","pull","generated",{"skillNo":119,"name":62,"nameZh":6,"description":120,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":121,"categories":122,"keywords":124,"publishedAt":32},"01M6CYJ5W0AYJTBNDN0W4K6AJZ","Fixture skill for validate-cost-tiers drift tests.","https:\u002F\u002Fgithub.com\u002Frnagrodzki\u002Fsdlc-marketplace\u002Fblob\u002Fmain\u002Ftests\u002Fpromptfoo\u002Ffixtures-fs\u002Fcost-tiers-drift\u002Fskills\u002Fexample-skill\u002FSKILL.md",[123],{"categoryNo":67,"categoryName":68,"taxonomyType":69,"taxonomyTypeDesc":70},[72,73,125,126,127,128,74],"validate","cost","fixture skill","drift"]