Research block
A captured research finding — dated, evidence-linked, and rendered: the skill ships it at references/research_<id>.md (with an index_research.md menu) so external consumers — e.g. a planning pipeline's researcher — can glob and reuse it instead of re-investigating. Audience defaults to :ai; opt a finding into the book with :both. On an update sweep flip status to :stale (needs a re-check) or :superseded (+ superseded_by).
| Property | Type | Required | Description |
|---|---|---|---|
| id | identifier | yes | |
| topic | utf8 | yes | |
| question | utf8 | no | |
| summary | utf8 | yes | |
| status | ResearchStatus | no | |
| checked | utf8 | yes | |
| applies_to | utf8 | no | |
| source_ids | list<identifier> | no | |
| locators | list<utf8> | no | |
| superseded_by | identifier | no | |
| related | list<identifier> | no | |
| audience | Audience | no | |
| tags | list<utf8> | no |
Child blocks
| Slot | Accepts | Multiple | Description |
|---|---|---|---|
| body | body | no |
status is a ResearchStatus: :current, :stale or :superseded.
wcl
research submodule_pitfalls {
topic = "Submodule update pitfalls"
question = "Why do submodules detach HEAD after `git submodule update`?"
summary = "`git submodule update` checks out the recorded commit directly, so the submodule is left on a detached HEAD by design."
checked = "2026-06-23"
applies_to = "git 2.45"
source_ids = [upstream_docs]
locators = ["https://git-scm.com/book/en/v2/Git-Tools-Submodules"]
body { p "The recorded gitlink names a commit, not a branch — use `update --remote --merge` (or `branch = <name>` in .gitmodules) to track a branch instead." }
}