[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6J27W0AP7TE88TP32X2SEPZ":3,"skill-same:01M6J27W0AP7TE88TP32X2SEPZ":73},{"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":39,"linkOnly":40,"markdownContent":41,"markdownBody":42,"frontMatter":43,"refName":44,"commitSha":45,"skillDirectory":46,"forksCount":47,"repositoryHtmlUrl":48,"repositoryHomepageUrl":49,"ownerHtmlUrl":50,"ownerBlogUrl":6,"ownerDescription":51,"updatedAt":52,"install":53,"resources":66},"01M6J27W0AP7TE88TP32X2SEPZ","post-feature-qa",null,"Apply after EVERY feature implementation, story completion, or task finish. Act as a senior QA engineer: make sure all edge cases are covered and implementation fully aligns with the story\u002Fspec. Use whenever you complete a story, ship a feature, or before marking a task done or opening a PR. Do not skip this — run the QA checklist before claiming work is complete.","sampleXbro\u002Fagentsmesh","sampleXbro","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F55853222?v=4","01M6J1A11VAS9QEE92CHHMBCKC","Serhii Zhabskyi","01M6J1A16FCGNMMABYE0P6SNTF",29,"MIT","https:\u002F\u002Fgithub.com\u002FsampleXbro\u002Fagentsmesh\u002Fblob\u002Fmaster\u002F.claude\u002Fskills\u002Fpost-feature-qa\u002FSKILL.md",[],[19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38],"post feature qa","qa","post","feature","feature implementation","sure","you","make","as","act","done","pr","do","task done","engineer","finish","work","ship","senior qa","run","2026-11-10 10:12:30",false,"---\nname: post-feature-qa\ndescription: \"Apply after EVERY feature implementation, story completion, or task finish. Act as a senior QA engineer: make sure all edge cases are covered and implementation fully aligns with the story\u002Fspec. Use whenever you complete a story, ship a feature, or before marking a task done or opening a PR. Do not skip this — run the QA checklist before claiming work is complete.\"\n---\n\n## Purpose\n\n# Post-Feature QA — Senior QA Engineer Mode\n\nWhen a feature, story, or task has been implemented, you MUST run this QA pass before marking it complete. Acting as a senior QA engineer, verify test coverage and story alignment. Never claim work is done without this review.\n\n## When to Trigger\n\n- You just finished implementing a story or task\n- You completed a feature and are about to commit or open a PR\n- The user says \"feature is done\", \"story complete\", or \"ready for review\"\n- You are about to mark checklist items complete in `tasks\u002Ftodo.md` or similar\n- Before any \"verification complete\" or \"acceptance criteria verified\" claim\n\n## Core Workflow\n\n### 1. Load the Story\u002FSpec\n\n- Find the story or feature spec. Common locations:\n  - `ruleforge-prd.md` (or similar PRD)\n  - `tasks\u002Ftodo.md`\n  - `docs\u002F`, `specs\u002F`, or ticket\u002Fissue description\n- Extract:\n  - **Acceptance criteria** — what must be true for the work to be done\n  - **Task list** — individual work items (e.g. 2.1.1, 2.1.2)\n  - **Explicit test requirements** — e.g. \"Write tests: valid, invalid, every field type\"\n\n### 2. Cross-Check Acceptance Criteria\n\nFor each acceptance criterion:\n\n| Criterion      | Action                                          |\n| -------------- | ----------------------------------------------- |\n| Behavioral     | Verify a test exists that asserts the behavior  |\n| Config\u002Fformat  | Verify tests for valid + invalid inputs         |\n| Error handling | Verify tests for error paths and error messages |\n| Edge cases     | Empty, null, boundary values, invalid types     |\n\nIf any criterion has no corresponding test, add the test.\n\n### 3. Edge Case Checklist\n\nLoad `.\u002Freferences\u002Fedge-case-checklist.md` for a full reference. For every public API, config schema, or behavior:\n\n- **Valid inputs**: minimal valid, full valid, optional fields omitted\n- **Invalid types**: wrong type (string vs number, array vs object, etc.)\n- **Boundaries**: empty array\u002Fstring, single element, max length if applicable\n- **Null\u002Fundefined**: missing required fields, explicit null where relevant\n- **Invalid values**: out-of-range, invalid enum, malformed structure\n- **Combined failures**: multiple invalid fields in one input\n\nApply this systematically to each field or function you implemented.\n\n### 4. Story Alignment\n\n- Every task in the story has corresponding code or tests\n- No scope creep — nothing implemented that wasn't in the spec\n- Exported types\u002FAPIs match what the spec describes\n- Defaults, error messages, and formats match the spec\n\n### 5. Run Verification\n\n- Run the test suite: `pnpm test` (or equivalent)\n- **Integration tests**: Run `pnpm build && pnpm test` — integration tests in `tests\u002Fintegration\u002F` require the built dist\n- Run lint: `pnpm lint`\n- Optionally: `pnpm test --coverage` and check coverage for new code\n- Fix any failures before claiming complete\n\n### 6. Integration Test Checklist\n\nWhen completing a story, ensure integration tests exist and pass:\n\n- Story 1–2: `tests\u002Fintegration\u002Fstory-1-cli.test.ts`, `story-2-config.test.ts`\n- For new stories: Add `story-N-\u003Cname>.test.ts` covering acceptance criteria end-to-end\n- Integration tests run the full CLI (spawn) or full config\u002Fgeneration pipeline with fixtures\n\n## Output Format\n\nProduce a **QA Report** with:\n\n```markdown\n## QA Report — [Story\u002FTask ID]\n\n### Acceptance Criteria\n\n| Criterion | Covered by test? | Status   |\n| --------- | ---------------- | -------- |\n| ...       | ✓ \u002F ✗            | OK \u002F GAP |\n\n### Edge Cases\n\n| Scenario | Covered? | Test location |\n| -------- | -------- | ------------- |\n| ...      | ✓ \u002F ✗    | path:line     |\n\n### Gaps Identified\n\n- [ ] Missing test for X\n- [ ] No test for invalid Y\n\n### Actions Taken\n\n- Added tests for ...\n- Fixed ...\n```\n\nIf gaps exist, fix them and re-run the report until all gaps are closed.\n\n## Principles\n\n- **Evidence over assertions**: Do not say \"tests cover edge cases\" without showing which tests cover which cases.\n- **Explicit over implicit**: List each edge case and the test that covers it.\n- **Fix, don't report**: When you find a gap, add the test. Don't just note it and move on.\n- **Story as source of truth**: If the spec says \"every field type\", ensure every field has invalid-type tests.","## Purpose\n\n# Post-Feature QA — Senior QA Engineer Mode\n\nWhen a feature, story, or task has been implemented, you MUST run this QA pass before marking it complete. Acting as a senior QA engineer, verify test coverage and story alignment. Never claim work is done without this review.\n\n## When to Trigger\n\n- You just finished implementing a story or task\n- You completed a feature and are about to commit or open a PR\n- The user says \"feature is done\", \"story complete\", or \"ready for review\"\n- You are about to mark checklist items complete in `tasks\u002Ftodo.md` or similar\n- Before any \"verification complete\" or \"acceptance criteria verified\" claim\n\n## Core Workflow\n\n### 1. Load the Story\u002FSpec\n\n- Find the story or feature spec. Common locations:\n  - `ruleforge-prd.md` (or similar PRD)\n  - `tasks\u002Ftodo.md`\n  - `docs\u002F`, `specs\u002F`, or ticket\u002Fissue description\n- Extract:\n  - **Acceptance criteria** — what must be true for the work to be done\n  - **Task list** — individual work items (e.g. 2.1.1, 2.1.2)\n  - **Explicit test requirements** — e.g. \"Write tests: valid, invalid, every field type\"\n\n### 2. Cross-Check Acceptance Criteria\n\nFor each acceptance criterion:\n\n| Criterion      | Action                                          |\n| -------------- | ----------------------------------------------- |\n| Behavioral     | Verify a test exists that asserts the behavior  |\n| Config\u002Fformat  | Verify tests for valid + invalid inputs         |\n| Error handling | Verify tests for error paths and error messages |\n| Edge cases     | Empty, null, boundary values, invalid types     |\n\nIf any criterion has no corresponding test, add the test.\n\n### 3. Edge Case Checklist\n\nLoad `.\u002Freferences\u002Fedge-case-checklist.md` for a full reference. For every public API, config schema, or behavior:\n\n- **Valid inputs**: minimal valid, full valid, optional fields omitted\n- **Invalid types**: wrong type (string vs number, array vs object, etc.)\n- **Boundaries**: empty array\u002Fstring, single element, max length if applicable\n- **Null\u002Fundefined**: missing required fields, explicit null where relevant\n- **Invalid values**: out-of-range, invalid enum, malformed structure\n- **Combined failures**: multiple invalid fields in one input\n\nApply this systematically to each field or function you implemented.\n\n### 4. Story Alignment\n\n- Every task in the story has corresponding code or tests\n- No scope creep — nothing implemented that wasn't in the spec\n- Exported types\u002FAPIs match what the spec describes\n- Defaults, error messages, and formats match the spec\n\n### 5. Run Verification\n\n- Run the test suite: `pnpm test` (or equivalent)\n- **Integration tests**: Run `pnpm build && pnpm test` — integration tests in `tests\u002Fintegration\u002F` require the built dist\n- Run lint: `pnpm lint`\n- Optionally: `pnpm test --coverage` and check coverage for new code\n- Fix any failures before claiming complete\n\n### 6. Integration Test Checklist\n\nWhen completing a story, ensure integration tests exist and pass:\n\n- Story 1–2: `tests\u002Fintegration\u002Fstory-1-cli.test.ts`, `story-2-config.test.ts`\n- For new stories: Add `story-N-\u003Cname>.test.ts` covering acceptance criteria end-to-end\n- Integration tests run the full CLI (spawn) or full config\u002Fgeneration pipeline with fixtures\n\n## Output Format\n\nProduce a **QA Report** with:\n\n```markdown\n## QA Report — [Story\u002FTask ID]\n\n### Acceptance Criteria\n\n| Criterion | Covered by test? | Status   |\n| --------- | ---------------- | -------- |\n| ...       | ✓ \u002F ✗            | OK \u002F GAP |\n\n### Edge Cases\n\n| Scenario | Covered? | Test location |\n| -------- | -------- | ------------- |\n| ...      | ✓ \u002F ✗    | path:line     |\n\n### Gaps Identified\n\n- [ ] Missing test for X\n- [ ] No test for invalid Y\n\n### Actions Taken\n\n- Added tests for ...\n- Fixed ...\n```\n\nIf gaps exist, fix them and re-run the report until all gaps are closed.\n\n## Principles\n\n- **Evidence over assertions**: Do not say \"tests cover edge cases\" without showing which tests cover which cases.\n- **Explicit over implicit**: List each edge case and the test that covers it.\n- **Fix, don't report**: When you find a gap, add the test. Don't just note it and move on.\n- **Story as source of truth**: If the spec says \"every field type\", ensure every field has invalid-type tests.",{"name":5,"description":7},"master","2a22abcae4e5677b6e385b5a0e144c48baac4a94",".claude\u002Fskills\u002Fpost-feature-qa",7,"https:\u002F\u002Fgithub.com\u002FsampleXbro\u002Fagentsmesh","https:\u002F\u002Fsamplexbro.github.io\u002Fagentsmesh\u002F","https:\u002F\u002Fgithub.com\u002FsampleXbro","Senior Software Engineer · React · TypeScript · Next.js · Smart TV specialist (Tizen, webOS, Android TV)","2026-11-06 03:06:21",{"source":8,"skillName":5,"commands":54,"prompt":64,"zipAvailable":65},[55,58,61],{"tool":56,"command":57},"npx","npx skills add sampleXbro\u002Fagentsmesh --skill post-feature-qa",{"tool":59,"command":60},"bunx","bunx skills add sampleXbro\u002Fagentsmesh --skill post-feature-qa",{"tool":62,"command":63},"pnpm","pnpm dlx skills add sampleXbro\u002Fagentsmesh --skill post-feature-qa","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002FsampleXbro\u002Fagentsmesh\u002Fblob\u002Fmaster\u002F.claude\u002Fskills\u002Fpost-feature-qa\u002FSKILL.md",true,[67],{"path":68,"resourceType":69,"resourceTypeDesc":70,"sizeBytes":71,"sourceHtmlUrl":72},"references\u002Fedge-case-checklist.md","REFERENCE","参考文档",3082,"https:\u002F\u002Fgithub.com\u002FsampleXbro\u002Fagentsmesh\u002Fblob\u002Fmaster\u002F.claude\u002Fskills\u002Fpost-feature-qa\u002Freferences\u002Fedge-case-checklist.md",[74,90,106,132,138,157],{"skillNo":75,"name":76,"nameZh":6,"description":77,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":78,"categories":79,"keywords":85,"publishedAt":39},"01M6J2GJ4NDEPJND2GAXN0VPRB","research","Research docs and summarize decisions","https:\u002F\u002Fgithub.com\u002FsampleXbro\u002Fagentsmesh\u002Fblob\u002Fmaster\u002Ftests\u002Fe2e\u002Ffixtures\u002Fwindsurf-project\u002F.windsurf\u002Fskills\u002Fresearch\u002FSKILL.md",[80],{"categoryNo":81,"categoryName":82,"taxonomyType":83,"taxonomyTypeDesc":84},"01JBSEEDCAT000000000000021","资料检索与研究","SCENARIO","使用场景",[76,86,87,88,89],"docs","summarize","decisions","research docs",{"skillNo":91,"name":92,"nameZh":6,"description":93,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":94,"categories":95,"keywords":99,"publishedAt":39},"01M6J2GF8WQVFP75AMJWV7YM50","debugging","Systematic debugging workflow for production failures and test regressions.","https:\u002F\u002Fgithub.com\u002FsampleXbro\u002Fagentsmesh\u002Fblob\u002Fmaster\u002Ftests\u002Fe2e\u002Ffixtures\u002Fwarp-project\u002F.warp\u002Fskills\u002Fdebugging\u002FSKILL.md",[96],{"categoryNo":97,"categoryName":98,"taxonomyType":83,"taxonomyTypeDesc":84},"01JBSEEDCAT000000000000023","Skill与智能体开发",[92,100,101,102,103,104,105],"systematic debugging","workflow","test","Production","systematic","for",{"skillNo":107,"name":108,"nameZh":6,"description":109,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":110,"categories":111,"keywords":121,"publishedAt":39},"01M6J2GAQRCM0KV565J63STPWB","api-generator","Generate REST API endpoints with validation and tests","https:\u002F\u002Fgithub.com\u002FsampleXbro\u002Fagentsmesh\u002Fblob\u002Fmaster\u002Ftests\u002Fe2e\u002Ffixtures\u002Ftrae-project\u002F.trae\u002Fskills\u002Fapi-generator\u002FSKILL.md",[112,115,116],{"categoryNo":113,"categoryName":114,"taxonomyType":83,"taxonomyTypeDesc":84},"01JBSEEDCAT000000000000010","后端与接口",{"categoryNo":97,"categoryName":98,"taxonomyType":83,"taxonomyTypeDesc":84},{"categoryNo":117,"categoryName":118,"taxonomyType":119,"taxonomyTypeDesc":120},"01JBSEEDCAT000000000000030","开发工程师","PROFESSION","适用职业",[122,123,124,125,126,127,128,129,130,131],"api","api generator","generator","REST","endpoints","rest api","tests","with","validation","generate",{"skillNo":133,"name":92,"nameZh":6,"description":93,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":134,"categories":135,"keywords":137,"publishedAt":39},"01M6J2G7VF3A2EGK5YBR4BM9KS","https:\u002F\u002Fgithub.com\u002FsampleXbro\u002Fagentsmesh\u002Fblob\u002Fmaster\u002Ftests\u002Fe2e\u002Ffixtures\u002Frovodev-project\u002F.rovodev\u002Fskills\u002Fdebugging\u002FSKILL.md",[136],{"categoryNo":97,"categoryName":98,"taxonomyType":83,"taxonomyTypeDesc":84},[92,105,101,102,100,103,104],{"skillNo":139,"name":140,"nameZh":6,"description":141,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":142,"categories":143,"keywords":145,"publishedAt":39},"01M6J2G4VHBHSPXGVQRZCH8CDW","typescript-pro","Apply advanced TypeScript patterns including conditional types, template literal types, and mapped types","https:\u002F\u002Fgithub.com\u002FsampleXbro\u002Fagentsmesh\u002Fblob\u002Fmaster\u002Ftests\u002Fe2e\u002Ffixtures\u002Froo-code-project\u002F.roo\u002Fskills\u002Ftypescript-pro\u002FSKILL.md",[144],{"categoryNo":117,"categoryName":118,"taxonomyType":119,"taxonomyTypeDesc":120},[146,147,148,149,150,151,152,153,154,155,156],"typescript","typescript pro","pro","patterns","code","architect","template","typescript patterns","Literal","types","advanced",{"skillNo":158,"name":92,"nameZh":6,"description":159,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":160,"categories":161,"keywords":163,"publishedAt":39},"01M6J2G2133FJ5SAHK9WX4YVNV","Systematic debugging workflow for Replit projects","https:\u002F\u002Fgithub.com\u002FsampleXbro\u002Fagentsmesh\u002Fblob\u002Fmaster\u002Ftests\u002Fe2e\u002Ffixtures\u002Freplit-agent-project\u002F.agents\u002Fskills\u002Fdebugging\u002FSKILL.md",[162],{"categoryNo":97,"categoryName":98,"taxonomyType":83,"taxonomyTypeDesc":84},[92,100,164,104,105,101],"projects"]