Read Knowledge
read_knowledgeRetrieve knowledge bodies, outlines or selected sections by record ID, or one flow stage with its routes, gates and skill.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| ids | No | Alias for record_ids — same shape, same semantics; use either. record_ids wins when both are passed. | |
| stage | No | Flow stage read: the stage's id or name. Needs exactly one record id — a flow — and handle. Returns the stage as written, its declared routes with their conditions, the flow's Gates, Resumption and Records, and the stage's skill as run_pcd_skill returns it from handle. Not with projection, sections or cross_container. | |
| handle | No | Only with stage: your active deck's handle. The stage's skill is read from this deck exactly as run_pcd_skill reads it. | |
| contract | No | Help mode — return the complete contract with no operation performed. | |
| sections | No | Section-addressable read — fetch only the named sections instead of the whole body. Requires exactly ONE record_id. Same addressing as the patch surface: a bare level-2 slug returns that section's subtree (intro + level-3 children); a compound 'parent/child' slug returns just that level-3 sub-section. Unknown slugs are rejected with available_sections listed (no silent partial reads). Response items carry { slug, header, level, hash, markdown } + raw_chapter_hash — hashes flow straight into write_knowledge action='patch' expected_hash. Mutually exclusive with projection. Not with stage. | |
| projection | No | Response grain. 'full' (default) returns complete bodies — unchanged behaviour. 'summary' returns metadata + summary only, no raw_markdown — the cheap skim when you already hold ids. 'outline' returns metadata + section_tree (section slugs, headers, per-node hashes, word/paragraph counts — no bodies): the read twin of write_knowledge action='describe'. Lean-then-fetch: outline first, then sections for the parts you need. Not with stage. | |
| record_ids | No | Record UUIDs from find_knowledge without query or find_knowledge with query. Cross-container ids are rejected. Required unless `ids` is passed — `ids` is an accepted alias; record_ids wins when both are present. | |
| container_id | Yes | Container ID — required. Must match the container the ids belong to. | |
| cross_container | No | Accept ids from a cross-container browse/search by relaxing the same-container reject; records annotate their container_id. container_id stays required as the session anchor. Scope never leaves your account. Currently restricted to platform-maintainer accounts; others get a gate error. Not with stage. |