Install any skill in seconds. Free to start, no credit card required.
Get Started Free →inkeep/open-knowledge-pack-software-lifecycle-frame-a-proposal
Frame a new design proposal (RFC-shape) under proposals/ — problem before solution, named beneficiary and observable change, real alternatives, honest drawbacks, and a live open-questions backlog. Read when asked to frame a proposal, write an RFC, propose a design, pitch a change, draft a PRD-style design doc, or open a design proposal for review. Do NOT read to record a decision after it is accepted (use record-a-decision), to write an implementation spec (use write-a-spec), to write a postmort
5 of 22 test cases passed with the skill.
Tokens, turns and time describe resource use, not a dollar price.
Lift withheld: 6 comparable cases; this report requires 8.
One of 4 test cases the skill fixed. Same model, same prompt, with and without the skill.
I have created the empty file for the async export feature. Now I need to add the YAML frontmatter block at the top. The feature title is 'Async Export Pipeline' and the forced decision is 'Should we use a background worker or an inline queue?'. What should the frontmatter look like?
| Checked | Without skill | With skill |
|---|---|---|
| Sets the YAML `type` key to `proposal`. | Missed | Passed |
| Sets the YAML `description` key to the forced decision question rather than the feature title. | Missed | Passed |
| Sets the YAML `status` key to `draft`. | Missed | Passed |
The instructions your model reads when the skill loads.
The platform /open-knowledge skill still governs every markdown operation here (reads via exec/search, writes via write/edit, links as plain relative markdown, never native Read/Edit/Grep/cat on in-scope files). This skill layers proposal-authoring craft on top: it decides what a good proposal contains and in what order you earn each section.
A proposal in proposals/ is a design argument, not a decision and not a plan. It exists to force a choice among options and to give reviewers enough to disagree with. Filename is 0001-feature-name.md — a zero-padded 4-digit sequence plus a kebab title. Status flows draft → fcp → accepted/rejected (fcp = final comment period). Acceptance graduates the proposal to a record in decisions/ — that is a separate, human act and a separate skill.
The failure this skill exists to prevent: an agent jumping to ## Design before anyone agrees what the problem is, padding ## Alternatives with strawmen, and leaving ## Drawbacks empty. Each step below has a gate that blocks that.
Hard gates — do NOT skip ahead. If you are about to draft ## Design and you have not passed the Step 1 framing gate, STOP — you skipped a gate. The whole point of a proposal is that the problem is agreed before the solution is written.
proposals/ and decisions/.proposal template.fcp would require.Create workflow tasks for steps 0–9 in your host's task system if it has one — they make a skipped gate visible mid-session.
Before framing anything, find out what the knowledge base already decided or proposed about this subsystem. A proposal that silently re-litigates an accepted decision is dead on arrival; a proposal that cites it and explains why the decision should be revisited is legitimate.
search({ query: "<subsystem or problem keywords>" }) — semantic, catches synonyms.exec("ls -A proposals/") and exec("ls -A decisions/") — see the sequence space and what has landed.exec("grep -rln <keyword> proposals/ decisions/") — pinpoint files that name the same subsystem.exec("cat proposals/0003-x.md") to read the full doc plus its backlinks.Classify what you find, and carry it into the draft:
test cases passed with the skill
More skills from the same source and nearby in the registry, with their headline benchmark lift.