[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6CBB37CC7YSBJET883X8SWJ":3,"skill-same:01M6CBB37CC7YSBJET883X8SWJ":74},{"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":33,"linkOnly":34,"markdownContent":35,"markdownBody":36,"frontMatter":37,"refName":42,"commitSha":43,"skillDirectory":44,"forksCount":45,"repositoryHtmlUrl":46,"repositoryHomepageUrl":47,"ownerHtmlUrl":48,"ownerBlogUrl":6,"ownerDescription":6,"updatedAt":49,"install":50,"resources":63},"01M6CBB37CC7YSBJET883X8SWJ","verification-before-completion",null,"Evidence-before-claims discipline: run the verification command and read its output before reporting work complete, fixed, or passing. Use before any success claim, before committing, or before creating a PR.","shahboura\u002Fagents-opencode","shahboura","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F210767?v=4","01M6C6WKTBT0NH92BEPQRHQSYM","Shehab El Hadidy","01M6C6WKYXG8AE68MCGBNE5ZFR",2,"MIT","https:\u002F\u002Fgithub.com\u002Fshahboura\u002Fagents-opencode\u002Fblob\u002Fmain\u002F.opencode\u002Fskills\u002Fverification-before-completion\u002FSKILL.md",[],[19,20,21,22,23,24,25,26,27,28,29,30,31,32],"verification","verification before completion","pr","run","reporting","methodology","work","command","read","use","discipline","evidence","superpowers","opencode","2026-11-10 10:12:30",false,"---\nname: verification-before-completion\ndescription: >-\n  Evidence-before-claims discipline: run the verification command and read its\n  output before reporting work complete, fixed, or passing. Use before any\n  success claim, before committing, or before creating a PR.\nlicense: MIT\ncompatibility: opencode\nmetadata:\n  author: shahboura (methodology adapted from obra\u002Fsuperpowers, MIT)\n  version: \"1.0.0\"\n  audience: developers\n  workflow: verification\n---\n\n# Verification Before Completion\n\n## What I do\n\n- Replace \"should work\" with fresh, observed evidence\n- Gate every completion claim on a command whose output has been read\n- Keep delegated work honest by verifying the artifact, not the report\n\n## When to use me\n\nAlways, before:\n\n- Any variation of a success or completion claim\n- Any expression of satisfaction (\"done\", \"perfect\", \"should pass\")\n- Committing, opening a PR, or marking a task complete\n- Moving to the next task\n- Reporting on delegated agent work\n\n## The Iron Law\n\n```\nNO COMPLETION CLAIMS WITHOUT FRESH VERIFICATION EVIDENCE\n```\n\nA claim is verified here (you ran the command in this message) or by a fresh verifier\nwhose raw output you paste with its exit code, attributed. A verifier's summary is not\nevidence. If neither exists, it cannot be claimed as passing.\n\n## The gate function\n\n1. **Identify** — what command proves this claim?\n2. **Run** — execute the full command, fresh.\n3. **Read** — read the full output; check the exit code; count failures.\n4. **Verify** — does the output confirm the claim?\n   - No → state the actual status with evidence.\n   - Yes → state the claim with evidence.\n5. **Only then** — make the claim.\n\nSkipping a step is not verifying.\n\n## Delegating the final pass\n\n- Dispatch browser, E2E, and user-flow verification to a fresh agent; paste its attributed output, not a summary.\n\n## Claims and the evidence they require\n\n| Claim | Requires | Not sufficient |\n|-------|----------|----------------|\n| Tests pass | Test output: 0 failures | A previous run, \"should pass\" |\n| Linter clean | Linter output: 0 errors | A partial check, extrapolation |\n| Build succeeds | Build exit code 0 | Linter passing, logs look fine |\n| Bug fixed | The original symptom's test passing | Code changed, assumed fixed |\n| Regression test works | Red → revert fix (must fail) → restore (pass) | The test passing once |\n| Requirements met | A line-by-line checklist | Tests passing |\n| Delegated work done | The VCS diff shows the change | An agent reporting \"success\" |\n| Delegated check passed | The verifier's pasted output and exit code | The verifier's summary |\n\n## Red flags — stop\n\n- \"should\", \"probably\", \"seems to\"\n- Satisfaction before verification\n- About to commit, push, or open a PR without running the checks\n- Trusting an agent's success report\n- \"Just this once\" \u002F \"I'm confident\" \u002F \"a partial check is enough\"\n\n## Rationalization prevention\n\n| Excuse | Reality |\n|--------|---------|\n| \"Should work now\" | Run the verification. |\n| \"I'm confident\" | Confidence is not evidence. |\n| \"The linter passed\" | Linter is not compiler is not tests. |\n| \"The agent said it succeeded\" | Verify independently. |\n| \"I'm tired\" | Exhaustion is not an excuse. |\n\n## Key patterns\n\n```\n✅ [run the test command] [see: 34\u002F34 pass] → \"All tests pass\"\n❌ \"Should pass now\" \u002F \"Looks correct\"\n\n✅ [run the build] [see: exit 0] → \"Build passes\"\n❌ \"The linter passed\" (the linter does not compile)\n```\n\n## Related\n\n- `code-change-impact` — the blast-radius analysis to run before a \"nothing broke\" claim\n- `test-driven-development` — the red-green cycle that proves a test can fail\n- The repository's review gate — the automated checks to run before committing\n\n## Provenance\n\nAdapted from `obra\u002Fsuperpowers` (MIT), © 2025 Jesse Vincent. See\n`THIRD_PARTY_NOTICES.md`.\n","# Verification Before Completion\n\n## What I do\n\n- Replace \"should work\" with fresh, observed evidence\n- Gate every completion claim on a command whose output has been read\n- Keep delegated work honest by verifying the artifact, not the report\n\n## When to use me\n\nAlways, before:\n\n- Any variation of a success or completion claim\n- Any expression of satisfaction (\"done\", \"perfect\", \"should pass\")\n- Committing, opening a PR, or marking a task complete\n- Moving to the next task\n- Reporting on delegated agent work\n\n## The Iron Law\n\n```\nNO COMPLETION CLAIMS WITHOUT FRESH VERIFICATION EVIDENCE\n```\n\nA claim is verified here (you ran the command in this message) or by a fresh verifier\nwhose raw output you paste with its exit code, attributed. A verifier's summary is not\nevidence. If neither exists, it cannot be claimed as passing.\n\n## The gate function\n\n1. **Identify** — what command proves this claim?\n2. **Run** — execute the full command, fresh.\n3. **Read** — read the full output; check the exit code; count failures.\n4. **Verify** — does the output confirm the claim?\n   - No → state the actual status with evidence.\n   - Yes → state the claim with evidence.\n5. **Only then** — make the claim.\n\nSkipping a step is not verifying.\n\n## Delegating the final pass\n\n- Dispatch browser, E2E, and user-flow verification to a fresh agent; paste its attributed output, not a summary.\n\n## Claims and the evidence they require\n\n| Claim | Requires | Not sufficient |\n|-------|----------|----------------|\n| Tests pass | Test output: 0 failures | A previous run, \"should pass\" |\n| Linter clean | Linter output: 0 errors | A partial check, extrapolation |\n| Build succeeds | Build exit code 0 | Linter passing, logs look fine |\n| Bug fixed | The original symptom's test passing | Code changed, assumed fixed |\n| Regression test works | Red → revert fix (must fail) → restore (pass) | The test passing once |\n| Requirements met | A line-by-line checklist | Tests passing |\n| Delegated work done | The VCS diff shows the change | An agent reporting \"success\" |\n| Delegated check passed | The verifier's pasted output and exit code | The verifier's summary |\n\n## Red flags — stop\n\n- \"should\", \"probably\", \"seems to\"\n- Satisfaction before verification\n- About to commit, push, or open a PR without running the checks\n- Trusting an agent's success report\n- \"Just this once\" \u002F \"I'm confident\" \u002F \"a partial check is enough\"\n\n## Rationalization prevention\n\n| Excuse | Reality |\n|--------|---------|\n| \"Should work now\" | Run the verification. |\n| \"I'm confident\" | Confidence is not evidence. |\n| \"The linter passed\" | Linter is not compiler is not tests. |\n| \"The agent said it succeeded\" | Verify independently. |\n| \"I'm tired\" | Exhaustion is not an excuse. |\n\n## Key patterns\n\n```\n✅ [run the test command] [see: 34\u002F34 pass] → \"All tests pass\"\n❌ \"Should pass now\" \u002F \"Looks correct\"\n\n✅ [run the build] [see: exit 0] → \"Build passes\"\n❌ \"The linter passed\" (the linter does not compile)\n```\n\n## Related\n\n- `code-change-impact` — the blast-radius analysis to run before a \"nothing broke\" claim\n- `test-driven-development` — the red-green cycle that proves a test can fail\n- The repository's review gate — the automated checks to run before committing\n\n## Provenance\n\nAdapted from `obra\u002Fsuperpowers` (MIT), © 2025 Jesse Vincent. See\n`THIRD_PARTY_NOTICES.md`.\n",{"name":5,"license":15,"metadata":38,"description":7,"compatibility":32},{"author":39,"version":40,"audience":41,"workflow":19},"shahboura (methodology adapted from obra\u002Fsuperpowers, MIT)","1.0.0","developers","main","9b951b5b2e5d07d427baff330db5deb2a8c67511",".opencode\u002Fskills\u002Fverification-before-completion",0,"https:\u002F\u002Fgithub.com\u002Fshahboura\u002Fagents-opencode","https:\u002F\u002Fagnts.elkodr.com\u002F","https:\u002F\u002Fgithub.com\u002Fshahboura","2026-11-05 13:30:42",{"source":8,"skillName":5,"commands":51,"prompt":61,"zipAvailable":62},[52,55,58],{"tool":53,"command":54},"npx","npx skills add shahboura\u002Fagents-opencode --skill verification-before-completion",{"tool":56,"command":57},"bunx","bunx skills add shahboura\u002Fagents-opencode --skill verification-before-completion",{"tool":59,"command":60},"pnpm","pnpm dlx skills add shahboura\u002Fagents-opencode --skill verification-before-completion","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fshahboura\u002Fagents-opencode\u002Fblob\u002Fmain\u002F.opencode\u002Fskills\u002Fverification-before-completion\u002FSKILL.md",true,[64,70],{"path":65,"resourceType":66,"resourceTypeDesc":67,"sizeBytes":68,"sourceHtmlUrl":69},"references\u002Ftechnique-cheatsheet.md","REFERENCE","参考文档",3921,"https:\u002F\u002Fgithub.com\u002FBlackBeltTechnology\u002Fpi-agent-dashboard\u002Fblob\u002Fdevelop\u002Fpackages\u002Feng-disciplines\u002F.pi\u002Fskills\u002Fscenario-design\u002Freferences\u002Ftechnique-cheatsheet.md",{"path":71,"resourceType":66,"resourceTypeDesc":67,"sizeBytes":72,"sourceHtmlUrl":73},"references\u002Ftest-plan-schema.md",3612,"https:\u002F\u002Fgithub.com\u002FBlackBeltTechnology\u002Fpi-agent-dashboard\u002Fblob\u002Fdevelop\u002Fpackages\u002Feng-disciplines\u002F.pi\u002Fskills\u002Fscenario-design\u002Freferences\u002Ftest-plan-schema.md",[75,81,90,95,100,105],{"skillNo":76,"name":77,"nameZh":6,"description":6,"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":80,"publishedAt":33},"01M6CBBX1C6NV7VY8XK21DV5FW","python","https:\u002F\u002Fgithub.com\u002Fshahboura\u002Fagents-opencode\u002Fblob\u002Fmain\u002Fscripts\u002Ffixtures\u002Fvalidate-agents\u002Fvalid\u002F.opencode\u002Fskills\u002Fpython\u002FSKILL.md",[],[77],{"skillNo":82,"name":83,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":84,"categories":85,"keywords":86,"publishedAt":33},"01M6CBBVB7W6ABJH8XP3Z8PPMK","docs-validation","https:\u002F\u002Fgithub.com\u002Fshahboura\u002Fagents-opencode\u002Fblob\u002Fmain\u002Fscripts\u002Ffixtures\u002Fvalidate-agents\u002Fvalid\u002F.opencode\u002Fskills\u002Fdocs-validation\u002FSKILL.md",[],[87,88,89],"docs","validation","docs validation",{"skillNo":91,"name":77,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":92,"categories":93,"keywords":94,"publishedAt":33},"01M6CBBT2WC781609MH5RN7KM7","https:\u002F\u002Fgithub.com\u002Fshahboura\u002Fagents-opencode\u002Fblob\u002Fmain\u002Fscripts\u002Ffixtures\u002Fvalidate-agents\u002Funknown-skill\u002F.opencode\u002Fskills\u002Fpython\u002FSKILL.md",[],[77],{"skillNo":96,"name":83,"nameZh":6,"description":6,"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":99,"publishedAt":33},"01M6CBBRNY6TDRZ5627GC8436D","https:\u002F\u002Fgithub.com\u002Fshahboura\u002Fagents-opencode\u002Fblob\u002Fmain\u002Fscripts\u002Ffixtures\u002Fvalidate-agents\u002Funknown-skill\u002F.opencode\u002Fskills\u002Fdocs-validation\u002FSKILL.md",[],[87,88,89],{"skillNo":101,"name":77,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":102,"categories":103,"keywords":104,"publishedAt":33},"01M6CBBQDS170GBYA1CVW3DC5D","https:\u002F\u002Fgithub.com\u002Fshahboura\u002Fagents-opencode\u002Fblob\u002Fmain\u002Fscripts\u002Ffixtures\u002Fvalidate-agents\u002Finline-skill\u002F.opencode\u002Fskills\u002Fpython\u002FSKILL.md",[],[77],{"skillNo":106,"name":83,"nameZh":6,"description":6,"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":33},"01M6CBBP222WAW802YHY37F48A","https:\u002F\u002Fgithub.com\u002Fshahboura\u002Fagents-opencode\u002Fblob\u002Fmain\u002Fscripts\u002Ffixtures\u002Fvalidate-agents\u002Finline-skill\u002F.opencode\u002Fskills\u002Fdocs-validation\u002FSKILL.md",[],[87,88,89]]