.agents/skills/proposals/SKILL.md
This skill provides instructions and best practices for working with proposals. Only create a proposal when explicitly directed as part of the task.
Make sure to confirm the desired title for the proposal as that will govern the filename.
./proposals/scripts/new_proposal.py "Title"
to create a templated file and instructions for setting up the PR.proposals/p######-title.md,
where ###### is the 6-digit GitHub pull request number and title is a
slugified version of the proposal title.proposals/scripts/template.md,
noting the specific TODO instructions in each section for the content that
should be included there.[!IMPORTANT] Do not mark the PR ready for review. The user must have the opportunity to review the proposal produced before asking for any review.
/docs/project/goals.md and principles in
/docs/project/principles (e.g.,
error_handling.md, one_way.md).> **TODO:** Document ... adopted in [p######](/proposals/p######-title.md)).
For pervasive changes, file a GitHub issue instead of adding many TODOs.There are always alternatives to a proposal, and the proposal should carefully include sections describing all of them and the rationale for not selecting them. Any living design document updates should focus on fully describing the end-state design, and the key motivating aspects of that design. The main proposal should focus on what is changing and why it is changing, and should leave detailed description of the resulting design to the living design document, and why not rationale to the description of each alternative.
[!IMPORTANT] Don't just list the alternatives, create a sub-section for each alternative and carefully describe the alternative, the advantages, disadvantages and what the core of the decision is to reject each alternative.
[!IMPORTANT] Carefully research each alternative in the leads issue in order to provide this clear and comprehensive explanation.
Sometimes a proposal is specifically documenting and formalizing a decided leads issue. When this is the case, carefully research that leads issue, reading the original issue text and every comment on the issue. Also read any linked Google documents, linked issues, examples, gists, or other supplemental information cited.
Use the gh command line tool to query leads issues in order to carefully
examine all of the comments. Follow any mentioned links to gather more data.
Refer to the GitHub CLI usage skill for
detailed instructions on using the gh tool.
Ask the user to clarify any aspects of the leads issue that are unclear rather than continuing to edit the proposal. If there are questions that you don't find an answer to in the issue, ask this to the user and let them provide an answer that you use as the basis of what to include.
Heavily leverage examples to illustrate both the specifics of the design being proposed, and the nature of the change being proposed. More examples to illustrate more aspects, corner cases, or provide a more complete understanding are almost always good. Comments in example code should focus on what that part of the example illustrates from the proposal.
Whenever you edit the abstract or notice differences from the PR description, you should update the PR description to match the abstract. The only exception is to retain any "Assisted-by" or other tags at the end of the description that are only needed there and not in the abstract.
If you are creating or updating a proposal, make sure the PR description in
question contains an Assisted-by: tag that is appropriate for describing which
AI tool is being used.