[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M71KDNAVB000W3MZB1W7CMD8":3,"skill-same:01M71KDNAVB000W3MZB1W7CMD8":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":32,"linkOnly":33,"markdownContent":34,"markdownBody":35,"frontMatter":36,"refName":39,"commitSha":40,"skillDirectory":41,"forksCount":42,"repositoryHtmlUrl":43,"repositoryHomepageUrl":44,"ownerHtmlUrl":45,"ownerBlogUrl":46,"ownerDescription":47,"updatedAt":48,"install":49,"resources":62},"01M71KDNAVB000W3MZB1W7CMD8","verification-before-completion",null,"Use when checking fixes, phase exits, completion evidence, or mock-heavy tests before claiming success.","mugsun\u002Fcurdx-flow","mugsun","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F100790155?v=4","01M6KJSAN2W4WRPDFBKTJTDDQ2","Mugsun","01M71K65VJXA4C1KPJAHZ6ZVHC",4,"MIT","https:\u002F\u002Fgithub.com\u002Fmugsun\u002Fcurdx-flow\u002Fblob\u002Fmain\u002Fplugins\u002Fcurdx-flow\u002Fskills\u002Fverification-before-completion\u002FSKILL.md",[],[19,20,21,22,23,24,25,26,27,28,29,30,31],"verification","verification before completion","only","false","when","tasks","phase","evidence","fixes","tests","use","mock","state","2026-11-10 10:12:30",false,"---\nname: verification-before-completion\ndescription: Use when checking fixes, phase exits, completion evidence, or mock-heavy tests before claiming success.\nwhen_to_use: Use when reproducing failures, verifying BEFORE\u002FAFTER state, handling VF tasks, checking verificationBlocks, validating completion evidence, or auditing mock-only tests.\nversion: 0.2.0\nuser-invocable: false\n---\n\n# Reality Verification\n\nFor fix goals: reproduce the failure BEFORE work, verify resolution AFTER.\n\n## Scope\n\nThis skill was expanded in v7.x to cover phase-exit \u002F commit \u002F tag \u002F release boundaries beyond the original task-level VF scope. Triggers retained: verify a fix, reproduce failure, BEFORE\u002FAFTER, VF task, reality check, mock-only tests, phase exit.\n\n## Goal Detection\n\nClassify user goals to determine if diagnosis is needed. See `references\u002Fgoal-detection-patterns.md` for detailed patterns.\n\n**Quick reference:**\n- Fix indicators: fix, repair, resolve, debug, patch, broken, failing, error, bug\n- Add indicators: add, create, build, implement, new\n- Conflict resolution: If both present, treat as Fix\n\n## Command Mapping\n\n| Goal Keywords | Reproduction Command |\n|---------------|---------------------|\n| CI, pipeline | `gh run view --log-failed` |\n| test, tests | project test command |\n| type, typescript | `pnpm check-types` or `tsc --noEmit` |\n| lint | `pnpm lint` |\n| build | `pnpm build` |\n| E2E, UI | project Playwright CLI \u002F `@playwright\u002Ftest`; Chrome DevTools MCP for high-fidelity runtime issues |\n| API, endpoint | WebFetch tool |\n\nFor E2E\u002Fdeployment verification, use the policy in `${CLAUDE_PLUGIN_ROOT}\u002Freferences\u002Fbrowser-verification-policy.md`: Playwright CLI by default; Chrome DevTools MCP for GIS\u002FWebGL\u002Fcanvas\u002Fmap\u002FGPU rendering, console\u002Fnetwork\u002Fperformance diagnosis, or flaky Playwright behavior. Use WebFetch\u002Fcurl for API-only verification.\n\n## BEFORE\u002FAFTER Documentation\n\n### BEFORE State (Diagnosis)\n\nDocument in `.progress.md` under `## Reality Check (BEFORE)`:\n\n```markdown\n## Reality Check (BEFORE)\n\n**Goal type**: Fix\n**Reproduction command**: `pnpm test`\n**Failure observed**: Yes\n**Output**:\n```\nFAIL src\u002Fauth.test.ts\n  Expected: 200\n  Received: 401\n```\n**Timestamp**: 2026-01-16T10:30:00Z\n```\n\n### AFTER State (Verification)\n\nDocument in `.progress.md` under `## Reality Check (AFTER)`:\n\n```markdown\n## Reality Check (AFTER)\n\n**Command**: `pnpm test`\n**Result**: PASS\n**Output**:\n```\nPASS src\u002Fauth.test.ts\nAll tests passed\n```\n**Comparison**: BEFORE failed with 401, AFTER passes\n**Verified**: Issue resolved\n```\n\n## VF Task Format\n\nAdd as task 4.3 (after PR creation) for fix-type specs:\n\n```markdown\n- [ ] 4.3 VF: Verify original issue resolved\n  - **Do**:\n    1. Read BEFORE state from .progress.md\n    2. Re-run reproduction command: `\u003Ccommand>`\n    3. Compare output with BEFORE state\n    4. Document AFTER state in .progress.md\n  - **Verify**: `grep -q \"Verified: Issue resolved\" .\u002Fspecs\u002F\u003Cname>\u002F.progress.md`\n  - **Done when**: AFTER shows issue resolved, documented in .progress.md\n  - **Commit**: `chore(\u003Cname>): verify fix resolves original issue`\n```\n\n## Test Quality Checks\n\nWhen verifying test-related fixes, check for mock-only test anti-patterns. See `references\u002Fmock-quality-checks.md` for detailed patterns.\n\n**Quick reference red flags:**\n- Mock declarations > 3x real assertions\n- Missing import of actual module under test\n- All assertions are mock interaction checks (toHaveBeenCalled)\n- No integration tests\n- Missing mock cleanup (afterEach)\n\n## Browser Verification\n\nBefore claiming frontend, full-stack, browser, or deployment behavior is complete:\n\n1. Read the spec's `## Browser Verify` section or choose a track from `references\u002Fbrowser-verification-policy.md`.\n2. Run the selected track fresh in this session:\n   - `playwright`: dev server + project E2E command or `npx playwright test`.\n   - `chrome-devtools-mcp`: real Chrome observation for console, network, DOM\u002Fscreenshot\u002Fsnapshot, performance, or rendering evidence.\n3. Record the command\u002Ftool, URL, checked flow, result, and artifact\u002Fobservation.\n4. Treat missing browser evidence as not verified.\n\nNever use `\u002Fultrareview` as a substitute for browser verification.\n\n## Why This Matters\n\n| Without | With |\n|---------|------|\n| \"Fix CI\" spec completes but CI still red | CI verified green before merge |\n| Tests \"fixed\" but original failure unknown | Before\u002Fafter comparison proves fix |\n| Silent regressions | Explicit failure reproduction |\n| Manual verification required | Automated verification in workflow |\n| Tests pass but only test mocks | Tests verify real behavior, not mock behavior |\n| False sense of security from green tests | Confidence that tests catch real bugs |\n","# Reality Verification\n\nFor fix goals: reproduce the failure BEFORE work, verify resolution AFTER.\n\n## Scope\n\nThis skill was expanded in v7.x to cover phase-exit \u002F commit \u002F tag \u002F release boundaries beyond the original task-level VF scope. Triggers retained: verify a fix, reproduce failure, BEFORE\u002FAFTER, VF task, reality check, mock-only tests, phase exit.\n\n## Goal Detection\n\nClassify user goals to determine if diagnosis is needed. See `references\u002Fgoal-detection-patterns.md` for detailed patterns.\n\n**Quick reference:**\n- Fix indicators: fix, repair, resolve, debug, patch, broken, failing, error, bug\n- Add indicators: add, create, build, implement, new\n- Conflict resolution: If both present, treat as Fix\n\n## Command Mapping\n\n| Goal Keywords | Reproduction Command |\n|---------------|---------------------|\n| CI, pipeline | `gh run view --log-failed` |\n| test, tests | project test command |\n| type, typescript | `pnpm check-types` or `tsc --noEmit` |\n| lint | `pnpm lint` |\n| build | `pnpm build` |\n| E2E, UI | project Playwright CLI \u002F `@playwright\u002Ftest`; Chrome DevTools MCP for high-fidelity runtime issues |\n| API, endpoint | WebFetch tool |\n\nFor E2E\u002Fdeployment verification, use the policy in `${CLAUDE_PLUGIN_ROOT}\u002Freferences\u002Fbrowser-verification-policy.md`: Playwright CLI by default; Chrome DevTools MCP for GIS\u002FWebGL\u002Fcanvas\u002Fmap\u002FGPU rendering, console\u002Fnetwork\u002Fperformance diagnosis, or flaky Playwright behavior. Use WebFetch\u002Fcurl for API-only verification.\n\n## BEFORE\u002FAFTER Documentation\n\n### BEFORE State (Diagnosis)\n\nDocument in `.progress.md` under `## Reality Check (BEFORE)`:\n\n```markdown\n## Reality Check (BEFORE)\n\n**Goal type**: Fix\n**Reproduction command**: `pnpm test`\n**Failure observed**: Yes\n**Output**:\n```\nFAIL src\u002Fauth.test.ts\n  Expected: 200\n  Received: 401\n```\n**Timestamp**: 2026-01-16T10:30:00Z\n```\n\n### AFTER State (Verification)\n\nDocument in `.progress.md` under `## Reality Check (AFTER)`:\n\n```markdown\n## Reality Check (AFTER)\n\n**Command**: `pnpm test`\n**Result**: PASS\n**Output**:\n```\nPASS src\u002Fauth.test.ts\nAll tests passed\n```\n**Comparison**: BEFORE failed with 401, AFTER passes\n**Verified**: Issue resolved\n```\n\n## VF Task Format\n\nAdd as task 4.3 (after PR creation) for fix-type specs:\n\n```markdown\n- [ ] 4.3 VF: Verify original issue resolved\n  - **Do**:\n    1. Read BEFORE state from .progress.md\n    2. Re-run reproduction command: `\u003Ccommand>`\n    3. Compare output with BEFORE state\n    4. Document AFTER state in .progress.md\n  - **Verify**: `grep -q \"Verified: Issue resolved\" .\u002Fspecs\u002F\u003Cname>\u002F.progress.md`\n  - **Done when**: AFTER shows issue resolved, documented in .progress.md\n  - **Commit**: `chore(\u003Cname>): verify fix resolves original issue`\n```\n\n## Test Quality Checks\n\nWhen verifying test-related fixes, check for mock-only test anti-patterns. See `references\u002Fmock-quality-checks.md` for detailed patterns.\n\n**Quick reference red flags:**\n- Mock declarations > 3x real assertions\n- Missing import of actual module under test\n- All assertions are mock interaction checks (toHaveBeenCalled)\n- No integration tests\n- Missing mock cleanup (afterEach)\n\n## Browser Verification\n\nBefore claiming frontend, full-stack, browser, or deployment behavior is complete:\n\n1. Read the spec's `## Browser Verify` section or choose a track from `references\u002Fbrowser-verification-policy.md`.\n2. Run the selected track fresh in this session:\n   - `playwright`: dev server + project E2E command or `npx playwright test`.\n   - `chrome-devtools-mcp`: real Chrome observation for console, network, DOM\u002Fscreenshot\u002Fsnapshot, performance, or rendering evidence.\n3. Record the command\u002Ftool, URL, checked flow, result, and artifact\u002Fobservation.\n4. Treat missing browser evidence as not verified.\n\nNever use `\u002Fultrareview` as a substitute for browser verification.\n\n## Why This Matters\n\n| Without | With |\n|---------|------|\n| \"Fix CI\" spec completes but CI still red | CI verified green before merge |\n| Tests \"fixed\" but original failure unknown | Before\u002Fafter comparison proves fix |\n| Silent regressions | Explicit failure reproduction |\n| Manual verification required | Automated verification in workflow |\n| Tests pass but only test mocks | Tests verify real behavior, not mock behavior |\n| False sense of security from green tests | Confidence that tests catch real bugs |\n",{"name":5,"version":37,"description":7,"when_to_use":38,"user-invocable":33},"0.2.0","Use when reproducing failures, verifying BEFORE\u002FAFTER state, handling VF tasks, checking verificationBlocks, validating completion evidence, or auditing mock-only tests.","main","7357746802ae7a84cafa93b9dbffd138817b0290","plugins\u002Fcurdx-flow\u002Fskills\u002Fverification-before-completion",0,"https:\u002F\u002Fgithub.com\u002Fmugsun\u002Fcurdx-flow","https:\u002F\u002Fcurdx.org","https:\u002F\u002Fgithub.com\u002Fmugsun","📮 bydongxin@gmail.com","🧑‍💻 AI Builder & Software Engineer\r\n🚀 Turning ideas into software.          \r\n\r\n","2026-08-19 15:19:29",{"source":8,"skillName":5,"commands":50,"prompt":60,"zipAvailable":61},[51,54,57],{"tool":52,"command":53},"npx","npx skills add mugsun\u002Fcurdx-flow --skill verification-before-completion",{"tool":55,"command":56},"bunx","bunx skills add mugsun\u002Fcurdx-flow --skill verification-before-completion",{"tool":58,"command":59},"pnpm","pnpm dlx skills add mugsun\u002Fcurdx-flow --skill verification-before-completion","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fmugsun\u002Fcurdx-flow\u002Fblob\u002Fmain\u002Fplugins\u002Fcurdx-flow\u002Fskills\u002Fverification-before-completion\u002FSKILL.md",true,[63,69],{"path":64,"resourceType":65,"resourceTypeDesc":66,"sizeBytes":67,"sourceHtmlUrl":68},"references\u002Fgoal-detection-patterns.md","REFERENCE","参考文档",2433,"https:\u002F\u002Fgithub.com\u002Fmugsun\u002Fcurdx-flow\u002Fblob\u002Fmain\u002Fplugins\u002Fcurdx-flow\u002Fskills\u002Fverification-before-completion\u002Freferences\u002Fgoal-detection-patterns.md",{"path":70,"resourceType":65,"resourceTypeDesc":66,"sizeBytes":71,"sourceHtmlUrl":72},"references\u002Fmock-quality-checks.md",3437,"https:\u002F\u002Fgithub.com\u002Fmugsun\u002Fcurdx-flow\u002Fblob\u002Fmain\u002Fplugins\u002Fcurdx-flow\u002Fskills\u002Fverification-before-completion\u002Freferences\u002Fmock-quality-checks.md",[74,87,104,118,129,141],{"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":32},"01M71KDR5EJP6G4VWFCHNJ35PT","help","Fixture help skill","https:\u002F\u002Fgithub.com\u002Fmugsun\u002Fcurdx-flow\u002Fblob\u002Fmain\u002Ftests\u002Ffixtures\u002Fruntime-readiness\u002Fclaude-code-plugin-like\u002Fskills\u002Fhelp\u002FSKILL.md",[80],{"categoryNo":81,"categoryName":82,"taxonomyType":83,"taxonomyTypeDesc":84},"01JBSEEDCAT000000000000023","Skill与智能体开发","SCENARIO","使用场景",[76,86],"fixture",{"skillNo":88,"name":89,"nameZh":6,"description":90,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":91,"categories":92,"keywords":94,"publishedAt":32},"01M71KDKFE975GFYRDC21H1NEE","triage","Use when a large feature should be decomposed into dependency-aware specs.","https:\u002F\u002Fgithub.com\u002Fmugsun\u002Fcurdx-flow\u002Fblob\u002Fmain\u002Fplugins\u002Fcurdx-flow\u002Fskills\u002Ftriage\u002FSKILL.md",[93],{"categoryNo":81,"categoryName":82,"taxonomyType":83,"taxonomyTypeDesc":84},[89,95,96,97,29,98,99,100,101,102,103,23],"dependency","name","EPIC","true","feature","write","read","goal","Bash",{"skillNo":105,"name":24,"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":110,"publishedAt":32},"01M71KDH7XFQJPKYZ0H9JDNSA5","Use when a spec has design.md and needs implementation tasks.","https:\u002F\u002Fgithub.com\u002Fmugsun\u002Fcurdx-flow\u002Fblob\u002Fmain\u002Fplugins\u002Fcurdx-flow\u002Fskills\u002Ftasks\u002FSKILL.md",[109],{"categoryNo":81,"categoryName":82,"taxonomyType":83,"taxonomyTypeDesc":84},[24,111,29,98,112,100,101,103,23,113,114,115,116,96,117],"design","edit","auto","standard","implementation","spec","task",{"skillNo":119,"name":120,"nameZh":6,"description":121,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":122,"categories":123,"keywords":125,"publishedAt":32},"01M71KDEV9G51MCXDQWPJH7QST","switch","Use when changing the active spec by name or path.","https:\u002F\u002Fgithub.com\u002Fmugsun\u002Fcurdx-flow\u002Fblob\u002Fmain\u002Fplugins\u002Fcurdx-flow\u002Fskills\u002Fswitch\u002FSKILL.md",[124],{"categoryNo":81,"categoryName":82,"taxonomyType":83,"taxonomyTypeDesc":84},[120,126,100,116,101,96,23,103,29,98,127,128],"path","by name","active",{"skillNo":130,"name":131,"nameZh":6,"description":132,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":133,"categories":134,"keywords":136,"publishedAt":32},"01M71KDDJFRV09YZ08B3WJ39SC","status","Use when inspecting curdx-flow specs, active state, progress, or index status.","https:\u002F\u002Fgithub.com\u002Fmugsun\u002Fcurdx-flow\u002Fblob\u002Fmain\u002Fplugins\u002Fcurdx-flow\u002Fskills\u002Fstatus\u002FSKILL.md",[135],{"categoryNo":81,"categoryName":82,"taxonomyType":83,"taxonomyTypeDesc":84},[131,128,137,138,101,139,140,31,103,23,29,98],"index","flow","update","progress",{"skillNo":142,"name":143,"nameZh":6,"description":144,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":145,"categories":146,"keywords":148,"publishedAt":32},"01M71KDB3BEEK162AMMHR5FSK6","start","Use when starting curdx-flow, creating a spec, resuming work, or routing intent.","https:\u002F\u002Fgithub.com\u002Fmugsun\u002Fcurdx-flow\u002Fblob\u002Fmain\u002Fplugins\u002Fcurdx-flow\u002Fskills\u002Fstart\u002FSKILL.md",[147],{"categoryNo":81,"categoryName":82,"taxonomyType":83,"taxonomyTypeDesc":84},[143,149,150,138,112,100,101,102,151,152,126,153,154,103,23,113,155,156,157,158],"fresh","agent skill","intent","work","review","commit","mode","quick","deep","minimal"]