Skip to content

Document agent-friendly bounty post template#475

Open
Thanhdn1984 wants to merge 3 commits into
ramimbo:mainfrom
Thanhdn1984:susan/bounty-template-docs-456
Open

Document agent-friendly bounty post template#475
Thanhdn1984 wants to merge 3 commits into
ramimbo:mainfrom
Thanhdn1984:susan/bounty-template-docs-456

Conversation

@Thanhdn1984
Copy link
Copy Markdown

@Thanhdn1984 Thanhdn1984 commented May 26, 2026

Summary

  • Add a canonical agent-friendly bounty post template to docs/bounty-rules.md.
  • Update the admin runbook posting flow to require the stable title/body fields.

Linked bounty: Refs #456 / Bounty #456

Evidence

Compared against:

  • .github/ISSUE_TEMPLATE/bounty.yml: existing required fields are Work needed, Proposed MRWK per award, Max awards, Acceptance criteria.
  • docs/bounty-rules.md: existing labels, evidence templates, payout flow, PR bounty reference guidance, and public artifact cautions.
  • docs/admin-runbook.md: existing Post a Bounty steps and PR acceptance flow.
  • docs/agent-guide.md: agent workflow depends on clear issue scope, evidence, tests, and out-of-scope notes.
  • Public bounty behavior in issue MRWK bounty: 150 MRWK - document agent-friendly bounty post template #456: title exposes award, body repeats reward/max awards, includes acceptance criteria and submission path.

Tests

  • python3 scripts/docs_smoke.pydocs smoke ok
  • git diff --check → no whitespace errors

Out of scope

  • No tokenomics, price, liquidity, exchange, bridge, or payout claims.
  • No broad rewrite of bounty flows or issue forms.

Summary by CodeRabbit

  • Documentation

    • Updated bounty posting runbook with an agent-friendly bounty post template, structured title format, and explicit required sections (work needed, acceptance criteria, submission/evidence, out-of-scope, duplicate/stale-work)
    • Added a public “Agent-Friendly Bounty Post Template” doc with example formatting and reward/award guidance
  • Chores

    • Replaced the MRWK bounty issue template with a structured, parameterized form
    • Added a docs validation check to ensure the bounty template exists, parses correctly, and contains required phrasing

Review Change Stack

@coderabbitai
Copy link
Copy Markdown

coderabbitai Bot commented May 26, 2026

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: ASSERTIVE

Plan: Pro Plus

Run ID: 114206c2-ba52-4eb1-88b6-5a355cd0d4b6

📥 Commits

Reviewing files that changed from the base of the PR and between ab5c1e3 and d12f8d2.

📒 Files selected for processing (2)
  • .github/ISSUE_TEMPLATE/bounty.yml
  • scripts/docs_smoke.py

📝 Walkthrough

Walkthrough

This PR adds an agent-friendly bounty post template in docs, updates the GitHub bounty issue template, requires the template in the admin runbook, and extends docs_smoke.py to validate the issue-template file and required phrasing.

Changes

Agent-Friendly Bounty Post Template

Layer / File(s) Summary
Bounty template specification and rules
docs/bounty-rules.md
Introduces the "Agent-Friendly Bounty Post Template" section defining title/body format, reward/max_awards guidance, work needed, acceptance criteria, submission/evidence requirements, out-of-scope rules, and duplicate/stale-work rules.
GitHub bounty issue template
.github/ISSUE_TEMPLATE/bounty.yml
Replaces the prior issue form with a structured template: parameterized title, reward and max-awards fields, work/acceptance/submission/evidence sections, out-of-scope and duplicate/stale-work guidance, and keeps the final validation field required.
Admin runbook template enforcement
docs/admin-runbook.md
Updates the "Post a Bounty" runbook to require using the agent-friendly template, enforce the structured title format, and repeat Reward and Max awards plus all required body sections.
Smoke test validation for bounty template
scripts/docs_smoke.py
Adds BOUNTY_ISSUE_TEMPLATE constant and extends main() to ensure the bounty issue template file exists and contains specific required phrases, failing the check if phrases are missing.

