Skip to content

Add proposed work request template#640

Merged
ramimbo merged 2 commits into
mainfrom
maintainer/proposed-work-template
May 30, 2026
Merged

Add proposed work request template#640
ramimbo merged 2 commits into
mainfrom
maintainer/proposed-work-template

Conversation

@ramimbo
Copy link
Copy Markdown
Owner

@ramimbo ramimbo commented May 30, 2026

Summary

  • add a proposed-work issue template that is explicitly not a live MRWK bounty and auto-applies only the neutral proposed-work label
  • document the proposed-work lifecycle for contributors and agents
  • stop the bounty issue template from auto-applying the live bounty label before treasury proposal execution
  • add docs smoke and regression checks for the new guardrails

Why

After the treasury proposal flow, GitHub issues must not look claimable until the proposal executes and the public bounty row exists. This PR separates intake from live bounties so maintainers, agents, and contributors have a clear path.

This is a maintainer PR and has no bounty request.

Validation

  • /home/ubuntu/mergework/.venv/bin/python -m pytest -> 510 passed
  • /home/ubuntu/mergework/.venv/bin/python -m ruff format --check . -> passed
  • /home/ubuntu/mergework/.venv/bin/python -m ruff check . -> passed
  • /home/ubuntu/mergework/.venv/bin/python -m mypy app -> passed
  • /home/ubuntu/mergework/.venv/bin/python scripts/docs_smoke.py -> docs smoke ok
  • YAML parse check for all issue templates -> passed

Summary by CodeRabbit

  • New Features

    • Added a "Proposed Work Request" intake form to submit work proposals separate from live bounties.
    • Bounty template no longer auto-applies the live-bounty label.
  • Documentation

    • Clarified submission guidelines and lifecycle for proposed work vs. active bounties.
    • Added guidance telling agents not to claim proposed-work intake issues.
  • Tests / Validation

    • Added stricter docs/templates smoke checks and tests to enforce wording and label rules.

Review Change Stack

@coderabbitai
Copy link
Copy Markdown

coderabbitai Bot commented May 30, 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: 23c7c29c-0b4c-48d8-ae2f-6aa43aaa27bf

📥 Commits

Reviewing files that changed from the base of the PR and between 149f6a2 and 5be4f3a.

📒 Files selected for processing (2)
  • scripts/docs_smoke.py
  • tests/test_docs_public_urls.py

📝 Walkthrough

Walkthrough

This PR introduces a "proposed work" intake workflow for maintainer-reviewed issues separate from live bounties. A new issue template collects proposed work details with a proposed-work label, while the bounty template is adjusted to defer the mrwk:bounty label until after treasury and public bounty setup. Documentation and validation rules enforce that proposed work is not claimable until conversion to a live bounty.

Changes

Proposed Work Intake Workflow

Layer / File(s) Summary
Proposed work intake template
.github/ISSUE_TEMPLATE/proposed-work.yml
New form template for proposing maintainer-reviewed work with required fields: problem, evidence, proposed solution, expected value, reference tier (dropdown), acceptance criteria, evidence needed, duplicate check, and out-of-scope constraints. Template applies proposed-work label.
Bounty template defers live label
.github/ISSUE_TEMPLATE/bounty.yml
Removes auto-applied mrwk:bounty label and clarifies in description that live label must wait for treasury proposal execution, public bounty page, and maintainer reserve comment. Required form fields (evidence, out-of-scope, duplicate/stale) remain intact.
Proposed work lifecycle documentation
docs/agent-guide.md, docs/bounty-rules.md
Adds sections explaining proposed work as intake-only (not live bounty), non-claimable, forbidden from /claim, and requiring conversion to mrwk:bounty before claim eligibility. Introduces proposed-work label and documents the intake → review → optional create_bounty flow.
Validation and enforcement rules
scripts/docs_smoke.py
Tightens doc/template consistency checks: requires agent-guide to state proposed work is intake-only and to wait for mrwk:bounty label; requires bounty-rules to document proposed work lifecycle and tier guidance; enforces bounty template does not auto-apply mrwk:bounty label; validates proposed-work template contains no-live-bounty wording and prohibits mrwk:bounty mention.
Test coverage
tests/test_docs_public_urls.py
Adds tests that read templates and docs to verify: proposed-work template is not marked live, bounty template does not auto-label, bounty-rules document the lifecycle, agent-guide forbids claiming proposed work, and _issue_template_labels parses inline and block label styles.

Possibly related PRs

  • ramimbo/mergework#558: Modifies the same bounty template surface and docs_smoke.py validation to enforce a specific agent-readable bounty template structure.
  • ramimbo/mergework#433: Extends docs/bounty-rules.md and scripts/docs_smoke.py validation for lifecycle wording in documentation.
  • ramimbo/mergework#397: Updates scripts/docs_smoke.py public-doc and template validation logic with shared required-phrase enforcement.
