P4A Documentation
Guides

Submitting an idea

Ideas are a lightweight way to ask for a policy you'd like to see.

Overview

A Policy Idea is a lightweight way to ask the community for a policy you'd like to see, without authoring one yourself. If you have a use case or a governance need but don't have the time or technical background to build a working policy, you can file an idea and let others in the community pick it up. File one from the Ideas page, and track yours under My Contributions — that page lists both the policies and the ideas you've submitted, side by side.

Ideas page showing a grid of community-submitted ideas with vote counts

When to file an idea vs a full submission

Use an idea when you want to say "I wish this existed" — you describe the problem, the desired behavior, and any relevant context, then let the community decide whether to build it.

Use a submission when you have a working policy in hand — you've authored the Rust code, tested it locally, and you're ready to contribute it to the registry for review and publication.

Ideas lower the barrier for non-developers to shape the policy ecosystem. If someone picks up your idea and builds it, you'll be credited as the original requester when the policy is published.

What an idea includes

An idea captures:

  • Title — a descriptive, concrete summary of the policy you want.
  • Category — optional tag like security, compliance, or routing to help with discovery.
  • Description — the problem you're trying to solve, the desired behavior, and any relevant context. Markdown is supported.

The form is quick to fill out, and your idea appears in the public Ideas page where contributors can browse, comment, and claim ideas to implement.

Submit an Idea modal with title, category, and markdown description fields

Lifecycle states

Every idea moves through one of five states. Unlike policies, ideas don't have a separate "submitted" gate — every new idea lands directly in under_review so it's queued for an admin to triage.

                       ┌────► needs_improvement ──── (you edit, it goes back to under_review)

new idea ► under_review┤────► approved ──┬─── visible in the public Ideas tab
                       │                 │
                       │                 └─► delivered ── a published policy was built for it

                       └────► rejected

The screenshots below all show the same example idea — GraphQL Query Complexity Limiter — at different points in its lifecycle, so you can see exactly how the same card looks as the badge and feedback change.

under_review

Every idea starts here. It's not yet visible in the public Ideas page, but admins can see it and triage. While the idea is under_review, it is frozen pending admin review — you cannot edit it. You only regain the ability to edit the title, description, and category when it reaches needs_improvement.

My Contributions, Ideas tab — the GraphQL Query Complexity Limiter card with the Under Review badge

needs_improvement

The admin has sent the idea back with feedback — usually a vague description, an unclear use case, or duplication with an existing idea. The feedback appears on the idea detail page as a feedback history: every round the idea was sent back is listed newest-first, each with the reviewer's note and when it was sent, so you can see how the guidance evolved across resubmissions rather than only the latest note. Update the idea and the next save flips it back to under_review for re-triage.

My Contributions, Ideas tab — the same GraphQL Query Complexity Limiter card now with the Needs Improvement badge and reviewer feedback

approved

The admin has accepted the idea. It's now visible in the public Ideas page where the community can browse, upvote, and claim it for implementation.

My Contributions, Ideas tab — the GraphQL Query Complexity Limiter card with the Approved badge

delivered

A contributor built a policy for the idea and it was published. The idea flips to delivered, gains a Built as a policy card linking to the published policy on its detail page, and you — the original submitter — get an email letting you know your idea was built. An idea only reaches this state once; the link is one-to-one with the policy that delivered it. Delivered ideas stay visible in the Ideas page with their badge so the demand-to-delivery trail is preserved.

Idea detail page with the Built as a policy card linking through to the published policy

rejected

The admin has decided the idea won't be tracked further — typically because it duplicates an existing approved idea or sits outside the catalog's scope. The idea is hidden from the public Ideas page.

My Contributions, Ideas tab — the GraphQL Query Complexity Limiter card with the Rejected badge and rejection reason

Community triage

Once your idea is approved, the community can upvote it, ask clarifying questions, and propose implementation approaches. Platform maintainers may tag it with labels like good first policy to help new contributors find approachable projects.

The upvote button lives on each idea's detail page. You can't upvote your own ideas — the platform enforces this at the database level so the vote count stays an honest signal of community demand. The screenshot below is the Cache Control with Redis idea, viewed from an account that didn't submit it (so the upvote button is enabled).

Idea detail page for "Cache Control with Redis" with the upvote button and current vote count

If your idea gains traction, a contributor will claim it, build the policy, and submit it through the standard review process.

Building a policy for an idea

Any signed-in user can offer to build an approved idea that hasn't been delivered yet. Open the idea's detail page and click Submit a policy — this opens the policy submission form with the idea already linked, so you don't have to find it again. Declaring the idea on your submission tells the reviewers which request you're delivering.

Idea detail page for an approved idea showing the Submit a policy button next to the upvote button

The link is recorded in two phases. While your policy is still under review, the idea it's declared to deliver is shown as a pending intent — the idea stays approved and isn't counted as delivered yet. An admin can confirm or adjust that declared idea during review. Only when the policy is approved and published does the idea flip to delivered: its detail page gains a Built as a policy card linking to the published policy, and the original idea submitter is emailed. The link is one-to-one: each idea is delivered by exactly one published policy, and each policy delivers at most one idea.

On this page