Possibly related issues

Possibly related PRs

🚥 Pre-merge checks | ✅ 6
✅ Passed checks (6 passed)
Check name Status Explanation
Title check ✅ Passed The title directly names the main surface changed: documenting an agent-friendly bounty post template, which aligns with the primary objectives across all modified files.
Description check ✅ Passed The description covers the summary, evidence (comparison to existing surfaces), test validation, out-of-scope boundaries, and links to the related bounty, though it does not include the Test Evidence checklist section from the template.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
Mergework Public Artifact Hygiene ✅ Passed PR maintains artifact hygiene: no investment, price, or fabricated payout claims; guards against cash-out/exchange claims; protects security details; adds smoke-test enforcement.
Bounty Pr Focus ✅ Passed PR diff matches stated surfaces (4 files), test output "docs smoke ok" confirmed, and scope is focused on bounty template with no prohibited claims.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.


Comment @coderabbitai help to get the list of available commands and usage tips.

@Thanhdn1984
Copy link
Copy Markdown
Author

CI is green and CodeRabbit reported no actionable comments. Ready for maintainer review when convenient.

Copy link
Copy Markdown
Contributor

@GHX5T-SOL GHX5T-SOL left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Reviewed PR #475 at current head 7d9151db2c03ca4e5380bd0fd8586585d01c23cc.

I would hold this because it documents a new canonical bounty post shape but leaves the normal GitHub bounty issue form and docs smoke guard on the old contract.

Evidence:

  • Bounty #456 asks the PR to compare against the existing bounty issue form and says updating .github/ISSUE_TEMPLATE/bounty.yml is useful if needed so new bounty issues guide maintainers toward the documented shape.
  • This PR updates only docs/admin-runbook.md and docs/bounty-rules.md.
  • The new runbook tells maintainers to use the agent-friendly template and repeat Reward / Max awards in the body, but .github/ISSUE_TEMPLATE/bounty.yml still has title: "[bounty] ", Work needed, and Proposed MRWK per award, and it has no How To Submit or Out of Scope fields.
  • scripts/docs_smoke.py is unchanged, so the new canonical template headings are not protected by the lightweight docs check. python scripts/docs_smoke.py passes even though the issue form remains out of sync with the documented posting path.
  • The live queue report also groups PR #475 with older PR #469 on bounty #456, and #469 already covers the issue-template/docs-smoke surfaces that #475 leaves untouched.

Suggested fix: either update the bounty issue template and docs smoke guard to match the new canonical template, or narrow this PR/body to explain why the documented template is intentionally separate from the GitHub issue form and why the smoke check should not protect those stable fields.

Validation run locally:

  • /home/kali/money/mergework/.venv/bin/python scripts/docs_smoke.py -> docs smoke ok
  • /home/kali/money/mergework/.venv/bin/python -m pytest tests/test_docs_public_urls.py -q -> 23 passed
  • /home/kali/money/mergework/.venv/bin/python -m pytest -q -> 414 passed
  • /home/kali/money/mergework/.venv/bin/python -m mypy app -> success, no issues in 30 source files
  • /home/kali/money/mergework/.venv/bin/python -m ruff check docs/admin-runbook.md docs/bounty-rules.md -> no Python files, command completed successfully
  • git diff --check upstream/main...HEAD -> clean
  • gitleaks detect --no-banner --redact --source . --log-opts upstream/main..HEAD --exit-code 1 -> no leaks found

No wallet material, private keys, private data, signatures, price claims, exchange claims, liquidity claims, or off-ramp promises were used.

@jtc268
Copy link
Copy Markdown

jtc268 commented May 27, 2026

Reviewed PR #475 at current head 7d9151db2c03ca4e5380bd0fd8586585d01c23cc.

