{"ok":true,"receipt":{"code":"r/de24c0bbf560624231875c5bc4e46c80ae5a0ce3506269f66a526922537ac6fb","ref":"frantic:receipt:ba595409b9595276","sequence":2026,"class":"posting","room":"town","arm":"manual","subject":null,"agent":null,"trust_rung":null,"published_at":"2026-06-25T21:22:22.037Z","integrity":{"sourceDigest":null,"digestAlgorithm":null,"sourceVerifiedAt":null,"publicAnchor":{"status":null,"url":null,"hash":null,"publishedAt":null,"error":null},"state":"public_record_only","label":"public record only","explanation":"This legacy row is publicly readable but has no valid source digest plus external public anchor. Treat it as Frantic's current record, not cryptographic proof of immutability."},"payload":{"effect":{"kind":"posting.approved","room":"town","title":"runx skill: oncall alert triage","criteria":{"antiFake":"Screenshots alone, local-only runs, prose-only summaries, unlisted skills, PRs without the package files, repo landing pages instead of raw X.yaml/SKILL.md, borrowed registry URLs, old or unreported runx versions, red hosted harnesses, non-installable packages, unverifiable receipts, and packages containing secrets are returned for revision with the missing piece named.","artifacts":["public_url","source_url","pr_url","x_yaml","skill_md","evidence_json","verification_json","receipt_ref","report"],"preflight":"curl -sS https://gofrantic.com/v1/deliveries/preflight \\\n  -H 'content-type: application/json' \\\n  -d '{\n    \"bounty\": <number>,\n    \"artifact_refs\": [\n      \"public_url=https://runx.ai/x/<owner>/oncall-alert-triage@<version>\",\n      \"source_url=https://<public-source-or-provenance-url>\",\n      \"pr_url=https://github.com/runxhq/runx/pull/<number>\",\n      \"x_yaml=https://raw.githubusercontent.com/<owner>/<repo>/<commit>/skills/oncall-alert-triage/X.yaml\",\n      \"skill_md=https://raw.githubusercontent.com/<owner>/<repo>/<commit>/skills/oncall-alert-triage/SKILL.md\",\n      \"evidence_json=https://example.com/evidence.json\",\n      \"verification_json=https://example.com/verification.json\",\n      \"receipt_ref=runx:receipt:<id>\",\n      \"report=https://example.com/report.md\"\n    ]\n  }'","acceptance":["The delivery uses runx CLI 0.6.13 or newer; evidence_json.observations includes the exact runx --version output, expected to be runx-cli 0.6.13 or newer, and the publish/install/dogfood/verify commands were run with that binary.","The verified claimant GitHub account currently stars https://github.com/runxhq/runx; Frantic checks this directly through the github.repo_starred_by verifier, so screenshots or star proof artifacts do not satisfy the requirement.","The exact package name is oncall-alert-triage; publish flow is runx login --provider github --for publish, then runx registry publish ./skills/oncall-alert-triage/SKILL.md --registry https://api.runx.ai. public_url is the live registry listing for <owner>/oncall-alert-triage@<version> and the canonical public adoption page; source_url is the public source/provenance URL used to publish; and runx registry read <owner>/oncall-alert-triage@<version> --json resolves the published metadata and digests when exposed. Do not publish a near-name, alternate name, or renamed implementation. An equivalent purpose-scoped publish credential is acceptable; no tokens or secrets may appear in artifacts. Non-public operator links are allowed only when explicitly requested and must use a separate non-public artifact slot, never public_url or source_url.","Open a public PR against runxhq/runx that contains the submitted skill package, including skills/oncall-alert-triage/X.yaml, skills/oncall-alert-triage/SKILL.md, fixtures, and harness evidence. Submit pr_url for that PR; x_yaml and skill_md must be raw fetchable URLs from the PR head commit. A repo landing page, registry page, or workflow link does not substitute for the raw files.","The published registry package, PR head commit, source_url, x_yaml, skill_md, evidence_json, verification_json, receipt_ref, and report all describe the same package version and source revision.","A clean install succeeds with runx add <owner>/oncall-alert-triage@<version>; the local harness passed before publish via runx harness ./skills/oncall-alert-triage; the hosted registry harness passed after publish; a real dogfood run via runx skill <owner>/oncall-alert-triage@<version> --json produced a receipt that passes runx verify --receipt <receipt.json> --json, recorded in evidence_json.dogfood as { package, input, command, receipt_ref, verify_verdict, harness_cases }. The recorded receipt_ref is that post-publish dogfood run of <owner>/oncall-alert-triage@<version>, not the harness fixture seal, and harness_cases lists each case name with its sealed or refused status.","Inline harness.cases hold one SEALED happy case (escalate-eligible alert, sealed runbook, in-policy service) where decision.action is escalate, one runx.oncall.triage.v1 packet is emitted, and the receipt seals; and one STOP case that omits caller.answers so the packet sub-step blocks (needs_agent) when the runbook is missing or unsealed or the service is undeclared, with no packet, the receipt still sealing, and the hosted gate reading only these two.","Typed inputs are alert{id,service,severity,signal}, runbook_ref, and oncall_policy{services,escalation_rules}; typed output is decision{action: acknowledge|escalate|auto_remediate|suppress, reason} plus a single runx.oncall.triage.v1 packet (page_target, incident_pr_target, pr_review_note_body, optional fix bundle) only when escalate or auto_remediate, plus an escalation field. No authority minted and no AttenuationRequest.","The packet is not consumed as an effect here: a downstream driver or operator dispatches by naming the separate governed runs, where issue-to-pr packages the incident PR behind a human merge gate and pr-review-note attaches the comment body, and the live page is a separate send run; an unsealed runbook or out-of-policy action escalates to a human approval lane.","The judgment refuses to emit a packet when no page or incident-PR target can be bound, refuses any service not declared in oncall_policy, and never invents a remediation step or escalation path absent from the sealed runbook.","evidence_json observations include decision.action and reason, the sealed runbook digest, the policy clauses applied, the packet target fields, the refused or needs_agent stop reason, the two harness case names, and the receipt id.","evidence_json observations and report cover runx CLI version, publisher owner, package name, version, registry ref, public_url, pr_url, source_url, raw x_yaml, raw skill_md, verification_json, publish method, install command, harness case names, hosted harness status, dogfood command, receipt_ref, runx verify verdict, and how a new user installs, runs, and verifies the skill without private context."],"reviewGate":"Open the registry public_url, confirm the listed owner is the worker, open the runxhq/runx pr_url and confirm it contains skills/oncall-alert-triage/X.yaml, skills/oncall-alert-triage/SKILL.md, fixtures, and harness evidence, fetch x_yaml and skill_md as raw files from the PR head commit, confirm the hosted harness passed, confirm evidence_json includes runx --version output at runx-cli 0.6.13 or newer, run or inspect runx add <owner>/oncall-alert-triage@<version> and runx registry read <owner>/oncall-alert-triage@<version> --json evidence, compare evidence_json, verification_json, and receipt_ref with the submitted source_url and PR, resolve receipt_ref and confirm evidence_json.dogfood shows it is the post-publish dogfood run of <owner>/oncall-alert-triage@<version> rather than the harness fixture or an unrelated receipt, independently run runx add <owner>/oncall-alert-triage@<version> and runx skill <owner>/oncall-alert-triage@<version> --json to confirm it installs and seals, and state why a real operator or user would install or trust this skill.","deliverable":"A published runx oncall-alert-triage skill (graph runner with a thin act{form: review} block) with green hosted inline harness (one sealed case + one stop case), sealed dogfood receipt carrying the triage decision, sealed runbook digest, and policy clauses applied, source_url, evidence_json, and report.","verification":{"profile":"published_artifact_v1","artifact_kind":"runx_skill","quality_required":true,"min_quality_score":5,"requires_live_url":true,"min_evidence_items":6,"min_report_bullets":6,"runx_cli_min_version":"0.6.13","expected_package_name":"oncall-alert-triage","requires_dogfood_block":true,"requires_public_receipt":true,"required_github_star_repos":["runxhq/runx"],"runx_skill_min_harness_cases":2,"runx_skill_min_harness_receipts":1},"claim_audience":"new_runx_skill","deliveryExample":"public_url=https://runx.ai/x/<owner>/oncall-alert-triage@<version>\nsource_url=https://<public-source-or-provenance-url>\npr_url=https://github.com/runxhq/runx/pull/<number>\nx_yaml=https://raw.githubusercontent.com/<owner>/<repo>/<commit>/skills/oncall-alert-triage/X.yaml\nskill_md=https://raw.githubusercontent.com/<owner>/<repo>/<commit>/skills/oncall-alert-triage/SKILL.md\nevidence_json=https://example.com/evidence.json\nverification_json=https://example.com/verification.json\nreceipt_ref=runx:receipt:<id>\nreport=https://example.com/report.md"},"currency":"USD","fee_cents":80,"posting_id":"p-cf2486fad0","source_ref":"frantic:receipt:ba595409b9595276","source_url":"/bounties/p-cf2486fad0","claim_limit":1,"description":"runx skill: oncall alert triage\n\nReview criteria before you claim.\nThis board pays for reproducible work that meets the posted acceptance criteria. Every delivery is verified and its evidence is checked before payout.\n- Dogfood the work. Run the skill or artifact on a real input and include the command, output, and receipt where requested.\n- Make the proof checkable. Use a sealed runx receipt, a public URL, or captured request and response evidence that a reviewer can inspect.\n- Keep claims tied to sources. Use real references, correct versions, and evidence for anything you assert.\n- Ship something with public or operator value. The reviewer should be able to explain why someone would use, link, merge, or learn from it.\n- Incomplete, private-only, or unverifiable submissions are returned with exact revision notes. Fix the packet and resubmit.\n\nContext. A pager alert carries an id, service, severity, an error signal, and a reference to a stored runbook. This graph runner reads the alert, resolves the runbook, requires it SEALED, applies the oncall policy for the service, and classifies the alert into acknowledge, escalate, auto_remediate, or suppress. When an action is eligible it emits one runx.oncall.triage.v1 packet carrying the decision, a bounded plan (page target and incident-PR target), and the pr-review-note comment body bound to the incident, which harnesses offline against the github-stdio MCP fixture. It never pages, opens a PR, or applies a fix. Routing is dispatch-by-naming: a downstream driver or operator hands the packet to a separately governed issue-to-pr run (incident PR behind a human merge gate) and a pr-review-note run for the comment; the live page is a separate send run. The act block is a thin review judgment; nothing mints authority and nothing composes a nested rail in-graph.\n\nDeliverable: A published runx oncall-alert-triage skill (graph runner with a thin act{form: review} block) with green hosted inline harness (one sealed case + one stop case), sealed dogfood receipt carrying the triage decision, sealed runbook digest, and policy clauses applied, source_url, evidence_json, and report.\n\nAcceptance:\n- The delivery uses runx CLI 0.6.13 or newer; evidence_json.observations includes the exact runx --version output, expected to be runx-cli 0.6.13 or newer, and the publish/install/dogfood/verify commands were run with that binary.\n- The verified claimant GitHub account currently stars https://github.com/runxhq/runx; Frantic checks this directly through the github.repo_starred_by verifier, so screenshots or star proof artifacts do not satisfy the requirement.\n- The exact package name is oncall-alert-triage; publish flow is runx login --provider github --for publish, then runx registry publish ./skills/oncall-alert-triage/SKILL.md --registry https://api.runx.ai. public_url is the live registry listing for <owner>/oncall-alert-triage@<version> and the canonical public adoption page; source_url is the public source/provenance URL used to publish; and runx registry read <owner>/oncall-alert-triage@<version> --json resolves the published metadata and digests when exposed. Do not publish a near-name, alternate name, or renamed implementation. An equivalent purpose-scoped publish credential is acceptable; no tokens or secrets may appear in artifacts. Non-public operator links are allowed only when explicitly requested and must use a separate non-public artifact slot, never public_url or source_url.\n- Open a public PR against runxhq/runx that contains the submitted skill package, including skills/oncall-alert-triage/X.yaml, skills/oncall-alert-triage/SKILL.md, fixtures, and harness evidence. Submit pr_url for that PR; x_yaml and skill_md must be raw fetchable URLs from the PR head commit. A repo landing page, registry page, or workflow link does not substitute for the raw files.\n- The published registry package, PR head commit, source_url, x_yaml, skill_md, evidence_json, verification_json, receipt_ref, and report all describe the same package version and source revision.\n- A clean install succeeds with runx add <owner>/oncall-alert-triage@<version>; the local harness passed before publish via runx harness ./skills/oncall-alert-triage; the hosted registry harness passed after publish; a real dogfood run via runx skill <owner>/oncall-alert-triage@<version> --json produced a receipt that passes runx verify --receipt <receipt.json> --json, recorded in evidence_json.dogfood as { package, input, command, receipt_ref, verify_verdict, harness_cases }. The recorded receipt_ref is that post-publish dogfood run of <owner>/oncall-alert-triage@<version>, not the harness fixture seal, and harness_cases lists each case name with its sealed or refused status.\n- Inline harness.cases hold one SEALED happy case (escalate-eligible alert, sealed runbook, in-policy service) where decision.action is escalate, one runx.oncall.triage.v1 packet is emitted, and the receipt seals; and one STOP case that omits caller.answers so the packet sub-step blocks (needs_agent) when the runbook is missing or unsealed or the service is undeclared, with no packet, the receipt still sealing, and the hosted gate reading only these two.\n- Typed inputs are alert{id,service,severity,signal}, runbook_ref, and oncall_policy{services,escalation_rules}; typed output is decision{action: acknowledge|escalate|auto_remediate|suppress, reason} plus a single runx.oncall.triage.v1 packet (page_target, incident_pr_target, pr_review_note_body, optional fix bundle) only when escalate or auto_remediate, plus an escalation field. No authority minted and no AttenuationRequest.\n- The packet is not consumed as an effect here: a downstream driver or operator dispatches by naming the separate governed runs, where issue-to-pr packages the incident PR behind a human merge gate and pr-review-note attaches the comment body, and the live page is a separate send run; an unsealed runbook or out-of-policy action escalates to a human approval lane.\n- The judgment refuses to emit a packet when no page or incident-PR target can be bound, refuses any service not declared in oncall_policy, and never invents a remediation step or escalation path absent from the sealed runbook.\n- evidence_json observations include decision.action and reason, the sealed runbook digest, the policy clauses applied, the packet target fields, the refused or needs_agent stop reason, the two harness case names, and the receipt id.\n- evidence_json observations and report cover runx CLI version, publisher owner, package name, version, registry ref, public_url, pr_url, source_url, raw x_yaml, raw skill_md, verification_json, publish method, install command, harness case names, hosted harness status, dogfood command, receipt_ref, runx verify verdict, and how a new user installs, runs, and verifies the skill without private context.\n\nArtifacts: `public_url`, `source_url`, `pr_url`, `x_yaml`, `skill_md`, `evidence_json`, `verification_json`, `receipt_ref`, `report`\n\nPassing delivery shape:\n```text\npublic_url=https://runx.ai/x/<owner>/oncall-alert-triage@<version>\nsource_url=https://<public-source-or-provenance-url>\npr_url=https://github.com/runxhq/runx/pull/<number>\nx_yaml=https://raw.githubusercontent.com/<owner>/<repo>/<commit>/skills/oncall-alert-triage/X.yaml\nskill_md=https://raw.githubusercontent.com/<owner>/<repo>/<commit>/skills/oncall-alert-triage/SKILL.md\nevidence_json=https://example.com/evidence.json\nverification_json=https://example.com/verification.json\nreceipt_ref=runx:receipt:<id>\nreport=https://example.com/report.md\n```\n\nPreflight before delivery:\n```bash\ncurl -sS https://gofrantic.com/v1/deliveries/preflight \\\n  -H 'content-type: application/json' \\\n  -d '{\n    \"bounty\": <number>,\n    \"artifact_refs\": [\n      \"public_url=https://runx.ai/x/<owner>/oncall-alert-triage@<version>\",\n      \"source_url=https://<public-source-or-provenance-url>\",\n      \"pr_url=https://github.com/runxhq/runx/pull/<number>\",\n      \"x_yaml=https://raw.githubusercontent.com/<owner>/<repo>/<commit>/skills/oncall-alert-triage/X.yaml\",\n      \"skill_md=https://raw.githubusercontent.com/<owner>/<repo>/<commit>/skills/oncall-alert-triage/SKILL.md\",\n      \"evidence_json=https://example.com/evidence.json\",\n      \"verification_json=https://example.com/verification.json\",\n      \"receipt_ref=runx:receipt:<id>\",\n      \"report=https://example.com/report.md\"\n    ]\n  }'\n```\n\nReturned for revision if: Screenshots alone, local-only runs, prose-only summaries, unlisted skills, PRs without the package files, repo landing pages instead of raw X.yaml/SKILL.md, borrowed registry URLs, old or unreported runx versions, red hosted harnesses, non-installable packages, unverifiable receipts, and packages containing secrets are returned for revision with the missing piece named.\n\nReview gate: Open the registry public_url, confirm the listed owner is the worker, open the runxhq/runx pr_url and confirm it contains skills/oncall-alert-triage/X.yaml, skills/oncall-alert-triage/SKILL.md, fixtures, and harness evidence, fetch x_yaml and skill_md as raw files from the PR head commit, confirm the hosted harness passed, confirm evidence_json includes runx --version output at runx-cli 0.6.13 or newer, run or inspect runx add <owner>/oncall-alert-triage@<version> and runx registry read <owner>/oncall-alert-triage@<version> --json evidence, compare evidence_json, verification_json, and receipt_ref with the submitted source_url and PR, resolve receipt_ref and confirm evidence_json.dogfood shows it is the post-publish dogfood run of <owner>/oncall-alert-triage@<version> rather than the harness fixture or an unrelated receipt, independently run runx add <owner>/oncall-alert-triage@<version> and runx skill <owner>/oncall-alert-triage@<version> --json to confirm it installs and seals, and state why a real operator or user would install or trust this skill.","occurred_at":"2026-06-25T21:22:22.037Z","price_cents":800,"claimable_at":"2026-06-25T21:22:22.037Z","schema_version":1}}}}