From Strata
Tracks open questions and contested positions through open → contested → converging → settled stages. Promotes resolved propositions to decisions or refuted notes.
How this skill is triggered — by the user, by Claude, or both
Slash command
/strata:proposeThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
The "open question" scope. Closes the gap between **what we know
The "open question" scope. Closes the gap between what we know (domain), what we've chosen (decisions), what we did (pr-context), and what we did wrong (lessons), with a fourth: what we're still Figuring out.
| Situation | Skill |
|---|---|
| Open question, multiple positions, no choice yet | strata:propose |
| Chosen option with reasoning | strata:decide |
| Stable concept / vocabulary | strata:domain |
| Retrospective fact | strata:save --scope lessons |
| In-flight branch work | strata:save |
A proposition is explicitly time-bounded. It exists to be resolved. A proposition that never gets settled or refuted is itself a signal.
Before creating a proposition, call recall to check it isn't already
tracked. Two agents opening the same open question — or re-litigating one
that's already decided — is the failure this prevents:
recall(query="<the question, in your words>", scope="propositions", layer=1)
Then run a second pass with scope="decisions". Adjudicate:
cat <<'EOF' | "${CLAUDE_PLUGIN_ROOT}/bin/strata" propose \
--title "Should we move to Postgres for tenant data?"
# Should we move to Postgres for tenant data?
## What we're trying to figure out
<context — why this is open>
## Positions on the table
- Stay on SQLite: <reasons>
- Move to Postgres: <reasons>
## What evidence would settle this
- <what we'd need to know>
EOF
Default status is open. Pass --status contested if multiple positions
are actively defended, or --status converging if one is winning.
When someone weighs in on an open proposition, append a position — don't rewrite the note. Each entry is attributed, dated, and append-only:
cat <<'EOF' | "${CLAUDE_PLUGIN_ROOT}/bin/strata" propose \
--update propositions/2026-05-25-should-we-move-to-postgres.md \
--position --stance against
Postgres adds an ops burden we can't staff. Evidence: our last two
incidents were both connection-pool exhaustion under the managed PG.
Critique of the "Move to Postgres" position: it assumes a DBA we don't have.
EOF
--stance is for | against | alternative | refine. An against or
alternative stance bumps an open proposition to contested automatically.
Run a healthy debate (this matters — the research is blunt about it):
--settled-as / --refuted-as promotion is a human call."${CLAUDE_PLUGIN_ROOT}/bin/strata" propose \
--update propositions/2026-05-25-should-we-move-to-postgres.md \
--settled-as "decisions/2026-05-30-use-postgres-tenant-data.md"
Bidirectional intent: the ADR has its own reasoning; the proposition records the question that led to it. The forward link lets future Readers walk back from "we use Postgres" to "we considered the Alternatives in this proposition."
"${CLAUDE_PLUGIN_ROOT}/bin/strata" propose \
--update propositions/2026-05-25-foo.md \
--refuted-as "lessons/2026-06-02-why-we-didnt.md"
open ─→ contested ─→ converging ─→ settled-as-decision
└─→ refuted-as-lesson
Open/contested/converging propositions older than a day surface in the
/strata:dashboard "Awaiting your input" section, and (batched) on the
commit/Stop nudge. A long-open proposition is a smell — usually it means the
team is avoiding the decision.
Other memory plugins (smcady/Cairn, claude-mem) track decision lifecycle
via opaque graph state or compressed summaries. Propositions in strata
are plain markdown files with status: frontmatter, auditable,
diffable, syncable, readable in Obsidian. Same lifecycle tracking, in
Durable form.
strata:decide for chosen
options.strata:domain for "what is X here."strata:save.npx claudepluginhub gideondk/strata --plugin strataProvides UI/UX resources: 50+ styles, color palettes, font pairings, guidelines, charts for web/mobile across React, Next.js, Vue, Svelte, Tailwind, React Native, Flutter. Aids planning, building, reviewing interfaces.
Fetches up-to-date documentation from Context7 for libraries and frameworks like React, Next.js, Prisma. Use for setup questions, API references, and code examples.