{"id":"51f98d38-be1d-4117-b2da-5640c7ecfe56","shortId":"hxp88k","kind":"skill","title":"workbench-closeout-validator","tagline":"Strict parser and validator for Workbench closeout comments, verdict/status discipline, PR reference types, and cross-issue REMAINING sync.","description":"# Workbench Closeout Validator\n\nUse this skill when reviewing or automating status-changing closeout comments\nfor Workbench, Multica, Capy, Conductor, Hermes, Codex, Linear, Slack, or PR\nsurfaces.\n\nThe validator is anti-LGTM infrastructure: it preserves the literal verdict and\nstops adapters from turning a `FLAG` closeout into `PASS` or `Done`.\n\n## Required Input Shape\n\nStatus-changing closeout must contain these headings in this order:\n\n```text\nCHANGED:\nVERIFIED:\nREMAINING:\nPRS / LINKS:\nVERDICT: PASS | FLAG | BLOCK\n```\n\n`REMAINING:` is mandatory even when `(none)`.\n\n## Local Validator\n\nUse the strict parser, not free-form prose matching:\n\n```bash\nnode scripts/workbench-closeout-validator.mjs \\\n  --comment-file <closeout.md> \\\n  --target-status \"Done\" \\\n  --references-json <references.json> \\\n  --affected-issues-json <affected-issues.json>\n\nnode scripts/test-workbench-closeout-validator.mjs\n```\n\nFor Linear webhook or adapter events, use the audit-only wrapper:\n\n```bash\nnode scripts/workbench-closeout-audit-linear-adapter.mjs \\\n  --event-file <linear-closeout-event.json>\n\nnode scripts/test-workbench-closeout-audit-linear-adapter.mjs\n```\n\nThe adapter emits `WORKBENCH_CLOSEOUT_AUDIT` and a sanitized follow-up payload.\nIt must not block, revert, or rewrite Linear status transitions.\n\nReference records use this public-safe shape:\n\n```json\n[\n  { \"type\": \"contains\", \"id\": \"#24\", \"state\": \"merged\" },\n  { \"type\": \"dogfood-platform\", \"id\": \"#25\" },\n  { \"type\": \"discovered-via\", \"id\": \"#26\" },\n  { \"type\": \"cross-issue-side-effect\", \"id\": \"SYN-40\" }\n]\n```\n\nAffected issue records use:\n\n```json\n[\n  { \"id\": \"SYN-39\", \"remaining_synced\": true },\n  { \"id\": \"SYN-40\", \"remaining_synced\": false }\n]\n```\n\n## Validation Rules\n\n- `Done` requires `VERDICT: PASS`; `FLAG` or `BLOCK` cannot move to Done.\n- `Blocked` requires `VERDICT: BLOCK`.\n- `Ready for Merge` may carry `PASS` or `FLAG`, but not `BLOCK`.\n- `contains` references require merged or head-on-main proof.\n- `dogfood-platform`, `discovered-via`, and `cross-issue-side-effect`\n  references do not require merge proof by themselves.\n- If one closeout affects multiple issues and `REMAINING:` is not `(none)`,\n  relevant remaining lines must be synced to every affected issue description\n  or comment.\n\n## Failure Handling\n\nValidator failures do not silently rewrite the issue status. They emit\n`WORKBENCH_CLOSEOUT_VALIDATION` with:\n\n- `validator_verdict: BLOCK` for malformed fields, verdict/status mismatch, or\n  invalid `contains` references;\n- `validator_verdict: FLAG` for missing cross-issue sync proof or missing\n  reference-state proof;\n- `follow_up_required: true` when audit trail work must be spawned.\n\nLive adapters should create a `FLAG` follow-up issue and notify Supervisor\ninstead of hiding the failure.","tags":["workbench","closeout","validator","multica","ultimate","fearvox","agent-skills","ai-agents","claude-code","codex","hermes-agent","sdd"],"capabilities":["skill","source-fearvox","skill-workbench-closeout-validator","topic-agent-skills","topic-ai-agents","topic-claude-code","topic-codex","topic-hermes-agent","topic-multica","topic-sdd","topic-skills-sh"],"categories":["multica-ultimate-workbench"],"synonyms":[],"warnings":[],"endpointUrl":"https://skills.sh/Fearvox/multica-ultimate-workbench/workbench-closeout-validator","protocol":"skill","transport":"skills-sh","auth":{"type":"none","details":{"cli":"npx skills add Fearvox/multica-ultimate-workbench","source_repo":"https://github.com/Fearvox/multica-ultimate-workbench","install_from":"skills.sh"}},"qualityScore":"0.456","qualityRationale":"deterministic score 0.46 from registry signals: · indexed on github topic:agent-skills · 12 github stars · SKILL.md body (2,784 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-18T19:07:12.721Z","embedding":null,"createdAt":"2026-05-13T01:05:01.870Z","updatedAt":"2026-05-18T19:07:12.721Z","lastSeenAt":"2026-05-18T19:07:12.721Z","tsv":"'-39':222 '-40':214,228 '24':191 '25':199 '26':205 'adapt':65,140,157,371 'affect':131,215,293,309 'affected-issues-json':130 'anti':55 'anti-lgtm':54 'audit':145,161,364 'audit-on':144 'autom':33 'bash':117,148 'block':98,172,240,245,248,259,333 'cannot':241 'capi':42 'carri':253 'chang':36,80,90 'closeout':3,11,25,37,70,81,160,292,328 'codex':45 'comment':12,38,121,313 'comment-fil':120 'conductor':43 'contain':83,189,260,341 'creat':373 'cross':20,208,278,349 'cross-issu':19,348 'cross-issue-side-effect':207,277 'descript':311 'disciplin':14 'discov':202,274 'discovered-via':201,273 'dogfood':196,271 'dogfood-platform':195,270 'done':74,126,234,244 'effect':211,281 'emit':158,326 'even':102 'event':141,152 'event-fil':151 'everi':308 'failur':314,317,387 'fals':231 'field':336 'file':122,153 'flag':69,97,238,256,345,375 'follow':166,359,377 'follow-up':165,376 'form':114 'free':113 'free-form':112 'handl':315 'head':85,266 'head-on-main':265 'herm':44 'hide':385 'id':190,198,204,212,220,226 'infrastructur':57 'input':76 'instead':383 'invalid':340 'issu':21,132,209,216,279,295,310,323,350,379 'json':129,133,187,219 'lgtm':56 'line':303 'linear':46,137,176 'link':94 'liter':61 'live':370 'local':105 'main':268 'malform':335 'mandatori':101 'match':116 'may':252 'merg':193,251,263,286 'mismatch':338 'miss':347,354 'move':242 'multica':41 'multipl':294 'must':82,170,304,367 'node':118,134,149,154 'none':104,300 'notifi':381 'one':291 'order':88 'parser':6,110 'pass':72,96,237,254 'payload':168 'platform':197,272 'pr':15,49 'preserv':59 'proof':269,287,352,358 'prose':115 'prs':93 'public':184 'public-saf':183 'readi':249 'record':180,217 'refer':16,128,179,261,282,342,356 'reference-st':355 'references-json':127 'relev':301 'remain':22,92,99,223,229,297,302 'requir':75,235,246,262,285,361 'revert':173 'review':31 'rewrit':175,321 'rule':233 'safe':185 'sanit':164 'scripts/test-workbench-closeout-audit-linear-adapter.mjs':155 'scripts/test-workbench-closeout-validator.mjs':135 'scripts/workbench-closeout-audit-linear-adapter.mjs':150 'scripts/workbench-closeout-validator.mjs':119 'shape':77,186 'side':210,280 'silent':320 'skill':29 'skill-workbench-closeout-validator' 'slack':47 'source-fearvox' 'spawn':369 'state':192,357 'status':35,79,125,177,324 'status-chang':34,78 'stop':64 'strict':5,109 'supervisor':382 'surfac':50 'syn':213,221,227 'sync':23,224,230,306,351 'target':124 'target-status':123 'text':89 'topic-agent-skills' 'topic-ai-agents' 'topic-claude-code' 'topic-codex' 'topic-hermes-agent' 'topic-multica' 'topic-sdd' 'topic-skills-sh' 'trail':365 'transit':178 'true':225,362 'turn':67 'type':17,188,194,200,206 'use':27,107,142,181,218 'valid':4,8,26,52,106,232,316,329,331,343 'verdict':62,95,236,247,332,344 'verdict/status':13,337 'verifi':91 'via':203,275 'webhook':138 'work':366 'workbench':2,10,24,40,159,327 'workbench-closeout-valid':1 'wrapper':147","prices":[{"id":"2744f4f8-59e1-4b39-a05e-cfd1bbdeb4dd","listingId":"51f98d38-be1d-4117-b2da-5640c7ecfe56","amountUsd":"0","unit":"free","nativeCurrency":null,"nativeAmount":null,"chain":null,"payTo":null,"paymentMethod":"skill-free","isPrimary":true,"details":{"org":"Fearvox","category":"multica-ultimate-workbench","install_from":"skills.sh"},"createdAt":"2026-05-13T01:05:01.870Z"}],"sources":[{"listingId":"51f98d38-be1d-4117-b2da-5640c7ecfe56","source":"github","sourceId":"Fearvox/multica-ultimate-workbench/workbench-closeout-validator","sourceUrl":"https://github.com/Fearvox/multica-ultimate-workbench/tree/main/skills/workbench-closeout-validator","isPrimary":false,"firstSeenAt":"2026-05-13T01:05:01.870Z","lastSeenAt":"2026-05-18T19:07:12.721Z"}],"details":{"listingId":"51f98d38-be1d-4117-b2da-5640c7ecfe56","quickStartSnippet":null,"exampleRequest":null,"exampleResponse":null,"schema":null,"openapiUrl":null,"agentsTxtUrl":null,"citations":[],"useCases":[],"bestFor":[],"notFor":[],"kindDetails":{"org":"Fearvox","slug":"workbench-closeout-validator","github":{"repo":"Fearvox/multica-ultimate-workbench","stars":12,"topics":["agent-skills","ai-agents","claude-code","codex","hermes-agent","multica","sdd","skills-sh"],"license":null,"html_url":"https://github.com/Fearvox/multica-ultimate-workbench","pushed_at":"2026-05-14T23:12:50Z","description":"Public multi-agent workbench skill pack for SDD, review gates, context discipline, VM lanes, Sanity context, and autonomous agent coordination.","skill_md_sha":"f9b78bfd3e178d5bae3f2cf9b455d3699fc1d97b","skill_md_path":"skills/workbench-closeout-validator/SKILL.md","default_branch":"main","skill_tree_url":"https://github.com/Fearvox/multica-ultimate-workbench/tree/main/skills/workbench-closeout-validator"},"layout":"multi","source":"github","category":"multica-ultimate-workbench","frontmatter":{"name":"workbench-closeout-validator","description":"Strict parser and validator for Workbench closeout comments, verdict/status discipline, PR reference types, and cross-issue REMAINING sync."},"skills_sh_url":"https://skills.sh/Fearvox/multica-ultimate-workbench/workbench-closeout-validator"},"updatedAt":"2026-05-18T19:07:12.721Z"}}