Agent skill

Frame A Proposal

by inkeep in inkeep/open-knowledge

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.

GPL-3.0Auto-check passedSales & Support

Install Frame A Proposal

skills CLI
$ npx skills add inkeep/open-knowledge --skill frame-a-proposal -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install inkeep/open-knowledge frame-a-proposal --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/inkeep/open-knowledge.git skills-src && mkdir -p .claude/skills && cp -r skills-src/packages/server/assets/skills/packs/software-lifecycle/frame-a-proposal .claude/skills/frame-a-proposal && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
frame-a-proposal
GitHub stars
4.4k
Token cost
~3.6k tokens
SKILL.md length
1,712 words
Files
1
Skills in repo
18
Repo updated
First seen
Licence
GPL-3.0

At a glance

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.

  • Works in 10 steps: Scan prior art → Frame the problem — STOP gate → Allocate the number and create from… → …
  • Tasks that involve Proposals and quotes
  • SKILL.md covers Mandatory execution order, Step 0: Scan prior art, Step 1: Frame the problem —… and Step 2: Allocate the number…, plus 8 more sections
  • Instructions only: no scripts, shell commands, URLs or credentials in SKILL.md

What it does

Frame A Proposal is an agent skill from inkeep/open-knowledge. 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 postmortem (use…

Its SKILL.md is about 3.6k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts. Compatibility notes: Any agent host with the OpenKnowledge MCP server configured. Installed project-local by ok seed --pack software-lifecycle.

It sits in Sales & Support, covering Proposals and quotes, Runbooks and postmortems and Architecture decision records. The repository describes itself as: Beautiful, AI-native markdown IDE and LLM wiki. The licence is GPL-3.0.

When your agent uses it

  • Tasks that involve Proposals and quotes
  • Tasks that involve Runbooks and postmortems
  • Tasks that involve Architecture decision records

Example prompts

  • “/frame-a-proposal”

Requirements

  • Compatibility (from SKILL.md): Any agent host with the OpenKnowledge MCP server configured. Installed project-local by `ok seed --pack software-lifecycle`.

Workflow steps

10 steps, taken from the step headings in SKILL.md.

  1. Scan prior art
  2. Frame the problem — STOP gate
  3. Allocate the number and create from template
  4. Motivation
  5. Design
  6. Alternatives
  7. Drawbacks
  8. Unresolved questions
  9. Link + validate
  10. Recap + path to fcp

What it can do on your machine

Read from SKILL.md and the folder at commit 85688b8. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    No scripts in the folder and no shell commands in SKILL.md (its code samples are yaml).

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

  • Compatibility

    Any agent host with the OpenKnowledge MCP server configured. Installed project-local by `ok seed --pack software-lifecycle`.

    From compatibility in the SKILL.md frontmatter.

Context cost

Frame A Proposal loads about 3.6k tokens when it runs. Until then it costs about 153 tokens; SKILL.md has 1,712 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~153
When it runs · the whole SKILL.md, loaded when a task matches
~3.6k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from inkeep/open-knowledge at commit 85688b8, republished under its GPL-3.0 licence (© inkeep). 1,712 words, ~3,557 tokens.

Download SKILL.mdSave it as .claude/skills/frame-a-proposal/SKILL.md (or your agent's skills folder).
name
frame-a-proposal
description
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 postmortem (use write-a-postmortem), or to review or critique an existing design (use review-a-design).
compatibility
Any agent host with the OpenKnowledge MCP server configured. Installed project-local by `ok seed --pack software-lifecycle`.
metadata.pack
software-lifecycle
metadata.author
Inkeep
metadata.repository
https://github.com/inkeep/open-knowledge-skills

Frame a proposal — turn a problem into a reviewable RFC

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.


Mandatory execution order

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.

  1. Scan prior art — what already exists on this subsystem, in proposals/ and decisions/.
  2. Frame the problem — STOP gate. Name beneficiary, observable change, forced decision. Get confirmation before any solution text.
  3. Allocate the sequence number and create from the proposal template.
  4. Motivation — problem, evidence, who is hurt today, cost of doing nothing, and explicit non-goals.
  5. Design — the proposal at an altitude a reader can disagree with.
  6. Alternatives — at least two real ones, each with why-not.
  7. Drawbacks — the honest cost.
  8. Unresolved questions — a live backlog, each with a resolver and resolving evidence.
  9. Link + validate.
  10. Recap + what advancing to 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.


Step 0: Scan prior art

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.
  • For the 1–3 most relevant hits, exec("cat proposals/0003-x.md") to read the full doc plus its backlinks.

Classify what you find, and carry it into the draft:

FoundDo this
An accepted decision covers this areaThe new proposal MUST cite it (a markdown link into decisions/) and, in Motivation, say what changed that reopens it. If nothing changed, tell the user this may not need a proposal at all.
A draft/fcp proposal overlapsOffer to extend or supersede it rather than open a near-duplicate. Two overlapping proposals split the review.
NothingProceed clean.

Step 1: Frame the problem — STOP gate

This is the gate that makes the difference between an RFC and a pile of solution text. Do NOT draft ## Design, and do NOT create the file, until the user confirms the framing.

Produce and return exactly this, then STOP and wait:

## Framing (confirm before I draft)

**Beneficiary:** who is worse off today and will be better off if this ships. A named role or user, not "the system" or "us".

**Observable change:** the concrete, checkable difference they will see. "X drops from N to M", "Y becomes possible", "Z stops happening". Not "improve", not "streamline".

**Forced decision:** the one question this proposal makes reviewers answer. If accepting it doesn't commit anyone to anything, it is a report, not a proposal.

**Rough shape:** one sentence on the direction — enough to know we're framing the right problem, not the design itself.

Discipline:

  • If you cannot name a beneficiary distinct from "the team," the problem isn't framed. Push back before drafting.
  • "Observable change" is falsifiable or it isn't done. If you can't state how you'd check it, you're describing an activity, not an outcome.
  • Vague trigger ("we should have a proposal for the cache")? Narrow it: for whom, forced by what decision, changing what they observe.
  • In an explicitly headless/non-interactive run, state the framing AND proceed, but write the three fields verbatim into Motivation so a reviewer can reject the framing itself.

Step 2: Allocate the number and create from template

List, don't guess, the sequence. exec("ls -A proposals/"), take the highest existing NNNN, add one, zero-pad to four digits. Guessing collides the moment two proposals are drafted the same week.

Filename: NNNN-kebab-title.md (0007-async-export-pipeline.md). Create it from the template — this is the only way the ## Motivation → ## Design → ## Drawbacks → ## Alternatives → ## Unresolved questions skeleton and the frontmatter arrive correctly:

write({ document: { path: "proposals/0007-async-export-pipeline.md", template: "proposal" } })

The template stamps this frontmatter — fill it, don't retype it by hand:

yaml
type: proposal
description: "..."     # one line: the forced decision, not the feature name
status: draft          # stays draft until a human advances it — see Non-goals
authors: [<user>]
created: YYYY-MM-DD
tags: [proposal]

Set description to the decision the proposal forces, in one line — it is what a reader sees in a listing.


Step 3: Motivation

Fill ## Motivation by edit-ing the created doc. This section has to stand on its own: a reader who disagrees here will never read your Design, and that's correct.

  • The problem, stated as the beneficiary experiences it — not as the absence of your solution. "Exports over 100MB time out and users lose the job" beats "we have no async export pipeline."
  • Evidence it is real: a metric, a repeated report, a concrete incident. A proposal motivated only by "it would be nice" is under-motivated; say so to the user and go find one signal.
  • Who is hurt today, named (the Step 1 beneficiary), and how often.
  • Cost of doing nothing — the status-quo baseline every alternative, including "reject this," is measured against. If doing nothing is genuinely fine, the proposal may not need to exist.
  • Non-goals — explicitly. List what this proposal deliberately does not address. Non-goals are how you keep a proposal reviewable; an unbounded proposal can't be accepted because no one can tell what they're agreeing to. Put them under a clear ### Non-goals line inside Motivation.

Step 4: Design

Fill ## Design with the actual proposal, pitched at the altitude where a reader could disagree with it. Too low (every function signature) and reviewers rubber-stamp a design they didn't evaluate; too high ("we'll make it faster") and there's nothing to accept. The target: a competent reader could read this section and say "no, I'd do it differently, because…"

  • Describe the mechanism, the shape of the change, and the key interfaces or contracts it introduces or alters.
  • Make the load-bearing choices explicit. If the design rests on one decision (a data model, a boundary, a sequencing), name it — that decision is usually what the whole proposal is really about.
  • State how the Step 1 observable change is achieved. Tie the design back to the beneficiary.
  • Link related specs, guides, and the decisions you're building on or revisiting, as plain relative markdown: [the export boundary decision](./decisions/0004-export-boundary.md).
  • Keep implementation minutiae out — that granularity is the spec's job (a sibling skill), not the proposal's.

Show full SKILL.md (614 more words)Show less

Step 5: Alternatives

Fill ## Alternatives with at least two real options, each carrying why it was not chosen. Include the honest ones you'd have picked on a different day, plus "do nothing" if it's live.

Structure each:

### Alternative: <name>
What it is — one honest paragraph, argued at its best.
Why not — the specific tradeoff that lost, versus the proposed design.

Discipline:

  • Strawmen are a red flag — say so. An Alternatives section where every option is obviously worse means the author didn't consider real ones, and reviewers will (correctly) distrust the whole proposal. If you can't state an alternative's genuine appeal, you haven't understood it well enough to reject it.
  • "Do nothing" is a first-class alternative. Its "why not" is the Step 3 cost-of-doing-nothing.
  • The right number is usually two to four. One means you're not proposing, you're announcing.

Step 6: Drawbacks

Fill ## Drawbacks with the honest cost of the proposed design — not the alternatives', its own.

  • A proposal with no drawbacks is under-examined, not perfect. Every real design gives something up: complexity, a migration, a new failure mode, a maintenance burden, a closed door. Name them.
  • Be specific about who pays and when — the cost may land on a different party than the beneficiary, and reviewers need to see that tradeoff.
  • If you genuinely believe a drawback is acceptable, say why here rather than hiding it. A stated-and-accepted drawback is stronger than a silent one a reviewer discovers.

Step 7: Unresolved questions

Fill ## Unresolved questions as a live backlog, not a disclaimer. Each entry keeps a real open question visible instead of burying it in confident prose.

For each question:

- **<question>** — What would resolve it: <the evidence, experiment, or measurement>. Who decides: <role or person>.
  • Every question names what evidence would resolve it and who decides. A question with neither is just an anxiety; either sharpen it or drop it.
  • Questions that block acceptance belong here explicitly — they are the agenda for the fcp period.
  • It is correct for this section to be non-empty at draft. Hiding uncertainty to look finished is the failure mode; an honest open-questions list is what makes the proposal safe to review.

Run before you tell the user it's ready:

  • Every referenced decision, spec, or guide is a plain markdown relative link ([text](./decisions/0004-x.md)), never backticked, never an HTML anchor.
  • Add backlinks from 1–2 closely related docs so the proposal is discoverable — the accepted decision it revisits, a related spec, the relevant guide. links({ kind: "backlinks", ... }) to see what already points where.
  • audit({ path: "proposals/0007-async-export-pipeline.md" }) returns clean (every lint violation + broken internal link) — fix every finding.
  • Frontmatter complete: type: proposal, a one-line description, status: draft, authors, created, tags: [proposal].
  • All five H2 sections present and non-empty: ## Motivation, ## Design, ## Drawbacks, ## Alternatives, ## Unresolved questions. An empty Drawbacks or a strawman Alternatives fails this check even though the section technically exists.
  • status is still draft. You do not advance it — see Non-goals.

Step 9: Recap + path to fcp

Close with the user in conversation:

## Recap

- Framed: <beneficiary> gets <observable change>; forces the decision <…>.
- Proposal: proposals/NNNN-title.md (status: draft)
- Alternatives weighed: <n>, chosen over them because <one line>.
- Honest drawbacks: <the main one>.
- Open questions still live: <count> — the fcp agenda.

**To advance to `fcp`:** a human moves status draft → fcp and opens the final comment
period. Acceptance (→ accepted, then a record in decisions/) is a human decision, not
mine. If it's rejected, mark status: rejected and keep the doc — the reasoning is the value.

State plainly that advancing status and accepting the proposal are human acts. Your job ended at a well-framed, honestly-argued draft.


Non-goals

  • Don't record the decision. Acceptance graduates a proposal to a record in decisions/ — that's the sibling /record-a-decision skill, run after a human accepts. This skill stops at draft.
  • Don't write the implementation spec. Design altitude, not build detail. The spec is /write-a-spec.
  • Don't mark a proposal accepted (or fcp) on your own authority. Advancing status is a human act. Leave status: draft; offer the recap of what advancing would require.
  • Don't skip the Step 1 framing gate. Solution text before an agreed problem is the exact failure this skill exists to prevent. If you've drafted Design without a confirmed beneficiary and forced decision, you skipped the gate — back up.
  • Don't pad Alternatives with strawmen or leave Drawbacks empty. Both are tells that the proposal wasn't really examined. Reviewers read them as such.

© inkeep, GPL-3.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

Just SKILL.md in packages/server/assets/skills/packs/software-lifecycle/frame-a-proposal of inkeep/open-knowledge.

Open the folder on GitHubat commit 85688b8

Compare with similar skills

Frame A Proposal next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Frame A Proposal compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Frame A Proposal this skillinkeep/open-knowledge4.4k—~3.6kAutomated safety check: PassGPL-3.0
Architecturenteract/nteract179—~497Automated safety check: PassBSD-3-Clause
To Designsmallnest/goal-workflow289—~2.2kAutomated safety check: PassMIT
Gh Doc Authorcaarlos0/dotfiles220—~2.2kAutomated safety check: PassMIT
Tdoctornado-doc/tdoc103—~18kAutomated safety check: NotesAGPL-3.0
Proposal Reviewer ChorusChorus-AIDLC/Chorus1.2k—~3.9kAutomated safety check: PassAGPL-3.0

Similar skills

  • Architecture

    nteract/nteract

    Architecture and documentation framing for cross-cutting repo decisions, docs taxonomy placement, ADRs, memos, PRDs, implementation plans, audits, measurements, runbooks, and source-grounded…

    179 GitHub stars~497 tokensUpdated yesterday
    DevOps & CloudAuto-check passed
  • To Design

    smallnest/goal-workflow

    Generate a design document (design proposal) from a PRD, in the style of Go's official design proposals — Abstract / Background / Design / Rationale / Compatibility / Implementation, heavy on the…

    289 GitHub stars~2.2k tokensUpdated 25 days ago
    Product & Project ManagementAuto-check passed
  • Gh Doc Author

    caarlos0/dotfiles

    Author and revise clear GitHub internal documentation, including design docs, proposals, decision records, runbooks, status updates, and handoffs.

    220 GitHub stars~2.2k tokensUpdated yesterday
    DevOps & CloudAuto-check passed
  • Tdoc

    tornado-doc/tdoc

    Use tdoc by default to create, edit, publish, or share any document, even when tdoc is not mentioned.

    103 GitHub stars~18k tokensUpdated today
    Product & Project ManagementAuto-check: notes
  • Proposal Reviewer Chorus

    Chorus-AIDLC/Chorus

    Read-only adversarial Chorus proposal reviewer — audits PRD/task drafts against the originating Idea and posts a single structured VERDICT comment.

    1.2k GitHub stars~3.9k tokensUpdated yesterday
    Product & Project ManagementAuto-check passed
  • Statement Of Work

    mohitagw15856/pm-claude-skills

    Write a tight Statement of Work (SOW) that prevents scope creep and payment disputes.

    1.4k GitHub stars~980 tokensUpdated yesterday
    Sales & SupportAuto-check passed

More from inkeep/open-knowledge

All 18 skills in this repo
  • Open Knowledge Discovery

    inkeep/open-knowledge

    Read when the user asks what OpenKnowledge is, wants to install it on a repository, wants to open or preview a single markdown file that is not part of an OpenKnowledge project, wants to share an…

    4.4k GitHub starsUsed in 1 repo~2k tokens
    Auto-check passed
  • Open Knowledge Write Skill

    inkeep/open-knowledge

    A skill your agent uses when the user wants to create, author, write, or design a new Agent Skill (a SKILL.md) — for OpenKnowledge or for their editors — including requests like 'help me write a…

    4.4k GitHub stars~3.7k tokensUpdated today
    Auto-check passed
  • Write A Postmortem

    inkeep/open-knowledge

    Write a blameless incident postmortem under postmortems/ following the Google SRE shape — evidence-based timeline, trigger vs root cause vs symptom, contributing factors, what went well, and…

    4.4k GitHub stars~4.4k tokensUpdated today
    Auto-check passed
  • Codebase Wiki

    inkeep/open-knowledge

    How to work in a Codebase Wiki project (the codebase-wiki starter pack): an agent-authored, source-grounded wiki of the surrounding codebase.

    4.4k GitHub stars~1.8k tokensUpdated today
    Auto-check passed
  • Open Knowledge

    inkeep/open-knowledge

    Authoritative agent-runtime contract for working inside an OpenKnowledge project — a markdown-CRDT knowledge base exposed over MCP.

    4.4k GitHub stars~4.7k tokensUpdated today
    Auto-check passed
  • Consolidate Notes

    inkeep/open-knowledge

    Promote existing research into a stable-status canonical article under articles/ in a Knowledge Base project (the knowledge-base starter pack).

    4.4k GitHub stars~2.3k tokensUpdated today
    Auto-check passed

Questions about Frame A Proposal

What does Frame A Proposal do?

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. Frame A Proposal is an agent skill from inkeep/open-knowledge. 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.

When should I use Frame A Proposal?

Frame A Proposal fits situations like: tasks that involve Proposals and quotes; tasks that involve Runbooks and postmortems; tasks that involve Architecture decision records.

How do I install Frame A Proposal in Claude Code?

Run `npx skills add inkeep/open-knowledge --skill frame-a-proposal -a claude-code`. Or copy the skill folder (packages/server/assets/skills/packs/software-lifecycle/frame-a-proposal in inkeep/open-knowledge) into .claude/skills/frame-a-proposal in your project. Claude Code loads it when a task matches its description.

How do I install Frame A Proposal in Codex?

Run `npx skills add inkeep/open-knowledge --skill frame-a-proposal -a codex`. Or copy the skill folder (packages/server/assets/skills/packs/software-lifecycle/frame-a-proposal in inkeep/open-knowledge) into .agents/skills/frame-a-proposal in your project. Codex loads it when a task matches its description.

Can I use Frame A Proposal in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add inkeep/open-knowledge --skill frame-a-proposal -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/frame-a-proposal, .gemini/skills/frame-a-proposal, .github/skills/frame-a-proposal and .opencode/skills/frame-a-proposal in your project.

What does Frame A Proposal need to run?

SKILL.md names no scripts, command-line tools or credentials: Frame A Proposal is instructions for the agent only. Compatibility (from SKILL.md): Any agent host with the OpenKnowledge MCP server configured. Installed project-local by `ok seed --pack software-lifecycle`..

Does Frame A Proposal access the network?

SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.

Is Frame A Proposal safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Frame A Proposal use?

Frame A Proposal is published under the GPL-3.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Frame A Proposal use?

About 3.6k tokens (SKILL.md is roughly 14k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Frame A Proposal?

Skills that share tags, products or a category with Frame A Proposal: Architecture (nteract/nteract, 179 stars), To Design (smallnest/goal-workflow, 289 stars), Gh Doc Author (caarlos0/dotfiles, 220 stars) and Tdoc (tornado-doc/tdoc, 103 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Frame A Proposal?

inkeep (a GitHub organization) maintains it in inkeep/open-knowledge, which has 4,418 GitHub stars. The repository holds 18 skills in this directory. The repository was last updated on October 8, 2026.

Source: inkeep/open-knowledge on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.