Proposals
Finished but unadopted designs for the Commonplace system. A proposal describes a design object — the problem, the option space, the forces, the free choices — without claiming the system works this way or deciding that it should.
Contract
- Type and trait. Plain
notetype carrying thedesign-proposaltrait. There is no template or schema yet; the trait routes review — design quality (problem stated, forces stated, free choices marked, adoption criteria named), not contestability. - No decision. A proposal may hold multiple options and unresolved forces. When it converges on one choice that ships, the choice becomes an ADR (
../adr/) and the proposal is superseded by it. - Requirements live in theory. Transferable requirements are claims — they belong in
kb/notes/and are cited from here via arationaleedge. The proposal inlines only system-specific constraints: stats, precedents, integration boundaries. - Dated current-state anchor. State the system facts the proposal rests on under a "Current state (as of YYYY-MM-DD)" heading. Going stale against later ADRs is an expected lifecycle event for a proposal, not a defect — refresh or retire.
- Unmistakably proposed. The frontmatter description leads with "Proposal:". Readers of
kb/reference/are usually trying to act on the shipped system; nothing in this directory describes shipped behavior.
Lifecycle
Workshop (kb/work/, active exploration, closes) → proposal here (finished, undecided, waits) → ADR (decided and implemented) — or retirement, when a later decision forecloses it.
Partial adoption moves content out. When part of a proposal ships, remove it from the proposal: the shipped behavior is described in reference docs and recorded in an ADR, and the proposal keeps only what remains undecided (noting the adoption in its current-state anchor). A proposal that silently retains shipped content has become a false description.
Decision record: ADR 028.
Complete file listing (generated at build time)