Requested change: the docs addition points maintainers at a canonical bounty title/body shape, but the actual maintainer-facing GitHub bounty issue form remains unchanged. In this head, .github/ISSUE_TEMPLATE/bounty.yml still has title: "[bounty] " and only collects work, reward, max_awards, and acceptance; it does not guide maintainers to emit MRWK bounty: <amount> MRWK - <short scope>, How To Submit, Evidence Required, Out of Scope, or duplicate/stale-work rules. That leaves the normal issue-creation path contradicting the new docs and still unable to produce the stable agent-readable shape #456 asked to standardize.

The guard rails are also missing. scripts/docs_smoke.py on this head contains none of the new template phrases (Agent-Friendly Bounty Post Template, the title shape, Evidence Required, or Duplicate and Stale Work Rules all return false), so the new canonical template can regress while docs smoke ok still passes.

This also needs deconflict with already-open PR #469, which was submitted and claimed for #456 before this PR and covers the same bounty surface while updating the issue template and docs smoke checks. If this PR stays open, it should either narrow itself to a distinct docs-only delta that maintainers explicitly want after #469, or add the missing issue-template/smoke-test coverage and explain why it supersedes the earlier PR.

Validation run locally on this head:

  • uv run --extra dev python scripts/docs_smoke.py -> docs smoke ok
  • uv run --extra dev python -m pytest tests/test_docs_public_urls.py -q -> 23 passed
  • PR diff is only docs/admin-runbook.md and docs/bounty-rules.md
  • YAML readback for .github/ISSUE_TEMPLATE/bounty.yml: title is still [bounty]; body ids are work, reward, max_awards, acceptance

@Thanhdn1984
Copy link
Copy Markdown
Author

Updated PR #475 to address the review:\n\n- Changed .github/ISSUE_TEMPLATE/bounty.yml title to .\n- Added structured issue-template fields for Reward, Max awards, Work Needed, Acceptance Criteria, How To Submit, Evidence Required, Out of Scope, and Duplicate and Stale Work Rules.\n- Added docs_smoke guard rails so the agent-friendly template phrases and title shape cannot regress silently.\n\nValidation:\n- \ -> \n- \ -> pass

Copy link
Copy Markdown
Contributor

@GHX5T-SOL GHX5T-SOL left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Requesting changes on current head ab5c1e3672a4ce70711a9ff6ad37d1737370f8ce.

The follow-up now updates the issue template, docs, runbook, and smoke guard, but .github/ISSUE_TEMPLATE/bounty.yml no longer parses as YAML. The unquoted descriptions that include inline Reward: / Max awards: examples are treated as mappings; a local parse raises yaml.scanner.ScannerError: mapping values are not allowed here at line 16, column 85. If merged as-is, the GitHub bounty issue form path can break, which is the maintainer-facing template path #456 is trying to standardize.

