propose_compile_from_raw
Compile raw documents like PDFs, MD, DOCX into wiki source page proposals with wikilinks and metadata, creating structured knowledge artifacts for retrieval.
Instructions
Compile a supported source file (.adoc, .asciidoc, .conf, .csv, .docx, .eml, .epub, .htm, .html, .ini, .json, .log, .markdown, .md, .mdx, .odp, .ods, .odt, .org, .ott, .pdf, .pptx, .rst, .rtf, .srt, .tex, .text, .toml, .tsv, .txt, .vtt, .xlsm, .xlsx, .xml, .yaml, .yml) into a wiki source page proposal staged at proposed/.
IMPORTANT — produce a knowledge artifact, not a topic recap. The page you stage is the substrate the user (and future Claude sessions) will retrieve from. Thin pages = thin retrieval.
Before calling, call get_vault_context to know which entity slugs and active project slugs to wikilink, and which semantic tags are already in use.
For a meeting/call/transcript: pick content-specific H2 headings that reflect what was actually discussed (e.g. 'Practice Overview', 'Service Philosophy', 'Succession Status' — NOT 'Summary' / 'Bullets' / 'Takeaways'). Quote verbatim where the exact phrasing matters. Wikilink every entity using slugs from get_vault_context. Include a relevanceCallout naming the active projects/decisions this source bears on. Surface 2-4 concrete applications.
For a synthesis page (pageType='synthesis'): pass the source URLs as sources, structure body sections around the argument, include a relevanceCallout.
For a concept page (pageType='concept'): structure as snapshot + context + source log.
Legacy callers can still pass summary + summaryBullets + takeaways and skip sections — Margins will fall back to the simple template. But the rich path is what produces a knowledge artifact.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| tags | No | Semantic tags (topical, people slugs, firm slugs). DO NOT include region/X or vibrance/X — those are auto-computed by scripts/wiki_regions.py and will be overwritten. | |
| force | No | Replace an existing source page for this raw file. Without bucket/destination_path override, the existing source page is replaced IN PLACE (same path). With override, the source moves to the new location. Default false. | |
| quiet | No | Omit the full staged markdown from the response. The page still lands at proposed/<destinationPath> — set quiet=true when compiling many files in one turn so the response payload stays small. Default false. | |
| split | No | Split-mode trigger. When set, the raw file is segmented at the chosen boundary and Margins stages one source page per segment plus a hub page that wikilinks them. 'heading-h1' / 'heading-h2' segment by Markdown-style heading level (works for MD/HTML and any extractor that emits H markers like XLSX/PPTX). 'sheet' is alias for h2 splits, ergonomic for spreadsheets. 'auto' picks h2 for spreadsheets and h1 elsewhere. Summary is not required in split mode. | |
| title | No | Title for the page. Defaults to titlecased filename. | |
| bucket | No | Wiki bucket folder. 'sources', 'projects', 'ideas', 'meetings', 'career'. Pick by topic, not page-type. | |
| rawPath | Yes | Vault-relative path of the source file. Examples: 'raw/foo.pdf', 'meetings/march-7.md'. Pass list_unprocessed paths directly. Bare filename (e.g. 'foo.pdf') resolves to raw/foo.pdf unless an actual root-level foo.pdf exists and raw/foo.pdf does not. | |
| related | No | Related wiki pages. Either bare slug strings or {slug, note} objects. Renders as `## Related` with `[[wikilinks]]`. | |
| sources | No | For synthesis pages: list of evidence URLs. Renders as a sources frontmatter list. | |
| summary | No | Rich multi-clause summary (NOT 1-3 sentences). REQUIRED unless split mode is set — in split mode each segment is auto-titled from its heading and no summary is needed. For single-source compile this becomes the frontmatter summary used by retrieval. | |
| keyLinks | No | Wikilink slugs for the frontmatter key_links field, e.g. ['ellis-rutili', 'centric-wm', 'briefly']. Use slugs from get_vault_context. | |
| pageType | No | Page shape. 'source' = faithful summary of one raw file (default). 'concept' = durable theme/idea. 'synthesis' = connection-point across multiple sources. | |
| sections | No | Primary body — array of {heading, body} sections. Pick content-specific H2 headings that fit the source. Body is markdown; may include [[wikilinks]], tables, blockquotes, bold key terms. Quote verbatim where phrasing matters. If you provide sections, the legacy summary/bullets/takeaways template is skipped. | |
| eventDate | No | Date the source event occurred (YYYY-MM-DD). Defaults to today. | |
| hubBucket | No | Bucket folder for the hub + segment pages when split mode is set. Defaults to bucket if provided, else 'sources'. | |
| sourceUrl | No | External URL if the source has one (YouTube, blog post, public PDF). Renders as a markdown link in the header block. | |
| takeaways | No | LEGACY — for the simple template only. If you provide `sections`, this is unused. Either strings or {point, evidence} objects. | |
| headerNote | No | Short paragraph under the H1 giving venue/runtime/context (e.g. 'Stanford GSB fireside chat, ~45 min, published 2026-05-04'). | |
| maxSegments | No | Cap on segments staged in a single split call. Default 50. Extra headings beyond the cap are noted in the hub but not staged. | |
| applications | No | Concrete questions or applications. Renders as `## Personal applications worth tracking`. 2-4 items typical. | |
| participants | No | For meeting/call pages: participant names. Renders as a participants frontmatter list. | |
| sourceCaveat | No | Source-quality warning — renders as a `> [!info]+ Source caveat` callout. Use when the source has limitations (e.g. 'Granola summary, no transcript available'). | |
| summaryBullets | No | LEGACY — for the simple template only. If you provide `sections`, this is unused. | |
| destination_path | No | Override destination path, e.g. 'wiki/career/source-2026-05-13-something.md'. | |
| propagationNotes | No | Entity/concept creation decisions made or refused (per operator-manual rule #4). Renders as `## Propagation Notes`. | |
| relevanceCallout | No | Connor-relevance synthesis. Renders as `> [!claude-note]+ Connor-relevance — Claude synthesis`. Body is markdown. Links is an array of wikilink slugs to active projects/decisions this source bears on. |