🚥 Pre-merge checks | ✅ 6
✅ Passed checks (6 passed)
Check name Status Explanation
Title check ✅ Passed The title clearly and concretely names the primary change: adding a new proposed work request template, which aligns with the main modification across the changeset.
Description check ✅ Passed The description covers all required sections with concrete details: summary of changes, rationale (Why), validation evidence, and related bounty reference (maintainer PR, no bounty). Test evidence checklist is completed.
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 No investment, price, cash-out, or fabricated payout claims found. Templates enforce work-based MRWK wording and document that proposed work is not live bounties.
Bounty Pr Focus ✅ Passed PR does not reference Bounty #N or Refs #N. All 6 stated files present, changes match descriptions, 5 new tests added, validation evidence provided, no scope creep.

✏️ 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.

Copy link
Copy Markdown

@Thanhdn1984 Thanhdn1984 left a comment

Choose a reason for hiding this comment

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

Reviewed current head 149f6a221598d4084def21c906513399e298077b.

Evidence:

  • Inspected .github/ISSUE_TEMPLATE/bounty.yml, .github/ISSUE_TEMPLATE/proposed-work.yml, docs/agent-guide.md, docs/bounty-rules.md, scripts/docs_smoke.py, and tests/test_docs_public_urls.py.
  • Verified the live bounty template no longer auto-applies mrwk:bounty and explicitly warns that issues are not claimable until treasury execution/public bounty reservation.
  • Verified the new proposed-work template is clearly labeled proposed-work, does not mention/apply mrwk:bounty, requires problem/evidence/proposed work/value/duplicate search/out-of-scope fields, and tells contributors not to submit /claim before a reserved bounty exists.
  • Verified docs add the proposed-work lifecycle and agent guidance to wait for mrwk:bounty, a Reserved on MergeWork comment, and the public bounty page before treating work as bounty work.
  • Ran python3 -m pytest tests/test_docs_public_urls.py -q28 passed.
  • Ran python3 scripts/docs_smoke.pydocs smoke ok.
  • CI Quality, readiness, docs, and image checks is green; PR is mergeable.

Verdict: APPROVE. The change is documentation/template-scoped, tested, and directly reduces accidental false bounty claims.

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: da065e5e-ec1f-4854-9ee3-f2e8f65e80d7

📥 Commits

Reviewing files that changed from the base of the PR and between 1e424d2 and 149f6a2.

📒 Files selected for processing (6)
  • .github/ISSUE_TEMPLATE/bounty.yml
  • .github/ISSUE_TEMPLATE/proposed-work.yml
  • docs/agent-guide.md
  • docs/bounty-rules.md
  • scripts/docs_smoke.py
  • tests/test_docs_public_urls.py

Comment thread scripts/docs_smoke.py Outdated
Copy link
Copy Markdown

@chinook1001 chinook1001 left a comment

Choose a reason for hiding this comment

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

Reviewed current head 149f6a221598d4084def21c906513399e298077b.

Evidence checked:

  • Inspected .github/ISSUE_TEMPLATE/bounty.yml, .github/ISSUE_TEMPLATE/proposed-work.yml, docs/agent-guide.md, docs/bounty-rules.md, scripts/docs_smoke.py, and tests/test_docs_public_urls.py.
  • Verified the bounty template no longer auto-applies mrwk:bounty and tells maintainers/contributors the issue is not claimable until treasury execution, public bounty page creation, and the reserved bounty comment exist.
  • Verified the proposed-work template is explicitly intake-only, applies only the proposed-work label, requires problem/evidence/proposed work/value/acceptance/tests/duplicate/out-of-scope fields, and does not mention/apply mrwk:bounty.
  • Verified docs describe the proposed-work lifecycle as proposed issue -> maintainer review -> optional create_bounty proposal -> delay -> execution -> live bounty, and tell agents not to submit /claim until the issue becomes a live reserved bounty.
  • Checked PR metadata: current head matches the commit above, PR is mergeable/clean, and hosted Quality, readiness, docs, and image checks is green.

Local validation:

  • ./.venv/bin/python -m pytest tests/test_docs_public_urls.py -q -> 28 passed
  • ./.venv/bin/python scripts/docs_smoke.py -> docs smoke ok
  • ./.venv/bin/python -m ruff check scripts/docs_smoke.py tests/test_docs_public_urls.py -> passed
  • ./.venv/bin/python -m ruff format --check scripts/docs_smoke.py tests/test_docs_public_urls.py -> already formatted
  • ./.venv/bin/python -c ... yaml.safe_load(...) ... over both issue templates -> issue templates parse
  • git diff --check origin/main...HEAD -> clean

Verdict: APPROVE. The change is template/docs scoped, adds regression coverage for the claimability boundary, and should reduce accidental false bounty claims without changing live bounty payout behavior.

@ramimbo ramimbo merged commit 3bc28c6 into main May 30, 2026
2 checks passed
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.

3 participants