{"id":"1189804c-e74d-47c8-8fd0-99f4d1c23aea","shortId":"P5tJzG","kind":"skill","title":"verification-before-completion","tagline":"Use when about to claim work is complete, fixed, passing, verified, release-ready, or ready to commit, merge, publish, or hand off.","description":"# Execute\n\n→ About to claim \"done\", \"passing\", \"fixed\", \"complete\"? → **Run the verification command first. Then claim.**\n  1. Identify: what command proves the claim?\n  2. Run: full command, fresh, complete\n  3. Read: output, exit code, failures\n  4. Verify: output confirms claim? → state claim WITH evidence. Doesn't? → state actual status.\n→ Done when: exact command run, output confirms, residual risk stated, confidence graded.\n  Governance/retirement work → also close Repair Track + Retirement Track + Residual Risk.\n\n# Verification Before Completion\n\n## Overview\n\nClaiming work is complete without verification is dishonesty, not efficiency. Evidence before claims, always.\n\n## Red Flags - STOP\n\n- Using \"should\", \"probably\", \"seems to\"\n- Expressing satisfaction before verification (\"Great!\", \"Perfect!\", \"Done!\", etc.)\n- About to commit/push/PR without verification\n- Trusting agent success reports\n- Relying on partial verification\n- Thinking \"just this once\"\n- Tired and wanting work over\n- **ANY wording implying success without having run verification**\n\n## When To Apply\n\nBefore ANY success/completion claim, expression of satisfaction, commit, PR, task completion, or delegation. Applies to exact phrases, paraphrases, and implications.\n\n## QA Closure\n\nUse this compact evidence shape before any success claim:\n\n```text\nEvidence Card:\n- Command / Check:\n- Exit Status:\n- Covered:\n- Not Covered:\n- Residual Risk:\n- Confidence: A | B | C\n```\n\n1. **Remove/Restore**: side effects? temp instrumentation restored?\n2. **Evidence Bundle**: exact command, scope, exit status, key output. State what's covered and what's not. Include target test and related regression evidence. When automation is blocked, provide reproducible manual verification steps.\n3. **Prompt Hygiene**: when external output shaped judgment → state whether summaries or raw excerpts were used. Name large payloads not loaded. If summary insufficient → read back excerpt or lower claim. Include Evidence Used / Not Loaded / Next Evidence boundary when relevant.\n4. **Confidence**: A (direct + regression, no unknowns) | B (direct, bounded risk) | C (partial only, not closed)\n5. **Authority**: verified evidence ≠ authoritative completion. Keep distinct.\n6. **Goal Closure**: when `goal-framing` or optional `TaskIntentDraft` goal\n   fields shaped the work, explicitly check the goal before claiming completion:\n\n   ```text\n   Goal Closure:\n   - Goal status: satisfied | blocked | needs-verification | scope-exceeded\n   - Success evidence:\n   - Stop state: done | blocked | needs-verification | scope-exceeded\n   - Non-goals respected:\n   ```\n\n   Use `done` only when success evidence is satisfied. Use `blocked` when a\n   dependency, permission, or required fact is missing. Use `needs-verification`\n   when implementation exists but evidence is insufficient. Use\n   `scope-exceeded` when continuing would exceed the goal or non-goals.\n7. **Long-Task**: re-read checkpoint, confirm every todo has status, no drift check unresolved.\n8. **Workspace Integrity**: if the task created or modified a target project's\n   `docs/aegis/` workspace and configured Aegis workspace support is available,\n   run\n   `python <aegis-workspace-helper> bundle --root <target-project-root> --work YYYY-MM-DD-<slug>`\n   when a `work/` record exists, then run\n   `python <aegis-workspace-helper> check --root <target-project-root>` and\n   include the result in the evidence bundle. The generated proof bundle and\n   workspace check validate method-pack structure, index coverage, and\n   recognizable JSON artifact sidecars only; they do not judge evidence\n   sufficiency and do not grant completion authority.\n9. **User-Language Output**: final response cards must localize user-facing\n   section labels, field labels, and explanatory prose to the user's language.\n   Keep commands, file paths, code identifiers, stable enum values, and product\n   terms in English when that preserves precision. For important Aegis product\n   terms, prefer first-use bilingual labels such as\n   `架构对齐（Architecture Alignment）`; later references may use the user's\n   language alone.\n\n10. **Architecture Alignment Check**: before final response, if project\n   instructions require architecture reporting or the task touched durable\n   architecture surfaces, include an explicit architecture alignment result.\n   This is separate from ADR Backfill: alignment states whether the completed\n   work matches current baselines; ADR Backfill states whether durable\n   architecture memory needs to be created, amended, superseded, or skipped.\n   This is a method-pack signal, not a runtime gate, not an authoritative\n   `GateDecision`, and not completion authority.\n\n   Triggering surfaces include architecture, contracts, source-of-truth owner,\n   canonical owner, context/answering/runtime flow, cross-module data flow,\n   producer-to-carrier-to-consumer chains, public user-visible identity,\n   evidence model, retained fallback, adapter, compatibility path, and\n   project-specific baseline rules.\n\n   ```text\n   Architecture Alignment:\n   - Trigger: yes | no\n   - Scope:\n   - Baseline checked:\n   - Result: aligned | architecture drift | architecture defect\n   - Evidence:\n   - Residual architecture risk:\n   ```\n\n11. **ADR Backfill Check**: for completed medium/high work that touched durable\n   architecture surfaces, run the ADR Auto Backfill check before final\n   completion claims. Use `Trigger: no` or skip the expanded block for simple\n   wording edits, ordinary README cleanup, routine release-note edits, low-risk\n   single-file changes, tests-only coverage improvements, and bug fixes that\n   only restore the existing baseline. This is a method-pack signal, not a\n   runtime gate, not an authoritative `GateDecision`, and not completion\n   authority.\n\n   Durable architecture surfaces include canonical owner, public API/schema,\n   artifact shape, behavior contract, dependency direction, source-of-truth\n   owner, host compatibility strategy, install/discovery contract,\n   method-pack/runtime-core boundary, runtime-ready artifact boundary, evidence\n   model, retained fallback, adapter, compatibility path, duplicate owner,\n   retirement schedule, accepted architecture drift, and release/distribution\n   strategy that future contributors would otherwise misread.\n\n   ```text\n   ADR Backfill Check:\n   - Trigger: yes | no\n   - Suggested action: create | amend | supersede | skip\n   - Evidence source:\n   - Baseline sync: needed | not-needed | unknown\n   - Skip reason:\n   - Boundary: advisory method-pack signal only\n   ```\n\n12. **Governance Closure**: for governance/cleanup/migration/compatibility/retirement work → final response must include. Do not skip this structure just because the implementation was small. Localize section labels and prose to the user's language; keep internal concepts in English only when they are product terms or file/path identifiers.\n\n   ```\n   Repair Track: repaired object | action | impact | verification\n   Retirement Track: retired object | action | retained boundary | future trigger\n   Residual Risk: unverified | deferred\n   ```\n\n## Red Flags - QA Drift\n\n- Reporting \"done\" when only one layer was checked\n- Treating agent success as equivalent to independent verification\n- Forgetting to mention residual risk or uncovered scope\n- Saying \"verified\" when the command was narrow but the claim is broad\n- Presenting method-pack verification as if it grants final authority\n- Adding new verification branches without saying what old check or fallback now retires\n- Closing governance or retirement work without Repair Track, Retirement Track, and Residual Risk","tags":["verification","before","completion","aegis","ganyuanran","add","agent-skills","ai-agents","ai-coding","baseline-first","claude-code","codex"],"capabilities":["skill","source-ganyuanran","skill-verification-before-completion","topic-add","topic-agent-skills","topic-ai-agents","topic-ai-coding","topic-baseline-first","topic-claude-code","topic-codex","topic-coding-agents","topic-evidence-driven","topic-first-principles","topic-opencode","topic-software-architecture"],"categories":["Aegis"],"synonyms":[],"warnings":[],"endpointUrl":"https://skills.sh/GanyuanRan/Aegis/verification-before-completion","protocol":"skill","transport":"skills-sh","auth":{"type":"none","details":{"cli":"npx skills add GanyuanRan/Aegis","source_repo":"https://github.com/GanyuanRan/Aegis","install_from":"skills.sh"}},"qualityScore":"0.581","qualityRationale":"deterministic score 0.58 from registry signals: · indexed on github topic:agent-skills · 262 github stars · SKILL.md body (7,652 chars)","verified":false,"liveness":"unknown","lastLivenessCheck":null,"agentReviews":{"count":0,"score_avg":null,"cost_usd_avg":null,"success_rate":null,"latency_p50_ms":null,"narrative_summary":null,"summary_updated_at":null},"enrichmentModel":"deterministic:skill-github:v1","enrichmentVersion":1,"enrichedAt":"2026-05-18T18:54:50.709Z","embedding":null,"createdAt":"2026-05-04T19:05:09.374Z","updatedAt":"2026-05-18T18:54:50.709Z","lastSeenAt":"2026-05-18T18:54:50.709Z","tsv":"'/runtime-core':826 '1':43,212 '10':578 '11':716 '12':887 '2':50,219 '3':56,253 '4':62,293 '5':309 '6':317 '7':412 '8':429 '9':510 'accept':844 'action':864,936,943 'actual':74 'ad':1003 'adapt':688,837 'adr':608,619,717,731,857 'advisori':881 'aegi':446,555 'agent':138,965 'align':568,580,602,610,699,707 'alon':577 'also':90 'alway':115 'amend':630,866 'api/schema':806 'appli':164,178 'architectur':567,579,589,596,601,624,656,698,708,710,714,727,800,845 'artifact':495,807,831 'author':310,509,652,798,1002 'authorit':313,647,793 'auto':732 'autom':245 'avail':450 'b':210,300 'back':278 'backfil':609,620,718,733,858 'baselin':618,695,704,779,871 'behavior':809 'bilingu':562 'block':247,345,357,377,746 'bound':302 'boundari':290,827,832,880,945 'branch':1006 'broad':991 'bug':772 'bundl':221,453,477,481 'c':211,304 'canon':663,803 'card':198,517 'carrier':675 'chain':678 'chang':765 'check':200,333,427,468,484,581,705,719,734,859,963,1011 'checkpoint':419 'claim':9,31,42,49,66,68,102,114,168,195,282,337,738,989 'cleanup':753 'close':91,308,1016 'closur':186,319,341,889 'code':60,539 'command':39,46,53,79,199,223,536,984 'commit':22,172 'commit/push/pr':134 'compact':189 'compat':689,819,838 'complet':4,12,35,55,100,105,175,314,338,508,614,651,721,737,797 'concept':920 'confid':86,208,294 'configur':445 'confirm':65,82,420 'consum':677 'context/answering/runtime':665 'continu':403 'contract':657,810,822 'contributor':852 'cover':203,205,232 'coverag':491,769 'creat':435,629,865 'cross':668 'cross-modul':667 'current':617 'data':670 'dd':459 'defect':711 'defer':951 'deleg':177 'depend':380,811 'direct':296,301,812 'dishonesti':109 'distinct':316 'docs/aegis':442 'doesn':71 'done':32,76,130,356,369,957 'drift':426,709,846,955 'duplic':840 'durabl':595,623,726,799 'edit':750,758 'effect':215 'effici':111 'english':548,922 'enum':542 'equival':968 'etc':131 'everi':421 'evid':70,112,190,197,220,243,284,289,312,353,373,395,476,502,684,712,833,869 'exact':78,180,222 'exceed':351,363,401,405 'excerpt':266,279 'execut':28 'exist':393,464,778 'exit':59,201,225 'expand':745 'explanatori':528 'explicit':332,600 'express':124,169 'extern':257 'face':522 'fact':384 'failur':61 'fallback':687,836,1013 'field':328,525 'file':537,764 'file/path':930 'final':515,583,736,893,1001 'first':40,560 'first-us':559 'fix':13,34,773 'flag':117,953 'flow':666,671 'forget':972 'frame':323 'fresh':54 'full':52 'futur':851,946 'gate':644,790 'gatedecis':648,794 'generat':479 'goal':318,322,327,335,340,342,366,407,411 'goal-fram':321 'govern':888,1017 'governance/cleanup/migration/compatibility/retirement':891 'governance/retirement':88 'grade':87 'grant':507,1000 'great':128 'hand':26 'host':818 'hygien':255 'ident':683 'identifi':44,540,931 'impact':937 'implement':392,905 'impli':156 'implic':184 'import':554 'improv':770 'includ':237,283,471,598,655,802,896 'independ':970 'index':490 'install/discovery':821 'instruct':587 'instrument':217 'insuffici':276,397 'integr':431 'intern':919 'json':494 'judg':501 'judgment':260 'keep':315,535,918 'key':227 'label':524,526,563,910 'languag':513,534,576,917 'larg':270 'later':569 'layer':961 'load':273,287 'local':519,908 'long':414 'long-task':413 'low':760 'low-risk':759 'lower':281 'manual':250 'match':616 'may':571 'medium/high':722 'memori':625 'mention':974 'merg':23 'method':487,638,784,824,883,994 'method-pack':486,637,783,823,882,993 'misread':855 'miss':386 'mm':458 'model':685,834 'modifi':437 'modul':669 'must':518,895 'name':269 'narrow':986 'need':347,359,389,626,873,876 'needs-verif':346,358,388 'new':1004 'next':288 'non':365,410 'non-goal':364,409 'not-need':874 'note':757 'object':935,942 'old':1010 'one':960 'option':325 'ordinari':751 'otherwis':854 'output':58,64,81,228,258,514 'overview':101 'owner':662,664,804,817,841 'pack':488,639,785,825,884,995 'paraphras':182 'partial':143,305 'pass':14,33 'path':538,690,839 'payload':271 'perfect':129 'permiss':381 'phrase':181 'pr':173 'precis':552 'prefer':558 'present':992 'preserv':551 'probabl':121 'produc':673 'producer-to-carrier-to-consum':672 'product':545,556,927 'project':440,586,693 'project-specif':692 'prompt':254 'proof':480 'prose':529,912 'prove':47 'provid':248 'public':679,805 'publish':24 'python':452,467 'qa':185,954 'raw':265 're':417 're-read':416 'read':57,277,418 'readi':18,20,830 'readm':752 'reason':879 'recogniz':493 'record':463 'red':116,952 'refer':570 'regress':242,297 'relat':241 'releas':17,756 'release-not':755 'release-readi':16 'release/distribution':848 'relev':292 'reli':141 'remove/restore':213 'repair':92,932,934,1022 'report':140,590,956 'reproduc':249 'requir':383,588 'residu':83,96,206,713,948,975,1027 'respect':367 'respons':516,584,894 'restor':218,776 'result':473,603,706 'retain':686,835,944 'retir':94,842,939,941,1015,1019,1024 'risk':84,97,207,303,715,761,949,976,1028 'root':454,469 'routin':754 'rule':696 'run':36,51,80,160,451,466,729 'runtim':643,789,829 'runtime-readi':828 'satisfact':125,171 'satisfi':344,375 'say':980,1008 'schedul':843 'scope':224,350,362,400,703,979 'scope-exceed':349,361,399 'section':523,909 'seem':122 'separ':606 'shape':191,259,329,808 'side':214 'sidecar':496 'signal':640,786,885 'simpl':748 'singl':763 'single-fil':762 'skill' 'skill-verification-before-completion' 'skip':633,743,868,878,899 'small':907 'sourc':659,814,870 'source-ganyuanran' 'source-of-truth':658,813 'specif':694 'stabl':541 'state':67,73,85,229,261,355,611,621 'status':75,202,226,343,424 'step':252 'stop':118,354 'strategi':820,849 'structur':489,901 'success':139,157,194,352,372,966 'success/completion':167 'suffici':503 'suggest':863 'summari':263,275 'supersed':631,867 'support':448 'surfac':597,654,728,801 'sync':872 'target':238,439 'task':174,415,434,593 'taskintentdraft':326 'temp':216 'term':546,557,928 'test':239,767 'tests-on':766 'text':196,339,697,856 'think':145 'tire':149 'todo':422 'topic-add' 'topic-agent-skills' 'topic-ai-agents' 'topic-ai-coding' 'topic-baseline-first' 'topic-claude-code' 'topic-codex' 'topic-coding-agents' 'topic-evidence-driven' 'topic-first-principles' 'topic-opencode' 'topic-software-architecture' 'touch':594,725 'track':93,95,933,940,1023,1025 'treat':964 'trigger':653,700,740,860,947 'trust':137 'truth':661,816 'uncov':978 'unknown':299,877 'unresolv':428 'unverifi':950 'use':5,119,187,268,285,368,376,387,398,561,572,739 'user':512,521,532,574,681,915 'user-fac':520 'user-languag':511 'user-vis':680 'valid':485 'valu':543 'verif':2,38,98,107,127,136,144,161,251,348,360,390,938,971,996,1005 'verifi':15,63,311,981 'verification-before-complet':1 'visibl':682 'want':151 'whether':262,612,622 'without':106,135,158,1007,1021 'word':155,749 'work':10,89,103,152,331,455,462,615,723,892,1020 'workspac':430,443,447,483 'would':404,853 'yes':701,861 'yyyi':457 'yyyy-mm-dd':456 '架构对齐':566","prices":[{"id":"9388c719-cef5-4196-b300-190e4606518c","listingId":"1189804c-e74d-47c8-8fd0-99f4d1c23aea","amountUsd":"0","unit":"free","nativeCurrency":null,"nativeAmount":null,"chain":null,"payTo":null,"paymentMethod":"skill-free","isPrimary":true,"details":{"org":"GanyuanRan","category":"Aegis","install_from":"skills.sh"},"createdAt":"2026-05-04T19:05:09.374Z"}],"sources":[{"listingId":"1189804c-e74d-47c8-8fd0-99f4d1c23aea","source":"github","sourceId":"GanyuanRan/Aegis/verification-before-completion","sourceUrl":"https://github.com/GanyuanRan/Aegis/tree/main/skills/verification-before-completion","isPrimary":false,"firstSeenAt":"2026-05-04T19:05:09.374Z","lastSeenAt":"2026-05-18T18:54:50.709Z"}],"details":{"listingId":"1189804c-e74d-47c8-8fd0-99f4d1c23aea","quickStartSnippet":null,"exampleRequest":null,"exampleResponse":null,"schema":null,"openapiUrl":null,"agentsTxtUrl":null,"citations":[],"useCases":[],"bestFor":[],"notFor":[],"kindDetails":{"org":"GanyuanRan","slug":"verification-before-completion","github":{"repo":"GanyuanRan/Aegis","stars":262,"topics":["add","agent-skills","ai-agents","ai-coding","architecture-driven-development","baseline-first","claude-code","codex","coding-agents","evidence-driven","first-principles","opencode","software-architecture","tdd","tlref"],"license":"mit","html_url":"https://github.com/GanyuanRan/Aegis","pushed_at":"2026-05-18T11:05:01Z","description":"Make AI coding agents architecture-aware: baseline-first, evidence-verified, drift-checked, and safe across long tasks.","skill_md_sha":"31ea2ac868c8ed254a70d3f4f9c41606e9d90780","skill_md_path":"skills/verification-before-completion/SKILL.md","default_branch":"main","skill_tree_url":"https://github.com/GanyuanRan/Aegis/tree/main/skills/verification-before-completion"},"layout":"multi","source":"github","category":"Aegis","frontmatter":{"name":"verification-before-completion","description":"Use when about to claim work is complete, fixed, passing, verified, release-ready, or ready to commit, merge, publish, or hand off."},"skills_sh_url":"https://skills.sh/GanyuanRan/Aegis/verification-before-completion"},"updatedAt":"2026-05-18T18:54:50.709Z"}}