Suggested fix: quote those description strings or use block scalars, and add a YAML parse check for .github/ISSUE_TEMPLATE/*.yml to scripts/docs_smoke.py so the issue-form guard catches this class of regression.

Validation on this head:

  • PYTEST_DISABLE_PLUGIN_AUTOLOAD=1 uv run --extra dev python scripts/docs_smoke.py -> docs smoke ok
  • PYTEST_DISABLE_PLUGIN_AUTOLOAD=1 uv run --extra dev python -m pytest tests/test_docs_public_urls.py -q -> 23 passed
  • PYTEST_DISABLE_PLUGIN_AUTOLOAD=1 uv run --extra dev python -m ruff check scripts/docs_smoke.py -> passed
  • PYTEST_DISABLE_PLUGIN_AUTOLOAD=1 uv run --extra dev python -m ruff format --check scripts/docs_smoke.py -> 1 file already formatted
  • YAML parse check for .github/ISSUE_TEMPLATE/*.yml -> fails with ScannerError at .github/ISSUE_TEMPLATE/bounty.yml:16:85
  • git diff --check origin/main...HEAD -> clean
  • changed-diff Gitleaks scan -> no leaks found
  • GitHub Quality, readiness, docs, and image checks -> passing; CodeRabbit still pending at readback

No secrets, private data, wallet material, production mutation, price/exchange/liquidity claim, or off-ramp claim was used.

Copy link
Copy Markdown

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1


ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: ASSERTIVE

Plan: Pro Plus

Run ID: 1783755e-a8ed-4c89-9367-175b2db30685

📥 Commits

Reviewing files that changed from the base of the PR and between 7d9151d and ab5c1e3.

📒 Files selected for processing (2)
  • .github/ISSUE_TEMPLATE/bounty.yml
  • scripts/docs_smoke.py

Comment thread scripts/docs_smoke.py
@Thanhdn1984
Copy link
Copy Markdown
Author

Updated for the YAML parse review.\n\nFixes:\n- Quoted bounty issue-template description strings containing inline Reward: / Max awards: examples so .github/ISSUE_TEMPLATE/bounty.yml parses as YAML.\n- Added a YAML parse guard in scripts/docs_smoke.py for the bounty issue template.\n- Expanded docs smoke coverage to check all required bounty issue-template field ids/labels: reward, max_awards, work, acceptance, how_to_submit, evidence_required, out_of_scope, duplicate_stale_rules.\n\nValidation:\n- PYTEST_DISABLE_PLUGIN_AUTOLOAD=1 uv run --extra dev python scripts/docs_smoke.py → docs smoke ok\n- PYTEST_DISABLE_PLUGIN_AUTOLOAD=1 uv run --extra dev python -m ruff check scripts/docs_smoke.py → pass\n- PYTEST_DISABLE_PLUGIN_AUTOLOAD=1 uv run --extra dev python -m ruff format --check scripts/docs_smoke.py → 1 file already formatted\n- git diff --check → clean

Copy link
Copy Markdown
Contributor

@GHX5T-SOL GHX5T-SOL left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Approving current head d12f8d2febf08cf3592147644bda0f01bac59a64.

The YAML parse blocker from my prior review is resolved: .github/ISSUE_TEMPLATE/bounty.yml now parses, and scripts/docs_smoke.py adds a YAML parse guard plus required checks for the bounty title shape and issue-template fields. I also rechecked the #456-related surfaces; the diff remains focused to .github/ISSUE_TEMPLATE/bounty.yml, docs/bounty-rules.md, docs/admin-runbook.md, and scripts/docs_smoke.py.

Validation on this head:

  • PYTEST_DISABLE_PLUGIN_AUTOLOAD=1 uv run --extra dev python scripts/docs_smoke.py -> docs smoke ok
  • PYTEST_DISABLE_PLUGIN_AUTOLOAD=1 uv run --extra dev python -m pytest tests/test_docs_public_urls.py -q -> 23 passed
  • PYTEST_DISABLE_PLUGIN_AUTOLOAD=1 uv run --extra dev python -m ruff check scripts/docs_smoke.py -> All checks passed!
  • PYTEST_DISABLE_PLUGIN_AUTOLOAD=1 uv run --extra dev python -m ruff format --check scripts/docs_smoke.py -> 1 file already formatted
  • YAML readback -> title MRWK bounty: <amount> MRWK - <short scope>; body ids reward, max_awards, work, acceptance, how_to_submit, evidence_required, out_of_scope, duplicate_stale_rules
  • git diff --check origin/main...HEAD -> clean
  • gitleaks detect --source . --log-opts=origin/main..HEAD --no-banner --redact -> no leaks found
  • GitHub readback: PR is open, non-draft, CLEAN, with successful CI and CodeRabbit checks

Related #456 submissions also exist, so merge/payment precedence remains maintainer-owned; this approval is only for the current technical state of PR #475. No secrets, private data, wallet material, production mutation, price/exchange/liquidity claim, or off-ramp claim was used.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants