docs/research/README.md
This is the compiled research layer for Plate.
It exists to give future agents a stable, low-token, persistent reference surface that sits between raw evidence and day-to-day task execution.
This is not a human PKM system. It is not an Obsidian workflow. It is not a generic RAG bucket.
The raw evidence layer lives outside this repo in ../raw relative to the
Plate repo root. That private repo is assumed to be cloned locally when agents
need to verify or deepen compiled summaries.
Most agent work still behaves like raw RAG:
That works, but it wastes tokens and keeps rediscovering the same decisions, the same caveats, and the same contradictions.
The better model is a compiled research layer:
../raw../raw only when they need verification, conflict
resolution, or deeper evidenceThe valuable artifact is not one answer in one chat. It is the maintained markdown layer that makes the next agent faster and less likely to repeat old mistakes.
Private, source-heavy, and often copyright-sensitive material.
Expected location:
../rawExamples:
This layer is the evidence base. It is not the default answer surface.
Prefer the strongest stable acquisition method:
If an official git repo exists, use that as the canonical raw source instead of inventing a scrape.
Examples:
../raw/milkdown/repo../raw/obsidian../raw/typoraEvery raw source family should record enough metadata that future agents can trust what they are reading.
Record at least:
Do not refresh every raw source on every task. That is wasteful and noisy.
Refresh raw sources when:
When a raw source is refreshed:
../raw/log.mdThis directory, docs/research, is the agent-facing compiled layer.
It contains:
This layer should be:
Agents should treat this directory as the default read layer for repo knowledge.
The rule is simple:
docs/research/index.md../raw or broader repo searchKeep the layout boring and guessable.
Current top-level structure:
index.mdlog.mdschema.mdcommands/sources/decisions/concepts/systems/entities/open-questions/Do not split the research layer into parallel goal-specific silos like:
editor-behavior/architecture/plate-v2/slate-v2/That looks tidy for a week and then turns into duplicate pages and drifting taxonomy.
Use one research layer, many domains, one page-type system.
commands/ is the one intentional support surface that is not a knowledge-type
bucket. It exists for repeatable operational workflows, not for domain pages.
Do not build giant mixed essays.
Good:
Bad:
This research layer should be DRY at the page-type level.
Use:
sources/ for compiled source summariesentities/ for concrete named thingsconcepts/ for reusable abstractions and vocabularysystems/ for larger maps and architecture surfacesdecisions/ for explicit conclusionsopen-questions/ for unresolved ambiguityDo not duplicate the same thing across multiple goal folders.
Examples:
TyporaSlatedirectional-affinityinline-void-atomeditor-architecture-landscapefootnote-refs-are-inline-void-atomsThat page can serve many goals:
The page type stays stable even when the project focus changes.
This research layer is a normalized interpretation layer, not a vibe layer.
Durable claims should point to evidence in:
../rawDo not copy raw third-party docs into this repo.
This research layer should contain:
This research layer should not contain:
Rule of thumb:
This research layer is not where every exploratory note goes.
Only promote content here when it is:
Leave temporary exploration in docs/analysis or docs/plans.
This research layer will fail if agents only update it reactively from the narrow task in front of them.
Failure modes:
../raw
never gets ingestedSo the maintenance model cannot be "update whatever file the current task happened to mention." That is how holes accumulate.
commands/Operational command specs for repeatable agent workflows.
Use this for:
Do not use it to store domain knowledge itself.
schema.mdThe minimal metadata contract for page types in this layer.
Keep it small and stable.
index.mdThe entrypoint catalog.
This is what an agent should read first.
It should answer:
log.mdAppend-only history of meaningful wiki operations.
Use it for:
Do not turn it into a second index.
sources/Compiled summaries of raw evidence.
Each source summary should say:
This is where source-specific work belongs. If a page still mostly smells like
"what this source said", it probably belongs in sources/.
decisions/Canonical repo-relevant choices.
These pages should say:
If a page answers "what won?", it belongs in decisions/.
concepts/Shared vocabulary and abstractions.
These pages should say:
If a page answers "what does this idea mean across the repo?", it belongs in
concepts/.
systems/Architecture or authority maps.
These pages should say:
If a page answers "how does this whole area fit together?", it belongs in
systems/.
entities/Concrete named things.
Examples:
If a page is about one concrete named thing, it belongs in entities/.
open-questions/Known ambiguity that should not be silently “resolved” by agent confidence.
Use this to preserve real uncertainty.
If a page answers "we still do not know", it belongs in open-questions/.
This repo should use three different layers for three different jobs.
docs/analysisScratch and exploratory thinking.
Use it for:
This is where something like editor-architecture-candidates.md starts.
docs/researchCompiled reusable knowledge.
Use it for:
This is the research brain.
docs/editor-behaviorNormative law and ship gate.
Use it for:
This is the law layer, not the research archive.
docs/analysis = exploratorydocs/research = compiled reusable knowledgedocs/editor-behavior = normative specDo not make one directory do all three jobs.
When migrating existing docs into the research layer:
docs/research if it is durable compiled knowledgesystems/... pageentities/... pagesdecisions/... pagesconcepts/...entities/...docs/analysis/* wholesale into docs/researchdocs/editor-behavior/* into docs/research just to have a second copySomething like editor-architecture-candidates.md should not be copied as one giant research page.
Its durable parts should decompose into pages like:
systems/editor-architecture-landscape.mdentities/prosemirror.mdentities/lexical.mdentities/slate.mdentities/tiptap.mddecisions/... pages for explicit Plate choicesWhen new evidence arrives:
index.mdlog.mdIngest alone is not enough. It only handles known sources that were already noticed.
When answering a task:
index.mdPeriodically check for:
Lint should also detect coverage gaps, not just stale wording.
This research layer should eventually be maintained by a dedicated autonomous skill or workflow, not only by incidental task work.
Its job is to proactively improve both layers:
../rawdocs/researchIf the user asks a question about a goal area and the relevant evidence was never ingested or compiled, the agent may miss the answer entirely.
That means the system must support:
without waiting for a human to notice every missing page manually.
The right future skill is something like:
research-maintainerresearch-gap-fillerIts mission is not just to summarize. Its mission is to keep the reference system complete enough that future agents do not fall through obvious holes.
The skill should accept a goal, area, or question such as:
editor behavior referencesplate v2 architectureslate v2 risksplugin modelGiven a goal, the skill should:
docs/research for existing compiled coverage../raw for relevant raw evidencelog.mdopen-questions/... pages where the gap cannot be filled yetUse these gap classes explicitly:
../rawdocs/research/sources/... is missingThe skill should be aggressive about structure and conservative about claims.
Safe actions:
index.md entriesUnsafe actions that need stronger evidence:
Each run should leave:
index.mdlog.mdAnd, when useful, a concise gap report saying:
This maintenance skill should be used:
If the current task depends on a domain that feels bigger than the currently visible pages, do not trust the visible pages alone.
Run a gap-detection pass first.
The default retrieval order is:
docs/research../rawIf an agent searches the whole repo before checking docs/research, this layer is
failing its job.
The commands in commands/ are the executable mental model for applying this
research layer in practice.
Start with:
That is the heavyweight command for improving the research layer from a goal or domain instead of answering only from the currently visible slice.
Use schema.md to keep page metadata consistent while the layer is still small.
Start with one narrow evidence corpus from ../raw, prove the ingest and
retrieval workflow, then expand to additional sources only after the first path
is stable.
../raw while compiling conclusions unless the task is explicitly
about curating raw evidence