save_knowledge
Save a Markdown knowledge file. Use for guidelines, SOPs, strategies, meeting notes, contact lists, trackers, or any reference material that agents read and update over time. Do not use for a Play or Playbook — those are create_playbook / list_playbooks / run_playbook (growth_tactics, Plays rail). SOP/reference copies may still live here. Pass scope="personal" to save private notes visible only to the current user (e.g., notes tied to their commitments).
Routing: Play / Playbook (reusable runnable company loop) → create_playbook, not this tool. SOP / guidelines / notes → use this
[write-tier — first use may require a manager's approval; a from-now-on approval makes future calls seamless, a just-once approval re-asks next time.]
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| slug | No | Optional custom slug for the filename. If omitted, auto-generated from the title. | |
| scope | No | Where to save: "company" (default) = shared with the whole company; "personal" = private to the current user only. Use "personal" for notes tied to a specific person (e.g., context for the user's commitments, 1:1 notes, personal preferences, gift ideas, family info). Use "company" for shared SOPs, brand guides, strategy docs. | |
| title | Yes | Descriptive title for this knowledge file (e.g., "Acme Mascot Guidelines", "Content Strategy Q1") | |
| folder | No | Optional folder to save the file in (e.g., "acme-deal", "partners/acme"). Folders are auto-created. Use for organizing related files, especially for deal rooms or shared contexts. | |
| content | Yes | The knowledge content in Markdown format. FORMATTING RULES: Use ## headers for sections (NOT **bold**). Put a blank line between every paragraph and before/after lists. Use - for list items. Structure: ## Section > ### Sub-section > paragraph > - list items. Without blank lines, content renders as a wall of text. | |
| companyId | No | FreedomOS company id to act within (you must be a member). Required for company-scoped tools. | |
| override_duplicate_reason | No | ONLY after the canon gate refused this save as a duplicate: a specific reason why this file is NOT a duplicate of the canonical file the refusal named. Overrides are logged and visible to the operator — never use this to bypass the gate casually. |