freedom-mcp
Server Details
Business-ops MCP for FreedomOS — finance, OKRs, customer scoring, AI agents, content. 250+ tools.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP
- URL
Glama MCP Gateway
Connect through Glama MCP Gateway for full control over tool access and complete visibility into every call.
Full call logging
Every tool call is logged with complete inputs and outputs, so you can debug issues and audit what your agents are doing.
Tool access control
Enable or disable individual tools per connector, so you decide what your agents can and cannot do.
Managed credentials
Glama handles OAuth flows, token storage, and automatic rotation, so credentials never expire on your clients.
Usage analytics
See which tools your agents call, how often, and when, so you can understand usage patterns and catch anomalies.
Tool Definition Quality
Average 4.1/5 across 198 of 233 tools scored. Lowest: 2.8/5.
With 233 tools, there is potential for overlap despite detailed descriptions. Tools like approve_pipeline_item and publish_pipeline_item are closely related, and many CRUD tools for different entities could cause confusion. However, descriptions are thorough and specify exact use cases, mitigating some ambiguity.
The majority of tools follow a consistent verb_noun pattern (e.g., create_feature, update_company, delete_idea). Some tools like 'deliberate' or 'challenge_as_customer' deviate, but overall the naming is predictable and readable.
233 tools is far too many for a single MCP server. This overwhelms agents and reduces coherence. A server should be more focused; this many tools indicates scope creep and poor organization.
The tool set covers an extensive range of operations for Freedom OS, including company management, CRM, content pipelines, ads, financials, and more. While some niche areas may have gaps, the overall coverage is broad and comprehensive for the intended platform.
Available Tools
247 toolsack_attention_directiveAInspect
Mark a pending attention directive as acked after the host session has taken the instruction. Use when YOU are Grok/Claude/a host builder and you just executed (or deliberately skipped) a directive you polled — for the same operator who owns the queue. Idempotent on already-acked → not found.
[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.]
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Directive UUID from list_attention_directives or create response. | |
| companyId | No | FreedomOS company id to act within (you must be a member). Required for company-scoped tools. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It discloses idempotency (already-acked returns 'not found'), write-tier with approval requirements, and that ack can happen after execution or skipping. Provides good behavioral context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded main purpose, followed by usage condition and tier note in brackets. Slightly verbose but well-structured with no redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple ack tool with 2 params and no output schema, description covers purpose, usage, idempotency, and tier approval. Missing explicit success response but hints at behavior via idempotency note.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, baseline 3. Description adds origin for 'id' (from list_attention_directives or create response) and for 'companyId' clarifies membership and scope requirement, improving beyond schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the action: 'Mark a pending attention directive as acked' after executing a directive. It specifies the actor (Grok/Claude/host builder) and distinguishes from siblings like cancel_attention_directive by focusing on acknowledging an executed directive.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states when to use: after executing or deliberately skipping a directive you polled, for the same operator. However, it lacks explicit comparison to alternatives like cancel_attention_directive, though the use case is well-defined.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
add_agent_activityAInspect
Add ONE activity to an agent's activity plan without regenerating the whole plan. Use to give an agent a new recurring or one-off deliverable. (To rebuild the entire plan, use recalibrate_agent_jd with regenerate_activities=true instead.)
[sensitive-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.]
| Name | Required | Description | Default |
|---|---|---|---|
| activity | Yes | The activity to add. | |
| agent_id | No | UUID of the agent. Optional if agent_name is provided. | |
| companyId | Yes | FreedomOS company id to act within (you must be a member). Required for company-scoped tools. | |
| agent_name | No | Name of the agent (e.g. "Aiko"). Provide this or agent_id. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It discloses that the addition does not regenerate the whole plan and mentions the approval sensitivity (first use may require manager approval, etc.). However, it does not describe what happens to existing activities, whether the operation is idempotent, or any potential side effects. Still, the core behavioral traits are adequately covered.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is exceptionally concise, consisting of two sentences plus a parenthetical note about approvals. It front-loads the primary purpose and usage guidance without any wasted words. Every sentence adds value, making it efficient for an AI agent to parse.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (nested object with many fields, no output schema, no annotations), the description provides the essential purpose and usage guidance. It does not explain the return value or confirmation behavior, nor does it mention prerequisites like agent existence. However, the sibling tool differentiation and approval caveat partially compensate. The input schema is comprehensive, so the description is reasonably complete for an agent to decide and invoke correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so baseline is 3. The description does not add any extra meaning to the parameters beyond what the schema already provides. The schema itself is detailed with descriptions for each subfield of the activity object. The description's only contribution is implying that 'activity' is a single activity, which is already clear from the tool name and context.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Add' and the resource 'activity to an agent's activity plan', specifying it adds exactly one activity without regenerating the whole plan. It distinguishes itself from the sibling tool 'recalibrate_agent_jd' by explaining the alternative use case (rebuilding the entire plan). This gives a specific, unambiguous purpose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly tells when to use this tool ('give an agent a new recurring or one-off deliverable') and when to use the alternative ('To rebuild the entire plan, use recalibrate_agent_jd...'). It also includes a sensitive-tier note about manager approval requirements, providing clear context for usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
add_commitmentAInspect
Track a personal commitment, deadline, birthday, appointment, or obligation. ALWAYS use this (not save_knowledge) when the user mentions: birthdays, due dates, deadlines, tax filings, events to plan, gifts to send, things they need to do by a certain date, or anything they want reminded about. Works across all life domains (work, personal, family, home). For supporting context (e.g. gift ideas, who the person is), pair this with save_knowledge scope="personal".
[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.]
| Name | Required | Description | Default |
|---|---|---|---|
| title | Yes | What needs to happen | |
| domain | No | Life domain: personal, family, home, w2, or company:<name> | |
| due_date | No | Due date in YYYY-MM-DD format (optional) | |
| companyId | No | FreedomOS company id to act within (you must be a member). Required for company-scoped tools. | |
| consequence | No | What happens if this slips? (optional) | |
| description | No | Additional details or notes (optional) |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It includes the write-tier approval note, which is a behavioral trait, but lacks details on side effects, idempotency, or what happens after tracking. The description focuses more on usage than on behavioral implications.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise with four sentences that are front-loaded with purpose and usage. The write-tier note is separate but still relevant. Every sentence adds value, though the note could be more integrated.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with 6 parameters, no output schema, and no annotations, the description covers purpose and usage but lacks information about return values, error cases, or prerequisites. It provides adequate context for decision-making but is not fully comprehensive.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all parameters. The description adds context about life domains and pairing with save_knowledge, but does not significantly enhance the understanding of individual parameters beyond what the schema provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Track' and resource 'commitment, deadline, birthday, appointment, or obligation'. It explicitly distinguishes from save_knowledge and provides concrete examples of when to use.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly states 'ALWAYS use this (not save_knowledge) when the user mentions...' and gives a comprehensive list of triggers. It also advises pairing with save_knowledge for supporting context, providing clear when-to-use and when-not-to-use guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
add_customer_evidenceAInspect
Store one piece of REAL Customer Evidence for this company (paying-customer words/behavior, telemetry, review, operator-relayed quote, prospect signal, or agent-as-user). Evidence outranks generated ICP simulation. Use when the operator pastes a real customer quote, a call note, a review, or a provenanced usage signal — NOT for inventing personas (use Customer Hunter / create_icp for hypotheses).
[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.]
| Name | Required | Description | Default |
|---|---|---|---|
| claim | Yes | Short observation / takeaway (required, ≥8 chars). | |
| class | Yes | Evidence class (determines rank weight). | |
| quote | No | Optional verbatim quote. | |
| source | Yes | Provenance: "operator paste", "support ticket #…", "Amazon review", … | |
| companyId | Yes | FreedomOS company id to act within (you must be a member). Required for company-scoped tools. | |
| observed_at | No | Optional ISO timestamp when observed (default: now). | |
| may_open_loop | No | If true, may open a work loop from this signal. Default false. | |
| subject_label | No | Optional human label (e.g. Kendall) — not a global identity system. | |
| may_refine_icp | No | If true, may seed an ICP-delta offer later (never silent rewrite). Default false. | |
| may_steer_copy | No | If true, may inform copy/messaging. Default true. | |
| may_not_auto_act | No | If true (default), evidence must not auto-act without human/graduated path. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It discloses that evidence outranks generated ICP simulation, and includes a detailed approval note explaining tiers (first use may require approval, from-now-on vs just-once approval). While it doesn't discuss idempotency or error handling, the information about write-tier and approval behavior adds significant value beyond the schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and well-structured. The first sentence states the core purpose. The second sentence clarifies priority over ICP simulation. The third sentence provides usage guidelines. The bracketed approval note is separate and informative. No unnecessary words or repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (11 parameters, no output schema), the description covers the essential aspects: what the tool does, when to use it, and important behavioral notes (approval, priority over ICP). It lacks explicit mention of return values (e.g., whether it returns the stored evidence ID) but that is common for write tools. The description adequately prepares the agent for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so baseline is 3. The description adds context for the 'class' parameter (determines rank weight) and provides examples for 'source' (e.g., 'support ticket #…'). The approval note explains the 'may_open_loop' and 'may_refine_icp' parameters implicitly. While the schema already describes each parameter, the description reinforces their meanings and adds behavioral nuances, elevating it above baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Store one piece of REAL Customer Evidence for this company'. It enumerates specific types of evidence (paying-customer words/behavior, telemetry, review, etc.) and distinguishes it from ICP simulation, which is handled by a sibling tool (create_icp). This provides a specific verb-resource combination and differentiates from similar tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly specifies when to use the tool: 'Use when the operator pastes a real customer quote, a call note, a review, or a provenanced usage signal — NOT for inventing personas (use Customer Hunter / create_icp for hypotheses).' This provides clear context and explicitly excludes alternative scenarios, offering direct guidance on tool selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
add_leadAInspect
Add a new lead to the Leads CRM (crm_leads) — the table the Leads tab, triage, and outreach all use. Idempotent on (company, email) when an email is given. Provide at least an email OR a name. The lead appears on the Leads tab and is auto-triaged.
Routing: CRM/sales → add a lead or prospect → 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.]
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | Full name. Provide email or name. | |
| tags | No | Tags for filtering (optional) | |
| No | Lead email (unique within company). Provide email or name. | ||
| notes | No | Initial notes about the lead (optional) | |
| phone | No | Phone number (optional) | |
| title | No | Job title (optional) | |
| source | No | Where the lead came from (e.g. "linkedin", "referral", "website"). Defaults to "manual". | |
| companyId | Yes | FreedomOS company id to act within (you must be a member). Required for company-scoped tools. | |
| company_name | No | Company they work for (optional) |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Without annotations, the description carries the full burden. It discloses idempotency, auto-triaging, and a write-tier approval process. It could be more specific about what 'auto-triaged' entails and if any other side effects occur, but generally it is transparent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two short paragraphs with no unnecessary words. The first sentence immediately states the core purpose, and additional context is efficiently added. Every sentence adds value, and structure is well front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema and moderate complexity (9 params, 1 required), the description covers key aspects: what the tool does, idempotency, required fields, and approval. It does not explain return value (e.g., lead ID), but overall it is complete enough for an agent to use correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. The description adds value beyond the schema by stating 'Provide at least an email OR a name' (clarifying optionality) and noting idempotency on (company, email). This adds meaningful context for parameter combination.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool adds a lead to the Leads CRM (crm_leads), specifying the table and that it feeds the Leads tab, triage, and outreach. The verb 'add' and resource 'lead' are specific, and the context distinguishes it from sibling tools like update_lead.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides good usage guidance: it mentions idempotency on (company, email), requires at least email or name, and includes a routing hint ('CRM/sales → add a lead or prospect → use this'). However, it does not explicitly mention when not to use it or contrast with alternatives like update_lead.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
analyze_team_needsAInspect
Gather comprehensive team and company context for talent strategy analysis. Returns current team composition, growth signals, capability gaps, and integration status. Use when the user asks "what roles am I missing?", "who should I hire next?", "analyze my team", or "what gaps does my team have?". YOU are the strategist — this tool gathers the data, YOU provide the PhD-level talent recommendations.
| Name | Required | Description | Default |
|---|---|---|---|
| companyId | Yes | FreedomOS company id to act within (you must be a member). Required for company-scoped tools. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It describes the tool as a data-gathering operation (reads team context) and lists outputs, implying a read-only, non-destructive action. However, it does not disclose authorization details beyond being a member, rate limits, or response format specifics.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences plus a short meta-instruction, all front-loaded with purpose and usage. No wasted words; the meta-instruction adds value for the agent's role. Slightly above average due to efficiency.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given one required parameter, 100% schema coverage, and no output schema, the description adequately explains what the tool returns (composition, gaps, integration status) and provides usage examples. It is complete enough for an agent to understand and invoke the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The single parameter 'companyId' has full schema coverage (100%) with a clear description. The tool description adds no additional meaning beyond what the schema already provides, so baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states it gathers team/company context for talent strategy analysis and lists specific returns (team composition, growth signals, capability gaps, integration status). It specifies a verb (gather) and resource (team needs), but does not explicitly differentiate from sibling tools like get_team_roster or get_team_members.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly lists example user queries that trigger this tool (e.g., 'what roles am I missing?') and clarifies that the tool gathers data while the agent provides recommendations. Lacks explicit when-not-to-use or alternative tool mentions, but the context is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
append_cos_lessonAInspect
Append one settleable CoS lesson for THIS operator only (self-improve construction). Use after a clear win/miss on a call: what worked, what failed, which principle. Short notes only — not transcripts. Re-injected at next voice mint (open + settled_keep). Faith content stays operator-authored — never invent doctrine.
[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.]
| Name | Required | Description | Default |
|---|---|---|---|
| lesson | Yes | One short lesson (≤400 chars), e.g. "When three Grok tabs share freedom-ai, match by goal words not project name." | |
| source | No | Optional provenance (default voice_cos on MCP / chat on chat door). | |
| companyId | No | FreedomOS company id to act within (you must be a member). Required for company-scoped tools. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden and does so well. It discloses the lesson is 're-injected at next voice mint', that content stays 'operator-authored' and doctrine is never invented, and details the write-tier approval workflow. This goes well beyond a basic write operation and helps the agent understand consequences.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two paragraphs, front-loaded with the core purpose, followed by usage, constraints, behavioral effects, and approval notes. Every sentence adds value and there is no wasted wording, though it is slightly longer than strictly necessary due to the approval paragraph. Overall well-structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a write tool with no output schema and no annotations, the description is remarkably complete. It provides the action, when to use it, content limits, what happens to the data, and approval requirements. All necessary context for correct invocation is present, making it self-sufficient.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with detailed parameter descriptions, so the baseline is 3. The description adds some context about lesson brevity and usage, but does not need to repeat what the schema already documents. It slightly reinforces the 'lesson' parameter semantics by saying 'what worked, what failed, which principle', but adds no new parameter-level details.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Append one settleable CoS lesson for THIS operator only' — a specific verb, resource, and scope, which immediately distinguishes it from siblings like append_cos_preference and list_cos_lessons. It is a concise, action-oriented purpose statement.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly says 'Use after a clear win/miss on a call' and specifies what to include ('what worked, what failed, which principle'), along with a constraint ('Short notes only — not transcripts'). It does not name alternatives or when-not scenarios, but the context is clear enough for an agent to decide appropriately.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
append_cos_preferenceAInspect
Append one durable speech/taste preference for THIS operator only (re-injected on their next voice session mint). Use when they say something was hard to follow, how cards should sound, or "remember I prefer…". For this user_id only — does not edit the shared FreedomOS CoS template. Apply the note in the current call when you can.
[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.]
| Name | Required | Description | Default |
|---|---|---|---|
| note | Yes | One short preference (≤500 chars), e.g. "When describing cards, paraphrase titles — do not read dashes or ids aloud." | |
| companyId | No | FreedomOS company id to act within (you must be a member). Required for company-scoped tools. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description details durability, re-injection on next session, scope (this operator only), and first-use approval. However, it does not mention idempotency, rate limits, or error handling. Still, it provides substantial behavioral context beyond basic read/write classification.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two paragraphs with clear front-loading of purpose and usage. The second paragraph about approvals is helpful but could be integrated more concisely. Overall, no wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema exists. The description does not specify the return value or success/failure indicators. While the tool is simple (append), the lack of output documentation leaves the agent guessing about the result of the operation. Adequate but not complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline 3. The description adds meaning to the 'note' parameter with usage context ('Apply the note in the current call') and the length limit, but does not elaborate on 'companyId' beyond what the schema provides. Adds marginal value.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states the tool appends a durable preference for this operator only, with specific use-case examples (hard to follow, cards sound, 'remember I prefer'). Distinguishes from the shared template by noting it does not edit the shared FreedomOS CoS template.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly lists when to use ('when they say something was hard to follow...') and what not to do (does not edit shared template). Also provides approval tier information, guiding the agent on when permission may be needed.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
append_to_sheetBInspect
Append rows to a Google Spreadsheet.
[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.]
| Name | Required | Description | Default |
|---|---|---|---|
| values | Yes | Array of rows to append | |
| companyId | Yes | FreedomOS company id to act within (you must be a member). Required for company-scoped tools. | |
| spreadsheet_id | Yes | Spreadsheet ID |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries burden. It discloses the write-tier operation and approval requirements, which is helpful. However, it misses other behavioral aspects like whether it returns appended rows or requires an existing spreadsheet.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with the main action front-loaded. It is concise and efficient, though no structural formatting is used.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simplicity of the tool and high parameter coverage, the description is mostly adequate. However, it lacks return value information and does not differentiate from update_sheet, which might cause confusion.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the parameters are fully documented in the schema. The description adds no further semantics beyond what is already in the schema, so baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool appends rows to a Google Spreadsheet, which is a specific verb+resource. It distinguishes from siblings like read_sheet and update_sheet by using 'append'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives like update_sheet or read_sheet. It only mentions a write-tier approval, but no usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
approve_pipeline_itemAInspect
Approve a content item for publishing — or REJECT it with approved:false. Use when user says "approve it", "looks good", "publish that" (approve), or "reject it", "drop that duplicate", "don't publish" (approved:false).
[sensitive-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.]
| Name | Required | Description | Default |
|---|---|---|---|
| item_id | Yes | ID of the pipeline output to approve (get from get_pending_approvals) | |
| approved | No | Default true. Pass false to REJECT: the item is marked rejected and leaves the approval queue — it never publishes. An explicit false can never approve. | |
| companyId | Yes | FreedomOS company id to act within (you must be a member). Required for company-scoped tools. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description fully shoulders behavioral disclosure. It explains rejection behavior (leaves queue, never publishes), sensitive-tier with manager approval, and the distinction between from-now-on and just-once approval scopes.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two paragraphs: the first is concise and front-loaded with the core action; the second adds necessary behavioral context. No redundant sentences, though slightly more context than strictly needed.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers the tool's functionality, usage triggers, and behavioral nuances. Lacks explicit mention of output or success/error responses, but parameters are well-defined in the schema. Overall sufficient for a focused action.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the schema already describes the three parameters adequately. The description adds minor context (e.g., approval scope note) but does not significantly enhance parameter understanding beyond schema documentation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool approves or rejects a content item for publishing, with explicit verb–resource pairs and example user phrases. It distinguishes between the two modes (approved:true/false).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides explicit when-to-use scenarios with example user utterances for both approve and reject. Lacks explicit mention of when not to use or alternative tools (e.g., publish_pipeline_item), but the examples are clear and actionable.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
archive_pipelineAInspect
Archive (or restore) a content pipeline — flips is_active off/on, mirroring the Content Pipeline UI's soft-delete/restore. No data is deleted or cascaded. Use when the user says "archive this pipeline", "pause my newsletter automation", "turn off this pipeline", or "bring back my archived pipeline" (pass restore:true).
[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.]
| Name | Required | Description | Default |
|---|---|---|---|
| reason | No | Optional. Why this pipeline is being archived or restored. | |
| restore | No | Set true to REACTIVATE an archived pipeline instead of archiving it. Default false (archive). | |
| companyId | Yes | FreedomOS company id to act within (you must be a member). Required for company-scoped tools. | |
| pipeline_id | Yes | ID of the pipeline to archive/restore (get from list_pipelines) |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden. It clearly states 'flips is_active off/on' and 'No data is deleted or cascaded.' It also mentions the approval requirement. Missing info on return value or error behavior, but core effects are transparent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two short paragraphs with no redundant text. It front-loads the main action, provides usage examples, and includes a necessary approval note. Every sentence is justified.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (toggle, no output schema), the description covers the essential behavior and usage. However, it does not explain expected return or error states, which could be helpful for an agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and descriptions are clear. The description adds value by specifying that pipeline_id comes from list_pipelines and clarifying restore parameter semantics. This goes beyond the schema alone.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool archives or restores a pipeline by toggling is_active. It distinguishes from other tools by explicitly likening it to the UI's soft-delete/restore. Example user phrases further clarify the purpose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit usage scenarios (archive, pause, restore) and notes the restore:true parameter. The write-tier approval note adds context. However, it does not discuss fallback or error cases, or explicitly contrast with sibling tools like update_pipeline.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
attach_product_request_prAInspect
Attach an existing freedom-ai GitHub PR URL to a product request and resolve it by construction (card → approved, product_status=fixed, history comment, filer resolution notify). Use when you (or a coding agent) opened a real PR for the fix — no separate human close step.
[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.]
| Name | Required | Description | Default |
|---|---|---|---|
| pr_url | Yes | https://github.com/linnetlegacies/freedom-ai/pull/NNNN | |
| companyId | No | FreedomOS company id to act within (you must be a member). Required for company-scoped tools. | |
| request_id | Yes | request_id UUID from submit_product_request |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. It clearly discloses that the tool mutates state: changes card status to approved, product_status to fixed, adds history comment, and notifies filer. Also mentions write-tier and approval requirements, providing full transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Very concise: two short paragraphs. First gives purpose and usage, second adds approval context. No fluff, every sentence is valuable.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite no output schema, the description covers all necessary context: what the tool does, when to use it, what side effects it has, and authorization requirements (write-tier, approval). No gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the description adds no additional meaning beyond what the schema provides. Baseline 3 is appropriate since no extra parameter details are needed.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description provides a specific verb ('attach'), resource ('GitHub PR URL'), and outcome ('resolve by construction'). It clearly distinguishes itself from siblings like submit_product_request by stating it closes the request automatically.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states when to use: when you or a coding agent opened a real PR. Mentions that no separate human close step is needed. Does not explicitly specify when not to use or list alternative tools, but the context is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
audit_brand_visibilityAInspect
Audit whether Freedom OS appears in AI-generated search results. Sends a search query to external LLMs (Claude, Grok, Gemini, Perplexity) and checks each response for brand mentions. This is a competitive SEO/GEO auditing tool — like a mystery shopper for AI search engines. It does NOT answer questions or delegate work.
| Name | Required | Description | Default |
|---|---|---|---|
| prompt | Yes | A search-style query to test (e.g., "What is the best AI operating system for solopreneurs?") | |
| companyId | Yes | FreedomOS company id to act within (you must be a member). Required for company-scoped tools. | |
| providers | Yes | Which AI search engines to audit. Options: anthropic (Claude), xai (Grok), google (Gemini), perplexity (Sonar Pro with live search) | |
| max_tokens | No | Maximum response length per provider (default: 1000) | |
| temperature | No | Response variability 0-1 (default: 0.7) |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It discloses that the tool sends queries to external LLMs, checks responses for brand mentions, and does not answer questions or delegate work. This covers key behavioral traits sufficiently, though it omits details like rate limits or cost implications.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three sentences: the first states the core action, the second adds detail, and the third clarifies boundaries. It is extremely concise, front-loaded, and every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description explains the tool's purpose well but does not describe the output format, which is important since no output schema is provided. Agents cannot predict whether the result is a boolean, a list of mentions, or a detailed report. This is a notable gap given the tool's complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. The description provides context for 'providers' (listing example engines) and 'prompt' (example query) but does not add significant semantic value beyond the schema descriptions. It is adequate but not exceptional.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Audit' and the resource 'whether Freedom OS appears in AI-generated search results'. It differentiates from siblings by specifying it tests multiple external AI engines and is for brand visibility. It also explicitly states what it does NOT do, leaving no ambiguity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description positions the tool as a competitive SEO/GEO auditing tool and clarifies it is not for general Q&A or delegation. This helps agents infer when to use it, though it does not explicitly list alternative tools or scenarios to avoid.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
batch_update_spreadsheetBInspect
Perform batch operations on a Google Spreadsheet (formatting, merging, etc.).
[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.]
| Name | Required | Description | Default |
|---|---|---|---|
| companyId | Yes | FreedomOS company id to act within (you must be a member). Required for company-scoped tools. | |
| requests_json | Yes | JSON-encoded array of batch update request objects, e.g. "[{\"updateCells\":{...}}]". | |
| spreadsheet_id | Yes | Spreadsheet ID |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description mentions a write-tier requiring manager approval, which adds some behavioral context. However, without annotations, it doesn't disclose potential side effects, reversibility, or resource impact beyond the approval note.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with clear first sentence. The approval note is extra but not excessive. Could be slightly more structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a complex tool requiring JSON requests, the description lacks details on return values, error handling, or how to construct requests. No output schema exacerbates this.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the schema already fully documents parameters. The description adds no extra meaning beyond restating 'batch operations' and giving vague examples.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool performs batch operations on a Google Spreadsheet, with examples like formatting and merging. This distinguishes it from sibling tools like update_sheet or append_to_sheet.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use this tool versus alternatives like update_sheet or append_to_sheet. The approval note is behavioral context, not usage comparison.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
browse_urlAInspect
Browse a web page in a real browser and take a screenshot. Returns page content and a screenshot image. Use when you need to SEE what a page looks like (visual audit, brand check), interact with JavaScript-heavy pages, or capture visual evidence. The screenshot is returned as an image you can analyze directly with your vision.
[sensitive-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.]
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | The full URL to browse (must include https:// or http://) | |
| actions | No | Optional browser actions to perform before taking screenshot. Each action has a type and optional selector/value. | |
| companyId | Yes | FreedomOS company id to act within (you must be a member). Required for company-scoped tools. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It discloses that the tool uses a real browser, takes a screenshot, and returns page content and image. The sensitive-tier approval note adds transparency about authorization. However, it lacks details on what 'page content' includes (e.g., full HTML or text) and any limitations, which would improve transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences with a bracketed note for the approval process. Front-loaded with the core action and returns, then use cases, then administrative info. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema, the description should detail return values. It mentions 'page content and a screenshot image' but does not specify what page content entails (e.g., rendered text, full HTML) or image format. For a browsing tool, these are important missing details.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so baseline is 3. The description repeats the schema details (url must include protocol, optional actions) but does not add new meaning or constraints beyond what the schema already provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Browse a web page in a real browser and take a screenshot. Returns page content and a screenshot image.' It uses specific verbs and resources, and distinguishes from sibling tools like read_web_page by emphasizing visual needs and JavaScript interactivity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides explicit guidance: 'Use when you need to SEE what a page looks like (visual audit, brand check), interact with JavaScript-heavy pages, or capture visual evidence.' This tells the agent when to choose this tool over alternatives, and also mentions the sensitive-tier approval process.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cancel_attention_directiveAInspect
Cancel a pending attention directive (operator changed mind / wrong target). Use when the operator says drop/cancel that instruction to Grok or Claude, or CoS realizes the target_session_id was wrong — for THIS operator only. Does not reverse work the host already did.
[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.]
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Directive UUID to cancel. | |
| companyId | No | FreedomOS company id to act within (you must be a member). Required for company-scoped tools. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description discloses key behaviors: cancellation of pending directives, no reversal of completed work, operator-scoped, and approval tier. Lacks details on idempotency or error states but is sufficient.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
First paragraph is concise and front-loaded. Second paragraph adds useful approval context but is slightly verbose. Overall well-structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers purpose, usage, scope, and behavioral constraints adequately. No output schema, but return behavior is implied. Missing some edge cases but sufficient for a cancel action.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so description adds no extra parameter meaning beyond the provided descriptions. Baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Cancel a pending attention directive' with specific use cases ('operator changed mind / wrong target'), distinguishing it from siblings like create_attention_directive and ack_attention_directive.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states when to use ('operator says drop/cancel' or 'CoS realizes wrong target'), includes an exclusion ('Does not reverse work the host already did'), and provides approval context. Guides the agent effectively.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cancel_commitmentAInspect
Cancel a commitment without completing it — marks it cancelled. Use when the user says "cancel that", "never mind, drop it", or "that's not happening anymore" for something already tracked. For finished work, use complete_commitment instead.
[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.]
| Name | Required | Description | Default |
|---|---|---|---|
| reason | No | Optional. Why this is being cancelled. | |
| companyId | No | FreedomOS company id to act within (you must be a member). Required for company-scoped tools. | |
| title_search | No | Search by title if ID not known (fuzzy match). | |
| commitment_id | No | The UUID of the commitment to cancel. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, description provides critical authorization context (write-tier approval note) but doesn't elaborate on side effects like reversibility or notifications.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences plus a useful warning in brackets. Front-loaded with purpose, then usage, then note. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers purpose, usage, and authorization. Lacks details on post-cancel behavior (undo, logging) but adequate for a simple mutation with no output schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% so parameters are already well-documented. Description adds no additional meaning beyond what schema provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the action: 'cancel a commitment without completing it — marks it cancelled.' Uses specific verb and resource, and distinguishes from sister tool complete_commitment.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly tells when to use: for cancellation requests like 'cancel that', and when not to: for finished work, use complete_commitment instead.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
capture_ideaAInspect
Capture an idea into the user's Ideas. Use when user shares an idea they want to save for later.
[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.]
| Name | Required | Description | Default |
|---|---|---|---|
| content | Yes | The idea content to capture | |
| companyId | No | FreedomOS company id to act within (you must be a member). Required for company-scoped tools. | |
| source_url | No | Optional URL if the idea came from a link |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Since no annotations are provided, the description includes important behavioral context about approval tiers (write-tier, first use may require approval). This adds value beyond the schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences plus a parenthetical note, front-loading purpose and usage. Every part is concise and informative.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has 3 parameters and no output schema, the description adequately covers purpose, usage, and approval behavior. It could mention what is returned after capture, but is still complete for its simplicity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the descriptions of parameters (content, companyId, source_url) are already present in the schema. The tool description does not add extra meaning for the parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'capture' and the resource 'Ideas', with further explanation of saving for later. It distinguishes the tool from siblings like delete_idea and triage_idea.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description specifies 'Use when user shares an idea they want to save for later', providing clear context. However, it does not explicitly state when not to use it or suggest alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
challenge_as_customerAInspect
Run your deliverable past the company's customer truth: REAL Customer Evidence first (when stored), then generated ICP as labeled simulation. Returns honest feedback — what would make them engage, scroll past, or what's missing. Use on customer-impact deliverables before sending.
| Name | Required | Description | Default |
|---|---|---|---|
| context | No | Optional additional context about what this deliverable is for, who will see it, or what outcome you want | |
| companyId | Yes | FreedomOS company id to act within (you must be a member). Required for company-scoped tools. | |
| target_icp | No | ICP ID to use (from get_icps), or "auto" to use the first available. Default: auto | |
| deliverable | Yes | The content/report/strategy you want the simulated customer to evaluate | |
| deliverable_type | Yes | What type of deliverable this is — helps the customer evaluate appropriately |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Describes the two-step process (real evidence then simulation) and what feedback is returned (engagement, scroll past, missing). With no annotations, this disclosure is valuable, though missing details on permanence or side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, front-loaded with action, no fluff. Efficiently communicates tool purpose, process, and usage.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Adequate but lacks details on return format/structure, which would be helpful given no output schema. The description outlines what feedback covers but not its shape.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the description adds no additional parameter-level meaning beyond the existing schema descriptions. Baseline score appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool simulates customer feedback using real evidence or ICP, with a specific verb 'run past' and resource 'customer truth'. It is distinct from any sibling tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly advises use on 'customer-impact deliverables before sending', providing clear context. Does not specify when not to use or mention alternative tools, but the guidance is direct.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
check_my_inboxAInspect
Check your own agent email inbox (receive-only) for messages sent to your @agents.getfreedomos.com address, and read them. Returns recent unread messages: sender, subject, a safe text snippet, any OTP codes, and login links that are safe to open — reads only YOUR mailbox. Use when a login, sign-in, or verification flow tells you it emailed a one-time code or magic link to your agent address and you need to retrieve it.
[sensitive-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.]
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max messages to return (default 10, cap 25). | |
| companyId | Yes | FreedomOS company id to act within (you must be a member). Required for company-scoped tools. | |
| from_domain | No | Only return mail whose sender is at this domain (e.g. "getfreedomos.com"). | |
| since_minutes | No | Only return mail received within the last N minutes (e.g. 15 for a fresh login code). |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It discloses that the tool is receive-only, reads only the user's own mailbox, and returns specific fields (sender, subject, safe text snippet, OTP codes, login links). It also mentions the sensitive-tier approval requirement. It does not cover error scenarios or rate limits, but the core behavior is transparent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and well-structured. It front-loads the core purpose and return values in the first sentence, then adds approval context in a separate paragraph. Every sentence adds value without unnecessary repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simple nature of a read-only inbox checker, the description covers the return format (sender, subject, snippet, OTP, links) and the approval requirement. It does not mention error conditions (e.g., empty inbox, invalid companyId), but the schema covers the required parameter. Overall, it is sufficiently complete for the tool's purpose.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage for all 4 parameters, so the schema itself documents each parameter. The description does not add new parameter details but provides context for when parameters like since_minutes and from_domain are relevant. Based on the guidelines, a baseline of 3 is appropriate since the description does not significantly augment the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states that the tool checks the user's own agent email inbox for messages sent to their @agents.getfreedomos.com address. It specifies it is receive-only and returns recent unread messages. While it does not explicitly differentiate from the sibling tool list_inbox, it adds context by emphasizing 'reads only YOUR mailbox', which helps distinguish its scope.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit guidance on when to use this tool: 'Use when a login, sign-in, or verification flow tells you it emailed a one-time code or magic link to your agent address and you need to retrieve it.' This is clear and contextual. It does not mention alternatives or when not to use, but the use case is well-defined.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
claim_product_request_for_builderAInspect
Mint a paste-ready Builder claim recipe for a FreedomOS product request so a host coding agent (Grok Build / Claude Code) with Harness + gstack can implement the class fix. Pins the FreedomOS frontier coding model (TIER_ROLES.frontier). Does NOT run the coding agent or open a PR by itself — use after product team accepted the request. FreedomOS product-inbox members only.
[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.]
| Name | Required | Description | Default |
|---|---|---|---|
| companyId | No | FreedomOS company id to act within (you must be a member). Required for company-scoped tools. | |
| request_id | Yes | request_id UUID from submit_product_request | |
| stamp_claim | No | If true (default), stamp context_payload.builder_claim {claimed_at, frontier_model, by} on the card. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It honestly states the tool's scope (does not execute or open PR) and mentions approval nuances ('first use may require manager's approval'). It also notes that it pins the frontier coding model. This is transparent for a write-tier tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single paragraph but efficiently conveys purpose, limitations, usage context, and permissions. It is front-loaded with the core action. The write-tier approval note is appended usefully. Some jargon ('paste-ready', 'Harness + gstack') may slightly reduce clarity, but overall it's concise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has 3 parameters and no output schema, the description covers its role in a workflow, when to use it, and behavioral boundaries. It explains the approval model. However, it does not describe what the claim recipe looks like or what happens after minting, which could be more complete for an agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Input schema has 100% coverage, so the baseline is 3. The description adds minimal extra context beyond the schema; it mentions stamp_claim defaults to true and relates to the claim recipe, but doesn't explain the companyId or request_id beyond what the schema already provides. It does not compensate for any gaps.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses the strong verb 'Mint' and specifies the exact resource 'Builder claim recipe for a FreedomOS product request'. It clearly distinguishes that this tool prepares a recipe for a coding agent but does not execute it, differentiating it from siblings like submit_product_request or open_product_request_draft_pr.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description states explicitly when to use ('after product team accepted the request') and what it does NOT do ('Does NOT run the coding agent or open a PR by itself'). It also limits usage to 'FreedomOS product-inbox members only'. While it doesn't name specific alternative tools, the behavioral exclusion provides guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
clear_pipeline_learningsAInspect
Reset all learnings for a pipeline and start fresh. Use when user says "forget what you learned", "start fresh with the style", "reset the learnings", or "clear the feedback history".
[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.]
| Name | Required | Description | Default |
|---|---|---|---|
| companyId | Yes | FreedomOS company id to act within (you must be a member). Required for company-scoped tools. | |
| pipeline_id | Yes | Pipeline ID (get from list_pipelines) | |
| output_format | No | Optional. Only clear learnings for a specific format. If not specified, clears all formats. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It states the tool is a write-tier action requiring approval, implying destructive behavior. However, it does not disclose whether the action is reversible, what the response is, or any side effects beyond 'start fresh'.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise with three sentences: purpose, usage triggers, and approval note. It is front-loaded and every sentence adds value. No redundancy or unnecessary text.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema and no annotations, the description covers purpose, usage triggers, and permission requirements. It does not explain return values or how to verify the reset, but for a straightforward destructive action, the context is largely complete. Missing mention of using list_pipeline_learnings to check before resetting is a minor gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description does not add significant meaning beyond what the schema already provides for parameters. It restates pipeline_id and mentions output_format behavior ('clears all formats if not specified'), but this is already in the schema description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Reset all learnings for a pipeline and start fresh.' The verb-resource pair is specific. Example user phrases distinguish it from siblings like 'list_pipeline_learnings' or 'update_pipeline_style_guide'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly lists when to use the tool (e.g., when user says 'forget what you learned') and includes a note about write-tier approval. However, it does not provide when-not-to-use guidance or mention alternative tools like 'list_pipeline_learnings' before resetting.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
complete_commitmentAInspect
Mark a commitment as completed. Use when the user says they finished something or a deadline has passed.
[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.]
| Name | Required | Description | Default |
|---|---|---|---|
| companyId | No | FreedomOS company id to act within (you must be a member). Required for company-scoped tools. | |
| title_search | No | Search by title if ID not known (fuzzy match) | |
| commitment_id | No | The UUID of the commitment to complete |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It adds behavioral info about write-tier approval (first use may require manager approval, approval types). However, it does not disclose other behaviors like state changes or side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise: two sentences plus a helpful bracket note about approval. It is front-loaded with the purpose and usage guidance.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (3 params, no output schema), the description covers purpose, usage context, and approval behavior. It could mention what the return indicates, but overall it is adequate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3. The description does not add any additional meaning beyond the parameter descriptions already present in the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Mark a commitment as completed.' It uses a specific verb ('complete') and resource ('commitment'), distinguishing it from siblings like 'cancel_commitment' or 'add_commitment'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit usage context: 'Use when the user says they finished something or a deadline has passed.' It does not list alternatives or exclusions, but the context is clear enough to guide selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
configure_dashboardAInspect
Create or update a widget on your agent dashboard. Use this to display key metrics, charts, tables, or timelines that help the user understand your work at a glance. Each call creates or updates one widget.
[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.]
| Name | Required | Description | Default |
|---|---|---|---|
| data | No | Data rows for chart/table/list/gantt widgets. Each item is an object. - chart: [{ label: "Jan", value: 100 }, ...] - table: [{ col1: "val", col2: "val" }, ...] - list: [{ label: "Item", status: "done", detail: "..." }, ...] - gantt: [{ label: "Task", start: "2024-01-01", end: "2024-01-15", status: "active" }, ...] | |
| title | Yes | Display title for the widget (e.g., "Monthly Revenue", "Content Pipeline") | |
| config | No | Widget configuration. Shape depends on widget_type: - metric: { value, previous_value, format ("number"|"currency"|"percent"|"text"), trend_direction ("up"|"down"|"flat"), suffix } - chart: { chart_type ("bar"|"line"|"area"), x_axis, y_axis, color } - table: { columns: [{ key, label, align }], sortable, page_size } - list: { status_field, label_field, detail_field } - gantt: { start_field, end_field, label_field, status_field } - status: { status, status_color ("green"|"amber"|"red"|"blue"|"purple"|"slate"), detail, icon_emoji } - progress: { value (0-100), target_label, current_label, color (CSS class) } - kpi_row: { kpis: [{ label, value, trend ("up"|"down"|"flat"), format }] } - progress_ring: { value (0-100), label, color (CSS color) } - activity_status: (use data array with { name, frequency, status, next_run, last_outcome }) - canvas: { html (agent-authored layout HTML — narrative/self-expression, inert: no scripts/forms/controls, max 64KB), title (optional a11y label) } | |
| position | No | Display order (0 = first, higher = later). Default: 0 | |
| companyId | Yes | FreedomOS company id to act within (you must be a member). Required for company-scoped tools. | |
| widget_id | No | UUID of existing widget to update. Omit to create a new widget. | |
| is_visible | No | Whether the widget is visible on the dashboard. Default: true | |
| widget_type | Yes | Type of widget to create |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must cover behavioral traits. It discloses the approval constraint and per-widget scope. However, it does not mention that updates overwrite existing widgets, potential failure modes, or whether the tool is idempotent. Adequate but not comprehensive.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise: one sentence for purpose, one for scope, and a bracket note for approval. No redundant information; front-loaded with key purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 8 parameters with nested config and no output schema, the description gives an overview of widget types and the approval requirement. However, it does not describe the return value or common error scenarios, leaving some gaps for a complex tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so baseline is 3. The description adds minimal parameter meaning beyond the schema; it provides context for widget types and approval tier but does not enhance understanding of individual parameters beyond what the schema already describes.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it creates or updates a widget on the agent dashboard, specifying the verb ('Create or update') and resource ('widget'). It lists supported widget types and distinguishes from sibling tools like list_dashboard_widgets and remove_dashboard_widget by focusing on mutate operations.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description says to use it to display key metrics and notes that each call handles one widget. It mentions write-tier approval requirements. However, it does not explicitly state when to use alternatives or when not to use it, missing some decision guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
confirm_mcp_approvalAInspect
Confirm a pending MCP capability approval by spoken (or chat) yes/no. Pass approval_id from the approval_required tool result. decision: approve | reject | later. Runs the SAME process-approval pipeline as tapping Approve on the card — does not bypass integrity rails. Use on voice when the operator says approve/yes or reject/no after a capability ask. Do NOT invent an approval_id.
[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.]
| Name | Required | Description | Default |
|---|---|---|---|
| decision | Yes | approve | reject | later (yes/no/go also accepted) | |
| companyId | Yes | FreedomOS company id to act within (you must be a member). Required for company-scoped tools. | |
| grant_mode | No | approve only: 'once' runs without standing grant (default for spoken path); 'standing' also grants future calls | |
| approval_id | Yes | UUID of the pending mcp_tool_call approval card (from approval_required.approval_id) | |
| voice_session_id | No | Optional voice session id if known (audit only) | |
| utterance_snippet | No | Optional short quote of what the operator said (audit; ≤200 chars) |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden. It discloses that the tool 'Runs the SAME process-approval pipeline as tapping Approve on the card — does not bypass integrity rails.' It also explains the write-tier and the effect of 'from-now-on' vs 'just-once' approvals, providing behavioral context beyond the basic operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise: two sentences plus a parenthetical note. It is front-loaded with the core purpose and usage, and each sentence provides essential information without redundancy. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a confirmation tool with 6 parameters and no output schema, the description covers usage, behavioral transparency, and the write-tier note. It could detail error cases (e.g., invalid approval_id) or return behavior, but given the tool's simplicity, it is adequately complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the schema already documents all 6 parameters. The description adds value by explaining the relationship: 'Pass approval_id from the approval_required tool result' and clarifying the grant_mode options ('once' for one-time, 'standing' for future grants). This extra context helps the agent understand parameter usage beyond schema descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's action: 'Confirm a pending MCP capability approval by spoken (or chat) yes/no.' It specifies the resource (MCP capability approval), the decision values, and the required approval_id. It differentiates from siblings by being the sole tool for approving MCP capabilities, distinct from other approval tools like 'approve_pipeline_item'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit usage guidance: 'Use on voice when the operator says approve/yes or reject/no after a capability ask' and warns 'Do NOT invent an approval_id.' It also clarifies that it runs the same pipeline as tapping Approve on the card. However, it lacks explicit 'when not to use' scenarios.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_attention_directiveAInspect
Queue a short instruction for an external coding/builder session (Grok terminal, Claude Code, or future FreedomOS runtime). Does NOT type into their UI — the session must poll FreedomOS (poll-fo-directives.sh or list_attention_directives) and act. Use when the operator says "tell Grok…", "have Claude…", or CoS should route reversible work off the call. Pass the same target_session_id the host polls (e.g. grok-, claude-).
[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.]
| Name | Required | Description | Default |
|---|---|---|---|
| source | No | Optional provenance: voice_cos | chat | api | system. Default derived from door. | |
| companyId | No | FreedomOS company id to act within (you must be a member). Required for company-scoped tools. | |
| company_id | No | Optional company context (portfolio id). Does not change auth — row stays operator-scoped. | |
| instruction | Yes | One clear instruction for that session (1–4000 chars). Imperative, not a transcript dump. | |
| target_host | No | Host adapter: claude-code | claude-desktop | grok | manual | slack | github | freedomos | other | |
| target_session_id | Yes | Stable id the host polls (1–200 chars). Examples: grok-$SESSION, claude-code-$SESSION. Must match the poller. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden. It explains the polling mechanism, that it does not type into UI, and mentions write-tier approval. It could add more about persistence or side effects, but is fairly transparent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is around 100 words, front-loaded with core function, then nuance, then usage triggers. Every sentence adds value; no waste.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with 6 params and no output schema, the description covers purpose, mechanism, usage, and parameter examples. It is complete enough for an agent to invoke correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. The description adds value by providing usage examples for target_session_id and instruction constraints (imperative, 1-4000 chars), going beyond schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool queues instructions for external sessions (Grok, Claude Code) and distinguishes it from direct UI interaction. It uses specific verbs and resource, and the unique purpose differentiates it from siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly tells when to use (e.g., 'tell Grok…') and clarifies a limitation (does not type into UI). It lacks explicit alternatives but provides strong context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_featureAInspect
Add a new feature to the Feature Index. Use when user says "I built X", "add feature Y", "track this capability", or describes a product feature they want to market. Features can later be pushed to Content Pipeline for marketing content.
[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.]
| Name | Required | Description | Default |
|---|---|---|---|
| title | Yes | Display title (e.g., "AI Content Pipeline") | |
| limits | No | Current limitations (e.g., "LinkedIn only", "Beta users only") | |
| solves | No | Problems/pain points this feature solves (e.g., ["manual posting", "writer's block"]) | |
| category | No | Category (e.g., "ai", "marketing", "finance", "automation") | |
| demo_url | No | URL to a demo video (Screen Studio, Loom, etc.) | |
| companyId | Yes | FreedomOS company id to act within (you must be a member). Required for company-scoped tools. | |
| feature_id | No | Unique slug for the feature (e.g., "ai-content-pipeline") | |
| description | No | Marketing-ready description of the feature |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, but the description discloses the write-tier approval process and hints at downstream use (Content Pipeline). Lacks details on idempotency or uniqueness constraints.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two paragraphs with clear purpose and behavioral note. Could be more structured (e.g., bullet points for triggers), but no unnecessary words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers purpose, triggers, and a key behavioral aspect (approval). Given no output schema and 8 parameters (2 required), the description adequately supports tool selection and invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. The description adds no extra parameter context beyond the schema definitions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool adds a new feature to the Feature Index, specifies trigger phrases like 'I built X', and distinguishes from sibling tools (e.g., update_feature, list_features).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides explicit use cases and trigger phrases, but does not mention when NOT to use or name alternative tools for related actions like updating or retiring features.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_folderAInspect
Create a folder in the knowledge base for organizing files. Folders can be nested (e.g., "partners/acme"). Use for deal rooms, topic grouping, or any organizational structure.
[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.]
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Folder name (e.g., "acme-deal", "partners/acme"). Nested paths are supported. | |
| companyId | Yes | FreedomOS company id to act within (you must be a member). Required for company-scoped tools. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It includes a note about write-tier approval behavior, which is useful for understanding permissions and usage flow. This adds valuable context beyond a simple 'create' statement.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is short and front-loaded with the core purpose. Every sentence adds value: the first explains what and how, the second gives usage examples, and the bracket note adds behavioral context. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple creation tool with two parameters and no output schema, the description adequately covers purpose, usage, and approval behavior. It lacks details on potential errors or return values, but these are not critical for a straightforward creation tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. The description repeats the example from the schema (nested paths) but does not add new meaning beyond what the schema already provides. It offers no further parameter guidance.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function: creating a folder in the knowledge base for organizing files. It explains support for nested paths and provides use cases (deal rooms, topic grouping). This distinguishes it well from other tools in the sibling list.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides specific use cases ('Use for deal rooms, topic grouping, or any organizational structure'), giving clear context for when to use the tool. However, it does not explicitly state when not to use it or compare it to alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_google_docAInspect
Create a new Google Doc in the user's Freedom OS folder. Use for JDs, deliverables, and shared documents. By default, creates beautifully formatted docs.
[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.]
| Name | Required | Description | Default |
|---|---|---|---|
| title | Yes | Document title (e.g., "Marketing Specialist JD") | |
| folder | No | Which folder to save in | |
| content | Yes | Content for the document in markdown format | |
| companyId | Yes | FreedomOS company id to act within (you must be a member). Required for company-scoped tools. | |
| format_for_humans | No | If true (default), converts markdown to rich formatting. Set false for agent-to-agent docs. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations, so description must disclose behavior. Mentions default formatting and approval requirement, but does not detail side effects, response behavior, or resource limits. Adequate but not comprehensive.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise paragraphs; first paragraph states purpose, second adds approval notes. No fluff, but the approval note interrupts flow slightly. Still efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema, and description does not explain return value or confirmation behavior. For a create tool with 5 params and 3 required, missing outcome info reduces completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema covers all 5 params (100%). Description adds no new parameter details beyond what schema provides. Baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states action (create) and resource (Google Doc), specifies folder location ('user's Freedom OS folder'), and lists use cases (JDs, deliverables, shared documents). Easily distinguishes from siblings like update_google_doc and read_google_doc.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides context: 'Use for JDs, deliverables, and shared documents.' Includes approval tier note, but lacks explicit exclusions or alternative tools. Still clear enough for appropriate use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_icpAInspect
Create a NEW Ideal Customer Profile (ICP) from scratch and save it — no Customer Hunter UI needed. Use this when get_icps returns hasICPs:false (the company has none yet) or to add another target customer profile. To CHANGE an existing ICP, use update_icp instead.
[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.]
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Persona name. Required. Used to derive the ICP id/filename. INTERNAL targeting label (may be an evocative codename) — never published. | |
| class | No | 'customer' (default) or 'partner' — partner = a distribution/affiliate ICP, not an end-buyer. | |
| title | No | One-line descriptor of the persona. | |
| channels | No | Where they spend attention. | |
| companyId | Yes | FreedomOS company id to act within (you must be a member). Required for company-scoped tools. | |
| painThemes | No | Recurring pain themes. | |
| publicName | No | The public-facing audience label to use in published copy — NEVER the internal persona name/codename. Plural noun phrase, e.g. "compounding pharmacy owners". Optional — auto-generated from the persona when omitted. | |
| agentProfile | No | How this customer's own AI agent participates in buying: { tier: 'ambient' | 'assisted' | 'delegated' | 'builder', agents: string[], surfacesRead: string[], purchasePath: string, autonomyNotes: string }. tier is required and must be one of the four values. | |
| demographics | No | role, companySize, industry, techStack[]. | |
| dreamOutcome | No | The outcome they dream of. | |
| techSavviness | No | Tech comfort level. | |
| financialProfile | No | revenueRange, typicalDealSize, budgetAuthority, buyingBehavior, growthStage, priceSensitivity. | |
| nightmareScenario | No | The 3am problem / nightmare scenario. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Since no annotations are provided, the description carries the full burden. It adds important behavioral context: the write-tier approval behavior (manager approval required on first use, with options for ongoing or one-time approval). This is valuable beyond the basic purpose. However, it could spell out that this is a mutating operation that creates a permanent record, but that is implied.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise: two short paragraphs front-loading the main purpose and usage, followed by a note on authorization. No wasted sentences, every line adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (13 parameters, nested objects, no output schema), the description covers the core purpose, usage guidelines, and authorization behavior. It could mention what the return value is (e.g., confirmation, ICP ID) but since no output schema exists, the description is not deficient. The nested object details are covered in the schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has 100% coverage with descriptions for all 13 parameters. The description does not add additional parameter-level information beyond the schema; it focuses on overall usage. Therefore, it meets the baseline for schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description explicitly states the verb 'Create' and resource 'Ideal Customer Profile (ICP)', and distinguishes it from update_icp. It also mentions the specific condition (hasICPs:false) and the alternative tool, making the purpose very clear.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit guidance on when to use this tool (when get_icps returns hasICPs:false or to add another profile) and when not (to change existing, use update_icp). This is perfect usage guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_key_resultAInspect
Add a key result to an objective (the KR in OKR). Key results are measurable outcomes that track progress toward the objective. You can identify the parent objective by title or ID.
[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.]
| Name | Required | Description | Default |
|---|---|---|---|
| unit | No | Unit of measurement (e.g., "%", "$", "users", "trees") | |
| title | Yes | Key result title (measurable outcome) | |
| due_date | No | Due date (YYYY-MM-DD). Strongly recommended — a KR without one cannot expire or alarm. | |
| companyId | Yes | FreedomOS company id to act within (you must be a member). Required for company-scoped tools. | |
| assigned_to | No | User ID or "me"/"current_user" to assign to | |
| objective_id | No | ID of the parent objective (optional if using objective_title) | |
| target_value | No | Target value to achieve | |
| current_value | No | Current progress value (default: 0) | |
| measure_source | No | Bind current progress to a live data source so it auto-updates daily instead of relying on manual edits. One of: stripe_active_subscribers (active paying Stripe subscriptions), stripe_mrr ($ MRR), crm_active_leads (active CRM leads). Use when the KR measures exactly what a source provides. | |
| objective_title | No | Title of the parent objective (use this or objective_id) |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden. It discloses the write-tier and approval requirement, indicating mutability and access constraints. It does not contradict any annotations (none present).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences plus a concise approval note. Every sentence adds value: purpose, context, and behavioral note. Front-loaded with key information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 10 parameters and no output schema, the description covers high-level usage and key behavioral aspects (approval). It does not detail return values or side effects but is sufficient for an agent to invoke the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. The description adds meaning by explaining measurable outcomes, tracking progress, and how to identify the parent objective. It also clarifies measure_source as auto-updating.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb 'Add' and resource 'key result' (KR) with clear OKR context. It distinguishes from siblings like 'update_key_result' and 'delete_key_result' by specifying the action of creating a new KR.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explains when to use the tool (adding a KR to an objective) and how to identify the parent objective by title or ID. It includes an approval note but lacks explicit when-not-to-use guidance or alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_master_planAInspect
Initialize a new multi-step project with a persistent Master Plan artifact. Call this BEFORE starting any complex, multi-tool task.
[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.]
| Name | Required | Description | Default |
|---|---|---|---|
| companyId | Yes | FreedomOS company id to act within (you must be a member). Required for company-scoped tools. | |
| task_title | Yes | Short title for the task (e.g., "Influencer CRM Build") | |
| initial_plan | Yes | The high-level plan or blueprint for the task. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must disclose behavioral traits. It describes the artifact as 'persistent' and includes a detailed approval tier note about first use, manager approval, and approval types. This adds meaningful behavioral context beyond the schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise with two clear sentences plus a brief approval note in brackets. It front-loads the purpose and usage guidance. The bracketed note, while informative, slightly disrupts flow but is justified by its importance.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (3 required params, no output schema), the description covers purpose, when to use, and behavioral details. It lacks specifics on what happens after invocation (e.g., return value or artifact ID), but for an initialization tool this is sufficient for agent decision-making.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with descriptions for all three parameters. The description does not add significant meaning beyond the schema—it mentions 'persistent Master Plan artifact' but does not elaborate on parameter usage or constraints. Baseline is 3 due to high schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb ('Initialize') and resource ('a new multi-step project with a persistent Master Plan artifact'). It provides a directive to call this before complex tasks. However, it does not explicitly differentiate from sibling tools like 'create_folder' or 'create_feature', which could cause ambiguity for an AI agent.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly says 'Call this BEFORE starting any complex, multi-tool task', giving clear when-to-use guidance. The approval note adds context about permission requirements. However, it lacks explicit 'when-not-to-use' or alternative tool references.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_meta_ad_draftAInspect
Create a complete Meta (Facebook/Instagram) ad draft — campaign + ad set + creative + ad — ALL in PAUSED state, spending nothing. Use when the user wants to set up or draft an ad. Activation is a separate human-approved step (set_meta_ad_status).
[sensitive-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.]
| Name | Required | Description | Default |
|---|---|---|---|
| cta | No | Optional call-to-action: LEARN_MORE, SIGN_UP, GET_STARTED, CONTACT_US, DOWNLOAD, SUBSCRIBE | |
| link_url | Yes | https destination URL (landing page, with UTMs) | |
| companyId | Yes | FreedomOS company id to act within (you must be a member). Required for company-scoped tools. | |
| objective | No | OUTCOME_TRAFFIC (default) | OUTCOME_AWARENESS | OUTCOME_ENGAGEMENT | |
| targeting | No | Audience: {countries: ["US"], age_min, age_max, interests: [{id, name}]} | |
| daily_budget | Yes | Daily budget in the account currency, major units (e.g. 25 = 25 USD/day) | |
| primary_text | Yes | The ad copy (primary text) | |
| ad_account_id | No | Ad account (act_<digits>). Optional when the connection has exactly one. | |
| campaign_name | Yes | Campaign name, e.g. "PCAI cold traffic — Compliance Crusader v1" | |
| image_artifact_id | No | Optional agent_artifacts image id for the creative |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden. It discloses that the ad draft is created in PAUSED state and spends nothing, and that activation is separate. It also mentions the sensitive-tier approval requirement. No contradictions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two concise sentences plus a brief bracketed note. It is front-loaded with the main purpose and behavioral trait, then usage guidance, then approval context. No unnecessary words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity (10 parameters, nested objects, no output schema), the description adequately covers overall behavior, usage, and approval. It could be improved by mentioning what the tool returns (e.g., ID of created draft), but it is largely complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all parameters are documented in the schema. The description does not add additional meaning beyond what the schema provides, meeting the baseline 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Create a complete Meta (Facebook/Instagram) ad draft — campaign + ad set + creative + ad — ALL in PAUSED state, spending nothing.' It specifies the verb 'create' and the resource 'ad draft', and distinguishes from sibling tools like set_meta_ad_status (activation) and update_meta_ad_budget.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly says 'Use when the user wants to set up or draft an ad. Activation is a separate human-approved step (set_meta_ad_status).' It also provides approval tier guidance in brackets, explaining when manager approval may be needed and how approval types work.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_objectiveAInspect
Create a new objective (the O in OKR). Objectives are aspirational goals. After creating one, use generate_key_results to get intelligent, context-aware key result suggestions, then create_key_result to add the best ones. An objective without key results has no way to measure progress.
[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.]
| Name | Required | Description | Default |
|---|---|---|---|
| year | No | Year for this objective (e.g., 2026) | |
| title | Yes | Objective title - a clear, aspirational goal (e.g., "Build & Dogfood Freedom OS") | |
| companyId | Yes | FreedomOS company id to act within (you must be a member). Required for company-scoped tools. | |
| description | No | Brief context or notes about this objective. Do NOT include key results here. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It discloses important behavioral traits: the 'write-tier' nature and potential approval requirements on first use (with different approval types explained). This adds valuable transparency beyond what the schema provides.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured and front-loaded with the core purpose. It includes some workflow information and approval details, which are relevant but slightly extend beyond essential conciseness. No waste, but could be slightly tighter.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema, the description adequately covers the tool's context: what it does, how to use it, next steps, and behavioral caveats. It provides a complete picture for a creation tool, though return values are not mentioned.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage, so baseline is 3. The description adds minimal semantic value, e.g., emphasizing that description should not include key results. This is useful but not substantial.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool creates a new objective (the O in OKR), defines it as aspirational goals, and distinguishes it from related tools like generate_key_results and create_key_result by providing a workflow. This makes the purpose specific and unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit guidance on when to use this tool (to create an objective) and recommends a workflow: after creation, use generate_key_results then create_key_result. It does not explicitly state when not to use, but the context given is sufficient for appropriate tool selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_pipelineAInspect
Create a new content pipeline to automate content creation. Use when user says "set up a changelog", "create a newsletter pipeline", "send team updates", "automate my X posts", or describes input→output automation. Output types: changelog (public product updates), team_update (internal team email via Freedom OS), report (email to specific recipients), customer_newsletter (external customers - requires user Email MCP like Mailchimp), social_post (x/linkedin/instagram/facebook/threads via the gated publish owner).
[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.]
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Name for the pipeline (e.g., "Weekly Newsletter", "GitHub to Changelog") | |
| inputs | No | Input sources to listen to | |
| output | Yes | Output type: changelog (public), team_update (internal team email), report (specific recipients), customer_newsletter (external - requires Email MCP), social_post (x/linkedin/instagram/facebook/threads) | |
| persona | No | Marketing persona to use (alex, elon, or custom ID) | |
| companyId | Yes | FreedomOS company id to act within (you must be a member). Required for company-scoped tools. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must disclose behavior. It explains the write-tier approval flow (first use may require manager approval, from-now-on vs just-once). It also mentions that social_post requires the 'gated publish owner.' However, it does not detail what happens immediately after creation (e.g., whether the pipeline is active, any default settings).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is mostly concise and front-loaded with the main action. It contains a long list of output types and a parenthetical approval note, but every sentence adds value. Minor redundancy in the output list could be tightened.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has 5 parameters (including nested inputs) and no output schema, the description covers inputs and outputs adequately but lacks details on the pipeline's lifecycle post-creation (e.g., whether it is immediately active, how to manage it later). The approval flow is a helpful addition, but overall completeness is moderate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the description's added value is considered. It expands on the output enum (e.g., linking customer_newsletter to Email MCP, social_post to gated publish owner) and clarifies the approval implications. This exceeds the schema descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Create a new content pipeline to automate content creation.' It lists specific use cases (e.g., 'set up a changelog', 'create a newsletter pipeline') and output types, distinguishing it from siblings like update_pipeline or list_pipelines.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly tells when to use the tool: 'Use when user says...' and explains output types with conditions (e.g., 'customer_newsletter... requires user Email MCP'). It also includes the write-tier approval behavior, guiding the agent on authorization needs.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_play_from_activityBInspect
Draft a Play (growth_tactics with steps + human review) from an oversized agent activity. Does not run the play — operator Agrees on Focus first. Use when a run hit step/continuation limits because the work is multi-unit.
[sensitive-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.]
| Name | Required | Description | Default |
|---|---|---|---|
| reason | No | ||
| agent_id | No | UUID of the agent. | |
| companyId | Yes | FreedomOS company id to act within (you must be a member). Required for company-scoped tools. | |
| agent_name | No | Name of the agent. Provide this or agent_id. | |
| draft_steps | No | ||
| draft_title | No | ||
| linked_kr_id | No | ||
| activity_name | Yes | Oversized activity to draft a Play from. | |
| draft_category | No | ||
| draft_goal_impact | No | ||
| draft_custom_instructions | No |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden. It transparently reveals that this is a draft action (not execution), requires operator agreement, and includes a sensitive-tier approval process. However, it does not disclose potential side effects (e.g., whether the original activity is modified or whether a persistent record is created) or the return format.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is efficiently structured: a clear first sentence, a usage condition, and a concise approval note. All sentences earn their place and the front-loading is good. The approval note is slightly verbose but provides valuable context.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a complex tool with 11 parameters, no output schema, and no annotations, the description covers the 'when' and 'why' but leaves major gaps: parameter semantics, post-draft process, persistence, and what happens next. It is incomplete for an agent to safely invoke the tool without further schema details.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is low (36%) with 7 undocumented parameters. The description does not compensate by explaining any parameter names or their roles. It only alludes to 'steps' and 'human review' conceptually, but does not map them to draft_steps or other fields. Users cannot infer the meaning of reason, linked_kr_id, or draft_custom_instructions from the description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Draft a Play' with a specific resource (growth_tactics with steps + human review) and source (oversized agent activity). It also clarifies that it does not run the play, which distinguishes it from execution tools. However, it does not explicitly name sibling tools like split_agent_activity or run_tactic for comparison.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives an explicit use case: 'Use when a run hit step/continuation limits because the work is multi-unit.' It also states the workflow expectation (operator Agrees on Focus first) and that the tool only drafts, not executes. It does not mention alternatives or exclusions, but the context is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_spreadsheetAInspect
Create a new Google Spreadsheet with optional headers.
[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.]
| Name | Required | Description | Default |
|---|---|---|---|
| title | Yes | Spreadsheet title | |
| headers | No | Column headers for the first row | |
| companyId | Yes | FreedomOS company id to act within (you must be a member). Required for company-scoped tools. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description adds value by disclosing the write-tier approval process, informing the agent about potential approval requirements. However, it does not mention return values or side effects like what the tool returns after creation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very concise with two sentences, no wasted words. The approval note is front-loaded effectively.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity (3 params, no output schema), the description is incomplete. It does not explain what the tool returns after creation, how to reference the new spreadsheet, or any usage constraints beyond the approval note.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the description adds no additional meaning beyond what the schema provides for parameters like 'title', 'headers', and 'companyId'. The 'optional headers' is already in the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Create' and the resource 'new Google Spreadsheet with optional headers', distinguishing it from siblings like 'create_google_doc' and 'append_to_sheet'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for creating a new spreadsheet but lacks explicit when-to-use guidance compared to alternatives like 'update_sheet' or 'create_folder'. The approval note hints at context but does not compare to siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_tacticAInspect
Create a new growth tactic for the company. Use when user wants to add a tactic, strategy, or action item.
[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.]
| Name | Required | Description | Default |
|---|---|---|---|
| title | Yes | The tactic title (e.g., "LinkedIn Content Strategy") | |
| status | No | Current status of the tactic | |
| category | Yes | Growth category: Leads (lead acquisition), Conversion (leads to customers), Customer Lifetime Value (retention), Time (automation) | |
| priority | No | Priority level | |
| companyId | Yes | FreedomOS company id to act within (you must be a member). Required for company-scoped tools. | |
| description | No | Detailed description of the tactic | |
| linked_kr_id | No | Optional key-result id the tactic most advances (validated against the company OKRs). If omitted, the most off-track KR of the bound objective is chosen. | |
| objective_id | No | Optional OKR objective UUID to bind this tactic to (validated against this company). If omitted, the binding is auto-inferred from the category→OKR map. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Since no annotations are provided, the description carries the full burden. It discloses the approval behavior (first use may require manager approval, from-now-on vs just-once approval), which is helpful for understanding side effects and access restrictions. No other behavioral aspects like idempotency are mentioned, but this is acceptable given the context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise: two sentences plus a parenthetical note about approval. Every sentence adds value, with no filler. The approval note is appropriately placed after the main usage guidance.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 8 parameters, 3 required, and no output schema, the description provides sufficient context on the tool's purpose and a key behavioral aspect (approval). It does not explain the return value, but that is partially mitigated by the absence of an output schema. The description is complete enough for an agent to invoke correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage, so the schema itself clearly documents each parameter's meaning and constraints (e.g., enum values, fallback behavior for linked_kr_id). The tool description adds no additional parameter information beyond restating the tool's purpose. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'create' and resource 'tactic', specifying 'a new growth tactic for the company'. It differentiates from siblings like 'update_tactic', 'delete_tactic', and 'generate_tactics' by indicating this is for adding a tactic manually.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly says 'Use when user wants to add a tactic, strategy, or action item.' It also mentions the approval requirement for first use, which guides the agent on when manual approval may be needed. However, it does not explicitly contrast with 'generate_tactics' for AI-generated tactics, leaving some ambiguity.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
deactivate_agentAInspect
Deactivate (archive) an AI agent/specialist from the team. Use when user says "remove [agent]", "deactivate [agent]", "archive [agent]", "fire [agent]", "delete [agent]". The agent is soft-deleted (is_active=false) and can be reactivated later. Cannot deactivate Linnet (the orchestrator).
[sensitive-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.]
| Name | Required | Description | Default |
|---|---|---|---|
| reason | No | Optional reason for deactivation | |
| agent_id | Yes | UUID of the agent to deactivate | |
| companyId | Yes | FreedomOS company id to act within (you must be a member). Required for company-scoped tools. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so the description carries full burden. It explains soft-delete (is_active=false), reactivation possibility, and the special case of Linnet. It also discloses the sensitive-tier approval requirement. Missing details about side effects on ongoing tasks or permissions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences plus a note, no redundant information. It is front-loaded with the primary action and usage triggers, then behavioral details. Every sentence adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simplicity of the tool (3 params, no output schema, no annotations), the description covers purpose, usage constraints, soft-delete behavior, and approval requirements. It could mention prerequisites (e.g., agent must be active) or error scenarios, but overall it is sufficiently complete for an agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the schema already documents parameters. The description does not add extra meaning for parameters like 'reason' or 'agent_id'; it only reiterates behavior. Thus, baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (deactivate/archive) and the resource (AI agent/specialist) with specific verbs. It distinguishes from sibling tools by listing user phrases like 'remove [agent]' and 'deactivate [agent]', making it easy for the agent to select this tool.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit usage triggers (user phrases) and a constraint ('Cannot deactivate Linnet'). It notes the soft-delete behavior and reactivation possibility. However, it does not explicitly list when not to use or suggest alternative tools for related tasks.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
decide_command_center_itemAInspect
Approve or deny a Command Center card. This processes the decision through the full approval pipeline including trust scoring, autopilot evaluation, skill learning, and deliverable queue progression. Supports a split: close the already-decided/conforming half and spin off a separate product residual for only the novel half.
[sensitive-tier, initiates a multi-step agent process — 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.]
| Name | Required | Description | Default |
|---|---|---|---|
| revise | No | revise:true with decision:"denied" sends the card back to the producing agent to redo with your feedback — nothing publishes. Re-runs the originating activity and re-surfaces a corrected card. Omit/false for a plain rejection (learn-only). Only valid alongside decision:"denied" — any other decision is rejected. Prefer plain-string feedback; blank is ok (defaults to "Please revise"). | |
| item_id | Yes | UUID of the Command Center card to decide on | |
| decision | Yes | The decision: approved, denied, snoozed, or dismissed (dismissed = honest acknowledgment of a blocked_on_you card — never resolves it) | |
| feedback | No | What to change when revise:true — preferred plain string telling the producing agent what to fix. Also accepted under aliases: reason, revision_feedback, user_feedback, comment, notes (and shallow nested {text}/{content}). Optional: blank revise feedback defaults to "Please revise" (same as the browser card). Optional on plain deny/approve. | |
| companyId | Yes | FreedomOS company id to act within (you must be a member). Required for company-scoped tools. | |
| grant_mode | No | Capability-approval (mcp_tool_call) cards only: 'once' runs the approved call WITHOUT granting the capability for future calls (the next identical call asks again); 'standing' (the default when omitted) runs it AND grants it so future calls run without asking. Ignored on every other card type. | |
| spin_off_kind | No | Split residual kind (default feature). Only used when spin_off_title + spin_off_description are set. | |
| spin_off_title | No | Split residual: one-line title for ONLY the novel half (requires spin_off_description). Closes the original card without re-building the mixed ask; mints a separate FO product-request card for this residual. | |
| conforming_summary | No | Optional one-line name of the already-decided/conforming half (audit stamp on the closed card). | |
| spin_off_description | No | Split residual: full description for ONLY the novel half (requires spin_off_title). Do not restate the already-decided conforming half as work to build. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description carries the disclosure burden. It does disclose the sensitive-tier nature, multi-step agent process, first-use manager approval, and the full approval pipeline. However, it does not detail all side effects, such as the creation of a product-request card for splits or the non-resolving nature of 'dismissed'/'snoozed' decisions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the main action and includes useful behavioral notes. The bracketed approval note feels a bit like structured metadata, but overall the description is concise and every sentence adds information without excessive padding.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (10 parameters, multiple decision types, split mode) and the absence of annotations or output schema, the description is not fully complete. It fails to mention the snoozed/dismissed decisions and the capability-approval card type referenced by grant_mode, though the rich parameter schemas fill many gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the parameter descriptions in the schema are already thorough. The main description adds little parameter-level meaning beyond mentioning the split concept, so the baseline score of 3 applies; the description does not compensate beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the core action ('Approve or deny a Command Center card') and distinguishes it from read-only siblings like get_command_center_item. However, it omits two valid decisions (snoozed, dismissed) that the schema includes, making the purpose slightly incomplete.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear context for when this tool is used (Command Center decisions) and mentions the split capability. But it does not explicitly compare with related tools like approve_pipeline_item or confirm_mcp_approval, nor does it state when not to use it, so it lacks explicit exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_icpAInspect
Delete a saved Ideal Customer Profile (ICP). Mirrors the Customer Hunter UI's delete: deactivates any reviewer agent built from this ICP, strips it from every content pipeline that targets it, then ARCHIVES (does not permanently remove) the ICP file. Use when the user says "delete this ICP", "remove this customer profile", or "get rid of this persona".
[sensitive-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.]
| Name | Required | Description | Default |
|---|---|---|---|
| icp_id | Yes | The unique ICP ID from get_icps response. | |
| reason | No | Optional. Why this ICP is being deleted. | |
| companyId | Yes | FreedomOS company id to act within (you must be a member). Required for company-scoped tools. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so description carries full burden. Explains exact side effects: deactivates reviewer agent, strips from pipelines, archives (not permanent delete). Includes sensitivity approval tier info.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise paragraphs with front-loaded core action. Every sentence adds value; no waste. Efficiently includes triggers, side effects, and approval notes.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite no output schema, description covers all relevant context: what gets destroyed (agent, pipeline associations), archiving behavior, and approval requirements. Complete for a complex deletion tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%; parameters are well-described in schema. Description adds minimal extra meaning beyond referencing 'icp_id from get_icps response' and 'companyId' as required. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states the tool deletes an ICP, with specific verb ('delete') and resource ('Ideal Customer Profile'). Distinguishes from other tools by specifying it mirrors the UI's delete action and involves deactivation, stripping, and archiving.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides explicit user triggers: 'delete this ICP', 'remove this customer profile', 'get rid of this persona'. Includes sensitivity/approval context but does not list alternatives or when-not-to-use explicitly.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_ideaBInspect
Delete an idea from Ideas. Can identify by content snippet, ID, or "newest"/"latest".
[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.]
| Name | Required | Description | Default |
|---|---|---|---|
| companyId | No | FreedomOS company id to act within (you must be a member). Required for company-scoped tools. | |
| idea_identifier | Yes | How to find the idea: UUID, content snippet, or "newest"/"latest" for most recent |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Without annotations, the description should disclose destructive nature and consequences. It only mentions 'delete' and the approval process, but not irreversibility or impact on associated data.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences. The first states purpose, the second adds a behavioral note. No wasted words, though the approval note could be more compact.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Provides identification methods and a behavioral note, but lacks details on return values, error conditions, or prerequisites. Adequate but not comprehensive.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, baseline is 3. The description adds a minor clarification about identification methods (content snippet, ID, 'newest'/'latest') but does not significantly extend schema meaning.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states the action 'Delete' and the resource 'idea from Ideas', which is clear and specific. It distinguishes from siblings like 'capture_idea' (create) and 'triage_idea' (categorize).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives like 'capture_idea' or 'triage_idea'. The approval note is useful but does not address usage context or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_key_resultAInspect
Archive a key result (safe delete — recoverable, never hard-deleted). The KR is moved out of the objective's live list into a recoverable archive. Identify by title (preferred) or ID; optionally scope by parent objective. If the title is ambiguous it refuses and lists the matches — pass an ID to disambiguate.
[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.]
| Name | Required | Description | Default |
|---|---|---|---|
| companyId | Yes | FreedomOS company id to act within (you must be a member). Required for company-scoped tools. | |
| objective_id | No | ID of the parent objective (optional) | |
| key_result_id | No | ID of the key result (optional if using key_result_title) | |
| objective_title | No | Title of the parent objective, to scope the search (optional) | |
| key_result_title | No | Title of the key result to archive (use this or key_result_id) |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses safe delete (recoverable), disambiguation refusal, and write-tier approval system. No side effects mentioned, but covers key behavioral traits without annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise paragraphs, front-loaded with core functionality. No unnecessary words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers action, identification, disambiguation, and approvals. Lacks return value info, but no output schema makes it sufficient.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema has 100% coverage; description adds identification guidance and disambiguation context, going beyond schema descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly specifies the tool archives a key result (safe delete, recoverable). Distinguishes from siblings like update_key_result and delete_objective by using 'archive' and 'recoverable'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides explicit identification methods (title or ID) and disambiguation behavior. Lacks direct comparison to sibling tools (e.g., when to use update_key_result instead), but context is sufficient.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_knowledgeAInspect
Archive a knowledge file by slug (soft delete). The file is moved to _archived/ and can be restored later. Use when the user explicitly asks to remove a knowledge document.
[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.]
| Name | Required | Description | Default |
|---|---|---|---|
| slug | Yes | The slug of the knowledge file to delete | |
| companyId | Yes | FreedomOS company id to act within (you must be a member). Required for company-scoped tools. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden. It transparently discloses the soft-delete behavior (archive, moved to _archived/, restorable), the required parameters (slug, companyId), and the write-tier approval requirement via the bracketed note. This fully informs the agent of the tool's effects and constraints.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise at two primary sentences plus a separate bracketed note on approval. The key behavior is front-loaded, but the note slightly disrupts flow. Still, it is efficient with no superfluous text.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description explains the mutation behavior well but lacks information about the return value or success confirmation. Given no output schema, the agent would infer a success message, but explicit mention could reduce ambiguity. Coverage is adequate but not exhaustive.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. The description does not add meaning beyond the schema: it mentions 'by slug' and 'companyId', but the schema already describes these. No additional semantic details like slug format or validation are provided.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool archives (soft deletes) a knowledge file by slug, specifying the move to _archived/ and that it can be restored later. This distinguishes it from sibling tools like update_knowledge_section or share_knowledge, as it is the only tool for deletion.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It explicitly says 'Use when the user explicitly asks to remove a knowledge document,' providing clear context for invocation. However, it does not mention when not to use this tool or any alternatives, such as using update_knowledge_section for deprecation, which would strengthen guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_objectiveAInspect
Archive an objective and its key results (safe delete — recoverable, never hard-deleted). Identify by title (preferred) or ID. If the title matches more than one objective it refuses and lists them — pass an ID to disambiguate.
[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.]
| Name | Required | Description | Default |
|---|---|---|---|
| companyId | Yes | FreedomOS company id to act within (you must be a member). Required for company-scoped tools. | |
| objective_id | No | ID of the objective (optional if using objective_title) | |
| objective_title | No | Title of the objective to archive (use this or objective_id) |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Given no annotations, the description carries full burden. It discloses that deletion is safe and recoverable (never hard-deleted), and explains the refusal behavior on title ambiguity. It does not mention whether archiving is reversible or what the return value looks like, but these are minor gaps.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two short paragraphs, frontloaded with purpose, then behavioral notes. Every sentence adds unique information without redundancy. Efficient and structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description covers purpose, disambiguation, recovery, and approval. It lacks detail on return value or error cases, but for a three-parameter tool with 100% schema coverage, this is reasonably complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Input schema coverage is 100%, but the description adds value by stating that title is preferred and explaining how disambiguation affects ID usage. This goes beyond the schema alone.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool archives (soft deletes) an objective and its key results, distinguishing it from hard deletion. It also explains the disambiguation mechanism when multiple objectives match a title, which differentiates it from similar sibling tools like delete_key_result.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides guidance on when to use title vs ID, including disambiguation. It also mentions the write-tier approval process. However, it could explicitly contrast this tool with delete_key_result or delete_idea to clarify scope.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_tacticAInspect
Archive a tactic (safe delete - recoverable). Can identify by title instead of ID.
[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.]
| Name | Required | Description | Default |
|---|---|---|---|
| companyId | Yes | FreedomOS company id to act within (you must be a member). Required for company-scoped tools. | |
| tactic_id | No | ID of the tactic to archive (optional if using tactic_title) | |
| tactic_title | No | Title of the tactic to archive (use this or tactic_id) |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It discloses the operation is 'safe delete - recoverable', implying non-destructive behavior. It also mentions write-tier approval requirements. However, it fails to specify what 'archiving' entails (e.g., visibility change, data retention period), required permissions, side effects on related data (e.g., associated commitments), or the return value.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description consists of two short sentences and a concise write-tier note. Every sentence adds value: purpose, alternative identification method, and approval behavior. No filler or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers purpose and parameter hint, but given no output schema, it is missing information about return values (e.g., success confirmation) and recovery behavior (how long recoverable?). The write-tier note partially compensates, but overall leaves gaps for a deletion operation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% (all 3 parameters documented in schema). The description adds a hint about using title instead of ID, but this is already implied by the parameter description. The added value is minimal, so baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Archive a tactic') and the resource ('tactic'). It distinguishes this from siblings like 'delete_icp' or 'delete_idea' by specifying it applies to tactics. The phrase 'safe delete - recoverable' adds important nuance about the operation's nature.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly says 'Can identify by title instead of ID', advising on how to use parameters. The write-tier note explains the approval model (first use may require approval, persistent approval makes future calls seamless). It does not include when not to use or alternatives, but provides clear context for usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
deliberateAInspect
Run an adversarial deliberation on a decision. Multiple AI perspectives argue opposing positions over multiple rounds, iteratively strengthening arguments, and converge on a recommendation with confidence scoring. Use for important decisions where you want to stress-test options from multiple angles. Over MCP the deliberation runs in the background: the first call returns a run_id immediately; call deliberate again with { run_id } (plus the same companyId) after ~1-2 minutes to fetch the result.
Routing: Important decision → deliberate for adversarial analysis
| Name | Required | Description | Default |
|---|---|---|---|
| run_id | No | Poll a background deliberation started earlier (MCP mode). Pass the run_id returned by the starting call, with the same companyId. Omit question/positions when polling. | |
| context | No | Goals, constraints, values, and relevant data that should inform the deliberation. The more context, the better the arguments. | |
| criteria | No | Optional weighted evaluation criteria. Each item should have "name" (string) and "weight" (number 0-1, should sum to ~1). If omitted, defaults are generated. | |
| question | No | The decision or question to deliberate. Be specific — e.g., "Should we invest in mobile app development or API partnerships for growth in Q2?" Required unless polling with run_id. | |
| companyId | No | FreedomOS company id to act within (you must be a member). Required for company-scoped tools. | |
| positions | No | Two or more positions to argue. Each should be a clear, distinct option — e.g., ["Mobile app development", "API partnerships", "Content marketing"]. Required unless polling with run_id. | |
| max_rounds | No | Maximum rounds of deliberation (default: 5). More rounds = better arguments but more compute. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, but the description transparently explains the asynchronous behavior: 'first call returns a run_id immediately; call deliberate again... after ~1-2 minutes to fetch the result.' It also describes the multi-round argument process, adding value beyond the schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is somewhat lengthy but well-organized: purpose, usage, async flow, routing. It front-loads the key action and is structured with clear sentences. A minor reduction could improve conciseness, but it remains efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity (async, multiple parameters, no output schema), the description covers the core flow, parameter usage, and rationale. Some details like error handling or maximum wait times are missing, but overall it's sufficiently complete for correct usage.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. The description adds context for parameters, e.g., 'Omit question/positions when polling', 'The more context, the better the arguments', and required conditions. This adds meaningful guidance beyond the schema descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Run an adversarial deliberation on a decision.' It uses a specific verb and resource, and the adversarial deliberation concept is unique among siblings, distinguishing it effectively.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It advises 'Use for important decisions where you want to stress-test options from multiple angles.' It includes a routing note: 'Important decision → deliberate for adversarial analysis.' While it doesn't explicitly mention when not to use, context is clear enough.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
derive_capabilityAInspect
Scan the company's connected source code (its GitHub repo, via the Pulse connection in Smart Tools) and DRAFT a capability list — shipped FEATURES (each citing the file that proves it) plus attempted can't-do LIMITS — for the operator to ratify. It writes NOTHING: only items the operator ratifies become authoritative capability the marketing agents and the Integrity Gate use. Read-only; never executes or sends code. If no repo is connected it tells the operator to connect one in Pulse first. Use to populate or refresh a software product's capabilities without hand-maintaining them.
Routing: Operator wants to pull their product's real features from its code (instead of typing them) → use this
[sensitive-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.]
| Name | Required | Description | Default |
|---|---|---|---|
| companyId | Yes | FreedomOS company id to act within (you must be a member). Required for company-scoped tools. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. It states 'Read-only; never executes or sends code', 'writes NOTHING', details the draft-then-ratify workflow, and explains the sensitive-tier approval process. This is comprehensive behavioral disclosure.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Description is front-loaded with core functionality, followed by routing and approval notes. It could be slightly more concise, but the structure is logical and each part adds value. No redundant statements.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite no output schema, the description fully explains the tool's behavior: scanning code, drafting features with citations, limits, read-only, dependency on repo connection, and the ratification flow. It also covers the error case and authorization notes. Very complete for a tool of this complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Only one parameter 'companyId' with 100% schema description coverage. The description does not add meaning beyond the schema's existing description of the parameter. Baseline 3 is appropriate as the schema already documents it sufficiently.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the tool scans source code and drafts a capability list of features with file citations and limits. It explicitly says 'read-only' and distinguishes itself from manual typing or website scraping via the routing condition. The purpose is specific and distinct from siblings like 'derive_from_website' and 'ratify_capability'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Description provides clear when-to-use guidance: 'Use to populate or refresh a software product's capabilities without hand-maintaining them' and a routing condition. It also mentions prerequisites (repo must be connected) and handles the case where it's not. However, it does not explicitly list alternatives or when not to use this tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
derive_from_websiteAInspect
SPIKE tool (.agent/design-docs/2026-07-09-magical-onboarding-buildout-mode.md, "The Assignment"). Give it a business's public URL; it reads the page and returns a derived ICP, a derived brand voice, and 3 ready-to-post drafts written in that voice — the onboarding lead magnet's engine, spike-grade. Nothing is persisted to any company. Use when your operator asks you to run the website-derivation spike against a real business URL, to show the operator what an agent team can already see about their business.
[sensitive-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.]
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | The business's public URL to derive from (must include https:// or http://) — their homepage or an About/product page. | |
| companyId | No | FreedomOS company id to act within (you must be a member). Required for company-scoped tools. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. It discloses that nothing is persisted, notes sensitivity and approval requirements, and labels itself as a 'SPIKE tool'. Still lacks some details like rate limits or error handling, but provides key behavioral context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is longer than ideal, containing a spike tool label, output details, persistence statement, usage guidance, and a sensitivity note. While structured, it could be more concise by reducing redundancy (e.g., multiple references to 'spike').
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema, but description explains return: ICP, brand voice, 3 drafts. Covers persistence and approval. Missing details on error handling or URL validation, but sufficient for understanding the tool's primary behavior.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline 3. The description adds context for url (must include https/http, suggests homepage or About page) and for companyId (required for company-scoped tools). This goes beyond the schema's brief descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it reads a business URL and returns a derived ICP, brand voice, and 3 drafts. This is a specific verb+resource+output, differentiating it from sibling tools like browse_url that only read a page without analysis.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly says to use when the operator asks to run the website-derivation spike against a real URL to show what can be seen about the business. However, it does not include when-not-to-use or explicitly mention alternatives, though the 'spike' nature implies limited production use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
draft_outreachAInspect
Produce two outreach draft variants (A/B) for a lead given an angle. Both drafts are warm and kind by design (P10) — variants differ in angle of helpfulness (subject hook, opening framing, call-to-action) not in tone. Drafts are written to lead_drafts as pending_review. Returns IDs + previews. Use after synthesize_lead_hypothesis to draft initial outreach.
[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.]
| Name | Required | Description | Default |
|---|---|---|---|
| angle | Yes | The outreach angle to use (e.g., 'deeper_lp3_discovery', 'lighter_touch_different_hook', 'jurisdiction_clarification', 'kind_check_in'). Take from synthesize_lead_hypothesis.suggested_angle if unsure. | |
| lead_id | Yes | UUID of the lead. | |
| reply_to | No | Optional Reply-To address to carry on the eventual send (CONTRACT-1 agent thread address). Stamped into both drafts' metadata (best-effort — the metadata column is additive); send_lead_draft reads it at send time and passes it to send_email. Never changes what is drafted. | |
| companyId | Yes | FreedomOS company id to act within (you must be a member). Required for company-scoped tools. | |
| from_name | No | Optional sender display name (e.g., 'Acme Team', 'Alex at Acme'). Used in draft signature. When omitted, the CONTRACT-5 chain resolves it: the company's mcp_connections.resend.auth_config.from_name, else a generic 'Team'. Sequence callers pass the sequence's owning agent's name here (the top of the chain). | |
| eligible_at | No | Optional ISO timestamp — the earliest real time this draft may be sent (2026-07-13 send-timing gate). For a sequence step, pass now + that step's delay_hours (an ESTIMATE; the send-gate re-stamps it to the real value once the prior step actually resolves). Omitted → eligible immediately (the correct default for step 1 and for manual one-off drafts). | |
| sequence_id | No | Optional. The outreach_sequences.id the step belongs to. Pass it together with sequence_step_id to enable the A/B prior-stats bias — step ids repeat across sequences (step1…stepN), so stats are only comparable within one sequence. Also persisted on the draft row so the send-gate can resolve "the next step's draft" by an exact join instead of guessing. Omitted → no bias, no sequence linkage (manual one-off draft). | |
| company_context | No | Optional short summary of the company the lead arrived at (e.g., 'Acme Health — pharmacy compounding compliance consulting'). Helps the model pitch correctly. | |
| journey_summary | Yes | Short prose summary of what we know about this lead (their state, recent activity, what they engaged with). Used as context for the draft. Synthesis.intent_summary + 1-2 notes works well. | |
| sequence_step_id | No | Optional. If this draft is part of an auto-mode sequence step, pass the step_id from outreach_sequences. Otherwise omit (manual one-off draft). | |
| regenerated_reason | No | Optional (regenerate-on-signal, 2026-07-15). When the sequencer re-drafts a not-yet-sent step after a meaningful lead signal (temperature flip to hot, a click), it passes a short human-readable reason (e.g. 'redrafted after they clicked'). Stamped into both drafts' metadata.regenerated_reason so the review card can show WHY the copy was refreshed. Never changes drafting logic — provenance only. | |
| variant_b_guidance | No | Optional (CONTRACT-3). Sequence-designed seed for the B variant — a distilled subject+body angle persisted on the sequence step (steps jsonb, additive variant_b_guidance key). When present, variant_b is grounded in this guidance while variant_a stays the model's best independent take on the main angle. Omitted → both variants generated exactly as before. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden. It discloses that drafts are written to lead_drafts as pending_review, returns IDs+previews, and mentions the write-tier approval requirement. But it lacks details on side effects, idempotency, or error conditions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise, front-loaded with the core action, and no wasted words. The second paragraph adds important behavioral context efficiently.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 12-parameter tool with no output schema, the description covers purpose, usage context, tone, variant details, and approval requirement. It could be more complete by explaining failure modes or relationship to other tools beyond synthesis.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3. The description does not add parameter-level detail beyond the schema; it focuses on overall tool behavior.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool produces two outreach draft variants (A/B) for a lead given an angle, specifying the resource, action, and output. It distinguishes from sibling tools like synthesize_lead_hypothesis and send_lead_draft.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It explicitly advises using this tool after synthesize_lead_hypothesis, providing clear context. However, it does not mention when not to use or list alternatives beyond this sequence.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
draft_tenet_from_signalAInspect
Draft a company tenet (mission or vision) FROM the company's existing website, for the operator to ratify or edit — instead of asking them to type it into a blank field. Use when a tenet is empty but the company already exists (has a website). Returns a DRAFT proposal with evidence and a confidence level; it writes NOTHING — the operator authors by confirming (Slice-3 update_company). The agent is a mirror, not an author: the draft is grounded in the site, never invented.
[sensitive-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.]
| Name | Required | Description | Default |
|---|---|---|---|
| tenet | Yes | Which tenet to draft from the website signal | |
| companyId | Yes | FreedomOS company id to act within (you must be a member). Required for company-scoped tools. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description fully discloses behavior: it drafts from the website, returns a draft with evidence and confidence, writes nothing, requires operator confirmation, and mentions the sensitive-tier approval process. It also states the agent is a mirror not an author, ensuring correct expectations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and well-structured: first paragraph explains core behavior and use case, second paragraph provides important security context. Every sentence serves a purpose with no redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite no output schema, the description effectively communicates the return value (DRAFT proposal with evidence and confidence), the ratification workflow, and the approval tier. This is sufficient for an agent to understand and use the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage, so the description adds minimal value beyond restating the tenet enum and companyId requirement. No examples, constraints, or additional context are provided.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool drafts a company tenet (mission or vision) from the company's existing website. The verb 'draft' and resource 'tenet' are specific, and the description distinguishes it from simply creating or updating a tenet directly by emphasizing it's a draft for ratification.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states 'Use when a tenet is empty but the company already exists (has a website).' Provides context that it avoids blank fields and returns a draft for operator confirmation. Lacks explicit mention of when not to use or alternative tools, but the guidance is clear enough.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
generate_carouselAInspect
Render a multi-slide image carousel + a LinkedIn-PDF from structured slide copy. Text (including the cited answer) is rendered as REAL, legible text — never the garbled in-frame text AI image/video models produce. Use for value-demonstration B2B content (the cited-answer overlay, peer-proof decks). Produces artifacts only; publish via send_to_user(intent:"publish").
Routing: Carousel / slide deck / LinkedIn PDF / legible cited-answer overlay → use this (the text stays sharp; $0).
[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.]
| Name | Required | Description | Default |
|---|---|---|---|
| theme | No | Visual theme. Defaults to brand (dark canvas + accent). | |
| folder | No | Optional Media gallery folder to file this carousel into (freeform name, e.g. "q3-campaign"). Shown as a folder chip on the /media page. Reuse an existing folder name when the work belongs to it. | |
| format | No | Slide dimensions. linkedin_portrait (1080×1350, 4:5, default — best LinkedIn engagement), square (1080×1080), wide (1280×720). | |
| slides | Yes | Ordered slides. Each: { kicker?, title (required), body?, citation? }. 3–8 ideal, max 12. | |
| caption | Yes | The post caption that accompanies the carousel. Combined with the slide copy into the gate-text the ICP+Pledge gate scores. | |
| companyId | Yes | FreedomOS company id to act within (you must be a member). Required for company-scoped tools. | |
| accent_hex | No | Optional brand accent color as 6-digit hex (e.g. "#F97316"). Pass the tenant's brand color. Defaults per theme. | |
| brand_label | No | Optional per-tenant wordmark shown in the slide footer (e.g. your company name). Pass YOUR company's label only. Omit to render no wordmark — never a hardcoded brand. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden. It discloses that text is rendered as real legible text (differentiator), that it only produces artifacts requiring separate publishing via send_to_user, and mentions an approval gate (write-tier). It does not cover side effects or destructive behavior, but the description adds useful context beyond the schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is fairly long but front-loaded with the core purpose. It uses bullet points for routing and approval info, which aids readability. Slight redundancy in the routing section could be trimmed, but overall it is well-organized.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity (8 parameters, no output schema), the description explains input semantics well but lacks details about output format (e.g., artifact type, how to access the generated carousel/PDF). The absence of output schema makes this gap more significant.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, and the description adds significant meaning: for slides it gives ideal range (3-8, max 12), for citation it specifies 'GENUINE external source ONLY' and warns against prefixing with 'Source:', for accent_hex it says to pass tenant's brand color, and for brand_label it says pass your company's label only. These details go well beyond the schema descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool renders a multi-slide image carousel and LinkedIn-PDF from structured slide copy, emphasizing legible text which distinguishes it from AI image/video tools that produce garbled text. It also specifies use cases (value-demonstration B2B content) and routing, making the purpose unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly states when to use this tool (carousel/slide deck/PDF/legible cited-answer overlay) and includes a routing hint. However, it does not explicitly list alternative tools or conditions when not to use it, though the context implies differentiation from other image generation tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
generate_image_xaiAInspect
Generate or EDIT an image using xAI Imagine (Quality Mode default — highest live API fidelity; closest to consumer Image 2.0 until API ships a 2.0 model id). Photorealistic, illustrations, flat graphics, icons, banners. 1K/2K. Single or multi-image edit (≤3 refs via artifact_ids / reference_image_urls). Use model_tier=standard only for cheap drafts.
Routing: ALL image generation and editing → use this (2 credits). Quality default; multi-ref composite via artifact_ids.
[sensitive-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.]
| Name | Required | Description | Default |
|---|---|---|---|
| folder | No | Optional Media gallery folder to file this image into (freeform name, e.g. "q3-campaign" or "brand-assets"). Shown as a folder chip on the /media page so the operator can find it later. Reuse an existing folder name when the work belongs to it. | |
| prompt | Yes | Detailed description of the image. Include lighting, camera angle, environment, style, and subject details. | |
| companyId | Yes | FreedomOS company id to act within (you must be a member). Required for company-scoped tools. | |
| model_tier | No | quality (default, best fidelity) or standard (cheaper draft). Prefer quality for customer-facing work. | |
| resolution | No | Output resolution. 1k (default) or 2k (print/pro). | |
| artifact_id | No | ID of an existing artifact to edit. Prefer over raw URLs (company-scoped resolve). | |
| folder_name | No | Subfolder name for Drive save (e.g. "Product Shots", "Headshots"). Only used when save_to_drive is true. | |
| artifact_ids | No | Multiple artifact IDs for multi-ref edit/composite (max 3). | |
| aspect_ratio | No | Aspect ratio. Defaults to 1:1. Use "auto" to let the model choose. | |
| save_to_drive | No | If true, also save the image to Google Drive for permanent storage. Defaults to false. | |
| reference_image_url | No | URL of an existing image to EDIT. Prefer artifact_id when possible. | |
| reference_image_urls | No | Multiple source image URLs for multi-ref edit/composite (max 3). Prefer artifact_ids. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so the description carries full responsibility. It discloses default behavior (Quality Mode, highest live API fidelity), capability boundaries (max 3 refs, 1K/2K), and operational caveats (first use may require manager approval, approval type implications). It also explains the model_tier tradeoff and routing priority, offering rich behavioral context well beyond the schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is somewhat long but densely packed with useful information. It opens with the core function, then lists capabilities, routing, and approval notes. Each section earns its place, though some redundancy with the schema exists (e.g., 'Use model_tier=standard only for cheap drafts' mirrors schema text). Overall well-structured and front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With 12 parameters, no output schema, and no annotations, the description covers the key behavioral aspects: generation/edit, quality/resolution, multi-ref limits, routing, and approval workflow. It omits some details like return values or save_to_drive behavior, but these are covered in the schema. Given the tool's complexity, the description is sufficiently complete for an agent to use it confidently.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, and schema descriptions already explain most parameters with detail. The description adds value by clarifying the meaning of model_tier in context ('Quality Mode default — highest live API fidelity; closest to consumer Image 2.0') and reinforcing the multi-ref composite pattern via artifact_ids. It doesn't reinvent parameter semantics but enriches the selection rationale.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb+resource: 'Generate or EDIT an image using xAI Imagine.' It enumerates supported styles (photorealistic, illustrations, flat graphics, icons, banners), resolutions (1K/2K), and editing capabilities (single or multi-image edit with ≤3 refs). It explicitly designates itself as the routing hub for ALL image generation and editing, distinguishing it from siblings like generate_vector_image and generate_video.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides explicit routing: 'ALL image generation and editing → use this (2 credits).' It also gives conditional guidance: 'Use model_tier=standard only for cheap drafts' and warns about the sensitive-tier approval requirement. This tells the agent when to choose this tool and how to adjust parameters based on use case.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
generate_key_resultsAInspect
Generate intelligent, context-aware key result suggestions for an objective. Uses company mission, vision, financials, and existing KRs to produce high-quality suggestions tied to north star metrics. Returns suggestions that you can then create with create_key_result.
[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.]
| Name | Required | Description | Default |
|---|---|---|---|
| companyId | Yes | FreedomOS company id to act within (you must be a member). Required for company-scoped tools. | |
| objective_id | No | ID of the objective (optional if using objective_title) | |
| objective_title | No | Title of the objective to generate key results for (use this or objective_id) |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description carries full weight. It discloses that it uses company data, returns suggestions, and includes an important behavioral note about write-tier approval requirements (first use may require manager approval, with options for ongoing or one-time approval). There is no contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise, with two clear paragraphs: the first explains the tool's functionality and value, the second provides behavioral notes. No unnecessary words, though the approval note could be slightly more integrated.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema, the description adequately explains the return (suggestions for use with create_key_result) and the input context (mission, vision, financials, existing KRs). It covers main aspects but lacks details on edge cases or limitations.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with each parameter described. The description reiterates that suggestions are generated for an objective (matching objective_id/objective_title) but adds no new parameter-level details beyond the schema. Baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly specifies the verb 'Generate' and the resource 'key result suggestions for an objective', and distinguishes itself from sibling tools like 'create_key_result' by stating it returns suggestions that can then be created. It also details the context used (mission, vision, financials, existing KRs).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It provides a clear workflow: generate suggestions then use create_key_result. However, it does not explicitly state when not to use this tool or compare to alternatives like get_okrs or update_key_result, which would improve guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
generate_tacticsAInspect
Generate AND save 5 grounded growth tactics for a 4-F category, composed from the company mission/vision, OKRs, and ICP customer profile. Persists them as growth_tactics (optionally bound to an objective, key result, and lane). Use when an agent should author concrete tactics for a goal — not just brainstorm.
[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.]
| Name | Required | Description | Default |
|---|---|---|---|
| lane_id | No | Optional lane UUID running these tactics (validated against this company). | |
| category | Yes | Growth category (4-F spine): flow=Leads, funnel=Conversion, flourish=LTV/retention, freedom=time/automation. | |
| companyId | Yes | FreedomOS company id to act within (you must be a member). Required for company-scoped tools. | |
| userPrompt | Yes | The focus/request the tactics must address (e.g. "fill the top of funnel for our pharmacy ICP"). | |
| linked_kr_id | No | Optional key-result id (within the bound objective) the tactics most advance. | |
| objective_id | No | Optional OKR objective UUID to bind these tactics to (validated against this company). |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It discloses the write-tier approval behavior and persistence, but does not detail side effects, error handling, or idempotency. This is adequate but not comprehensive.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise, with two short paragraphs. The first paragraph clearly states the purpose, and the second adds practical approval context. There is no redundancy or unnecessary words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (6 parameters, no output schema), the description covers generation, saving, optional bindings, and approval. It lacks return value details but is otherwise sufficient for an agent to understand the tool's function.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. The description adds no additional meaning beyond the schema for parameters like userPrompt, category, etc. It merely restates the enum categories.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb (generate and save), the resource (growth tactics), and the constraints (5 grounded tactics for a 4-F category). It distinguishes from sibling 'create_tactic' by specifying batch generation and persistence.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description tells when to use ('when an agent should author concrete tactics for a goal — not just brainstorm') and provides context with write-tier approval notes. However, it does not explicitly mention when not to use or name alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
generate_vector_imageAInspect
Generate a native SVG vector image using Recraft V4 Pro Vector. The ONLY tool that outputs true SVG with editable paths. Best for logos, icons, brand marks, vector illustrations, and scalable graphics for Framer animations.
Routing: SVG/vector/logo/icon/brand mark/scalable graphics → use this (3 credits)
[sensitive-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.]
| Name | Required | Description | Default |
|---|---|---|---|
| size | No | Size in WxH format (e.g., "1024x1024") or aspect ratio (e.g., "1:1", "16:9"). Defaults to 1024x1024. | |
| folder | No | Optional Media gallery folder to file this into (freeform name, e.g. "q3-campaign" or "brand-assets"). Shown as a folder chip on the /media page. Reuse an existing folder name when the work belongs to it. | |
| prompt | Yes | Detailed description of the vector image. Include style, colors, subject, composition. Be specific about the visual style — "minimalist line art logo", "flat vector icon", "geometric brand mark". | |
| companyId | Yes | FreedomOS company id to act within (you must be a member). Required for company-scoped tools. | |
| folder_name | No | Subfolder name for Drive save (e.g., "Logos", "Icons", "Brand"). Only used when save_to_drive is true. | |
| save_to_drive | No | If true, also save the SVG to Google Drive for permanent storage. Defaults to false. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It discloses the model used, credit cost, and approval process (first use may require a manager's approval, with types of approval explained). However, it does not detail what happens to the generated SVG (e.g., storage, retrievability) or clarify if the tool is destructive or idempotent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise, front-loading the core purpose and unique selling point within the first sentence. It efficiently covers use cases, routing, credit cost, and approval details in a few sentences without unnecessary fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has 6 parameters, no output schema, and no annotations, the description explains the output type (SVG with editable paths) and use cases well. However, it omits how the generated SVG is returned (e.g., URL, file) and does not address how to handle the output, which is essential for an agent. Also lacks mention of any side effects or state changes.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the input schema already clearly describes all 6 parameters. The description adds no additional parameter-specific meaning beyond what the schema provides. Baseline 3 is appropriate as the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it generates native SVG vector images using Recraft V4 Pro Vector, explicitly claims it is the ONLY tool that outputs true SVG with editable paths, and lists specific use cases like logos, icons, and brand marks. This distinguishes it well from sibling image generation tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides explicit routing ('SVG/vector/logo/icon/brand mark/scalable graphics → use this') and mentions credit cost (3 credits) and sensitivity tier with manager approval, but lacks explicit 'when not to use' or direct comparison to alternatives like generate_image_xai. However, the unique claim of being the only SVG tool makes usage clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
generate_videoAInspect
Generate a video clip for the company (xAI Imagine Video 1.5, 3 credits): text-to-video, image-to-video, multi-image reference (up to 7), or video edit with native audio. Use when an operator or agent needs social, product, narrated, or brand video up to 15s / 1080p. Prefer this over Veo unless the user asks for Veo specifically.
[sensitive-tier, initiates a multi-step agent process — 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.]
| Name | Required | Description | Default |
|---|---|---|---|
| prompt | Yes | Detailed description of the video to generate. Include visual scene, audio/voice direction, mood, and brand elements. For multi-image: describe how the subjects from each image interact. For video editing: describe the changes to make. | |
| duration | No | Video duration in seconds (1–15, primitive max). Use the length the shot needs — not an FO soft cap. Default 5 only when omitted. Not supported for video editing. | |
| companyId | Yes | FreedomOS company id to act within (you must be a member). Required for company-scoped tools. | |
| image_url | No | URL of a single still image to animate (image-to-video mode). Use image_url from a previous generate_image result. For multiple images, use image_urls instead. | |
| video_url | No | URL of an existing video to edit (video editing mode). Describe the edits in the prompt. Input capped at 8.7 seconds (primitive). | |
| image_urls | No | Array of image URLs (up to 7, primitive max) for reference-to-video. Combine mascot, person, product, brand assets. Use signed URLs from MEDIA IN THIS CONVERSATION. For a single image, use image_url instead. | |
| resolution | No | Video resolution. 480p (fast draft), 720p (HD), 1080p (full HD on text-to-video and image-to-video). Reference-to-video is automatically clamped to 720p (primitive). Not supported for video editing. | |
| artifact_id | No | ID of a single existing artifact from the MEDIA IN THIS CONVERSATION block. The system resolves a fresh signed URL and auto-detects: image artifacts → image-to-video, video artifacts → video editing. For multiple images, use artifact_ids instead. | |
| artifact_ids | No | Array of artifact IDs (up to 7, primitive max) for reference-to-video. System resolves fresh signed URLs for each. | |
| aspect_ratio | No | Aspect ratio. Default: 16:9. For image-to-video, defaults to the input image ratio. Not supported for video editing. | |
| save_to_drive | No | If true, also save the video to Google Drive. Defaults to false. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full responsibility for disclosing side effects and constraints. It reveals the model (xAI Imagine Video 1.5), credit cost (3 credits), duration/resolution caps, and the sensitive-tier approval flow ('first use may require a manager's approval...'). It also notes that it 'initiates a multi-step agent process,' which sets expectations for asynchronous or chained behavior. This is thorough transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded, starting with the core function and mode list, then usage guidance, then the approval caveat. Each sentence adds distinct value, and the sensitive-tier note is integrated without unnecessary fluff. It is appropriately sized for a complex tool with 11 parameters.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description is highly complete for a tool with no output schema and no annotations. It covers the main modes, usage scenarios, credit cost, resolution/duration limits, and the approval gating. The schema fully handles parameter details, so the description's coverage of operational constraints and decision-relevant context is sufficient. The only minor omission is the exact return format, but that is not critical given the schema's richness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% coverage with detailed parameter descriptions, so the baseline is 3. The tool description adds no additional parameter-specific semantics beyond what the schema already states; e.g., 'multi-image reference (up to 7)' duplicates the image_urls schema, and 'up to 15s / 1080p' mirrors duration/resolution constraints. It doesn't clarify relationships between modes and parameters beyond what the schema already implies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool generates video clips and enumerates the supported modes: text-to-video, image-to-video, multi-image reference, and video edit with native audio. It also explicitly differentiates from the sibling tool generate_video_veo by saying 'Prefer this over Veo unless the user asks for Veo specifically.' This gives a specific verb, resource, and scope.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit usage context: 'Use when an operator or agent needs social, product, narrated, or brand video up to 15s / 1080p.' It also names the alternative (Veo) and gives a clear rule for when to choose it, plus mentions the sensitive-tier approval process, which is crucial for when the tool can be invoked.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
generate_video_veoAInspect
Generate a high-fidelity cinematic video using Google Veo 3.1 (5 credits). Premium quality with realistic physics and cinematic lighting. Use ONLY for final deliverables — landing page videos, polished ad creatives, brand content. NEVER use for first drafts. Always iterate with generate_video first, then upgrade to Veo for the final version.
[sensitive-tier, initiates a multi-step agent process — 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.]
| Name | Required | Description | Default |
|---|---|---|---|
| prompt | Yes | Detailed cinematic description of the video. Include visual scene, camera direction, lighting, audio, and brand elements. | |
| quality | No | Quality mode. "fast" for quick previews, "cinematic" (default) for premium quality. | |
| companyId | Yes | FreedomOS company id to act within (you must be a member). Required for company-scoped tools. | |
| aspect_ratio | No | Aspect ratio. 16:9 for landscape, 9:16 for vertical/Reels, 1:1 for square. | |
| save_to_drive | No | If true, also save the video to Google Drive. Defaults to false. | |
| reference_image_url | No | Optional URL of an image to animate (image-to-video). Use the image_url from a previous generate_image result. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses credit cost (5 credits), premium quality features (realistic physics, cinematic lighting), and sensitive-tier approval requirement. However, does not describe the output format or potential side effects beyond generation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two clear paragraphs: first describes tool and usage rules, second adds approval context. Slightly cluttered by brackets in second paragraph, but overall efficient and front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers core usage, parameters, and constraints well. Missing description of the output (e.g., returns a video URL or file reference), which would be helpful given no output schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Adds meaningful guidance beyond schema: details what to include in prompt (scene, camera, lighting, audio, brand), explains quality modes and aspect ratios, and clarifies reference_image_url usage for image-to-video.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states the tool generates high-fidelity cinematic videos using Google Veo 3.1, distinguishing it from the sibling tool generate_video by specifying premium quality and final-deliverable usage.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly advises when to use (final deliverables) and when not (first drafts), provides a clear workflow (iterate with generate_video first, then upgrade), and includes approval context for multi-step process.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_activity_healthAInspect
Audit all agent activities for staleness, business outcome alignment, and cross-agent overlap. Shows per-activity run count, quality scores, approval rates, and flags activities that may need retirement or adjustment. Use this to apply first principles: question every activity before optimizing it.
| Name | Required | Description | Default |
|---|---|---|---|
| companyId | Yes | FreedomOS company id to act within (you must be a member). Required for company-scoped tools. | |
| company_id | No | Company ID to audit. Usually auto-injected from context. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It describes outputs (metrics, flags) but does not explicitly state whether the tool is read-only or if it has side effects. This is adequate but not fully transparent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences front-load the purpose and key outputs, with no extraneous text. Every sentence adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers what the tool does and what it shows, but given no output schema, it lacks details on return format or pagination. However, for a health audit tool, it is reasonably complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the description adds minimal value by noting that company_id is usually auto-injected. This is a baseline score as the schema already documents both parameters sufficiently.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool audits agent activities for staleness, business outcome alignment, and cross-agent overlap, listing specific metrics. It distinguishes from sibling tools like add/update/remove_agent_activity by focusing on health assessment.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context for when to use (auditing health) and includes a philosophical principle ('first principles'), but does not explicitly mention when not to use or compare with alternatives like list_my_work.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_actuals_vs_budgetAInspect
Compare actual financial results to budget/projections. Shows variance analysis.
| Name | Required | Description | Default |
|---|---|---|---|
| period | No | Time period for comparison | |
| companyId | Yes | FreedomOS company id to act within (you must be a member). Required for company-scoped tools. | |
| fiscal_year | No | The fiscal year to query |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description implies a read-only operation by stating 'Shows variance analysis', but does not explicitly declare non-destructive behavior. With no annotations, the description should be more explicit about side effects, permissions, or data mutability.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, 13 words total, no fluff. Every sentence adds value: the first states the primary action, the second adds key detail (variance analysis).
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description tells what the tool does but not the structure of the output (e.g., format, breakdown). With no output schema, more detail on return values would be needed for full completeness. The description is adequate for a simple tool but lacks output specifics.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
All parameters are described in the input schema with 100% coverage. The tool description adds no additional meaning or context beyond the schema, so baseline score of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Compare' and the resource 'actual financial results to budget/projections', and adds 'variance analysis' for specificity. This distinguishes it from sibling financial tools like get_financial_summary or get_projection.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives such as get_financial_summary or get_projection. No context on prerequisites or exclusions is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_ads_performanceAInspect
Get Meta ads results: spend, impressions, clicks, CTR, CPC, CPM, reach, conversions (actions), cost per action, and purchase ROAS — at account, campaign, adset, or ad level over a chosen window. Use when the user asks how their Facebook/Instagram ads are doing, what they spent, or what it returned.
| Name | Required | Description | Default |
|---|---|---|---|
| level | No | Aggregation level: 'account', 'campaign' (default), 'adset', or 'ad'. | |
| companyId | Yes | FreedomOS company id to act within (you must be a member). Required for company-scoped tools. | |
| time_range | No | Exact window: { since: 'YYYY-MM-DD', until: 'YYYY-MM-DD' }. Mutually exclusive with date_preset. | |
| campaign_id | No | Optional: scope the report to one campaign (id from list_ad_campaigns). | |
| date_preset | No | Reporting window preset, e.g. 'last_7d', 'last_30d' (default), 'this_month', 'lifetime'. Mutually exclusive with time_range. | |
| ad_account_id | No | Ad account id (act_<digits> or bare digits). Optional when the connection has exactly one ad account. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It describes the returned metrics but does not disclose behavioral traits such as rate limits, authentication requirements, data freshness, pagination, or error handling. For a read-only tool, this is acceptable but could be improved.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences: the first lists the metrics and structure, the second gives usage context. No unnecessary words, fully front-loaded with essential information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description compensates by listing the metrics. It covers the core functionality (metrics, levels, time range) and usage context. Lacks details on error conditions or permissions, but is largely complete for a read-only tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the input schema already documents all parameters. The description adds marginal value by restating the aggregation levels ('account', 'campaign', 'adset', 'ad') and the time window concept, but does not enrich beyond what the schema provides. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description explicitly states the tool gets Meta ads results, lists the metrics (spend, impressions, clicks, etc.), and specifies the aggregation levels (account, campaign, adset, ad) and time window. It also distinguishes itself from sibling tools like get_page_performance or get_search_performance by focusing on ad performance.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description clearly tells when to use the tool: 'Use when the user asks how their Facebook/Instagram ads are doing, what they spent, or what it returned.' It does not explicitly mention when not to use or provide alternatives, but the context is clear and sufficient.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_agent_outcome_panelAInspect
Per-agent "what did the compute buy" facts for the operator: trailing-14-day credits, runs (with self-maintenance share), human-accepted vs denied outputs, pending cards, last-accepted date, and a playing-house flag (activity with zero accepted output). Use when the operator asks whether an agent is worth its spend, what an agent has been doing, or why credits are being used — for executives and managers reviewing their AI team.
| Name | Required | Description | Default |
|---|---|---|---|
| agent_id | No | Optional: limit to one agent (uuid). Omit for the whole team. | |
| companyId | Yes | FreedomOS company id to act within (you must be a member). Required for company-scoped tools. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the burden. It implies read-only behavior and scope (trailing 14 days, per-agent or team). It could mention that it's non-destructive, but the context is clear.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence but contains all key information without redundancy. It could be slightly better structured (e.g., separate usage case), but it is efficient and front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema, the description lists returned metrics adequately. It covers purpose, usage, parameters, and behavioral scope. It might benefit from mentioning output format but is complete enough for this tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and both parameters have descriptions. The tool description does not add additional parameter meaning beyond what is in the schema, so baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool provides per-agent 'what did the compute buy' facts, listing specific metrics. It distinguishes from siblings like get_agent_performance and get_credit_usage by focusing on cost-value analysis.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It explicitly says when to use: when the operator asks about agent worth, activity, or credit usage, targeting executives and managers. It does not mention exclusions but provides strong contextual guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_agent_performanceAInspect
Get detailed performance stats for a specific agent: run count, quality scores, approval/denial rates, error count, recent errors with context, and slowest runs. Use this to audit agent health, trace problems, and identify improvement opportunities.
| Name | Required | Description | Default |
|---|---|---|---|
| days | No | Lookback window in days (default: 30) | |
| companyId | Yes | FreedomOS company id to act within (you must be a member). Required for company-scoped tools. | |
| agent_name | Yes | Name of the agent to audit |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden for behavioral traits. It implies a read-only operation ('Get...'), but does not explicitly confirm no side effects, required permissions, or error scenarios. Adding details about mutation or rate limits would improve transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Extremely concise: two sentences with no redundant words. The first sentence lists key output fields, the second explains use cases. Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema, the description compensates by listing the categories of returned stats (run count, quality scores, etc.). It covers the essential purpose and output shape, though it omits return format details and error handling. For a 3-param tool, this is reasonably complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description does not add extra meaning to the parameters (days, companyId, agent_name) beyond what the schema already provides. No parameter confusion, but no added value.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the specific verb 'Get' and resource 'detailed performance stats for a specific agent', listing concrete metrics (run count, quality scores, etc.). It distinguishes itself from sibling tools like get_activity_health or get_agent_outcome_panel by enumerating unique output fields.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides straightforward usage guidance: 'Use this to audit agent health, trace problems, and identify improvement opportunities.' While it doesn't explicitly state when not to use or name alternatives, the context is clear enough for an agent to decide between this and similar tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_artifactsAInspect
Get saved artifacts for the company. Use to review past screenshots, analyses, and reports. Filters by artifact type, source URL, or agent.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum artifacts to return (default: 10) | |
| companyId | Yes | FreedomOS company id to act within (you must be a member). Required for company-scoped tools. | |
| source_url | No | Filter by source URL (partial match) | |
| artifact_type | No | Filter by artifact type | |
| created_by_agent | No | Filter by agent that created the artifact |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so the description carries full burden. It states the tool retrieves saved artifacts and supports filtering, implying a read-only operation. However, it does not disclose potential limitations like pagination, performance characteristics, or authentication requirements beyond the required companyId.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loaded with the primary purpose. Every word adds value with no redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the rich schema (100% coverage) and no output schema, the description is fairly complete. It covers the purpose, filters, and retrieval scope. Missing details like return format are not critical for this simple retrieval tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% (each parameter has a description). The description adds 'Filters by artifact type, source URL, or agent', which reinforces the parameters but does not add deeper meaning beyond their schema descriptions. According to guidelines, high coverage sets baseline 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Get', resource 'artifacts', and scope 'for the company'. It also lists the types of artifacts (screenshots, analyses, reports) and mentions filtering capabilities, differentiating it from sibling tools like 'save_artifact' and other get_* tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly states the use case: 'Use to review past screenshots, analyses, and reports.' It provides clear context for when to use the tool, though it does not explicitly mention when not to use it or alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_attention_budgetAInspect
THE tool for the founder's attention budget — the operator-set ceiling on pending review cards before they are 'overloaded' (e.g. "what's my attention budget?", "how many pending cards is too many?", "is my overload threshold the default?"). Returns max_pending_cards and is_default (whether it's still the default 7 or operator-set). This is the ceiling get_team_pulse's overload_signal compares against; it is NOT in company settings or get_company — this is the only tool that has it, so call it directly. For the Chief of Staff / the founder.
| Name | Required | Description | Default |
|---|---|---|---|
| companyId | Yes | FreedomOS company id to act within (you must be a member). Required for company-scoped tools. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses return fields and that it is a ceiling for overload detection. No annotations provided, but description adds value beyond schema. Implicitly a read operation; no side effects are mentioned, which is acceptable.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Well-structured, starts with a strong purpose statement, includes usage examples and differentiation from other tools. Every sentence adds value without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite no output schema, the description fully explains return values and their semantics. Contextual signals (1 param, no output schema) are fully addressed by the description's detail on what it returns and how it relates to other tools.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Only one parameter (companyId) with 100% schema coverage. Description does not add additional meaning about the parameter, but schema already covers it adequately.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states it returns max_pending_cards and is_default for the founder's attention budget. Distinguishes from get_team_pulse and company settings, making the purpose unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides explicit usage examples (e.g., 'what's my attention budget?') and states it should be called directly, not via get_company. Specifies audience (Chief of Staff/founder) and differentiates from get_team_pulse.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_attention_questAInspect
Speech-safe Quest Log strip for voice CoS (N5). One call returns: primary next move (featured Command Center card when companyId given, else top host that needs you), needs_you hosts, running host count, and work_units (sessions · lab_work cascade · ship-seat open PRs — same inventory as Quest Work rail). Prefer this when the operator asks "what's next", "what's in Quest Log", "what needs me", "where is PR N", or after open — instead of inventing SPA state. Never speak card/session UUIDs; use spoken labels only. For ship-seat PR titles match work_units.label / work_units.pr.
| Name | Required | Description | Default |
|---|---|---|---|
| companyId | No | Optional active company for featured card pick. Omit for host-only board (still returns needs_you + running). | |
| company_id | No | Alias of companyId |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full weight. It discloses important behavioral traits: it is 'Speech-safe', instructs to 'Never speak card/session UUIDs; use spoken labels only', and notes that work_units mirrors the 'Quest Work rail' inventory. It lacks explicit read-only or side-effect disclosure, but the 'returns' phrasing implies a safe read, warranting a slight deduction.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with a concise summary ('Speech-safe Quest Log strip'), followed by a structured list of return items and usage notes. Though dense and somewhat run-on, each sentence carries essential information with no fluff, so it earns a 4 rather than a 5.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description fully compensates by enumerating the exact return components ('primary next move', 'needs_you hosts', 'running host count', 'work_units') and explaining conditional behavior based on companyId. It also provides domain-specific context (voice CoS, Quest Work rail) and speech-safety rules, making it highly complete for a complex tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3. The description adds behavioral nuance beyond the schema: companyId controls whether the featured card is a Command Center card or a host, and omitting it 'returns needs_you + running' board. This enriches the bare schema descriptions without fully explaining both aliases, so a 4 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it is a 'Speech-safe Quest Log strip' that returns a specific set of items (primary next move, needs_you hosts, running host count, work_units), distinguishing it from generic 'get' tools. It also directly addresses common operator queries ('what's next', 'where is PR N'), making its purpose unmistakable.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicit usage guidance is provided: 'Prefer this when the operator asks "what's next", "what's in Quest Log", "what needs me", "where is PR N", or after open' and warns against 'inventing SPA state'. It also clarifies when to include companyId vs omit it, giving clear contextual triggers.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_brand_guidelinesAInspect
Get the company's brand guidelines — name, tagline, colors (hex codes), typography, personality/tone, naming rules, and VISUAL + POSITIONING dos/donts. Call this first, and use it, before generating any image, banner, video, or visual asset (inject the exact brand colors + style), and for naming/positioning in copy. For HOW to WRITE (voice, cadence, word choice) use get_voice_profile — this brand guide governs how the brand LOOKS and what it stands for, not writing style.
| Name | Required | Description | Default |
|---|---|---|---|
| companyId | Yes | FreedomOS company id to act within (you must be a member). Required for company-scoped tools. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Since no annotations exist, the description carries full burden. It details what the tool returns (brand guidelines components) without side effects. For a read operation, this is sufficient and transparent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Well-structured with front-loaded purpose and clear usage instructions. Length is justified by listing components and context, but slightly verbose; still earns a high score.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple retrieval tool with one parameter and no output schema, the description fully covers what is returned, when to use, and when not to use. No gaps remain.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Parameter coverage is 100% from schema; the description does not add extra meaning beyond the schema's description for companyId, so baseline score applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states it retrieves brand guidelines including specific components like colors, typography, tone, and dos/donts. Differentiates from sibling get_voice_profile which covers writing style.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly instructs to call this tool first before generating visuals or copy, and directs using get_voice_profile for writing voice. Provides clear context for when to use vs. alternative.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_cac_strategyAInspect
THE tool for any question about this company's CAC strategy or LTV:CAC ratio — e.g. "is our CAC strategy standard or conservative?", "what's our LTV:CAC ratio?", "what's our max CAC per customer?". Returns the operator's chosen posture — aggressive (2:1), standard (3:1), conservative (4:1), or enterprise (5:1) — and the effective ratio (max CAC = average LTV ÷ ratio). The CAC strategy is NOT in company settings, profile, or financials — do not use get_company or get_financial_summary for it; this is the only tool that has it, so call it directly.
| Name | Required | Description | Default |
|---|---|---|---|
| companyId | Yes | FreedomOS company id to act within (you must be a member). Required for company-scoped tools. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It discloses the return format (posture and ratio), explains the calculation (max CAC = average LTV ÷ ratio), and states the data is not in other tools. However, it does not explicitly state read-only behavior or discuss any side effects, but the 'get' prefix and context imply safe retrieval.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise (four sentences) yet packed with valuable information: purpose, examples, return values, and disambiguation from siblings. It is well-structured and front-loaded with the primary purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description adequately explains the return values (posture and effective ratio) and the underlying logic. It covers everything needed for the agent to use the tool correctly, including the relationship between posture and ratio values.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% for the single parameter (companyId), so the schema already documents it. The description adds no additional semantics or constraints beyond what the schema provides, meeting the baseline of 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it is 'THE tool for any question about this company's CAC strategy or LTV:CAC ratio' and provides specific example queries. It distinguishes itself from siblings by explicitly saying 'this is the only tool that has it' and lists what it returns (posture and effective ratio).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly says not to use get_company or get_financial_summary for this data and to call this tool directly. It provides clear guidance on when to use it: for any question about CAC strategy or LTV:CAC ratio.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_cash_positionAInspect
Get current cash and bank account balances. Use for cash flow questions.
| Name | Required | Description | Default |
|---|---|---|---|
| companyId | Yes | FreedomOS company id to act within (you must be a member). Required for company-scoped tools. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the burden of behavioral disclosure. It correctly implies a read-only operation ('Get...balances') but does not elaborate on any side effects, authorization needs, or return details. This is adequate but minimal.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences long, front-loaded with the main purpose, and free of unnecessary words. Every sentence is valuable.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple single-parameter retrieval tool without an output schema, the description sufficiently defines what the tool does and when to use it. It could mention the output format (e.g., 'returns balances in USD') but is otherwise complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema description coverage is 100%, meaning the only parameter (companyId) is fully described in the schema. The tool description adds no additional parameter information, so baseline score of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Get' and the resource 'current cash and bank account balances', with a specific usage context ('Use for cash flow questions'). It distinguishes itself from sibling financial tools like get_financial_summary by focusing on cash position.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description includes a usage hint ('Use for cash flow questions'), providing clear context. However, it does not explicitly mention when not to use this tool or suggest alternatives, which would strengthen the guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_check_telemetryAInspect
Read recent quality-check telemetry for the current company. Returns per-(run,check) verdicts (pass/fail/flag/hold/error/skipped) across the brand/legal/ethics/security gates, the Pledge stamp, the ICP consult, and the craft gate — so you can see which checks fire findings, which HOLD content (false-hold rate), and which run clean. Use it to answer 'which gate holds the most for this company' or 'has the security gate ever fired on these posts'. Free-text preview fields are tagged as data.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max rows to return (default 50, hard cap 200). | |
| verdict | No | Optional filter: pass | fail | flag | hold | error | skipped. | |
| companyId | Yes | FreedomOS company id to act within (you must be a member). Required for company-scoped tools. | |
| check_name | No | Optional filter: brand | legal | ethics | security | pledge_stamp | icp_quality | craft. | |
| content_grain | No | Optional filter by content grain (the safety/topic axis). |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description discloses that it returns recent telemetry, lists verdict types, and mentions free-text preview fields tagged as data. It doesn't discuss authentication or rate limits but is adequate for a read operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and well-structured, front-loading the purpose and providing useful enumeration of gates. Could be slightly more concise but is effective.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema, the description sufficiently explains what is returned (verdicts per run/check, gates, preview fields) and provides example use cases, making it complete for a read-telemetry tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, and the description does not add additional detail beyond the schema. For example, 'content_grain' is not elaborated beyond the schema description. Baseline score of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it reads quality-check telemetry, lists specific gates and verdicts, and distinguishes from sibling 'run_quality_check' which runs checks. The verb 'Read' indicates a read-only operation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides concrete example queries like 'which gate holds the most' and 'has the security gate ever fired', guiding the agent on when to use. However, it does not explicitly mention when not to use or name alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_command_center_itemAInspect
Read ONE Command Center card by id — full description, full deliverable content, and full context payload, in ANY status (pending, approved, denied, snoozed). THE tool for retrieving what an already-decided card actually said, e.g. the approved package text a follow-up run needs.
| Name | Required | Description | Default |
|---|---|---|---|
| item_id | Yes | UUID of the Command Center card (from get_command_center_items or a prior card reference) | |
| companyId | Yes | FreedomOS company id to act within (you must be a member). Required for company-scoped tools. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description implies a read-only operation by saying 'Read' and specifies the returned content (description, deliverable, context), but does not explicitly state it is non-destructive or list any side effects. No annotations provided to supplement.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with no wasted words: front-loaded with the action and resource, then clarifies scope (any status) and provides a use case example.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema, the description outlines the returned fields and status coverage, which is sufficient. Lacks details on error handling or permission requirements, but acceptable for a read tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Both parameters have schema descriptions, and the tool description adds value by explaining where to get the item_id (from get_command_center_items or prior reference).
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool reads a single Command Center card by ID, returns full content, and distinguishes it from listing tools like get_command_center_items.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly identifies this as the tool for retrieving already-decided card details with an example, but does not mention when not to use or alternatives like decide_command_center_item.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_command_center_itemsAInspect
List Command Center cards for the company (pending by default; pass status_filter for approved/denied/snoozed/all). Shows what needs decisions — approvals, reviews, proposals. Returns card title, source agent, priority, age in days, task type, approval_status, available_actions (live decide moves), resolution_progress (PR/builder in-flight), and a content PREVIEW only — use get_command_center_item with an id for a card's full content. Pending mode is ranked most-actionable first and carries a featured field naming the single card the operator's rail features first, with the true reason it leads; other status filters (including 'all') return chronological oldest-first with no featured verdict.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max items to return (default: 25) | |
| companyId | Yes | FreedomOS company id to act within (you must be a member). Required for company-scoped tools. | |
| status_filter | No | Filter by status. Default: "pending". Options: pending, approved, denied, snoozed, all |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations present, the description fully shoulders the behavioral transparency burden. It details the default pending status, the effect of each status_filter, the output fields (including a preview only), and the ranking behavior (most-actionable for pending, chronological otherwise). It also notes the 'featured' field for pending mode.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is comprehensive but slightly verbose. It is well-structured with the main purpose first, followed by details on content, sorting, and field behaviors. Every sentence serves a purpose, but some redundancy could be trimmed for tighter conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema and no annotations, the description provides thorough coverage: it lists the fields returned, explains the ranking, preview limits, and directs to the related get_command_center_item tool for full content. It is complete enough for an agent to decide and invoke the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description adds significant context beyond the input schema: it specifies the default for status_filter, explains the ranking and featured field, and clarifies that the output is a preview. The schema coverage is 100%, but the description enriches understanding of each parameter's behavior.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states it lists Command Center cards with a default status of pending, and mentions the specific purpose: showing what needs decisions. It differentiates from sibling tools like get_command_center_item by noting it returns preview only, and from other list tools by the specific context of command center cards.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides explicit guidance on when to use each status filter and the default behavior. It explains that it's for seeing pending decisions and that full content requires get_command_center_item. However, it does not explicitly mention when not to use or list alternative tools for similar tasks like browsing approvals.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_companyBInspect
Get detailed company profile including mission, vision, and settings.
| Name | Required | Description | Default |
|---|---|---|---|
| companyId | Yes | FreedomOS company id to act within (you must be a member). Required for company-scoped tools. | |
| include_settings | No | Whether to include extended settings in the response. Defaults to true. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description bears full responsibility but only notes the output fields. It fails to disclose read-only behavior, error handling (e.g., missing companyId), authentication requirements, or any side effects, leaving significant behavioral ambiguity.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence that efficiently conveys the tool's purpose without unnecessary words. Every part contributes value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has no output schema, the description adequately summarizes the return structure (mission, vision, settings). With only 2 parameters and straightforward behavior, it is largely complete, though could mention optional inclusions.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the description adds minimal new meaning. It mentions 'mission, vision, and settings' but does not elaborate on parameter semantics beyond what the schema already states. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Get detailed company profile including mission, vision, and settings' clearly specifies the action (get), the resource (company profile), and key attributes. It effectively distinguishes this tool from siblings like update_company or get_my_companies.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives (e.g., get_my_companies, list_pipelines). It does not mention prerequisites, context, or scenarios where this tool is preferred.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_cos_preferencesBInspect
Read THIS operator's saved CoS speech/taste preferences (user-scoped). Use when confirming what you will remember about how they like cards and talk.
| Name | Required | Description | Default |
|---|---|---|---|
| companyId | No | FreedomOS company id to act within (you must be a member). Required for company-scoped tools. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided. Description says 'Read' indicating read-only, but does not disclose behavior like what happens if preferences are absent, or clarify the apparent contradiction between 'user-scoped' and the companyId parameter description suggesting company context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with action and resource, followed by usage note. No redundancy, every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema, and description does not explain what the preferences look like or what fields are returned. For a read tool without output schema, it should provide more details on the response structure.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Only parameter companyId has a schema description explaining its purpose and membership requirement. Schema coverage is 100%, but description adds some context. However, potential inconsistency with tool's 'user-scoped' claim reduces clarity.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clear verb 'Read' and resource 'operator's saved CoS speech/taste preferences'. Specifies user-scoped, distinguishing from company-scoped tools. However, does not explicitly differentiate from other get_ tools beyond the unique resource.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides a usage scenario: 'Use when confirming what you will remember about how they like cards and talk.' But lacks explicit when-not-to-use or alternatives like set_cos_preferences or other read tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_credit_usageAInspect
Check credit balance, usage history, and cost breakdown. Shows remaining credits, usage by model/endpoint, and top cost drivers. Useful for cost optimization, budget monitoring, and reviewing whether activities are cost-effective.
| Name | Required | Description | Default |
|---|---|---|---|
| period | No | Time period for usage breakdown. Default: "month" | |
| companyId | Yes | FreedomOS company id to act within (you must be a member). Required for company-scoped tools. | |
| breakdown_by | No | How to group the usage data. Default: "both" |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Describes a read-only check but lacks details on side effects, permissions (beyond companyId), or rate limits. No annotations to compensate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences: first states action, second lists benefits. Efficient, front-loaded, no extraneous content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema, but description conveys key return data (remaining credits, usage breakdown, top cost drivers). Lacks details on pagination or limits, but adequate for simple query tool with 3 parameters.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so schema describes parameters. Description adds high-level output context but no parameter-specific guidance beyond schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states it checks credit balance, usage history, and cost breakdown, specifying outputs like remaining credits and usage by model/endpoint. Distinct from siblings such as get_financial_summary.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly mentions use cases: cost optimization, budget monitoring, cost-effectiveness review. Does not specify when not to use or alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_decision_ledgerAInspect
THE tool for what the Freedom Engine has DECIDED for this company — the audit feed of every autonomous decision: what it auto-ran, what it teed up for your approval, and what it refused (e.g. faith/values content), each with the reason, the profit at play, the founder-attention cost, and how fresh the inputs were. Use for "what did the engine do today", "what did it auto-run", "why did it hold that tactic", "show me the decision ledger / cockpit". This is the only tool with the engine's decision history — get_command_center_items shows open cards to act on, not the decision audit trail.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | How many recent decisions to return, newest first (default 25, max 100). | |
| routing | No | Optional filter: AUTO_RUN (the engine ran it autonomously), TEE_UP (held for your approval), or REFUSE_AND_SURFACE (refused — e.g. faith/values content the founder authors). | |
| companyId | Yes | FreedomOS company id to act within (you must be a member). Required for company-scoped tools. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description fully explains what the tool does: returns decisions with reasons, profit, founder-attention cost, and input freshness. It implies read-only access but does not explicitly state that it is non-destructive. Still, the behavioral context is rich.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise yet comprehensive. It front-loads the core purpose, includes usage examples, and distinguishes from siblings—all in one tight paragraph without redundant information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema, the description still details the return fields (reason, profit, cost, freshness). It covers the tool's functionality and scope adequately for an agent to understand what to expect.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%; all three parameters have schema descriptions. The tool description adds no additional meaning beyond the schema definitions, so it meets the baseline but does not exceed.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it retrieves the audit feed of every autonomous decision by the Freedom Engine. It specifies the resource (decision ledger) and distinguishes itself from the sibling get_command_center_items by noting that this is the only tool with decision history.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicit use cases are provided: 'what did the engine do today', 'what did it auto-run', 'why did it hold that tactic', etc. It also contrasts with get_command_center_items, stating that this tool is for the decision audit trail, not open action cards.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_executive_landscapeAInspect
Get a cross-domain view of everything on the user's plate. Shows commitments from all life domains + promoted tactics from all workspaces, grouped by urgency. Use when the user asks "what should I focus on?", "what's on my plate?", "am I dropping anything?", or similar portfolio-level questions.
| Name | Required | Description | Default |
|---|---|---|---|
| companyId | No | FreedomOS company id to act within (you must be a member). Required for company-scoped tools. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so description must cover behavioral traits. It explains what the tool returns (commitments, tactics, urgency grouping) and implies read-only behavior. However, it does not disclose potential performance, data freshness, or prerequisite data existence, leaving some gaps.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Description is two sentences: first defines what it does, second gives usage guidance. No fluff, every word adds value. Well-structured and front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given moderate complexity and no output schema, the description covers purpose, content, and usage. It could mention output format or prerequisites (e.g., need existing commitments), but it provides enough context for an AI agent to use correctly in most cases.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% for the single parameter (companyId), which is already described in the schema. The description adds no additional information about how companyId affects results, so score is at baseline 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states it provides a cross-domain view of commitments and tactics grouped by urgency, using specific verbs and resource descriptions. It distinguishes itself from sibling tools like list_commitments and list_tactics by emphasizing the aggregated, portfolio-level nature.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states when to use it with example user queries ('what should I focus on?', 'what's on my plate?'), providing clear context. Lacks explicit when-not-to-use or alternatives, but the examples are sufficient for most scenarios.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_financial_summaryAInspect
Get P&L summary with revenue, expenses, and net income for the company. For single-month queries (e.g., "Feb free cash flow"), specify month parameter.
| Name | Required | Description | Default |
|---|---|---|---|
| month | No | Specific month (1-12). If provided, returns data for that month only. If omitted, uses period parameter for range. | |
| period | No | Time period for summary when month is not specified (default: ytd) | |
| companyId | Yes | FreedomOS company id to act within (you must be a member). Required for company-scoped tools. | |
| fiscal_year | No | The fiscal year to query (default: current year) |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must disclose behavioral traits. It only states it 'gets' a summary, implying a read operation, but does not confirm read-only behavior, required permissions, or any potential side effects. For a financial data retrieval tool, more transparency (e.g., 'returns historical data, no modifications') is needed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loaded with the primary purpose, followed by a targeted usage example. No unnecessary words; each sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema, the description hints at return values (revenue, expenses, net income) but doesn't specify structure or data types. It covers the main use case and parameter interplay adequately, but could mention that the result is a single summary object for completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so baseline is 3. The description adds value by giving a concrete example ('Feb free cash flow') and connecting the month parameter to single-month queries, which goes beyond the schema. It also hints at the behavior of month vs period without redundancy.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Get') and identifies the resource ('P&L summary') with key components ('revenue, expenses, and net income'). It distinguishes itself from sibling financial tools by focusing on the company-level profit and loss summary, making its purpose clear and distinct.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides limited usage guidance: it suggests using the month parameter for single-month queries. However, it does not explicitly state when to use this tool versus alternatives (e.g., get_actuals_vs_budget for variance analysis, get_cash_position for cash flow). It lacks exclusions or prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_freedom_targetAInspect
Get the user's freedom target (monthly income goal to quit day job), current FCF progress, estimated freedom date, and assumptions. Use when user asks about financial independence, freedom, or quitting their job.
| Name | Required | Description | Default |
|---|---|---|---|
| companyId | No | FreedomOS company id to act within (you must be a member). Required for company-scoped tools. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description bears full burden. It lists the return data (monthly income goal, FCF progress, estimated freedom date, assumptions) but does not disclose whether the computation is real-time, any prerequisites, or side effects. Adequate but not comprehensive.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences: first summarizes the output, second provides usage guidance. No redundant words, front-loaded with key information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description lists the major components of the return value, compensating for the lack of an output schema. It is complete enough for an agent to understand what the tool provides, though exact field names or types are not specified.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% with a clear description for companyId. The tool description adds no additional parameter semantics beyond the schema, meeting the baseline but not exceeding it.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool retrieves the user's freedom target including specific metrics like monthly income goal and FCF progress. It explicitly differentiates from siblings by focusing on financial independence, with usage context provided in the second sentence.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly states when to use the tool: 'when user asks about financial independence, freedom, or quitting their job.' It does not mention alternatives or exclusions, but the guidance is clear and actionable.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_grain_policyAInspect
Read the content-grain (wisdom-layer) publish policy for the current company. For each content grain it returns whether an agent may publish that grain autonomously (gate_mode 'autonomous') or must route to a human (gate_mode 'human_pre_gate'), plus curate_only and source_corpus_ref. Use this to understand which content you may publish on your own vs. send for human pre-approval.
| Name | Required | Description | Default |
|---|---|---|---|
| companyId | Yes | FreedomOS company id to act within (you must be a member). Required for company-scoped tools. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must cover behavioral aspects. It correctly indicates the tool is read-only ('Read') and describes the output, but it does not disclose potential side effects (none expected), rate limits, or authentication details. Since the tool is simple and read-only, a score of 3 is adequate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise: two sentences with no extraneous words. The first sentence defines the tool and its output, the second provides usage guidance. Every sentence is valuable and front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite lacking an output schema, the description explicitly lists the returned fields (gate_mode, curate_only, source_corpus_ref) and explains the meaning of gate_mode values. This fully equips the agent to understand the return value. The tool's complexity is low, and the description is complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with one parameter (companyId) that is well-described in the schema. The description says 'for the current company', which adds minimal additional meaning beyond the schema. According to guidelines, when coverage is high (>80%), baseline is 3, and the description does not exceed that.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool reads the content-grain publish policy, using a specific verb-resource pair. It distinguishes from the sibling tool set_grain_policy by being read-only, and explains the returned fields (gate_mode, curate_only, source_corpus_ref), making the purpose unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly provides usage guidance: 'Use this to understand which content you may publish on your own vs. send for human pre-approval.' This helps the agent decide when to call this tool. However, it does not mention any exclusions or alternatives (e.g., when not to use it), which prevents a perfect score.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_icpsAInspect
Get saved Ideal Customer Profiles (ICPs) from Customer Hunter. Use this when the user asks about their target customer, ideal customer, customer avatar, ICP, or who they should be selling to. Returns structured profiles including nightmare scenario, dream outcome, pain points, financial profile, and tech-savviness — plus class ('customer' or 'partner') and agentProfile (how that customer's own AI assistant participates in buying: tier, agents, surfacesRead, purchasePath). Each profile also returns publicName — the public-facing audience label to use in published copy — NEVER the internal persona name/codename (the "name" field is a private targeting label).
| Name | Required | Description | Default |
|---|---|---|---|
| companyId | Yes | FreedomOS company id to act within (you must be a member). Required for company-scoped tools. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations, so description carries full burden. Discloses return structure with key fields and warns about the private 'name' field vs public 'publicName'. Lacks mention of permissions or side effects, but sufficient for a read tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with purpose and usage, then enumerates return fields. Slightly wordy but well-structured and each sentence adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given one required param and no output schema, description adequately explains what is returned including nested fields and class/agentProfile. Sufficient for agent to use tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% for the single parameter companyId, but description does not add extra meaning beyond 'required' context. Baseline is 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states it gets saved ICPs from Customer Hunter, lists return fields, and distinguishes from sibling tools like create_icp, delete_icp, update_icp.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly specifies when to use: when user asks about target customer, ideal customer, ICP, etc. Provides synonyms and clear triggers for the agent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_lead_pipeline_snapshotAInspect
Aggregate counts of the Leads CRM (crm_leads) for the current company: active leads by temperature (warm/cold/…/unset) and lifecycle stage, plus do-not-contact and archived totals. THE source of truth for "how many leads do we have and how warm are they" — never estimate or zero-fill lead counts; call this instead. Read-only. Note: paying customers live in Stripe (get_subscription_stats), not here.
Routing: CRM/sales → lead counts or pipeline temperature snapshot → use this
| Name | Required | Description | Default |
|---|---|---|---|
| companyId | Yes | FreedomOS company id to act within (you must be a member). Required for company-scoped tools. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. Clearly states 'Read-only', 'source of truth', and 'aggregate counts' implying no destructive actions. Could mention authorization but the schema already covers that with companyId requirement.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Description is front-loaded with core info and includes routing context. Slightly verbose but every sentence adds value. Could be slightly shorter without losing meaning.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given simple input schema (1 param) and no output schema, the description adequately describes the output format (counts by temperature, stage, DNC, archived) and provides sufficient context for a straightforward aggregation tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Only one parameter (companyId) with 100% schema description coverage. The schema already explains it well; description adds no additional semantic value beyond what schema provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description uses specific verb 'aggregate' and resource 'leads CRM', enumerates detailed breakdowns (by temperature, lifecycle stage, DNC, archived), and clearly distinguishes from sibling get_subscription_stats by stating that paying customers are in Stripe, not here.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states when to use ('never estimate or zero-fill lead counts; call this instead'), gives routing context, and explicitly notes when not to use (paying customers in Stripe) with alternative tool named.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_monthly_trendsCInspect
Get month-over-month financial trends. Shows which accounts are increasing/decreasing.
| Name | Required | Description | Default |
|---|---|---|---|
| companyId | Yes | FreedomOS company id to act within (you must be a member). Required for company-scoped tools. | |
| fiscal_year | No | The fiscal year to analyze | |
| account_type | No | Filter by account type |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must disclose behavioral traits. It only states it 'shows' trends but does not clarify whether this is a read-only operation, what data source it accesses, or any side effects. This is insufficient for safe tool selection.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two short sentences without fluff. It front-loads the core action (get month-over-month trends) and adds a clarifying second sentence. Every word is functional.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema, so the description should explain return values. It vaguely mentions showing which accounts are increasing/decreasing but does not specify format, metrics, or pagination. This is insufficient for a tool with three parameters and no explicit output disclosure.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so parameters are already documented. The description does not add additional meaning beyond the schema, but it implicitly relates to the parameters (e.g., fiscal_year, account_type). Baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it retrieves month-over-month financial trends and identifies account changes. It is specific enough to distinguish from sibling tools like get_financial_summary or get_projections, though it could be more precise about the output scope.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It does not mention prerequisites, filtering options, or context where other tools would be more appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_my_channel_partner_linkAInspect
Get YOUR channel partner student share link (https://getfreedomos.com/start/{slug}) — the classroom start page (copy Claude prompt first, then unlock). Also returns unlockUrl (/p/{slug}) for mid-funnel pay-only if someone already coached. Use when the operator asks for their partner link, UNLOCKED/student share URL, or "how do people join through me". Default students to startUrl, not unlock. Product language: Partner (not affiliate).
| Name | Required | Description | Default |
|---|---|---|---|
| companyId | No | FreedomOS company id to act within (you must be a member). Required for company-scoped tools. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It discloses that the tool returns a startUrl and unlockUrl, and includes a note about copying the Claude prompt first. It also mentions the default behavior for students. While it doesn't explicitly state idempotency or side effects, the description gives sufficient behavioral context for a read-only retrieval tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is informative but slightly verbose. It is front-loaded with the main purpose and includes relevant details. Every sentence adds value, though some phrases (e.g., 'copy Claude prompt first, then unlock') could be more concise. Overall, it is well-structured and avoids waste.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema, the description explains what is returned (startUrl and unlockUrl) and their formats. It also provides usage context. It does not cover error cases or prerequisites, but for a simple getter tool, the description is sufficiently complete for an agent to understand its purpose and output.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The only parameter (companyId) has 100% schema description coverage, stating it is required for company-scoped tools. The tool description does not add any extra meaning or usage guidance for this parameter beyond what the schema already provides. With high schema coverage, baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it retrieves the user's channel partner student share link and also returns an unlockUrl. It specifies the exact URL format (https://getfreedomos.com/start/{slug}) and distinguishes this tool from sibling channel partner tools by focusing on the student share link and unlockUrl for mid-funnel cases.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly states when to use this tool: when the operator asks for their partner link, UNLOCKED/student share URL, or 'how do people join through me'. It also gives a default behavior (default to startUrl, not unlock) and product language guidance (Partner, not affiliate). However, it does not explicitly mention when not to use it or compare to sibling tools like get_my_channel_partner_starter_pack.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_my_channel_partner_starter_packAInspect
Get YOUR classroom starter pack for students: the public share URL (https://getfreedomos.com/start/{slug}) where they copy a one-paste Claude prompt — no skill file, no AirDrop, no terminal. Also returns a short blurb you can text/post and the full student prompt. Use when the operator asks how to send students the FreedomOS handoff, "starter pack", classroom prompt, or UNLOCKED → FreedomOS distribution. Product language: Partner (not affiliate).
| Name | Required | Description | Default |
|---|---|---|---|
| companyId | No | FreedomOS company id to act within (you must be a member). Required for company-scoped tools. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description must disclose behavior. It correctly implies a read-only operation, details the returned data (URL, blurb, prompt), and avoids misleading statements. Does not mention side effects or auth needs beyond schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single paragraph that front-loads the purpose and return values. It is concise but includes some marketing language; overall efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description fully explains return values. For a simple read tool with one optional parameter, it provides all necessary context for selection and invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% for the single optional parameter (companyId), so baseline is 3. The description does not add additional meaning beyond what the schema already provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly specifies the tool's action: 'Get YOUR classroom starter pack for students', listing the return values (URL, blurb, prompt) and distinguishing it from sibling tools like get_my_channel_partner_link and get_my_channel_partner_stats.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states when to use: 'Use when the operator asks how to send students the FreedomOS handoff, starter pack, classroom prompt...' Provides clear context; lacks explicit when-not-to but positive guidance is strong.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_my_channel_partner_statsAInspect
Get YOUR channel partner stats: student share URL (/start/slug), rev-share terms, referral counts by status (pending/joined/activated/credited), and REWARD state (rewardsVested = credits actually granted, rewardsClearing = paid but inside the 7-day vesting window, rewardsVoided = money returned before vesting so they will never land). Report rewardsVested when asked what has been EARNED — a status count is not money. Use when the operator asks how many people came through their link, partner performance, or commission terms. Product language: Partner (not affiliate). Returns empty if not a channel partner.
| Name | Required | Description | Default |
|---|---|---|---|
| companyId | No | FreedomOS company id to act within (you must be a member). Required for company-scoped tools. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description adequately explains behavior: it returns the user's own stats, defines reward fields, and notes empty result if not a channel partner. No destructive effects mentioned.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured with the main purpose upfront, followed by field details and usage guidance. Every sentence adds value, though it could be slightly more compact.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema, the description explains the return fields comprehensively and includes edge case. It is complete for selecting and invoking the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3. The description does not add new meaning beyond what the schema already provides for the companyId parameter.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool retrieves channel partner stats including URL, terms, counts, and reward state. It uses specific verbs and resources, distinguishing from sibling tools like get_my_channel_partner_link indirectly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly says when to use: 'when the operator asks how many people came through their link, partner performance, or commission terms.' Also provides guidance on reporting rewardsVested and product language terminology.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_my_companiesAInspect
List the companies the current operator can act in (their FreedomOS portfolio), with the operator's role in each plus an about line (entity type + what the company is/does). Call this to discover valid companyId values before using company-scoped tools, and use about — not the name — to infer WHICH company the user means; if about doesn't settle it, ask rather than guess.
| Name | Required | Description | Default |
|---|---|---|---|
| companyId | No | FreedomOS company id to act within (you must be a member). Required for company-scoped tools. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description carries full burden. It describes the output (role and about line) and the scope (companies the operator can act in). It does not mention pagination, error cases, or rate limits, but the core behavior is clear.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise at two sentences, with the first sentence stating purpose and output format, and the second providing usage guidance. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema, the description explains the key output fields (role and about). It lacks details on the list structure and the optional parameter's role, but overall it is sufficiently complete for a listing tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has one optional parameter (companyId) with a description that is generic and not specific to this tool's usage. The tool description does not mention the parameter at all, leaving ambiguity about whether it filters the list or serves another purpose.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool lists the companies the current operator can act in, with role and about line. It distinguishes itself from sibling get_company by focusing on listing multiple companies rather than a single one.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly instructs to use this tool to discover valid companyId values before company-scoped tools. Provides guidance on using the 'about' field to infer the correct company and advises asking rather than guessing if uncertain.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_my_profileAInspect
Get the current user's profile information including name, title, contact info, and personal details.
| Name | Required | Description | Default |
|---|---|---|---|
| companyId | No | FreedomOS company id to act within (you must be a member). Required for company-scoped tools. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so the description carries full burden. It states the tool gets profile info with listed fields, which implies read-only operation. However, it omits details like required permissions, error conditions, or whether the operation is reversible.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that front-loads the verb and resource, with no wasted words. It efficiently conveys the tool's purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple getter tool with no required parameters and no output schema, the description adequately describes what the tool does. Minor gap: doesn't specify that it returns the full profile object or mention any company scoping nuance.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the schema already documents the optional 'companyId' parameter with explanation. The description adds no additional parameter meaning beyond the schema, so baseline score of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description specifies the verb 'Get' and resource 'current user's profile information', listing example fields (name, title, contact info, personal details). This clearly distinguishes it from sibling tools like 'get_reader_profile' or 'update_my_profile'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The usage context is clear from the name and description (for the authenticated user's own profile). However, no explicit guidance on when to use vs alternatives or any prerequisites (e.g., when companyId is needed).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_next_priorityAInspect
Answer "What should I work on?" in two beats: it leads with the single most-actionable pending Command Center card the operator's rail features first (when the queue has one), then the strategic move synthesized from OKRs, the revenue constraint, and active Tactics. The featured card includes approval_status, available_actions, and resolution_progress (PR/builder in-flight). Call this when the user asks "What should I work on?" or "What's my priority?" Returns focused recommendations with reasoning.
| Name | Required | Description | Default |
|---|---|---|---|
| companyId | Yes | FreedomOS company id to act within (you must be a member). Required for company-scoped tools. | |
| focus_area | No | Optional: focus on a specific tactic category | |
| override_constraint | No | Optional operator PIN of the binding revenue constraint. When set, it is SAVED as this company's pin (upsert) and the priority is computed from it instead of the automatic funnel diagnosis. Use only when the operator explicitly overrides the computed constraint. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It explains the tool's behavior: fetches the most actionable pending card, then synthesizes a strategic move from OKRs, revenue constraint, and active Tactics. It also details what the featured card includes. However, it does not disclose side effects, authorization needs, or rate limits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a well-structured paragraph of four sentences, front-loaded with the primary purpose. It is efficient but not terse; every sentence provides useful context. Slightly more conciseness could be achieved, but it remains clear.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema, the description adequately covers the return format (focused recommendations with reasoning) and the two-part content. Parameters are fully described via schema and added context. It does not mention edge cases like an empty queue, which is a minor gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% (baseline 3). The description adds value by explaining the effect of override_constraint: it is saved as the company's pin and overrides automatic diagnosis. This context goes beyond the schema's enum list.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool answers 'What should I work on?' and describes the two-part output: a featured pending card and a strategic move. It is specific about the resource (Command Center card) and distinguishes it from siblings by its unique priority recommendation function.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly says when to call the tool: when the user asks 'What should I work on?' or 'What's my priority?'. However, it does not provide negative guidance (when not to use) or mention alternatives among the many sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_okrsAInspect
List objectives and key results for the company. Defaults to current year unless year specified or all_years=true.
| Name | Required | Description | Default |
|---|---|---|---|
| year | No | Filter by year (e.g., 2026). Defaults to current year. | |
| limit | No | Maximum number to return (default: 10) | |
| all_years | No | Set to true to get OKRs across all years (overrides year filter) | |
| companyId | Yes | FreedomOS company id to act within (you must be a member). Required for company-scoped tools. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It correctly identifies the operation as a read-only list and explains the year filtering defaults, but does not mention pagination (limit parameter) or any required permissions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, well-constructed sentence that conveys the core purpose and key default behavior without any filler or repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a list tool with 4 parameters and no output schema, the description adequately covers the main logic but omits mention of the limit parameter default (10) and the response format. It is minimally sufficient but could be more informative.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already covers all parameters (100% coverage). The description adds value by clarifying the interplay between 'year' and 'all_years' ('Defaults to current year unless year specified or all_years=true'), which is not obvious from the schema alone.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'List', the resource 'objectives and key results', and the scope 'for the company'. This distinguishes it from sibling tools like 'create_objective' or 'get_tactics'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for company-level OKR listing and mentions default year behavior, but does not explicitly state when not to use it or suggest alternatives. Given the many sibling tools, more guidance would be helpful.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_page_performanceAInspect
Get per-page search performance from Google Search Console — which pages get the most clicks, impressions, and best positions. Use when analyzing content performance or identifying top-performing pages.
| Name | Required | Description | Default |
|---|---|---|---|
| end_date | No | End date in YYYY-MM-DD format. Defaults to today. | |
| site_url | Yes | The site URL exactly as shown in Search Console | |
| companyId | Yes | FreedomOS company id to act within (you must be a member). Required for company-scoped tools. | |
| row_limit | No | Max rows to return (1-100). Defaults to 25. | |
| start_date | No | Start date in YYYY-MM-DD format. Defaults to 28 days ago. | |
| page_filter | No | Optional: only include pages whose URL contains this string (e.g., "/blog/"). |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry the full burden. It does not disclose any behavioral traits beyond the core function—no mention of read-only nature, permissions, rate limits, or effects. This leaves the agent uninformed about important constraints.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences with no wasted words: first sentence defines the function, second provides usage guidance. It is front-loaded and efficiently communicates the core purpose and context.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description hints at output fields (clicks, impressions, positions) but does not explain return format, pagination, or sorting. Since there is no output schema, the description should be more explicit. The schema covers all parameters, so the description is adequate but not fully complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. The description adds no additional parameter-level information beyond what the schema's property descriptions provide. No parameter details are mentioned in the description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it gets per-page search performance from Google Search Console, specifying metrics (clicks, impressions, positions). It uses a specific verb 'Get' and resource 'per-page search performance', distinguishing it from siblings like 'get_search_performance' which likely operates at a higher level.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear usage context: 'Use when analyzing content performance or identifying top-performing pages.' However, it does not provide when-not-to-use or mention alternative tools, which would be helpful given the large sibling list.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_partner_cos_onboardAInspect
Onboard YOUR host coding CoS (Claude Code, Cursor, etc.) to FreedomOS: returns a LIVE MCP tool catalog + a deep-research prompt so the host agent reasons how to maximize profit-per-attention with FO — no fixed labor split. FO is hungry for contacts/ops state; host may build cheaper one-shots; FO wins recurring / not-yet-built / long-running. Includes partner benefit playbooks when you are a channel partner. Re-call whenever FO ships tools. Use on first MCP connect, partner connect, or when the host asks how to use FreedomOS optimally.
| Name | Required | Description | Default |
|---|---|---|---|
| host | No | Optional host agent label: claude_code | cursor | codex | claude_desktop | other. Default claude_code. | |
| companyId | No | FreedomOS company id to act within (you must be a member). Required for company-scoped tools. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description carries the full burden. It discloses that the tool returns a catalog and a prompt, includes conditional partner playbooks, and states a re-call pattern. However, it does not explicitly state whether the tool is read-only or has side effects, and does not mention permissions or output format beyond high-level items.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with a clear purpose, followed by strategic context and usage guidance. It is somewhat wordy with jargon ('profit-per-attention', 'FO') but each sentence contributes either to the tool's behavior, usage timing, or intended reasoning approach. Overall, it is structured and purposeful.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema, the description adequately explains the return values (live MCP tool catalog + research prompt) and provides usage scenarios, strategic rationale, and conditional partner content. It could be more precise about the structure of the returned catalog/prompt, but it is sufficiently complete for an agent to decide when and how to invoke it.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% for both parameters (host, companyId), so the baseline is 3. The description adds minor context by listing example host values ('Claude Code, Cursor, etc.') and referencing partner playbooks, but does not significantly expand on schema descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: it returns a live MCP tool catalog and a research prompt to onboard a host coding assistant to FreedomOS. It uses a specific verb ('Onboard' but actually 'returns') and identifies a unique resource (host CoS, FreedomOS), distinguishing it from sibling get_* and onboarding-related tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicit usage conditions are provided: 'Use on first MCP connect, partner connect, or when the host asks how to use FreedomOS optimally.' Also mentions re-calling when FreedomOS ships tools. However, it does not explicitly mention when not to use it or name alternative tools, so it falls short of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_pending_approvalsAInspect
Get CONTENT PIPELINE outputs waiting for approval/publish (changelogs, newsletters, social drafts). IDs are pipeline_outputs UUIDs — use approve_pipeline_item / publish_pipeline_item / request_content_revision. NOT Command Center decision cards — those use get_command_center_items + get_command_center_item + decide_command_center_item. Use when user asks "what content needs my review?", "ready to publish?", or "approval queue" for content.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum items to return (default: 10) | |
| companyId | Yes | FreedomOS company id to act within (you must be a member). Required for company-scoped tools. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must disclose behavioral traits. It mentions IDs are pipeline_outputs UUIDs and implies subsequent actions, but does not explicitly state that this is a read-only operation or describe any pagination, rate limits, or ordering. The description provides minimal additional behavioral context beyond the obvious list retrieval.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two concise sentences with no wasted words. The first sentence states the core purpose and examples; the second provides usage alternatives and clarifying examples. It is well-front-loaded and easy to parse.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has 2 well-documented parameters and no output schema, the description covers the essentials: what items are returned, how to act on them, and differentiation from sibling tools. It lacks details on ordering, pagination, or returned fields, but for a simple list tool with good sibling differentiation, it is largely complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with both parameters described. The description adds no extra meaning to the parameters; it only mentions that IDs are pipeline_outputs UUIDs, which relates to return values not parameters. Thus, the description does not significantly augment the parameter schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool retrieves 'CONTENT PIPELINE outputs waiting for approval/publish' and lists specific examples like changelogs, newsletters, and social drafts. It explicitly distinguishes from Command Center decision cards by naming alternative tools, ensuring no confusion.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit when-to-use guidance: 'when user asks "what content needs my review?", "ready to publish?", or "approval queue" for content.' It also gives a clear when-not-to-use by stating 'NOT Command Center decision cards' and directing to the appropriate tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_product_contextAInspect
Returns THIS company's product truth — the operator-authored offer + the SHIPPED, marketable capabilities (what the product does, and what it cannot do). Call this before describing, marketing, pricing, positioning, or selling the product. Ground every product claim in what this returns; never invent capabilities or an offer. If it reports the product is not defined, escalate to the operator instead of guessing.
Routing: product / offer / what we sell / pricing / positioning / marketing or sales copy → call get_product_context FIRST; never fabricate capabilities or an offer
| Name | Required | Description | Default |
|---|---|---|---|
| companyId | Yes | FreedomOS company id to act within (you must be a member). Required for company-scoped tools. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description bears full burden. Discloses return content (offer + capabilities) and edge case (product not defined). Lacks explicit statement about read-only nature, but context implies no side effects. Sufficient for safe usage.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Description is clear and well-structured with a concise purpose statement, usage instructions, and a routing section. Every sentence adds value, though minor verbosity could be trimmed. Not excessively long.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema, but description adequately explains what the tool returns (offer + capabilities) and how to handle undefined product. Sufficient for an agent to understand the tool's role and expected output.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Only parameter companyId is fully described in schema with 100% coverage. Description adds no further parameter details beyond what schema provides. Baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the tool returns 'operator-authored offer + shipped, marketable capabilities' and provides routing instructions to call before product-related tasks. It distinguishes itself as the authoritative source for product truth.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states when to use: before describing, marketing, pricing, positioning, or selling. Provides a clear directive to ground all claims in this tool's output and to escalate if product is undefined. No alternative tools suggested but routing indicates precedence.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_product_request_statusAInspect
Check status of a product request you previously filed with submit_product_request for your operator. Returns pending | approved | denied | dismissed | completed so you can tell your human when FreedomOS product team decides. Use when you hold a request_id and need an update for the filer.
| Name | Required | Description | Default |
|---|---|---|---|
| companyId | No | FreedomOS company id to act within (you must be a member). Required for company-scoped tools. | |
| request_id | Yes | The request_id UUID returned by submit_product_request |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must fully convey behavior. It implies a read-only check by using 'Check status' and lists possible outcomes, but does not explicitly confirm non-destructiveness or mention any required permissions or side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the verb 'Check status', and no extraneous information. Every sentence serves a purpose: stating function, listing outputs, and providing usage condition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers the main behavior, return values, and usage context. Lacks explicit mention of error cases or authentication, but for a simple status check, it is largely complete. No output schema, so description compensates by listing possible statuses.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Both parameters are fully described in the input schema (100% coverage), so the description does not need to add much. It adds contextual flavor ('your operator', 'filer') but no additional parameter-specific meaning beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the tool checks the status of a product request, lists the possible return values (pending, approved, denied, dismissed, completed), and distinguishes from sibling submit_product_request by referencing it as the source of the request_id.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly tells the agent to use this tool when holding a request_id and needing an update for the filer, which is a clear condition. Does not explicitly state when not to use, but the condition implicitly excludes other scenarios.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_projectionsBInspect
Get projected future values from financial forecasts. Shows what revenue/expenses are expected.
| Name | Required | Description | Default |
|---|---|---|---|
| companyId | Yes | FreedomOS company id to act within (you must be a member). Required for company-scoped tools. | |
| fiscal_year | No | The fiscal year to query (default: current year) | |
| account_name | No | Optional filter to specific account name |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure, but it only states that the tool 'shows' expected values, implying a read operation. It does not mention data freshness, scope, or any side effects, leaving significant gaps.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise with two sentences that front-load the core purpose. It avoids unnecessary detail, though it could be slightly tighter (e.g., removing redundancy in 'shows what revenue/expenses are expected').
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's moderate complexity (3 parameters, no output schema, no annotations), the description lacks completeness. It does not explain return values, data sources, or how to interpret projections, leaving the agent without essential context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has 100% description coverage for all three parameters, including companyId, fiscal_year, and account_name. The tool description adds no additional meaning beyond what the schema already provides, so baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies the tool's purpose: retrieving projected future values from financial forecasts, specifically expected revenue and expenses. It uses a specific verb 'Get' and resource 'projected future values', effectively distinguishing it from siblings like get_actuals_vs_budget.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives such as get_financial_summary or get_actuals_vs_budget. There is no mention of prerequisites, context, or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_reader_expertise_interviewAInspect
Get a fluency INTERVIEW kit (domain candidates + "which is clearest?" protocol) so a host CoS can gauge how FO should talk to this operator. Use when onboarding, partner MCP connect, or speech feels too dumbed-down or too jargony. After human yes, call update_reader_profile — fluency follows them across companies.
| Name | Required | Description | Default |
|---|---|---|---|
| companyId | No | FreedomOS company id to act within (you must be a member). Required for company-scoped tools. | |
| member_name | No | Optional display name (defaults to "the operator"). |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden. It discloses the kit's components ('domain candidates + "which is clearest?" protocol'), the workflow ('After human yes, call update_reader_profile'), and a behavioral trait ('fluency follows them across companies'). It does not explicitly state read-only nature, but the verb 'Get' implies it.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences with clear structure: what, when, next steps. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only retrieval tool with two optional parameters and no output schema, the description covers purpose, usage, and post-processing. It also notes cross-company persistence, which is a useful nuance.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema covers both parameters at 100%, so baseline is 3. The description adds minimal parameter-specific detail—it implies member_name is the operator but doesn't clarify how it relates to companyId beyond what the schema already says.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb 'Get' followed by 'a fluency INTERVIEW kit' and describes its purpose: 'so a host CoS can gauge how FO should talk to this operator.' This clearly distinguishes it from sibling tools like get_reader_profile by focusing on an interview kit rather than a profile.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives explicit triggers: 'Use when onboarding, partner MCP connect, or speech feels too dumbed-down or too jargony.' It also recommends a follow-up action: 'After human yes, call update_reader_profile.' However, it does not explicitly state when not to use it or name alternative tools, which prevents a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_reader_profileAInspect
Get a person's OPERATOR FLUENCY (reader profile) — overall character level + per-topic strengths (novice/fluent/expert). Follows them across companies. Use before writing cards/FYIs so speech matches their level. Defaults to the caller; pass member_id for another person.
| Name | Required | Description | Default |
|---|---|---|---|
| companyId | Yes | FreedomOS company id to act within (you must be a member). Required for company-scoped tools. | |
| member_id | No | Optional UUID whose fluency to read. Defaults to you (ctx.userId). |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the burden of behavioral disclosure. It notes that the profile 'follows them across companies' and defaults to the caller, which adds meaningful context. However, it doesn't explicitly state that the operation is read-only or describe authorization requirements beyond what the schema implies. Since 'Get' suggests a safe read, this is adequate but not exhaustive.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is four short sentences, each carrying distinct information: what it returns, cross-company scope, when to use it, and how to target another person. It is front-loaded and every sentence earns its place with no wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Since there is no output schema, the description explains the return value: 'overall character level + per-topic strengths (novice/fluent/expert).' It also covers primary usage, default behavior, and cross-company persistence. It could mention potential errors or permission requirements, but for a simple getter this is sufficient.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema covers both parameters with detailed descriptions (companyId is required; member_id is optional and defaults to ctx.userId). The description restates the defaulting behavior but adds no new semantics beyond the schema. With 100% schema description coverage, this matches the baseline of 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies the tool as retrieving a person's operator fluency/reader profile, including overall level and per-topic strengths. It distinguishes itself from sibling tools like get_voice_profile or get_my_profile by specifying the exact resource (reader profile) and the data returned.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides a concrete use case: 'Use before writing cards/FYIs so speech matches their level.' It also explains default behavior and how to query another person via member_id. It doesn't explicitly name alternatives or when not to use, but the context is clear enough.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_release_ledgerAInspect
THE tool for "did this piece ship on this channel" — reads the cross-channel Release Ledger, the queryable truth for every confirmed send (x/linkedin/instagram/facebook/threads, hub letters, Beehiiv) written by the publish rail itself at send time. Use this instead of title-matching or a markdown tracking doc when a reconciler or operator asks whether a piece released, where it released, or wants a recent-releases feed. Returns rows plus a per-piece coverage summary (which channels a piece is KNOWN to have shipped on — never a speculative claim about what's missing).
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | How many recent releases to return, newest first (default 50, max 200). | |
| since | No | ISO timestamp lower bound — only releases at/after this time. | |
| channel | No | Filter to one channel. | |
| companyId | Yes | FreedomOS company id to act within (you must be a member). Required for company-scoped tools. | |
| piece_key | No | Filter to one piece's releases (e.g. 'output:<pipeline_outputs.id>', 'idea:<content_ideas.id>', 'hub-letter:<slug>'). | |
| released_by | No | Filter by who released it: 'agent', 'human', or 'system'. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses that the ledger is written by the publish rail at send time and that the coverage summary only includes KNOWN shipped channels, not speculative missing ones. With no annotations provided, this description carries the burden well.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences that are dense with information: purpose, usage, output. No wasted words, though slightly long; still well-structured and front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 6 parameters, no output schema, and no annotations, the description covers purpose, usage, and output shape (rows + coverage summary). Lacks error handling but is sufficient for a read-only query tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with good descriptions for all 6 parameters. The description adds some context (e.g., 'piece_key' filter examples) but does not significantly extend beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource ('reads the cross-channel Release Ledger') and a clear purpose ('did this piece ship on this channel'), which distinguishes it from siblings like title-matching or markdown tracking docs.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly says when to use ('when a reconciler or operator asks whether a piece released, where it released, or wants a recent-releases feed') and what alternatives to avoid ('instead of title-matching or a markdown tracking doc').
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_routing_overviewAInspect
See how agent output is currently routed — who is responsible for which domains in the company.
| Name | Required | Description | Default |
|---|---|---|---|
| companyId | Yes | FreedomOS company id to act within (you must be a member). Required for company-scoped tools. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must fully disclose behavioral traits. It implies a read-only, non-destructive operation, but lacks details such as required permissions, error handling, or response structure. Additional transparency would be beneficial.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence (15 words) with no filler. It is well-structured and immediately understandable.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple tool with one parameter and no output schema, the description is mostly complete. It covers the core functionality, though lacks details on output format or possible values. Still, it is adequate for agent decision-making.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% as the single parameter (companyId) already has a detailed description. The tool description adds no further meaning, so baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function with a specific verb ('See') and resource ('how agent output is currently routed — who is responsible for which domains'). It effectively distinguishes this tool from siblings (no other routing-related tool in the list).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives (e.g., other get tools or routing-specific tools). The description does not mention scenarios, prerequisites, or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_search_performanceAInspect
Get search performance data from Google Search Console — queries, clicks, impressions, CTR, and average position. Use when the user asks about SEO performance, keyword rankings, organic traffic, or search visibility.
| Name | Required | Description | Default |
|---|---|---|---|
| end_date | No | End date in YYYY-MM-DD format. Defaults to today. | |
| site_url | Yes | The site URL exactly as shown in Search Console (e.g., "sc-domain:example.com" or "https://example.com/") | |
| companyId | Yes | FreedomOS company id to act within (you must be a member). Required for company-scoped tools. | |
| row_limit | No | Max rows to return (1-100). Defaults to 25. | |
| dimensions | No | Dimensions to group by. Options: "query", "page", "country", "device", "date". Defaults to ["query"]. | |
| start_date | No | Start date in YYYY-MM-DD format. Defaults to 28 days ago. | |
| page_filter | No | Optional filter: only include rows where the page URL contains this string. | |
| query_filter | No | Optional filter: only include rows where the query contains this string. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must disclose behavioral traits. It implies a read-only operation by stating 'Get ... data', but does not explicitly confirm non-destructiveness, authentication needs, or rate limits. The description is adequate but not thorough in disclosing behavior beyond the read implication.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with no wasted words. The first sentence defines purpose and outputs, the second provides usage guidance. Perfectly concise and front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has 8 parameters, no output schema, and no annotations, the description is adequate but basic. It covers the main purpose and usage context but lacks details on pagination, error handling, or the fact that it's a read operation. It is minimally sufficient.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description lists the return fields (queries, clicks, etc.) which adds value beyond the input schema, but does not provide additional parameter-level details. It meets the baseline without significant extra contribution.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it retrieves search performance data from Google Search Console, listing specific metrics (queries, clicks, impressions, CTR, average position). It also provides concrete use cases (SEO performance, keyword rankings, organic traffic, search visibility), which distinguishes it from sibling tools like get_page_performance.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly tells when to use the tool: 'Use when the user asks about SEO performance, keyword rankings, organic traffic, or search visibility.' This is clear and helpful, though it lacks guidance on when not to use it or alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_setup_stateAInspect
Get the company's core-tenet setup completeness — mission, vision, OKRs, finances, ICP, branding, team, integrations, product, revenue channels, ICP agent model — each as done/empty/blocked/n_a/unknown, with a score, the next best setup step, and the tool to fix each gap. Derived live from current data. Use this to know what a company still needs set up before doing strategy work. WISDOM-FIRST: mission and vision are operator-authored — do NOT author or invent them. OKRs show "blocked" until mission AND vision are set; never invent OKR numbers from an empty wisdom layer — escalate to the operator.
| Name | Required | Description | Default |
|---|---|---|---|
| companyId | Yes | FreedomOS company id to act within (you must be a member). Required for company-scoped tools. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Despite no annotations, the description discloses live derivation, non-authoring constraints for mission/vision, and OKR blocking logic. It implies read-only behavior but does not explicitly state no side effects or authorization needs, which could be improved.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured with key information front-loaded. Every sentence adds value, though the first sentence is lengthy. Overall efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description adequately covers the return structure (statuses, score, next step, tool) and special cases (wisdom layer, OKR blocking). No output schema exists, but the description compensates reasonably well.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with a clear companyId description. The tool description adds no additional parameter meaning beyond the schema, so baseline score of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies the tool as a getter for setup completeness across multiple aspects (mission, vision, OKRs, etc.), specifying the returned statuses and additional outputs. It distinguishes itself from siblings like get_okrs or get_company by offering an aggregated status view.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states 'Use this to know what a company still needs set up before doing strategy work.' The 'WISDOM-FIRST' section provides critical behavioral guidance, though it does not explicitly mention when not to use or list alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_site_listAInspect
List all verified sites/properties in Google Search Console. Use this first to discover which sites are available before querying search performance.
| Name | Required | Description | Default |
|---|---|---|---|
| companyId | Yes | FreedomOS company id to act within (you must be a member). Required for company-scoped tools. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description should disclose behavioral traits. It implies a read operation but does not explicitly state it is read-only, nor does it mention permissions, pagination, or output characteristics. The description adds minimal behavioral context beyond the schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description consists of two concise sentences with the purpose front-loaded. Every sentence adds value with no wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple list tool with no output schema, the description adequately states purpose and usage order. However, it does not describe the return format (e.g., array of URLs), which would help an agent use the output effectively.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% for the single parameter. The tool description does not add any additional meaning about the parameter beyond what the schema already provides, achieving the baseline score.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool lists verified sites/properties in Google Search Console with a specific verb ('List') and resource. It distinguishes from siblings like get_search_performance and get_sitemaps, which operate on specific sites.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly advises using this tool first before querying search performance, providing clear context. However, it does not mention when not to use it or offer explicit alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_sitemapsAInspect
List all sitemaps submitted to Google Search Console for a property — shows submission status, indexing coverage, errors, and warnings. Use for technical SEO audits and crawl coverage analysis.
| Name | Required | Description | Default |
|---|---|---|---|
| site_url | Yes | The site URL exactly as shown in Search Console (e.g., "sc-domain:example.com" or "https://example.com/") | |
| companyId | Yes | FreedomOS company id to act within (you must be a member). Required for company-scoped tools. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden. It implies read-only behavior but does not disclose other traits like authentication requirements or rate limits. The description is accurate but lacks additional behavioral context beyond the listing action.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences with no extraneous information. It front-loads the main action and efficiently adds usage guidance.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple tool with no output schema, the description adequately states what data is returned (status, coverage, errors, warnings). However, it could provide more detail on the response structure or pagination to be fully complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the schema already documents both parameters. The description adds little beyond the schema's descriptions (e.g., example format for site_url). Baseline is 3; no significant added value.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool lists all sitemaps for a Google Search Console property, including submission status, indexing coverage, errors, and warnings. It distinguishes from siblings like get_site_list by specifying the sitemap-specific output.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly says 'Use for technical SEO audits and crawl coverage analysis,' providing clear context for when to use it. It does not mention when not to use or alternatives, but the purpose is well-defined.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_stripe_metricsAInspect
Get Stripe metrics including average/median LTV, MRR, churn rate, active subscriptions, and an AI-recommended CAC target derived from the company's chosen LTV:CAC strategy (see get_cac_strategy / set_cac_strategy). Returns both blended company-wide metrics and per-plan-tier segments (e.g., Solo vs Team) with segment-specific LTV and CAC targets. Use this to guide customer acquisition spend decisions per customer type. Only works if Stripe is connected.
| Name | Required | Description | Default |
|---|---|---|---|
| companyId | Yes | FreedomOS company id to act within (you must be a member). Required for company-scoped tools. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry the behavioral burden. It implies a read operation ('Get') and mentions the Stripe connection dependency, but does not explicitly state read-only, data freshness, or API call behavior. Adequate but not detailed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two clear sentences: first lists output metrics and segmentation, second provides usage guidance and prerequisite. No unnecessary words; well-organized.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given a simple read tool with one parameter and no output schema, the description covers the key metrics, segmentation, prerequisite, and usage scenario. Missing explicit error states or format details, but sufficient for typical use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with one parameter (companyId) well-described in the schema. The description adds no additional parameter semantics beyond referencing the tool's purpose. Baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it retrieves Stripe metrics including LTV, MRR, churn rate, active subscriptions, and AI-recommended CAC target. It references per-plan-tier segments. The verb 'Get' plus specific metrics leaves no ambiguity about the tool's function, and it is distinct from sibling tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly suggests using it to 'guide customer acquisition spend decisions per customer type' and notes the prerequisite 'Only works if Stripe is connected.' While it lacks when-not-to-use or alternative tool mentions, the context is clear for most use cases.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_subscription_statsAInspect
Get subscription statistics from Stripe — active, trialing, past-due, and canceled counts plus MRR and ARR. Use alongside get_stripe_metrics for a full revenue picture. Only works if Stripe is connected.
| Name | Required | Description | Default |
|---|---|---|---|
| companyId | Yes | FreedomOS company id to act within (you must be a member). Required for company-scoped tools. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. It states a prerequisite but does not disclose any side effects, authentication requirements, or whether it is read-only. Minimal behavioral information, but acceptable for a simple stats retrieval tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences. First sentence immediately states purpose and output. Second sentence provides usage guidance and prerequisite. No unnecessary words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given low complexity (1 required param, no output schema), description covers essential points: what data is returned, prerequisite, and complementary tool. Missing details on time range or data granularity, but sufficient for a stats snapshot tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% (single parameter 'companyId' described). Description does not add additional info about the parameter beyond the schema, so score is baseline 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly specifies the action ('get'), the resource ('subscription statistics from Stripe'), and the specific data returned (active, trialing, past-due, canceled counts, MRR, ARR). It differentiates from sibling 'get_stripe_metrics' by stating it's for subscription-specific stats.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly recommends using alongside 'get_stripe_metrics' for a full picture and states a prerequisite (Stripe must be connected). Does not provide explicit when-not-to-use scenarios, but context is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_tacticsBInspect
List tactics for the company. Can filter by category or status.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum number of tactics to return (default: 10) | |
| status | No | Filter by status | |
| category | No | Filter by category | |
| companyId | Yes | FreedomOS company id to act within (you must be a member). Required for company-scoped tools. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided. The description only states 'list' but does not disclose that it is a read-only operation, any pagination behavior, or performance implications. It lacks detail beyond the basic action.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with zero wasted words. Efficiently communicates the core function and filtering options.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple listing tool with 4 parameters, no output schema, and no annotations, the description is minimal. It does not explain default limit, ordering, or how to handle pagination. It meets minimum but leaves gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and descriptions for parameters are clear. The description adds 'Can filter by category or status', which is already evident from the schema. It does not provide additional meaning or usage hints.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the verb 'list' and resource 'tactics' with scope 'for the company'. It stands out from sibling tools like create_tactic, delete_tactic, run_tactic by being a read-only listing operation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use this tool versus alternatives. It does not mention when to use over other list tools (e.g., list_pipelines) or provide exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_team_membersAInspect
Get all team members for the current company. Returns name, email, and role for each member. Use when user asks about team, company members, who is on the team, etc.
| Name | Required | Description | Default |
|---|---|---|---|
| companyId | Yes | FreedomOS company id to act within (you must be a member). Required for company-scoped tools. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden. It implies a read-only operation and lists returned fields, but does not disclose side effects, required permissions (beyond membership), rate limits, or any constraints.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Exceptionally concise: two sentences that immediately convey the tool's action, output, and usage. No wasted words, and the purpose is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple retrieval tool with no output schema, the description covers the essential aspects—what it returns and when to use it. It lacks mention of pagination or error cases, but these are not critical given the tool's simplicity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with one parameter (`companyId`) already described. The description does not add meaningful detail beyond what's in the schema, so baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it retrieves all team members for the current company and specifies the returned fields (name, email, role). However, it does not differentiate from sibling tools like `get_team_roster`, which may have overlapping purpose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly states when to use the tool: 'when user asks about team, company members, who is on the team, etc.' It provides clear context for usage, though it does not mention when not to use or alternative tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_team_pulseAInspect
Get a real-time snapshot of team output volume, pending approvals, and founder load. Shows cards per agent, approval velocity, oldest pending items, and load trends. Use this to detect if the founder is being overwhelmed, if agents are producing too much or too little, or if cards are piling up without action.
| Name | Required | Description | Default |
|---|---|---|---|
| days | No | Lookback window in days (default: 7) | |
| companyId | Yes | FreedomOS company id to act within (you must be a member). Required for company-scoped tools. | |
| company_id | No | Company ID to check. Usually auto-injected from context. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses the scope of data returned (cards per agent, approval velocity, etc.) and implies read-only nature without explicit declaration. No annotations provided, so the description carries the transparency burden; it does so adequately.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three efficient sentences: action, specifics, usage. No fluff, front-loaded with key purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Explains what the tool returns and when to use it. Lacks output schema and doesn't mention error handling or pagination, but for a snapshot tool this is sufficient.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema provides 100% description coverage for all three parameters. Description adds context about output content but no additional parameter details beyond schema. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Starts with clear verb 'Get' and specific resource 'real-time snapshot of team output volume, pending approvals, and founder load'. Lists exact metrics, differentiating it from sibling tools like get_team_members or get_agent_performance.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states three concrete use cases: detecting founder overwhelm, agent productivity issues, and backlog buildup. Doesn't mention when not to use or alternatives, but the guidance is actionable and context-aware.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_team_rosterAInspect
Get complete AI team roster with roles, specialties, and capacity info. ALWAYS call this BEFORE recommending hires to check for existing coverage.
| Name | Required | Description | Default |
|---|---|---|---|
| companyId | Yes | FreedomOS company id to act within (you must be a member). Required for company-scoped tools. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden for behavioral disclosure. It does not mention whether the tool is read-only, requires specific permissions, has rate limits, or any side effects. The only hint is that it requires a companyId and membership, but key behavioral traits are omitted.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description consists of two efficient sentences. The first states the purpose, the second provides a crucial usage guideline. No redundant or unnecessary words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description lists what the roster includes (roles, specialties, capacity info), which is helpful. However, without annotations or an output schema, it lacks details on pagination, sorting, or return format. It is adequate for a simple get operation but could be more complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has one parameter (companyId) with 100% description coverage. The description does not add any extra meaning beyond the schema's description. Baseline of 3 is appropriate because the schema already adequately documents the parameter.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool gets a 'complete AI team roster' and specifies the contents: roles, specialties, and capacity info. It uses a specific verb-resource combination that differentiates it from siblings like 'get_team_members', which likely provides a simpler list.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly tells when to call this tool ('ALWAYS call this BEFORE recommending hires') and why ('to check for existing coverage'). It does not mention alternatives or when not to use it, but the directive is strong and clear for its primary use case.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_top_customersAInspect
Get top customers ranked by lifetime value (LTV) or revenue from Stripe. Returns name, email, LTV, subscription status, and purchase count for each customer. Use this to identify high-value accounts and retention opportunities. Only works if Stripe is connected.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Number of top customers to return (default: 10, max: 25) | |
| sort_by | No | Sort criteria (default: ltv) | |
| companyId | Yes | FreedomOS company id to act within (you must be a member). Required for company-scoped tools. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries burden. Discloses it only works with Stripe and returns listed fields, but does not explicitly state it's read-only or discuss rate limits. Implied by 'get' but could be stronger.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two efficient sentences: one for action and output, one for use and prerequisite. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers purpose, output fields, use case, prerequisite. Lacks error handling or pagination details, but for a simple retrieval with default/schema info, it is sufficiently complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema covers all 3 parameters with descriptions (100% coverage). Description adds output field details but no extra parameter meaning. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Explicitly states it retrieves top customers ranked by LTV or revenue, listing return fields. Clearly distinguishes from sibling tools like get_stripe_metrics or get_lead_pipeline_snapshot.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides use case (identify high-value accounts, retention) and prerequisite (Stripe connection). Lacks explicit when-not-to-use or alternative tools, but sufficient for a simple retrieval.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_transactionsBInspect
List company transactions with optional filters. Use for expense tracking, transaction review.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max results to return (default: 25, max: 100) | |
| status | No | Filter by status | |
| date_to | No | End date filter (ISO format) | |
| category | No | Filter by category | |
| companyId | Yes | FreedomOS company id to act within (you must be a member). Required for company-scoped tools. | |
| date_from | No | Start date filter (ISO format, e.g., 2026-01-01) | |
| is_income | No | Filter to income (true) or expenses (false) |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description bears full responsibility for behavioral disclosure. It only states a listing behavior with optional filters, omitting details on pagination, ordering, rate limits, authentication, or data freshness. The word 'list' implies read-only, but this is not explicitly confirmed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise with two sentences, front-loading the primary action. It is efficient but could benefit from slightly more contextual detail without becoming verbose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has 7 parameters, no output schema, and no annotations, the description is somewhat incomplete. It does not explain return format, pagination behavior, or how filters combine. For a list tool with good schema descriptions, it is minimally adequate but has clear gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the input schema already documents all parameters adequately. The description adds no new semantic meaning beyond 'optional filters'. Baseline of 3 is appropriate since the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'List company transactions with optional filters' with specific verbs and resources, and mentions use cases 'for expense tracking, transaction review'. It effectively distinguishes itself from siblings like 'search_transactions' which may offer more extensive filtering.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides general use cases ('expense tracking, transaction review') but does not explicitly state when to use this tool versus alternatives like 'search_transactions'. No when-not-to-use or prerequisite information is given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_voice_profileAInspect
Get the company's VOICE PROFILE — the operator's real writing voice the drafting agents ground on (style descriptor, in-voice DOs, out-of-voice AVOIDs, real exemplars, target reading level). Use this before drafting any post, caption, email, or article, for any agent writing on this company's behalf, so the first draft is in-voice — do not rely on brand tone adjectives alone.
| Name | Required | Description | Default |
|---|---|---|---|
| companyId | Yes | FreedomOS company id to act within (you must be a member). Required for company-scoped tools. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must disclose behavioral traits. It indicates the tool retrieves data (read-only implied) and lists return components, but does not explicitly state safety, idempotency, or any effects. With no annotations, this is adequate but not comprehensive.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences: first defines the tool's output, second provides usage guidance. It is front-loaded and concise, though the first sentence is dense with parenthetical items. No superfluous content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema, the description adequately explains what is returned (style descriptor, DOs, AVOIDs, exemplars, reading level) and why it matters. For a simple read tool, it provides sufficient context for an agent to use it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 100% schema coverage, the parameter is already described. The description adds context about the companyId's purpose (getting the voice profile for that company) and usage timing, but doesn't add technical detail beyond the schema. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool retrieves the company's voice profile and lists its components (style descriptor, DOs, AVOIDs, exemplars, reading level). It effectively conveys the purpose, though it doesn't explicitly distinguish from sibling tools like 'update_voice_profile'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly advises to use this tool before drafting any content on the company's behalf, emphasizing not to rely on brand tone adjectives alone. This provides strong usage context, though it lacks explicit exclusions or alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_xero_reportAInspect
Get a LIVE financial report straight from the company's connected Xero ledger: ProfitAndLoss, BalanceSheet, BankSummary, TrialBalance, or ExecutiveSummary. Source of truth for current numbers — prefer this over get_financial_summary (which reads the periodically-processed snapshot) when the user asks about current/live financial position.
Routing: LIVE ledger (Xero): balance sheet / P&L / bank summary straight from the books → use over get_financial_summary for current numbers
| Name | Required | Description | Default |
|---|---|---|---|
| kind | Yes | Which report to pull | |
| to_date | No | Period end / as-at date, YYYY-MM-DD. Defaults to today. | |
| companyId | Yes | FreedomOS company id to act within (you must be a member). Required for company-scoped tools. | |
| from_date | No | Period start, YYYY-MM-DD (period reports: ProfitAndLoss, BankSummary) |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description bears full responsibility. It discloses the live nature and source of truth, but does not mention potential issues (e.g., Xero integration dependency, rate limits, latency) or the output format. Some transparency is present but insufficient for a tool with no annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the key action and details in the first sentence. However, the second paragraph ('Routing: ...') largely restates the first paragraph, introducing redundancy. It is still relatively concise but could be trimmed.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description effectively covers purpose and usage differentiation, but omits important context such as the output format (no output schema), error handling, and prerequisites (Xero integration). For a simple read tool, this is adequate but not complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so baseline is 3. The description only lists the report types and implies date parameters, but adds no new meaning beyond what the schema already provides for each parameter. No additional syntax or usage nuances are given.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Get' and the resource 'LIVE financial report straight from the company's connected Xero ledger', listing specific report types (ProfitAndLoss, BalanceSheet, etc.). It explicitly distinguishes from the sibling get_financial_summary by noting this tool provides live data while the sibling uses a periodic snapshot.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states when to use this tool ('when the user asks about current/live financial position') and when not to (prefer get_financial_summary for processed snapshots). Provides clear routing guidance: 'use over get_financial_summary for current numbers'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_x_post_metricsAInspect
Get engagement metrics for a tweet on X (Twitter). Returns impressions, likes, retweets, replies, quotes, and bookmarks. Use when the user asks "how did my post do?", "check my tweet analytics", or to evaluate content performance.
| Name | Required | Description | Default |
|---|---|---|---|
| tweet_id | Yes | The tweet ID (numeric) or full tweet URL (e.g. https://x.com/user/status/123456) | |
| companyId | Yes | FreedomOS company id to act within (you must be a member). Required for company-scoped tools. | |
| pipeline_output_id | No | Optional. The pipeline_output ID to write metrics back to the content card. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description must cover behavior. It lists return fields and implies read-only through 'Get', but does not mention authentication needs beyond companyId or rate limits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with core purpose, then usage guidance. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema, but description lists six return metrics, which is helpful. Lacks error handling or edge cases, but sufficient for a simple metrics tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema has 100% coverage with descriptions for all parameters. The description adds value by clarifying tweet_id can be numeric or URL, and companyId is for company-scoped actions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the tool gets engagement metrics for a tweet on X, listing specific metrics (impressions, likes, etc.). This distinguishes it from sibling tools like get_page_performance.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides explicit usage scenarios like 'how did my post do?' and 'check my tweet analytics'. Missing when-not-to-use or alternatives, but context is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
grant_agent_toolAInspect
Grant ONE specific tool to an agent's loadout (tool_access). Use when an operator says "give the tool" / "let use ". The tool name is validated against the live registry at write time — phantom names are rejected, deprecated names auto-map to their successor. For wholesale capability re-derivation use recalibrate_agent_jd instead; connector tools auto-provision on connection.
[sensitive-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.]
| Name | Required | Description | Default |
|---|---|---|---|
| reason | No | Optional one-line why — stored in the audit record on the agent's JD. | |
| agent_id | Yes | UUID of the agent receiving the tool. Use get_team_roster to find IDs. | |
| companyId | Yes | FreedomOS company id to act within (you must be a member). Required for company-scoped tools. | |
| tool_name | Yes | Exact registry name of the tool to grant (e.g. "capture_idea"). |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description reveals validation behavior (live registry, rejection of phantom names, auto-mapping of deprecated names) and sensitive-tier approval requirements. It does not explicitly state that it's a write operation, but it's implied by 'grant'. No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise with two paragraphs, front-loading the core purpose. Every sentence adds value without redundancy. It is well-organized: purpose, usage, alternatives, behavior, and approval info.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool lacks an output schema, which might warrant a brief mention of return values (e.g., success status or error). However, the purpose and usage are clearly covered, and the parameters are thoroughly explained, making it fairly complete. Minor gap for output.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. The description adds context beyond the schema: 'agent_id' can be found via 'get_team_roster', 'tool_name' is validated against the live registry, and 'reason' is optional and stored in the audit record. This enriches the parameter meaning.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's verb ('Grant') and resource ('specific tool to an agent's loadout'). It distinguishes from the sibling 'recalibrate_agent_jd' and mentions behavior for connector tools, making the purpose unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly states when to use (operator requests like 'give <agent> the <tool> tool') and when not to use (wholesale re-derivation via 'recalibrate_agent_jd'). It also provides context on validation, auto-mapping, and approval tiers.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
hire_agentAInspect
DEPRECATED: Redirects to interview_for_hire. All hiring now requires context gathering to create a proper JD. Use interview_for_hire directly when user wants to hire someone.
[sensitive-tier, initiates a multi-step agent process — 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.]
| Name | Required | Description | Default |
|---|---|---|---|
| companyId | Yes | FreedomOS company id to act within (you must be a member). Required for company-scoped tools. | |
| role_name | Yes | The role name to hire | |
| specialty | No | Optional specialty domain: marketing, sales, finance, technology, operations |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It discloses that the tool redirects, is deprecated, and includes a note about requiring approval (multi-step process, manager approval). However, it does not detail exact redirect behavior or any side effects, but the information given is sufficient for an agent to understand the behavioral implications.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the key deprecation message and usage guidance. It is concise but includes a somewhat lengthy bracket note about approval that could be considered extraneous. Overall, it is well-structured and efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a deprecated tool that simply redirects, the description covers its purpose, alternative, and behavioral context (approval process). The absence of an output schema is not a gap as the tool redirects. The description is complete enough given the tool's nature.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. The description adds no parameter-specific meaning beyond what the schema already provides (e.g., required role_name and companyId, optional specialty). It mentions role_name indirectly but no new semantics.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description explicitly states the tool is 'DEPRECATED' and that it 'Redirects to interview_for_hire'. This clearly identifies the tool's purpose and distinguishes it from its alternative sibling tool, 'interview_for_hire'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit guidance on when to use this tool (deprecated, should not be used) and when to use the alternative: 'Use interview_for_hire directly when user wants to hire someone.' This is very clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
hire_agent_with_contextAInspect
Hire a new specialist with full hiring context gathered from the interview. Use AFTER walking through the interview phases. The richer the context, the better the agent.
[sensitive-tier, initiates a multi-step agent process — 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.]
| Name | Required | Description | Default |
|---|---|---|---|
| goal | Yes | The specific mission this hire will achieve — be as specific as possible, include real numbers | |
| companyId | Yes | FreedomOS company id to act within (you must be a member). Required for company-scoped tools. | |
| obsession | No | The ONE demand-path KPI this agent lives or dies by (leads, enrolls, revenue, cash, customers). Not "agents activated" or team-hygiene metrics. Specific with numbers when possible (e.g., "Close the $4,200/mo freedom gap"). | |
| role_name | Yes | A descriptive role name (e.g., "YouTube Growth Specialist", "Cash Flow Analyst", "SEO Content Writer") | |
| agent_name | No | OPTIONAL. The exact display name the user explicitly asked for — a single first name (e.g. "Garth" from "name it Garth" / "call it Garth"). Set this ONLY when the user named the agent; leave unset to auto-generate a fitting name. NEVER fold the requested name into role_name. | |
| guardrails | No | What this agent should NEVER do (e.g., "Never recommend cutting product investment", "Never ignore cash runway below 3 months") | |
| first_72_hours | No | 3 demand-bound first actions (leads/enroll/outbound/content-to-market/cash/fulfillment). FORBIDDEN: placement audits, governance of inactive agents, fleet ownership maps, agent scoreboards. These become Day 1-3 tasks; hygiene shapes are stripped at write time. | |
| reports_to_name | No | Name or role of the team member this agent should report to. Use an existing team member name if one is a natural manager. Say "Linnet" for Chief of Staff, or "founder" for direct-to-founder reporting. | |
| success_metrics | Yes | Specific, measurable outcomes that define success | |
| domain_expertise | No | Role-specific domain knowledge that makes this agent an expert (frameworks, ratios, best practices specific to this role and industry) | |
| reporting_cadence | No | How often to send updates: weekly, biweekly, monthly, or realtime | |
| personality_traits | No | Communication style preferences (e.g., "direct", "data-heavy", "encouraging", "concise", "detailed analysis") | |
| required_resources | No | Tools, integrations, or data sources this agent needs. Default documents, briefs, and reports to the FreedomOS Knowledge Base (save_knowledge / read_knowledge — always available, visible in-app); list an EXTERNAL integration (e.g. Google Sheets) only when the role genuinely needs it. Do NOT list Google Docs/Sheets as a default — the agent can request a connector via request_connector and state the limitation until it is granted. | |
| context_and_resources | No | What the user has already tried, existing tools/data/resources available |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It discloses that the tool is 'sensitive-tier', initiates a multi-step process, and requires manager approval on first use, along with explaining approval semantics. This is valuable behavioral context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and front-loaded with the core purpose and usage guidance. The approval note is included efficiently but could be slightly more structured. Overall, it earns its content without waste.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the high parameter count (14) and no output schema, the description is somewhat complete but lacks details on the outcome of hiring (e.g., what is created) and the steps of the multi-step process. The schema covers individual parameters well, but the overall result is unclear.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the schema already describes all 14 parameters with good detail. The description does not add significant parameter-level meaning beyond what is in the schema, meeting the baseline expectation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool hires a new specialist using interview context. It uses a specific verb and resource, and the mention of 'full hiring context gathered from the interview' distinguishes it from the simpler sibling tool 'hire_agent'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly says 'Use AFTER walking through the interview phases', providing clear temporal guidance. However, it does not explicitly exclude alternatives or mention when not to use it relative to 'hire_agent'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ingest_voice_corpusAInspect
Build or refresh the company's voice profile from REAL writing. Use this when the operator wants agents to learn their voice from their actual work — pass a URL to their blog / newsletter / posts (or an admired creator's page), or paste sample text. The system fetches it safely, distills the STYLE (cadence, word choice, argument-building — never faith substance), and merges it into the voice profile all drafting agents ground on. For any operator/brand setting up or improving how their content sounds.
[sensitive-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.]
| Name | Required | Description | Default |
|---|---|---|---|
| text | No | A pasted writing sample to learn from. | |
| urls | No | Public URLs to learn the voice from (SSRF-guarded fetch). | |
| companyId | Yes | FreedomOS company id to act within (you must be a member). Required for company-scoped tools. | |
| faith_heavy | No | Mark the sources faith-heavy (style learned, faith substance excluded). | |
| subject_kind | No | Whose voice — 'person' (personal brand) or 'brand'. | |
| subject_name | No | The person or brand name. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It explains the system 'fetches it safely, distills the STYLE (cadence, word choice, argument-building — never faith substance), and merges it into the voice profile.' It also includes a note about sensitive-tier access and approval requirements, which is valuable behavioral context beyond the basic function.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two concise paragraphs. The first paragraph delivers the core purpose and usage in a single, front-loaded sentence, followed by actionable guidance. The second paragraph adds necessary behavioral details (approval tiers) without clutter. Every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 6 parameters, no output schema, and no annotations, the description covers the tool's purpose, usage, parameter roles, and behavioral aspects (safety, approval). It could mention potential failure modes or response format, but it is sufficiently complete for an AI agent to understand and invoke the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with every parameter described. The description adds value by explaining how parameters relate to real-world usage, e.g., 'pass a URL to their blog / newsletter / posts' maps to urls, 'paste sample text' maps to text. It also clarifies 'faith_heavy' and 'subject_kind' meaning, complementing the schema without redundancy.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Build or refresh the company's voice profile from REAL writing.' It uses specific verbs ('build or refresh') and a resource ('voice profile'), and distinguishes itself from sibling tools like get_voice_profile or update_voice_profile by focusing on ingestion from external sources.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly says 'Use this when the operator wants agents to learn their voice from their actual work' and provides concrete examples (blog, newsletter, sample text). It also states 'For any operator/brand setting up or improving how their content sounds.' While it lacks explicit exclusions, the context is clear enough for appropriate use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
inspect_urlAInspect
Inspect a URL in Google Search Console — check indexing status, crawl errors, mobile usability, and rich results. Use for technical SEO audits, diagnosing why pages aren't appearing in search, or checking mobile-friendliness.
| Name | Required | Description | Default |
|---|---|---|---|
| site_url | Yes | The site URL as shown in Search Console (e.g., "sc-domain:getfreedomos.com" or "https://getfreedomos.com/") | |
| companyId | Yes | FreedomOS company id to act within (you must be a member). Required for company-scoped tools. | |
| inspection_url | Yes | The full URL to inspect (e.g., "https://getfreedomos.com/features") |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description must fully convey safety. It describes what the tool checks but does not explicitly state whether it is read-only, requires permissions, or has rate limits. The description is reasonably transparent for an inspection tool but lacks some behavioral details.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences: first communicates action and scope, second lists use cases. No redundant words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description explains what the tool does and when to use it, but with no output schema, it lacks any indication of return format or contents. This is a notable gap for a tool that likely returns structured inspection results.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the schema already documents all three parameters. The description does not add new parameter-level meaning beyond the schema definitions. Baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb+resource ('Inspect a URL in Google Search Console') and lists the aspects checked (indexing status, crawl errors, mobile usability, rich results). This clearly distinguishes it from sibling tools like browse_url (fetching page content) and get_search_performance (analytics).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicit use cases are provided ('technical SEO audits, diagnosing why pages aren't appearing in search, or checking mobile-friendliness'). No explicit exclusions or alternatives, but context is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
interview_for_hireAInspect
Research the company and return everything needed to propose a specialist hire in ONE shot. Use when the user wants to hire, needs specialist help, or describes a problem a specialist would own. Returns deep pre-researched company context + a single-proposal directive — NOT a multi-turn questionnaire.
[sensitive-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.]
| Name | Required | Description | Default |
|---|---|---|---|
| companyId | Yes | FreedomOS company id to act within (you must be a member). Required for company-scoped tools. | |
| initial_request | Yes | What the user originally said they needed help with |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries the burden. It mentions return value (company context + proposal) and sensitivity/approval note. However, it does not disclose read-only nature, permissions, or side effects beyond research.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three concise sentences plus a bracketed note. Front-loaded with purpose, then usage, then output format and sensitivity. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a research tool with 2 parameters and no output schema, the description adequately hints at return type ('deep pre-researched company context + single-proposal directive'). Could be more specific about output format but sufficient.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and schema descriptions already adequately define the two parameters. The tool description adds no additional semantic detail beyond what is in the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool researches the company and returns a proposal in one shot. It distinguishes from a multi-turn questionnaire, but lacks explicit differentiation from siblings like 'suggest_next_hire' or 'hire_agent'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly says when to use: when user wants to hire, needs specialist help, or describes a problem a specialist would own. Does not mention when not to use or list alternatives among many sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
invoke_integrationAInspect
Execute a tool on a connected MCP integration. First use list_integrations to discover available tools.
[outbound-tier — EVERY call needs a manager's approval (per-send human rail): each request queues its own approval card and sends exactly once on approve. There is no standing grant for this tool.]
| Name | Required | Description | Default |
|---|---|---|---|
| arguments | No | Arguments to pass to the tool | |
| companyId | Yes | FreedomOS company id to act within (you must be a member). Required for company-scoped tools. | |
| tool_name | Yes | Name of the tool to execute on the integration | |
| integration_name | Yes | Name of the integration (e.g., "stripe", "calendar") |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses important behavioral traits: each request queues an approval card and sends exactly once on approve, and there is no standing grant. This goes beyond what annotations (none provided) would offer, giving the agent crucial context about the tool's execution model and safety profile.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise: two sentences that cover purpose, prerequisite, and behavioral constraint. No wasted words; every sentence adds value. It is front-loaded with the core action.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given that the tool has nested objects and no output schema, the description covers the essential aspects: what it does, the prerequisite (list_integrations), and the approval model. It is mostly complete for a straightforward execution tool, though it could mention expected response or error behavior.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the input schema already documents all four parameters with descriptions. The description does not add extra meaning beyond the schema, such as valid values or format constraints. A baseline score of 3 is appropriate since the schema handles parameter semantics adequately.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb-resource relationship ('Execute a tool on a connected MCP integration') and distinguishes from siblings by referencing the prerequisite tool list_integrations, which is a sibling. This helps the agent understand what the tool does and how it relates to other tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly advises to first use list_integrations to discover available tools, providing clear context for when to use this tool. It also details the approval requirement (every call needs manager approval, no standing grant), which helps in understanding usage constraints. However, it does not explicitly state when not to use this tool or list alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
link_agent_okrsAInspect
Link an agent to one or more company OKRs. This creates a live connection between the agent and the company objectives they are working toward. Their system prompt will include live OKR context (objectives + key results with progress).
[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.]
| Name | Required | Description | Default |
|---|---|---|---|
| append | No | If true, add to existing linked OKRs. If false (default), replace all linked OKRs. | |
| okr_ids | Yes | Array of OKR UUIDs to link to this agent | |
| agent_id | No | UUID of the agent to link OKRs to | |
| companyId | Yes | FreedomOS company id to act within (you must be a member). Required for company-scoped tools. | |
| agent_name | No | Name of the agent (used to look up agent_id if not provided) |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description effectively discloses behavioral traits: the live connection effect, inclusion of OKR context in system prompt, and the write-tier approval workflow (manager approval, approval types). It adds value beyond basic mutation disclosure.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two clear sentences plus a useful bracketed note. It is front-loaded with the core purpose and action. The note about approval could be integrated, but overall it's efficient and scannable.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with 5 parameters, no output schema, and no annotations, the description covers purpose and approval but lacks details on parameter conflict resolution (e.g., agent_id vs. agent_name) and what the tool returns. It is adequate for basic understanding but not comprehensive.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline 3 is appropriate. The description adds minimal extra meaning: it explains the overall purpose but not parameter interactions (e.g., agent_id vs. agent_name conflict). The append parameter is already well-defined in schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb (link), the resource (agent to OKRs), and the specific effect (creates a live connection; system prompt includes live OKR context). It distinguishes this tool from siblings like get_okrs or update_agent by focusing on the linking function.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage when an agent needs to be aware of company OKRs, but does not explicitly state when to use vs. alternatives (e.g., get_okrs for viewing, or other agent modification tools). The approval note hints at sensitivity but no direct when-not or alternative guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_ad_accountsAInspect
List the Meta (Facebook/Instagram) ad accounts on this company's connection, with status, currency, lifetime spend, and spend cap. Use first when the user asks about their FB/IG ads — the returned id feeds list_ad_campaigns and get_ads_performance.
Routing: Meta/FB/IG ads questions → start here to find the ad account
| Name | Required | Description | Default |
|---|---|---|---|
| companyId | Yes | FreedomOS company id to act within (you must be a member). Required for company-scoped tools. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. Describes it as a listing tool with returned fields, but does not mention permissions, rate limits, or pagination. While adequate for simple read operation, it lacks deeper behavioral context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, no filler. Includes purpose, parameters returned, and usage routing. Efficient and well-structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple listing tool with one parameter and no output schema, the description covers purpose, usage guidance, and chaining with other tools. Complete enough given the tool's simplicity and context signals.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Only one parameter (companyId) with 100% schema description coverage. Description adds no extra semantic info beyond what schema already provides, so baseline score of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the tool lists Meta ad accounts with specific fields (status, currency, lifetime spend, spend cap). It also indicates primary use case for FB/IG ads and distinguishes from sibling tools like list_ad_campaigns and get_ads_performance.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly says 'Use first when the user asks about their FB/IG ads' and explains that the returned id feeds list_ad_campaigns and get_ads_performance. Provides clear routing and when-to-use guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_ad_campaignsAInspect
List campaigns in a Meta ad account: status, objective, budgets (major currency units), and schedule. Use when the user asks what ads/campaigns are running on Facebook or Instagram. Omit ad_account_id when the connection has exactly one ad account.
| Name | Required | Description | Default |
|---|---|---|---|
| companyId | Yes | FreedomOS company id to act within (you must be a member). Required for company-scoped tools. | |
| ad_account_id | No | Ad account id from list_ad_accounts (act_<digits> or bare digits). Optional when the connection has exactly one ad account. | |
| effective_status | No | Optional filter, e.g. ["ACTIVE"], ["PAUSED"], ["ACTIVE","PAUSED"]. Omit for all campaigns. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must fully cover behavioral traits. It does not mention prerequisites (e.g., authentication, ad account permissions), response edge cases (empty list), or rate limits. The description focuses only on output fields without behavioral context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with no filler. Front-loaded with purpose and key details. Every phrase earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema exists, so description should clarify return format. It lists fields but omits data types, ordering, pagination, or limits. Adequate for a basic list tool but incomplete for rich agent decision-making.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the description adds value by explaining when to omit ad_account_id and how to use effective_status filter. This goes beyond the schema's field descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'List campaigns in a Meta ad account' and specifies returned fields (status, objective, budgets, schedule). It effectively distinguishes from sibling tools like list_ad_accounts (lists accounts) and get_ads_performance (performance data).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly says 'Use when the user asks what ads/campaigns are running on Facebook or Instagram' and provides guidance to omit ad_account_id when exactly one account exists. However, it does not contrast with alternative tools like get_ads_performance for performance needs.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_attention_directivesAInspect
List pending attention directives for THIS operator (optionally filtered by target_session_id). Hosts (Grok/Claude) and CoS use this to see what is waiting. Does not ack — use ack_attention_directive after acting.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max rows (1–50, default 20). | |
| companyId | No | FreedomOS company id to act within (you must be a member). Required for company-scoped tools. | |
| target_session_id | No | If set, only pending directives for this session id. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It discloses that the tool lists pending directives for the calling operator and does not acknowledge them. It does not mention additional behavioral traits like being read-only or having no side effects, but the action 'list' implies read-only nature.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, front-loaded with action and scope, no wasted words. Efficiently conveys purpose, audience, filter, and critical caveat.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple list tool with no output schema and 3 parameters, the description covers the essential: what it does, for whom, optional filter, and the important distinction from ack tool. No significant gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so baseline is 3. The description adds value by highlighting optional filtering by target_session_id, which helps agents understand the key parameter's usage beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'list', the resource 'pending attention directives', and the scope 'for THIS operator'. It also distinguishes from sibling tools by noting it does not acknowledge, pointing to ack_attention_directive for that purpose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly says when to use: 'Hosts (Grok/Claude) and CoS use this to see what is waiting.' Also states when not to use for acknowledging: 'Does not ack — use ack_attention_directive after acting.' Provides clear context and alternative.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_attention_sessionsAInspect
List THIS operator's coding/builder sessions (status, goal, ask). Hygiene: drops stale hosts (no recent heartbeat) and blocked rows without a real ask. Use needs_me=true for "what needs me?" (blocked only). Use before create_attention_directive or when attending a blocked session.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max sessions (1–50, default 30). | |
| needs_me | No | If true, only return blocked_on_operator sessions with a real fresh ask (attend targets). | |
| companyId | No | FreedomOS company id to act within (you must be a member). Required for company-scoped tools. | |
| include_stale | No | If true, include sessions that failed freshness hygiene (default false). |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations, so description carries burden. It reveals hygiene filtering behavior but omits details like return format, pagination, auth requirements.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences plus usage note; concise and front-loaded with purpose and key behavior.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Adequately explains purpose, filtering, and usage context; lacks output description and some edge cases, but sufficient for a list tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema covers all parameters; description adds context for include_stale and needs_me via hygiene explanation, but doesn't explain other params.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states it lists operator's coding/builder sessions with status, goal, ask. Distinguishes scope but no explicit sibling differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly says to use before create_attention_directive or when attending blocked session, and to use needs_me for 'what needs me?' filtering.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_commitmentsAInspect
List the user's active commitments. Shows what's on their plate across all life domains, sorted by due date.
| Name | Required | Description | Default |
|---|---|---|---|
| domain | No | Filter by domain (optional). E.g., "family", "home", "company:acme" | |
| companyId | No | FreedomOS company id to act within (you must be a member). Required for company-scoped tools. | |
| include_completed | No | Include completed commitments (default: false) |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, description carries full burden. It discloses sorting by due date and default exclusion of completed commitments via 'active'. Read-only nature is implied but not explicitly stated. Sufficient for a list tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences. First states purpose, second adds context. No fluff, front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers sorting, filtering, and active status. No output schema, but return format is standard for list. Could mention pagination limits but adequate given simplicity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema covers all 3 parameters with descriptions. Description adds valuable context: domain filter examples include 'company:acme', companyId is required for company-scoped tools, include_completed defaults to false. Adds meaning beyond schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the tool lists active commitments, verb+resource, and specifies it shows commitments across life domains sorted by due date. Distinguishes from sibling tools like add_commitment, complete_commitment, etc.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Implies usage to view current commitments but lacks explicit when to use vs alternatives like list_my_work or get_next_priority. No exclusions or alternative guidance provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_corpus_inventoryAInspect
List what content material this company already has (knowledge folders like book-1/canon, SME Expert rules, idea_inbox assigned to the workspace). Use BEFORE inventing posts or when the operator asks 'what content do we have?'. Read-only; no LLM. Prefer promote_corpus_to_content next to mint cards.
| Name | Required | Description | Default |
|---|---|---|---|
| companyId | Yes | FreedomOS company id to act within (you must be a member). Required for company-scoped tools. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It states 'Read-only; no LLM,' which is helpful but lacks details on return format, pagination, or performance implications. It is adequate but not richly transparent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three sentences, each adding value: first defines scope, second gives usage context, third adds behavioral and preference notes. No redundant or filler content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple list tool with one parameter and no output schema, the description covers purpose, usage, and safety. It is missing details on the return format but is otherwise complete enough to enable correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has one parameter (companyId) with 100% coverage. The description does not add any additional meaning beyond the schema's own description, so it meets the baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool lists content material a company already has, specifying types like knowledge folders, SME Expert rules, and idea_inbox. It distinguishes from sibling tools by mentioning to prefer promote_corpus_to_content, and identifies a specific use case ('before inventing posts').
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly advises using this tool before inventing posts or when asked 'what content do we have?', providing clear context. However, it does not explicitly state when not to use it or list alternatives beyond a single suggestion.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_cos_lessonsAInspect
List THIS operator's CoS lessons (open + settled_keep by default) for self-improve memory. Use when reviewing what CoS has learned for this user only before a long call or hygiene pass. Not cross-user.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max rows (1–40, default 20). | |
| companyId | No | FreedomOS company id to act within (you must be a member). Required for company-scoped tools. | |
| include_dropped | No | If true, include settled_drop rows. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the burden of disclosure. It reveals the scope (operator-specific, not cross-user) and default state filters (open + settled_keep, with optional settled_drop via include_dropped). Although it doesn't explicitly state it is read-only, the verb 'List' implies a non-mutating operation, and the described behaviors add useful context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, front-loaded with the core action, and every sentence adds value: what it lists, default filters, intended use case, and a scoping exclusion. No fluff or repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers the what, when, scope, and defaults, which is sufficient for a simple list tool. There is no output schema, and the description doesn't describe return fields or pagination, but that is not required for this simplicity. It is slightly less complete than the benchmark 'get_calls' because it lacks explicit read-only assurance, but overall it is well-rounded.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% coverage with descriptions for all three parameters, so the baseline is 3. The description adds default behavior context (open + settled_keep) that helps interpret include_dropped, but it doesn't clarify the role of companyId in the context of 'THIS operator's lessons' beyond the schema's generic note.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool lists 'THIS operator's CoS lessons,' specifying the resource and scope. It also distinguishes from sibling tools like append_cos_lesson (which writes) and list_knowledge, and the default filter adds precision.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly explains when to use: 'when reviewing what CoS has learned for this user only before a long call or hygiene pass.' It also indicates a limitation with 'Not cross-user,' which helps the agent choose this over cross-user list tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_customer_evidenceAInspect
List ranked REAL Customer Evidence for this company (paying > telemetry > review > relayed > agent_as_user > prospect). Use before customer-facing work or when asked what real customers have said. Empty + company has ICPs = LOUD EMPTY (sim only — do not treat generated ICP as a customer).
| Name | Required | Description | Default |
|---|---|---|---|
| class | No | Optional filter by class. | |
| limit | No | Max rows (default 25, max 100). | |
| companyId | Yes | FreedomOS company id to act within (you must be a member). Required for company-scoped tools. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so description carries full burden. It discloses ranking order and reality of evidence, but lacks details on pagination, permissions, or error states. Adequate but not thorough.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Extremely concise: two sentences and a parenthetical. Front-loaded with key action and context, no wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema; description does not detail return structure. While it covers purpose and usage, completeness is limited for a list tool. Could mention available fields in results.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, baseline is 3. Description adds value by explaining the ranking order (which relates to the 'class' enum) and interpreting empty results, going beyond parameter descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool lists ranked real customer evidence, with a specific verb and resource. It distinguishes itself via ranking order and 'REAL' emphasis, though sibling differentiation is implicit.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly tells when to use: 'before customer-facing work or when asked what real customers have said.' Also warns about empty results with ICPs, providing clear context and exclusion.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_dashboard_widgetsAInspect
List all dashboard widgets for a specific agent. Use to see what widgets are currently configured before making changes.
| Name | Required | Description | Default |
|---|---|---|---|
| agent_id | No | UUID of the agent whose widgets to list. Defaults to current agent. | |
| companyId | Yes | FreedomOS company id to act within (you must be a member). Required for company-scoped tools. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so the description carries the burden. It implies a read operation via 'list' and the pre-modification use case, but does not explicitly state non-destructive behavior or side effects. Adequate for a simple read tool but lacks explicit safety guarantees.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, 17 words, no filler. First sentence states the action, second provides context. Perfectly front-loaded and efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given two simple parameters and no output schema, the description adequately explains purpose and usage. Could optionally mention return format, but not necessary for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with clear descriptions for both parameters. The description adds no additional meaning beyond the schema, so baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states action (list all dashboard widgets) and resource (for a specific agent), with additional context differentiating it from similar tools by specifying 'for a specific agent' and the use case of checking before modifications.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Indicates when to use ('Use to see what widgets are currently configured before making changes'), implying a read-only exploratory role. Could be improved by explicitly stating when not to use or naming alternatives, but context with siblings like 'configure_dashboard' and 'remove_dashboard_widget' makes it clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_dealsAInspect
List CRM deals for the current company. Filter by stage and limit. Returns deals with their associated contacts.
Routing: CRM/sales → see open pipeline → use this
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max number of deals to return (default 20, max 100) | |
| stage | No | Filter by stage (optional) | |
| companyId | Yes | FreedomOS company id to act within (you must be a member). Required for company-scoped tools. | |
| include_closed | No | Include closed deals (default false) |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries burden. It discloses that deals are returned with associated contacts but does not mention read-only nature, pagination, or side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences plus a routing hint. Every sentence adds meaningful information with no redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema, the description explains what is returned (deals with contacts) and the filtering options. It is reasonably complete for a listing tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with good descriptions per parameter. The description adds value by noting that returns include associated contacts, which is not in schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states that the tool lists CRM deals for the current company with filtering options and return information. The verb 'list' and resource 'deals' are specific and distinct from siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides a routing hint ('CRM/sales → see open pipeline → use this') that gives context for when to use, but does not explicitly state when not to use or mention alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_featuresAInspect
List all product features in the Feature Index. Use when user asks "what features do I have?", "show my features", "what have I built?", or wants to see their product capabilities for marketing.
| Name | Required | Description | Default |
|---|---|---|---|
| status | No | Filter by status (default: all) | |
| companyId | Yes | FreedomOS company id to act within (you must be a member). Required for company-scoped tools. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Description indicates it lists all features for a given company but does not detail behavior like pagination, ordering, or whether it returns only the company's features (implied by required companyId). No annotations are present, so the description carries burden but is adequate for a simple list operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences: one states core function, the other provides usage examples. No redundant or extra information, making it efficient and easy to parse.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a list tool with no output schema, the description could describe the return format (e.g., feature names, statuses) or mention pagination. While it provides sufficient context for basic use, it lacks details that would make it fully self-contained.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Input schema has 100% description coverage, so parameters are already documented. The description does not add further parameter semantics beyond the schema, meeting the baseline expectation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the tool lists all product features in the Feature Index. It provides specific example queries, making it easy for the agent to recognize when to use it. This distinguishes it from sibling tools like create_feature or update_feature.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Description explicitly states when to use the tool with example user queries. However, it does not mention cases where it should not be used or suggest alternatives, leaving some ambiguity but generally clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_google_drive_filesBInspect
List files in the user's Google Drive. Can filter by type (spreadsheet, document) and search by name.
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | Search query to filter files by name | |
| companyId | Yes | FreedomOS company id to act within (you must be a member). Required for company-scoped tools. | |
| file_type | No | Filter by file type | |
| max_results | No | Maximum results to return (default: 10) |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry the burden. It fails to disclose that this is a read-only operation, that it requires a companyId, that it defaults to 10 results, or any rate limits or side effects. The description is too sparse for safe and effective use.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise with two sentences, no redundant information, and front-loads the core purpose. Every word adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has 4 parameters, 1 required, no output schema, and no annotations. The description does not specify the return format, the role of companyId, or the default for max_results. This leaves significant gaps for an agent to use it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with each parameter described. The description adds a summary of filtering capabilities but does not enhance understanding of the parameters beyond the schema. Baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it lists files in the user's Google Drive, with filtering by type and name. This differentiates it from sibling tools like create_google_doc or list_inbox. However, it doesn't explicitly distinguish from list_shared_with_me, which is a related sibling.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied by the description and name, but there is no explicit guidance on when to use this tool versus alternatives like list_shared_with_me or list_pipelines. No exclusion criteria or prerequisites are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_inboxBInspect
List pending ideas in the user's Ideas. Shows ideas that haven't been triaged yet.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum number of ideas to return (default: 10) | |
| status | No | Filter by status: new (default), parked, or all pending ideas | |
| companyId | No | FreedomOS company id to act within (you must be a member). Required for company-scoped tools. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Without annotations, the description provides some context ('pending', 'not triaged yet') but omits behavioral details like scoping (user's vs company), sorting order, or side effects. Lacks depth for a read-like operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with action, no wasted words. Every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given low complexity (3 params, no output schema), the description covers the basic purpose but lacks details about return format, scope, and concept of 'inbox'. Adequate but not thorough.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. The description adds no extra parameter information beyond what the schema already provides. No value added.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states it lists pending ideas in the user's inbox, with specific verb and resource. However, it does not distinguish from sibling 'list_workspace_ideas' which may overlap, so slightly less than perfect.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives like 'check_my_inbox' or 'list_workspace_ideas'. The description only states what it does, leaving the agent to infer usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_integrationsAInspect
List ALL connected external integrations — MCP servers, OAuth accounts (Google, X, ...), and direct integrations (Xero accounting, Stripe) — and the tools each one powers. Use when user asks about connected services, integrations, or what external tools are available.
| Name | Required | Description | Default |
|---|---|---|---|
| companyId | Yes | FreedomOS company id to act within (you must be a member). Required for company-scoped tools. | |
| include_tools | No | Include list of available tools for each integration (default: true) |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description implies a read-only listing operation with no side effects, which is appropriate. It doesn't explicitly declare safety, but for a listing tool, this is sufficient. The mention of including tools per integration adds transparency about the output scope.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the core action, followed by usage guidance. Every word earns its place; no redundancy or filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (2 params, no output schema, no annotations), the description covers purpose, scope, and usage well. It doesn't detail return format or errors, but those are typical for listing tools and not critical.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so both parameters are already described there. The description does not add new meaning beyond the schema, but it reinforces the purpose of the `include_tools` parameter by stating the tool lists 'the tools each one powers.' Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('List'), the resource ('ALL connected external integrations'), and explicitly enumerates types (MCP servers, OAuth accounts, direct integrations). It also mentions 'the tools each one powers,' adding further specificity. This differentiates it from sibling tools like 'invoke_integration' and 'search_connector_registry.'
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit usage context: 'Use when user asks about connected services, integrations, or what external tools are available.' While it doesn't explicitly mention when not to use it or list alternatives, the guidance is clear and practical.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_knowledgeAInspect
List all knowledge files and folders saved for this company. Returns file names, slugs, sizes, and folder structure. Use this to discover what knowledge is available before reading or updating.
| Name | Required | Description | Default |
|---|---|---|---|
| folder | No | Optional folder to list contents of (e.g., "acme-deal", "partners"). Omit to list the root level. | |
| search | No | Optional search term to filter files by name | |
| companyId | Yes | FreedomOS company id to act within (you must be a member). Required for company-scoped tools. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must fully convey behavioral traits. It describes a safe read operation and return fields, but lacks details on pagination, recursion depth, or performance implications, leaving some uncertainty.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with primary action and return value. No unnecessary words, efficient for agent comprehension.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Describes return values (file names, slugs, sizes, folder structure) sufficiently for a list tool without output schema. Lacks mention of pagination or sorting, but core completeness is strong.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Input schema descriptions cover 100% of parameters, so the description adds no new meaning beyond what the schema already provides. Baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states the tool lists all knowledge files and folders for the company, specifies return fields (names, slugs, sizes, folder structure), and distinguishes from sibling tools like read_knowledge and delete_knowledge.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly advises to use this tool before reading or updating knowledge, providing context for its appropriate use. However, it does not explicitly name alternative tools or state when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_my_workAInspect
List shared work-graph items (lab_work_items) for the operator or coding agent in the current company — the cross-session shared plan. Use when coordinating queued/blocked/in-progress work across sessions, or reconciling a PR stamp (returns thin identity: pr, artifact, card_id, spawn_session_id). Defaults to items you created or are assigned; pass scope="company" for the whole company graph. On FreedomOS company also returns ship_seat[] (open FO product PRs — Quest Work rail) so ship-seat-only rows are visible without switching tools. Cards stay on get_command_center_items (decision cards only, not PR inventory).
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max rows (default 50, max 200). | |
| scope | No | mine = items you created or are assigned (default); company = all items in the company. | |
| companyId | Yes | FreedomOS company id to act within (you must be a member). Required for company-scoped tools. | |
| status_filter | No | Optional status filter (queued, blocked, claimed, in_progress, gated, published, verified, failed, cancelled). | |
| include_ship_seat | No | Include open FO product ship-seat PRs (default true on FreedomOS company; always false on other tenants). Soft-fails empty without GitHub App. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does well: it discloses default filtering ('Defaults to items you created or are assigned'), scope semantics, tenant-specific ship_seat[] return behavior, and the thin return identity. It does not explicitly mention side-effect-free behavior, but 'List' strongly implies read-only, and the described behaviors add meaningful context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is dense but purposeful: four sentences front-load the core purpose, then cover usage scope, tenant-specific behavior, and sibling differentiation. Every clause adds information, though the second sentence is long and mixes use cases with return shape; still, it remains appropriately sized for the tool's complexity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema, the description compensates by stating return identity (pr, artifact, card_id, spawn_session_id) and ship_seat[] arrays. It covers defaults, scope, tenant behavior, and relationship to get_command_center_items. It does not enumerate every possible field or error condition, but for a list tool with rich parameter descriptions, it is complete enough.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3; the description adds value by explaining the default scope, the meaning of company-wide scope, and the ship-seat return behavior tied to include_ship_seat. It also frames the returned rows as a 'cross-session shared plan,' enriching the parameter context beyond the schema's individual field descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb and resource: 'List shared work-graph items (lab_work_items)' for the operator/agent, and further clarifies the cross-session shared plan. It also distinguishes from the sibling tool get_command_center_items by explicitly stating 'Cards stay on get_command_center_items (decision cards only, not PR inventory)' and notes the thin identity returned (pr, artifact, card_id, spawn_session_id).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states when to use: 'Use when coordinating queued/blocked/in-progress work across sessions, or reconciling a PR stamp.' It also clarifies default scope, the company-wide alternative via scope="company", and the FreedomOS-specific ship-seat behavior, plus explicitly steers decision cards to get_command_center_items as an alternative.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_operator_cos_eventsAInspect
List THIS operator's recent CoS telemetry (operator_cos_events: open/speech/close, host_push actions, card_decide/confused/buggy). Use to verify dogfood soak, or before propose_cos_content_atoms. Never invent events. Do not speak UUIDs aloud — counts + kinds only unless they ask for detail.
| Name | Required | Description | Default |
|---|---|---|---|
| kind | No | Optional filter to one kind (e.g. host_push, card_buggy, cos_open). | |
| hours | No | Lookback window in hours (1–168, default 24). | |
| limit | No | Max rows (1–100, default 40). | |
| companyId | No | FreedomOS company id to act within (you must be a member). Required for company-scoped tools. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the behavioral burden. It discloses important constraints: 'Never invent events' and 'Do not speak UUIDs aloud — counts + kinds only unless they ask for detail.' This goes beyond a bare list operation, though it doesn't cover auth or rate limits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise: four short sentences with zero filler. It front-loads the core purpose, then adds usage and behavioral guidance. Every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a list tool with no annotations and no output schema, the description sufficiently covers purpose, use cases, and important output-format constraints. It omits details like pagination or return shape, but the description's behavioral notes ('counts + kinds only') provide useful context. A bit more about expected output structure would make it fully complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so all 4 parameters (kind, hours, limit, companyId) are already documented in the schema. The description adds no specific parameter semantics beyond the schema, which is adequate given full schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description uses a specific verb ('List') with a specific resource ('THIS operator's recent CoS telemetry') and enumerates exact event types (open/speech/close, host_push, card_decide/confused/buggy). It clearly distinguishes this from sibling tools like list_cos_lessons and get_cos_preferences by focusing on telemetry events.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states when to use the tool: 'Use to verify dogfood soak, or before propose_cos_content_atoms.' It does not explicitly mention when not to use it or alternative tools, but the primary use cases are clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_pipeline_learningsAInspect
Show the style guide and recent revision history for a content pipeline. Use when user asks "what are the learnings for my newsletter?", "show me the style guide", "what feedback have I given?", or "what does it know about my preferences?".
| Name | Required | Description | Default |
|---|---|---|---|
| companyId | Yes | FreedomOS company id to act within (you must be a member). Required for company-scoped tools. | |
| pipeline_id | Yes | Pipeline ID (get from list_pipelines) | |
| output_format | No | Optional. Filter by output format: changelog, social_post, team_update, newsletter, report. If not specified, shows all formats. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It states 'Show the style guide and recent revision history', indicating a read-only operation. However, it does not disclose any additional behavioral traits such as pagination, auth specifics, or what exactly constitutes 'recent'. Given zero annotation coverage, the description is adequate but lacks depth.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences: the first concisely states the purpose, and the second provides example usage scenarios. Every sentence adds value, with no redundancy. It is front-loaded and efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 3 parameters and no output schema, the description covers the core functionality. It mentions what the tool shows and when to use it. However, it does not specify the format of the output (e.g., list or text) or define 'recent'. Slightly incomplete but mostly adequate for a list tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with descriptions for all three parameters (companyId, pipeline_id, output_format). The description does not add extra meaning beyond the schema, so baseline 3 is appropriate. It mentions the tool's purpose but no additional parameter semantics.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool shows 'style guide and recent revision history' for a content pipeline. It provides specific example user queries, making the purpose very clear. However, it does not explicitly differentiate from sibling tools like 'update_pipeline_style_guide' or 'clear_pipeline_learnings', lacking direct sibling distinction.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly tells when to use the tool with example user queries ('what are the learnings for my newsletter?', 'show me the style guide', etc.), providing clear context for invocation. It does not mention when not to use or alternative tools, but the examples guide the agent adequately.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_pipelinesAInspect
List all content pipelines (changelogs, team updates, reports, customer newsletters, social posts). Use when user asks about their content automation, "what content am I publishing?", "show my pipelines", or "what outputs are configured". Output types: changelog (public product updates), team_update (internal team email via Freedom OS), report (email to specific recipients), customer_newsletter (external customers - requires user Email MCP like Mailchimp), social_post (x/linkedin/instagram/facebook/threads via the gated publish owner).
| Name | Required | Description | Default |
|---|---|---|---|
| companyId | Yes | FreedomOS company id to act within (you must be a member). Required for company-scoped tools. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden for behavioral disclosure. It implies a read-only operation by stating 'List all content pipelines' and explains output type dependencies. However, it does not address potential side effects, authorization details, pagination, or whether the list is exhaustive. This is adequate but could be more comprehensive.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured, starting with the action and then usage cues followed by output type details. Each sentence adds value without redundancy. It could be slightly more concise by compressing the output type list but is overall efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the lack of an output schema, the description should clarify the return structure. It lists output types but does not specify fields like pipeline name, status, or created date. For a simple list tool with one parameter, the description is acceptable but not complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The only parameter `companyId` is already described in the schema with context ('FreedomOS company id to act within...'). Schema coverage is 100%, so the description adds no extra meaning. By baseline rules, a score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool lists all content pipelines and enumerates the specific types (changelogs, team updates, reports, customer newsletters, social posts). It uses a specific verb ('List') and resource ('all content pipelines'), effectively distinguishing it from sibling tools like create_pipeline or archive_pipeline.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit usage scenarios: 'when user asks about their content automation, "what content am I publishing?", "show my pipelines", or "what outputs are configured".' It also details output types with prerequisites (e.g., customer_newsletter requires Email MCP). While it lacks explicit 'when not to use' or alternatives, the guidance is clear and actionable.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_scheduled_reportsAInspect
List all scheduled reports for this company, optionally filtered by agent. Use when user asks "what reports are scheduled?", "show me our reports", "what reports does X have?"
| Name | Required | Description | Default |
|---|---|---|---|
| agent_id | No | Optional: filter reports by a specific agent UUID | |
| companyId | Yes | FreedomOS company id to act within (you must be a member). Required for company-scoped tools. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses the read-only nature (listing) and scope (company-wide, optional agent filter). Without annotations, it adequately covers behavioral expectations, though no mention of pagination or limits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences front-loading the core purpose immediately, with zero extraneous information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple list tool with two parameters and no output schema, the description provides sufficient context about scope and optional filtering, enabling correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. The description only paraphrases the agent_id parameter's filter role and omits companyId details already in schema, adding no new meaning.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states the action ('List'), the resource ('scheduled reports'), and the scope ('for this company, optionally filtered by agent'). Distinguishes from sibling tools like list_attention_directives and list_commitments by specifying 'scheduled reports'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides explicit natural language examples ('what reports are scheduled?', 'show me our reports', 'what reports does X have?') that directly map to the tool's functionality, helping the agent recognize when to invoke it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_segmentsAInspect
List the live lead segment tags for the current company with server-computed lead counts (excluding do-not-contact, archived, and test leads). Segments are the exact comma-separated tokens in crm_leads.source (CSV event imports, website, etc.). Read-only — returns tags and counts only, never lead names/emails. Use when the operator asks which lead segments or event tags exist, or before segment_leads to resolve a loosely-named segment to its exact tag.
Routing: CRM/sales → what lead segments/events exist → use this
| Name | Required | Description | Default |
|---|---|---|---|
| companyId | Yes | FreedomOS company id to act within (you must be a member). Required for company-scoped tools. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description fully discloses read-only nature, exclusion of certain leads, and that it returns only tags and counts. It lacks details on authentication beyond company membership and rate limits, but is fairly transparent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Concise and well-structured: five sentences covering purpose, data source, read-only nature, usage guidance, and routing. No fluff, front-loaded with key action.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Complete for a simple list tool: one parameter with good schema description, clear return content, exclusions, and relation to sibling. No output schema needed since return type is intuitive.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Only one parameter (companyId) with 100% schema coverage. The schema description already explains it well. The tool description does not add additional semantics beyond what the schema provides, so baseline score applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it lists live lead segment tags with counts, specifies the exact resource (comma-separated tokens from crm_leads.source), and distinguishes from the sibling tool segment_leads by noting it returns tags and counts only, never lead details.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states when to use: 'when the operator asks which lead segments or event tags exist, or before segment_leads to resolve a loosely-named segment to its exact tag.' Provides routing context but does not explicitly list when not to use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_workspace_ideasAInspect
List ideas that have been assigned to this workspace. Shows triaged ideas for the current company.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum number of ideas to return (default: 10) | |
| companyId | Yes | FreedomOS company id to act within (you must be a member). Required for company-scoped tools. | |
| include_promoted | No | Include ideas that have already been promoted to tactics (default: false) |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the burden of transparency. It describes the action as listing but does not disclose whether it is read-only, any side effects, permissions needed, or return behavior beyond schema parameters.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, no redundancy, front-loaded with the core purpose. Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple list tool with 3 parameters and no output schema, the description adequately explains the tool's purpose and scope. Missing details like ordering or pagination behavior, but not severe.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the schema already documents all three parameters. The description adds no additional context beyond what the schema provides, so baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb 'list' with resource 'ideas', and clarifies scope: 'assigned to this workspace' and 'triaged ideas for the current company'. This distinguishes it from siblings like capture_idea or triage_idea.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for triaged workspace ideas but provides no explicit guidance on when to use this tool versus alternatives like list_my_work or other idea-related tools. No when-not or alternative references.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_xero_bank_transactionsAInspect
List LIVE bank transactions from the company's connected Xero ledger (paged, 100 per page, newest first). Use for "current bank activity", reconciliation questions, or verifying a specific payment hit the bank.
Routing: LIVE bank transactions from Xero (newest first) → use for current bank activity questions
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Page number, 1-based (Xero pages at 100). Default 1. | |
| companyId | Yes | FreedomOS company id to act within (you must be a member). Required for company-scoped tools. | |
| from_date | No | Only transactions on/after this date, YYYY-MM-DD |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It discloses that the tool lists LIVE transactions, is paged, and returns newest first. It does not mention authentication requirements, rate limits, or potential side effects, but for a read-only operation this is adequate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences plus a routing note, concise and front-loaded with essential information. Every sentence provides value without unnecessary verbosity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite no output schema, the description does not detail what fields are returned in the response. For a list tool, this is a minor gap, but the core functionality is sufficiently explained for basic usage.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% coverage with all three parameters described. The description adds no additional meaning beyond the schema, so a baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool lists LIVE bank transactions from Xero, with details on paging (100 per page) and ordering (newest first). This specific verb-resource combination distinguishes it from other transaction-related tools like search_transactions or get_xero_report.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly says to use this tool for 'current bank activity', reconciliation questions, or verifying payments, providing good usage context. However, it does not mention when not to use it or directly compare with alternatives among siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_xero_contactsAInspect
List contacts (customers/suppliers) from the company's connected Xero ledger, optionally filtered by a search term (paged, 100 per page). Use when the user or an activity needs who the company invoices or pays — customer/supplier lookups, receivables context, or verifying a counterparty exists in the books.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Page number, 1-based. Default 1. | |
| companyId | Yes | FreedomOS company id to act within (you must be a member). Required for company-scoped tools. | |
| search_term | No | Filter by name/email fragment (Xero searchTerm) |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses pagination (100 per page) and optional filtering by search term. Since no annotations are provided, the description carries the full burden and covers key behaviors. It does not mention any destructive or side effects, but as a read-only list operation, this is sufficient.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence with no redundant information. Front-loads the purpose and usage context efficiently.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a list tool with no output schema, the description adequately explains what it returns (contacts) and when to use it. It could mention the structure of returned data, but the context signals indicate no output schema, so it is reasonably complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3. The description adds context about pagination and search term usage, but the schema already defines the parameters clearly. Not much additional meaning is provided.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it lists contacts (customers/suppliers) from Xero, with optional search term filtering. It distinguishes itself from sibling tools like list_xero_bank_transactions by focusing on contacts.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly provides usage scenarios: 'when the user or an activity needs who the company invoices or pays — customer/supplier lookups, receivables context, or verifying a counterparty exists in the books.' This guides the agent effectively.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
manage_responsibilitiesAInspect
Assign, delegate, or revoke responsibility domains for team members. This controls routing — which user receives agent output for specific domains like marketing, finance, etc.
[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.]
| Name | Required | Description | Default |
|---|---|---|---|
| action | Yes | Action to perform | |
| reason | No | Why the change is happening (e.g., "vacation", "new hire", "role change") | |
| domains | No | Domain names to assign (e.g., ["marketing", "content", "social"]). Use lowercase. | |
| companyId | Yes | FreedomOS company id to act within (you must be a member). Required for company-scoped tools. | |
| valid_until | No | ISO date string when delegation expires. Only for delegate action. Omit for permanent assignments. | |
| target_user_email | No | Email of the user to assign/delegate to. Required for assign and delegate. | |
| delegation_from_email | No | Email of the user delegating their responsibilities. Only for delegate action. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden of behavioral disclosure. It adds value by explaining the write-tier approval process (first-use approval, from-now-on vs just-once). This informs the agent about authorization requirements, which is critical for correct invocation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences plus a short bracketed note. It front-loads the primary purpose and then provides essential approval context. Every sentence earns its place with no redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 7 parameters, no output schema, and no annotations, the description covers the core function and authorization behavior. It lacks detail on success/error responses or effects on existing assignments, but the parameters are well-documented in the schema, so overall completeness is high.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so baseline is 3. The description reiterates actions (assign, delegate, revoke) and domain examples but does not add meaningful detail beyond what's in the schema's parameter descriptions. It is adequate but not enhanced.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the tool assigns, delegates, or revokes responsibility domains for team members. It distinguishes the tool's purpose as controlling routing of agent output per domain, which differentiates it from sibling tools like 'revoke_agent_tool' or 'get_routing_overview'. The verb+resource is specific and unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides context on what the tool does (routing control) and mentions approval tier behavior, but does not explicitly state when to use this tool versus alternatives (e.g., when to use 'get_routing_overview' to view assignments). No exclusion criteria or alternative tool references are given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
open_product_request_draft_prAInspect
Open a draft GitHub PR shell for an approved FreedomOS product request (work ticket branch, no auto-code). Use when product team accepted a low-stakes bug/feature and wants a tracking PR. Do NOT use for questions or high/critical items that need design first.
[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.]
| Name | Required | Description | Default |
|---|---|---|---|
| force | No | Re-dispatch even if a draft_pr is already stamped (default false). | |
| companyId | No | FreedomOS company id to act within (you must be a member). Required for company-scoped tools. | |
| request_id | Yes | request_id UUID from submit_product_request |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description does a good job disclosing behavioral traits: it's a write operation that creates a draft PR, requires an approved product request, and may need manager approval. It mentions the 'no auto-code' aspect. However, it does not describe what happens if a draft already exists (force param only says re-dispatch) or confirm non-destructiveness.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences plus a brief bracketed note, all front-loaded with the core purpose. Every sentence adds value without redundant information. Highly efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers purpose, usage guidelines, and behavioral traits, but lacks information about what the tool returns (e.g., PR URL or confirmation). No output schema exists, so the agent might expect a return value. Given the tool creates something, a brief note on output would improve completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the schema already documents all parameters. The description mentions that request_id comes from 'submit_product_request', adding slight context but no significant new meaning beyond the schema descriptions. Thus, baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'open' and the resource 'draft GitHub PR shell' for an approved product request. It mentions 'work ticket branch, no auto-code' to clarify scope. However, it does not explicitly differentiate from sibling tools like 'attach_product_request_pr', though the specific context ('low-stakes bug/feature') helps distinguish.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states when to use ('product team accepted a low-stakes bug/feature and wants a tracking PR') and when not to use ('questions or high/critical items that need design first'). Also includes approval instructions for the write-tier, giving a clear usage policy.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
originate_content_ideasAInspect
Surface CONTENT IDEAS from the company's own corpus and land them in the content pool + cards (same owner as promote_corpus_to_content). Use for 'what should I post', blank-page marketing, or when agents would otherwise invent posts. Never invents from nothing; never drafts faith prose.
[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.]
| Name | Required | Description | Default |
|---|---|---|---|
| count | No | How many ideas (1-3, default 1). Prefer 1 — do not flood the queue. | |
| theme | No | Optional focus theme | |
| companyId | Yes | FreedomOS company id to act within (you must be a member). Required for company-scoped tools. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description bears full responsibility. It discloses that the tool uses the company's corpus, never invents content, and requires manager approval. However, it does not describe the return format or confirm whether the tool returns a list of ideas or a success message, which is a minor gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and front-loaded, with the core purpose in the first sentence. The second paragraph adds relevant approval details. Some minor redundancy could be trimmed (e.g., 'never drafts faith prose'), but overall efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity and lack of output schema, the description covers source, destination, and approval but omits the return value or confirmation. An agent may not know what to expect after invocation. This gap reduces completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the schema already documents all three parameters. The description adds value beyond the schema by advising 'Prefer 1 — do not flood the queue' for the count parameter, providing important usage guidance. No extra info added for theme or companyId, so overall slightly above baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool surfaces content ideas from the company's own corpus and lands them in the content pool + cards. It specifies the verb 'surface' and the resource 'company corpus', and distinguishes itself from siblings by noting the same owner as promote_corpus_to_content.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly lists when to use: 'what should I post', blank-page marketing, or alternatives to inventing posts. It also states when not to use: 'Never invents from nothing; never drafts faith prose.' Additionally, it describes the write-tier approval process, guiding agents on the required permission.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
park_attention_sessionsAInspect
Park THIS operator's coding host sessions (N6 hygiene). Use after "clean tabs" / "park ghosts" / list shows dead running hosts. Pass session_ids for explicit targets, or stale_running=true to park running/unknown hosts that failed freshness (no recent heartbeat). dry_run=true previews only. Marks FO rows parked — does not kill Terminal processes. Never parks blocked_on_operator needs-you hosts unless listed in session_ids.
[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.]
| Name | Required | Description | Default |
|---|---|---|---|
| dry_run | No | If true, return candidates without writing. | |
| companyId | No | FreedomOS company id to act within (you must be a member). Required for company-scoped tools. | |
| session_ids | No | Explicit session ids to park (from list_attention_sessions / get_attention_quest tool-only fields). | |
| stale_running | No | If true, also park running/unknown sessions that fail freshness hygiene. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so the description carries the full burden. It discloses the side effect ('Marks FO rows parked — does not kill Terminal processes'), the preview behavior ('dry_run=true previews only'), and the safety rule about blocked_on_operator hosts. It also notes write-tier approval requirements. These are concrete behavioral insights beyond the bare operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a dense paragraph covering many aspects (trigger, targeting modes, exclusions, side effect, approval) without redundancy. It is longer than the minimal example but every sentence adds information. The bracketed approval note is a minor structural extraneity but relevant.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with no output schema and no annotations, this description is remarkably complete. It covers when to use, how to target, dry-run behavior, exclusions, and side effects, making it safe for an agent to invoke correctly. The only gap is the absence of return-value information, but that's not required given the description's depth.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. The description adds value by explaining the relationship between session_ids and stale_running ('Pass session_ids for explicit targets, or stale_running=true'), and clarifies 'stale' as 'failed freshness (no recent heartbeat)' — a detail not fully defined in the schema. It also points to list_attention_sessions / get_attention_quest as sources for session_ids, though the schema already includes this.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states a specific action ('Park THIS operator's coding host sessions') and resource ('coding host sessions'), with a hygiene purpose. It distinguishes from siblings like list_attention_sessions and upsert_attention_session by focusing on parking (de-prioritization) rather than listing or upserting.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states when to use: 'Use after "clean tabs" / "park ghosts" / list shows dead running hosts.' It also explains the two targeting modes (session_ids vs stale_running) and the exclusion rule: 'Never parks blocked_on_operator needs-you hosts unless listed in session_ids.' The note that it does not kill Terminal processes provides an alternative boundary.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
posthog_hogqlAInspect
Run an arbitrary HogQL (SQL) query against PostHog data. Use for custom analysis not covered by other tools. Only works if PostHog is connected.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max rows to return (default: 100) | |
| query | Yes | HogQL query string | |
| companyId | Yes | FreedomOS company id to act within (you must be a member). Required for company-scoped tools. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must fully disclose behavioral traits. It describes running a query but does not clarify whether it is read-only or potentially write-capable (since arbitrary SQL can include mutations). It also omits any side effects, auth requirements, or performance considerations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise, front-loaded sentences. Every word serves a purpose; no redundancy or fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description adequately explains purpose and usage relative to siblings and prerequisites. However, it lacks information about the return format or error behavior, which is notable given the absence of an output schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all parameters. The description does not add any additional parameter-level meaning beyond what the schema provides, resulting in a baseline score.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Explicitly states 'Run an arbitrary HogQL (SQL) query against PostHog data' with a clear verb and resource. 'Use for custom analysis not covered by other tools' distinguishes it from sibling PostHog tools such as posthog_query_trends or posthog_list_events.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Directly states when to use ('custom analysis not covered by other tools') and a prerequisite ('Only works if PostHog is connected'). This provides explicit guidance for tool selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
posthog_list_eventsAInspect
List all event types tracked in PostHog, ordered by usage. Call this FIRST before building funnels or trends — it shows the actual event names in the user's PostHog. Only works if PostHog is connected.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max events to return (default: 50) | |
| search | No | Search events by name | |
| companyId | Yes | FreedomOS company id to act within (you must be a member). Required for company-scoped tools. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so description carries full burden. It states the tool lists events ordered by usage but does not disclose safety (read-only), caching, or rate-limit behaviors. Adequate for simple read operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, first defines purpose, second gives usage guidance. No redundant words. Front-loaded and efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple list tool with no output schema, the description covers what it does, when to use, and a prerequisite. Could mention output structure (event names with usage counts) but not necessary.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. Description adds usage context but no additional parameter-level detail. The schema already describes each parameter, and the description doesn't enhance understanding of them.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description explicitly states 'List all event types' and provides the verb-resource pair. It differentiates from PostHog siblings like funnel/trend/insight tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly advises to call this 'FIRST before building funnels or trends' and notes dependency on PostHog being connected. No alternatives are mentioned, but context suggests this is a discovery step.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
posthog_list_insightsAInspect
List existing saved insights in PostHog. Shows names, types, and links. Only works if PostHog is connected.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max insights to return (default: 20) | |
| search | No | Search insights by name | |
| companyId | Yes | FreedomOS company id to act within (you must be a member). Required for company-scoped tools. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry the burden. It correctly indicates a read-only operation (list) and notes a connectivity requirement. However, it does not disclose potential pagination, rate limits, or authentication details beyond the required companyId. The description is adequate but not comprehensive.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, no wasted words. The first sentence clearly states the primary action, and subsequent sentences add essential context (returned fields, connectivity requirement). Well-structured and front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema, the description covers what the response contains (names, types, links). The connectivity prerequisite is noted. However, it could mention pagination behavior or default limit details. Overall, fairly complete for a low-complexity tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% (all three parameters have descriptions). The description adds marginal value by noting that the tool shows 'names, types, and links' which implies response fields but does not enhance parameter understanding beyond the schema. Baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'List existing saved insights in PostHog' with specific verb and resource. It also notes what information is shown (names, types, links), and distinguishes from sibling PostHog tools like posthog_hogql or posthog_query_trends which focus on querying rather than listing saved insights.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description mentions a prerequisite ('Only works if PostHog is connected') but provides no guidance on when to use this tool versus alternatives (e.g., other list tools or PostHog query tools). No explicit 'when-not' or alternative tools are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
posthog_query_funnelAInspect
Build and run a funnel analysis in PostHog. Shows step-by-step conversion rates (e.g., signup → onboard → purchase). Only works if PostHog is connected.
| Name | Required | Description | Default |
|---|---|---|---|
| events | Yes | Funnel steps (minimum 2). Each: { id: "event_name", name: "Display Name" } | |
| date_to | No | End date (default: now) | |
| companyId | Yes | FreedomOS company id to act within (you must be a member). Required for company-scoped tools. | |
| date_from | No | Start date (default: -30d) | |
| funnel_window_days | No | Days a user has to complete the funnel (default: 14) |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description bears the full burden of behavioral disclosure. It states the tool shows conversion rates and requires PostHog connectivity, but does not disclose whether the tool is read-only, whether it requires specific permissions, what happens if events are missing, or how results are structured (e.g., percentages, counts). The behavior is partially described but lacks depth.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise at two sentences. The first sentence defines the action and output, the second adds a critical prerequisite. Every sentence earns its place without redundancy. It is front-loaded with the primary purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema, the description should ideally explain the return format. It says 'Shows step-by-step conversion rates' but lacks detail on whether returns are percentages, counts, or ordered steps. The tool has 5 parameters and moderate complexity; the description covers core functionality but omits output specifics and usage constraints (e.g., minimum 2 events noted in schema but not in description). Completeness is adequate but not comprehensive.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description does not add significant meaning beyond the schema; it provides an example of steps ('signup → onboard → purchase') but does not elaborate on parameter constraints, formats, or relationships. The schema already adequately defines each parameter, so the description adds marginal value.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool builds and runs funnel analysis, showing step-by-step conversion rates with an example (signup→onboard→purchase). This distinguishes it from sibling tools like posthog_query_trends (trends) and posthog_hogql (raw SQL). The verb 'build and run' plus resource 'funnel analysis' makes the purpose specific and unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description mentions the prerequisite 'Only works if PostHog is connected,' which is useful context. However, it does not explicitly specify when to use this tool over alternatives like posthog_query_trends or posthog_list_events, nor does it provide when-not-to-use guidance. The usage is implied by the tool's specific function, but explicit differentiation is missing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
posthog_query_trendsBInspect
Query event trends from PostHog (pageviews, signups, DAU, etc. over time). Returns time-series data. Only works if PostHog is connected.
| Name | Required | Description | Default |
|---|---|---|---|
| events | No | Events to query. Each: { id: "$pageview", name: "Page Views", math: "total" }. Defaults to $pageview. | |
| date_to | No | End date (default: now) | |
| interval | No | Grouping interval (default: day) | |
| companyId | Yes | FreedomOS company id to act within (you must be a member). Required for company-scoped tools. | |
| date_from | No | Start date: "-7d", "-30d", "-90d", "2024-01-01" (default: -7d) |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It does not state whether the tool is read-only (it likely is), or if it has any side effects, rate limits, or cancellation behavior. For a query tool querying an external service, these details are important but missing.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with purpose and examples. No filler. Every word adds value. Highly efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema is provided, so the description must explain what the tool returns. It only says 'Returns time-series data,' which is vague. The agent cannot infer the structure or cardinality of the response (e.g., array of {date, value} objects). This is a gap for a data-querying tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so baseline is 3. The description adds modest value by giving example event names and explaining the default event type. However, it does not significantly enhance understanding of date_from or interval formats beyond the schema, so a score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly specifies the action (Query), resource (event trends from PostHog), and provides concrete examples (pageviews, signups, DAU). It distinguishes from sibling tools by emphasizing time-series data and trends, which is unique among PostHog-related tool names.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The only usage hint is 'Only works if PostHog is connected,' which is a prerequisite. There is no guidance on when to use this tool versus alternatives like posthog_hogql (general querying), posthog_query_funnel (funnels), or posthog_list_events. The agent lacks context to choose correctly.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
preview_meta_adAInspect
Get a facebook.com preview link for a drafted Meta ad, so the user can see exactly what it will look like before deciding to activate. Use after create_meta_ad_draft or when the user asks to see a drafted ad.
| Name | Required | Description | Default |
|---|---|---|---|
| ad_id | Yes | Numeric ad id (from create_meta_ad_draft output) | |
| companyId | Yes | FreedomOS company id to act within (you must be a member). Required for company-scoped tools. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description fully explains the tool's behavior: it returns a preview link. It implies the operation is read-only (preview before activation) and non-destructive. No contradictions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, no redundancy. The first sentence states the core purpose and output, the second gives usage context. Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a straightforward preview tool with no output schema, the description covers purpose, output type, and usage sequence. It is complete and leaves no ambiguity about the tool's role.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema describes both parameters with 100% coverage. The description adds meaningful context: ad_id is described as 'Numeric ad id (from create_meta_ad_draft output)' and companyId as 'FreedomOS company id to act within', aiding correct usage beyond schema basics.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the purpose: 'Get a facebook.com preview link for a drafted Meta ad', using a specific verb ('Get') and resource ('preview link'). This distinguishes it from siblings like 'create_meta_ad_draft' and 'set_meta_ad_status'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly says 'Use after create_meta_ad_draft or when the user asks to see a drafted ad', providing clear context for when to invoke. It does not mention when not to use, but the guidance is sufficient for the intended use case.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
promote_corpus_to_contentAInspect
Mint the NEXT content angle(s) from the company's corpus into content_ideas + Command Center cards. Default count is 1 — do NOT bulk-fill the queue. For day-to-day drafting, prefer list_knowledge / read_knowledge (or list_corpus_inventory) to pull one chapter/passage JIT — that avoids re-tokenizing the whole book. Use promote only when a human-facing card is needed (weekly queue, Held post, operator asked). Faith grain: angles only. Never invent from empty corpus.
[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.]
| Name | Required | Description | Default |
|---|---|---|---|
| count | No | How many angles (1-3, default 1). Prefer 1. | |
| theme | No | Optional focus (e.g. "Harness principles", "pharmacy USP") | |
| companyId | Yes | FreedomOS company id to act within (you must be a member). Required for company-scoped tools. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so the description carries full burden. It discloses key behaviors: default count of 1 with explicit prohibition against bulk-filling, faith grain ('angles only'), and write-tier approval requirements. This goes beyond what annotations would typically provide.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Concise (~100 words), front-loaded with the primary action, and structured into clear sections: main purpose, usage guidance, faith grain, approval notes. Every sentence adds value without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema, the description lacks return value details. However, it covers purpose, parameters, behavioral constraints, and usage context well. The absence of error handling or output format is a minor gap, but overall it's sufficiently complete for an agent to use correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. The description reinforces the count parameter ('do NOT bulk-fill') but adds minimal new semantic meaning beyond the schema descriptions. Theme and companyId are not further elaborated.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's action: 'Mint the NEXT content angle(s) from the company's corpus into content_ideas + Command Center cards.' It specifies the resource (corpus), verb (mint), and output, and distinguishes from sibling tools like list_knowledge and list_corpus_inventory.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicit guidance on when to use: 'Use promote only when a human-facing card is needed' and when not to: 'prefer list_knowledge / read_knowledge ... for day-to-day drafting'. Also warns 'do NOT bulk-fill the queue' and 'Never invent from empty corpus.' Provides clear alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
propose_cos_content_atomsAInspect
Marketing-by-construction: pack THIS operator's recent CoS telemetry into one-job content atoms (Proof/Story/Take · Wisdom/Proof factories). Use after a dogfood call or when they ask "what posts can we make from this CoS work?" Never invents facts not in events; never auto-posts (human publish rail). Speak speak_first / board-style summary first.
| Name | Required | Description | Default |
|---|---|---|---|
| hours | No | Lookback hours (1–168, default 48). | |
| companyId | No | FreedomOS company id to act within (you must be a member). Required for company-scoped tools. | |
| max_atoms | No | Max atoms (1–8, default 5). |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden and does a good job: it discloses that facts are never invented, it never auto-posts (human publish rail), and it specifies an output style ('speak_first / board-style summary first'). It lacks some details like permission requirements or exact state changes, but the critical safety behaviors are covered.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a compact three-sentence block with no redundancy. It front-loads the value proposition and then provides usage and constraints, although the first sentence is dense with jargon ('Marketing-by-construction', 'CoS telemetry', 'Wisdom/Proof factories') which slightly reduces immediate readability.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with no output schema and no annotations, the description is reasonably complete: it covers purpose, when to use, behavioral guards, and output style. It does not fully describe the shape of the returned 'content atoms' or the exact factory mechanics, but it gives enough context for an agent to select and invoke the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% for all three parameters, so the schema already handles parameter semantics. The description adds little beyond implying 'recent' (hours) and 'THIS operator' (companyId), but it does not meaningfully enrich understanding of hours, companyId, or max_atoms beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('pack') and clearly identifies the resource ('THIS operator's recent CoS telemetry into one-job content atoms'). It also names the output categories ('Proof/Story/Take · Wisdom/Proof factories') and explicitly ties usage to 'after a dogfood call,' making it distinct from broader content tools like originate_content_ideas.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicit 'Use after a dogfood call or when they ask...' provides clear when-to-use context. It also states key exclusions/constraints ('Never invents facts not in events; never auto-posts'), but it does not name alternative sibling tools, so it falls short of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
propose_workAInspect
Create a new shared work-graph item (lab_work_items) so it is visible and coordinated across sessions and agents. Set depends_on to gate this item behind others (it starts blocked until they complete). Optionally pre-assign to an agent OR a user.
[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.]
| Name | Required | Description | Default |
|---|---|---|---|
| kind | No | Kind of work (e.g. task, review, content). Default "task". | |
| title | Yes | Short title of the work item. | |
| payload | No | Optional structured detail for the item. | |
| companyId | Yes | FreedomOS company id to act within (you must be a member). Required for company-scoped tools. | |
| depends_on | No | Optional array of lab_work_items UUIDs this item is blocked by. | |
| assignee_user_id | No | Optional auth user UUID to assign (human owner). Cannot be combined with assignee_agent_id. | |
| assignee_agent_id | No | Optional linnet_agents UUID to assign (agent owner). |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description includes important behavioral information: the write-tier approval process and that items start blocked if depends_on is set. This discloses authorization requirements and initial state, though it does not detail return value or side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is efficient with no filler: one paragraph stating purpose and usage, then a bracketed note on approval. Each sentence adds distinct information, and the structure is front-loaded and scannable.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has 7 parameters and no output schema, the description covers creation, gating, assignment, and approval. However, it lacks explanation of what a work-graph item is, what the return value contains, and error scenarios. This leaves some gaps for an agent using the tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, providing baseline 3. The description adds value by explaining that depends_on causes the item to start blocked and that assignee_user_id and assignee_agent_id are mutually exclusive (though not stated in schema). This enhances understanding beyond parameter names and types.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool creates a new shared work-graph item (lab_work_items), specifying the verb 'Create' and the resource. It immediately conveys visibility and coordination across sessions and agents, distinguishing it as a collaborative work item tool.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives guidance on when to use depends_on for gating and how to pre-assign to agent or user, but does not explicitly contrast with sibling tools like add_commitment or create_attention_directive. It lacks 'when not to use' or alternative tool references.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
publish_pipeline_itemAInspect
Publish approved INTERNAL content to configured output. ROUTING: team_update sends to all team members via Freedom OS, report sends to specified team member emails, customer_newsletter requires user Email MCP connection (Mailchimp, Resend, etc.), changelog publishes to public changelog page. ⚠️ SOCIAL POSTS (x/linkedin/instagram/facebook/threads) never send from this tool: declare the pipeline destination via update_pipeline and submit via submit_content_to_pipeline — the post queues for operator approval and publishes through the single gated owner on approve (in FreedomOS app chat, send_to_user with intent "publish" queues the same approval). Use when an approved non-social item — changelog, team update, report, or newsletter — is ready to send.
[outbound-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.]
| Name | Required | Description | Default |
|---|---|---|---|
| item_id | Yes | ID of the approved pipeline output to publish (get from get_pending_approvals, must be approved status) | |
| companyId | Yes | FreedomOS company id to act within (you must be a member). Required for company-scoped tools. | |
| recipients | No | Optional. Specific team member emails to send to (must be in company_members). If not specified, sends to all team members. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Without annotations, the description bears full burden. It discloses routing behavior, social post exclusion, and the outbound-tier approval mechanism (first-use, from-now-on, just-once). However, it does not cover error conditions or what happens if the item is not approved, but the approved status is implied in the first sentence.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the core purpose, followed by routing details, a clear warning, usage instruction, and an approval note. Each sentence is informative, though slightly lengthy. It is well-structured and avoids redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (routing types, social post exclusion, approval tiers), the description covers all necessary facets for correct agent invocation. It explains when and how to use, what not to use, and important behavioral notes, leaving little room for confusion.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. The description adds context by linking the 'recipients' parameter to the 'report' routing type and implying that destinations are configured elsewhere. This enriches the parameter understanding beyond the schema's basic descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it publishes approved internal content to configured output. It specifies routing types (team_update, report, customer_newsletter, changelog) and explicitly distinguishes from social posts, which are handled by other tools. This leaves no ambiguity about the tool's function.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Guidelines are explicit: 'Use when an approved non-social item ... is ready to send.' It also details when NOT to use (social posts) and directs to alternative tools (update_pipeline, submit_content_to_pipeline). The outbound-tier approval note adds context on authorization expectations.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
query_lead_journeyAInspect
Reconstruct the full journey of a lead — what they did on the site, what they signaled, what we have already sent them. Returns structured data that downstream synthesis or drafting tools consume. Use this as the first step before synthesizing a hypothesis about why a lead behaved a certain way or drafting outreach to them.
| Name | Required | Description | Default |
|---|---|---|---|
| lead_id | Yes | UUID of the lead in the leads table. | |
| companyId | Yes | FreedomOS company id to act within (you must be a member). Required for company-scoped tools. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It implies a read-only operation (reconstructing data) with no side effects mentioned. This is adequate but adds no extra context beyond the obvious non-destructive nature.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with purpose and immediate use guidance. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has only 2 parameters, no output schema, and no annotations, the description sufficiently covers what the tool does and when to use it. It mentions the output is structured for downstream consumption, which is adequate for a query tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the schema already documents both parameters adequately. The description adds overall context (e.g., usage as first step) but does not provide additional meaning for the individual parameters beyond what schema offers. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool reconstructs the full journey of a lead, listing specific aspects (site activity, signals, sent materials). It also mentions that the output is consumed by downstream tools, which helps differentiate from sibling tools like synthesizing hypotheses or drafting outreach.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states to use this tool as the first step before synthesizing a hypothesis or drafting outreach. While it does not name alternative tools, it provides clear context on when this tool is appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
query_smeAInspect
Query an external Subject Matter Expert (SME) AI for verified domain knowledge. The SME's answers are grounded in verified rules and go through a rigorous verification pipeline — this is NOT a general search, it's consulting a domain expert.
Use this when:
You need factual, verified information for content creation (social media, blog posts, newsletters)
You want to fact-check a claim before publishing
You need talking points grounded in domain expertise
You're creating content about a domain the SME covers
Available SME sources:
"conduit" — Pharmaceutical compounding compliance expert (USP 795/797/800, state regulations)
Routing: pharma / USP 795·797·800 / sterile·non-sterile compounding / BUD / board-of-pharmacy compliance fact you must get right → call query_sme (the verified Conduit SME) to fact-check it BEFORE escalating to a human or deriving the rule yourself; cite its sources
| Name | Required | Description | Default |
|---|---|---|---|
| context | No | Optional context about why you're asking — helps the SME give a more relevant answer. E.g., "I'm creating a social media post about cleanroom best practices" | |
| question | Yes | The question to ask the subject matter expert. Be specific and clear. | |
| companyId | Yes | FreedomOS company id to act within (you must be a member). Required for company-scoped tools. | |
| sme_source | No | Which Expert to consult, by key. "conduit" (pharmaceutical compounding compliance) is always available; your company may have additional Experts configured. Defaults to "conduit". |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must fully disclose behavior. It mentions the verification pipeline and that it's not general search, but omits details like rate limits, cost, error handling, or what happens if the SME cannot answer. It claims answers are cited, but doesn't specify format.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is somewhat lengthy but well-structured with sections for use cases, sources, and routing. It front-loads the purpose effectively. A few minor redundancies could be trimmed, but overall it is well-organized.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 4 parameters, no output schema, and the complexity of an external expert tool, the description covers purpose, usage, sources, and param guidance. However, it does not describe the output format or what constitutes a successful response, leaving a gap in completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, and the description adds context beyond the schema: it explains when to use the optional 'context' field, advises on specificity for 'question', clarifies 'companyId' scoping, and describes the default 'sme_source' with available options.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Query an external Subject Matter Expert (SME) AI for verified domain knowledge' with a specific verb and resource. It distinguishes itself from general search and sibling tools like query_lead_journey by emphasizing verified, expert-backed answers.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit use cases (content creation, fact-checking, talking points) and a routing example for pharma compliance. It lacks explicit 'when not to use' or named alternatives, but the positive guidance is strong enough to direct correct usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ratify_capabilityAInspect
Persist the operator-CONFIRMED derived features (from derive_capability) into the product capability index as source='derived'. Call ONLY with features the operator has ratified — each then becomes an authoritative capability the marketing agents and the Integrity Gate use. Idempotent (re-ratifying updates in place). Derived can't-do limits are drafted for awareness but authored separately for now.
Routing: Operator confirmed the derived features from derive_capability → persist them with this
[sensitive-tier — EVERY call needs a manager's approval (per-send human rail): each request queues its own approval card and sends exactly once on approve. There is no standing grant for this tool.]
| Name | Required | Description | Default |
|---|---|---|---|
| features | Yes | The operator-confirmed features to persist. Each needs a title; description/solves/evidence/feature_id optional. | |
| companyId | Yes | FreedomOS company id to act within (you must be a member). Required for company-scoped tools. | |
| scan_hash | No | Optional repo commit SHA the derivation came from (recorded for re-scan reconciliation). |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. It discloses idempotency (re-ratifying updates in place), the approval requirement (per-send human rail, no standing grant), and that derived can't-do limits are handled separately. No contradictions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the core purpose and is efficient. The sensitive-tier note adds important context without being verbose. Could be slightly more concise, but overall well-structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (write with approval, idempotent), the description covers the flow, constraints, and idempotency. No output schema is present, but the write nature makes return values less critical. Completeness is good.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so baseline is 3. The description adds little beyond the schema: it repeats that features need a title and are operator-confirmed. No additional semantic detail is provided.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states what the tool does: persist operator-confirmed derived features into the product capability index with source='derived'. It names the preceding tool (derive_capability) and the result (authoritative capability for marketing agents and Integrity Gate), making it distinct from siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly says to call ONLY with features the operator has ratified and provides routing context. The sensitive-tier note adds important usage constraints (manager approval per call). However, it does not explicitly state when not to use the tool or compare with alternative tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
read_google_docAInspect
Read content from an existing Google Doc by its ID.
| Name | Required | Description | Default |
|---|---|---|---|
| doc_id | Yes | Google Doc ID (the long alphanumeric string from the URL) | |
| companyId | Yes | FreedomOS company id to act within (you must be a member). Required for company-scoped tools. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Description indicates a read-only operation (non-destructive), but with no annotations, it doesn't disclose further behaviors like output format or auth requirements. Adequate for a simple tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, no fluff, directly states purpose. Perfectly concise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read tool with no output schema, the description is mostly complete. Could specify what 'content' includes (e.g., plain text, formatting), but it's sufficient for typical use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, and the description adds context with 'existing Google Doc' but does not enhance parameter meanings beyond the schema's descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it reads content from a Google Doc by ID, distinguishing it from siblings like create_google_doc and update_google_doc.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use vs. alternatives, but the verb 'read' and resource 'Google Doc' imply its use case. Could be improved by mentioning it's for reading existing docs only.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
read_knowledgeAInspect
Read a Markdown knowledge file by slug. Slugs are folder-qualified with NO file extension (e.g. "canon/tim-voice-guide", "content-captures/2026-07-06-forgiveness-and-the-debt") — never repo-style paths, never ".md". Returns the full content plus a list of available sections. Use this to load guidelines, SOPs, or strategies before doing work that needs to reference them.
| Name | Required | Description | Default |
|---|---|---|---|
| slug | Yes | Folder-qualified slug with no extension, e.g. "canon/tim-voice-guide" (from list_knowledge or a save_knowledge result). Never a repo-style path, never ".md". | |
| scope | No | "company" (default) reads a company-shared file; "personal" reads from the current user's private notes. | |
| companyId | No | FreedomOS company id to act within (you must be a member). Required for company-scoped tools. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided; description should compensate. It mentions read-only and return structure but omits error behavior (missing slug), authentication needs, or side effects. Incomplete disclosure for a tool with no annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, front-loaded with action and key details. Efficient but could be slightly tighter (e.g., merging slug format and usage). No filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Adequately covers parameters and usage context. Missing details on output structure (what is the list of sections like?) since no output schema exists. Would benefit from describing the return format.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage 100%; description adds crucial meaning: slug format (no extension, examples), scope default, and companyId requirement. Enriches schema understanding beyond raw property descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states the action 'Read a Markdown knowledge file by slug' with specific examples and explains the return value (full content plus sections). Distinguishes from sibling tools like list_knowledge or save_knowledge.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly says when to use: 'to load guidelines, SOPs, or strategies before doing work that needs to reference them.' Lacks explicit when-not-to-use or comparisons to alternatives like list_knowledge or read_google_doc.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
read_sheetCInspect
Read data from a Google Spreadsheet.
| Name | Required | Description | Default |
|---|---|---|---|
| range | No | A1 notation range (e.g., "Sheet1!A1:D10"). Defaults to all data. | |
| companyId | Yes | FreedomOS company id to act within (you must be a member). Required for company-scoped tools. | |
| spreadsheet_id | Yes | Spreadsheet ID |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
There are no annotations, so the description must fully disclose behavior. It only states 'Read data', which adds minimal value beyond the name. It does not mention return format, pagination, rate limits, or authentication requirements.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, clear sentence with no unnecessary words. It is front-loaded and efficiently conveys the core purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite the tool's simplicity, the description is incomplete. It does not explain what the output looks like, any limitations (e.g., maximum number of rows), or permissions needed. With no output schema, more context would be helpful.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage, so the schema already explains each parameter well. The description adds no additional meaning beyond what the schema provides, meeting the baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Read' and resource 'data from a Google Spreadsheet', which matches the tool name. However, it does not differentiate from sibling tools like read_google_doc or append_to_sheet, which have different purposes.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance is provided on when to use this tool versus alternatives. For example, it does not mention that this tool is for reading entire sheets or ranges, while read_google_doc is for documents.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
read_web_pageAInspect
Read a web page and return its content as clean markdown. Use when the user asks to read, analyze, summarize, or extract information from a specific URL. Also useful for competitor research, checking a website, or reading an article.
[sensitive-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.]
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | The full URL to read (must include https:// or http://) | |
| companyId | No | FreedomOS company id to act within (you must be a member). Required for company-scoped tools. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It includes a note about sensitive-tier and approval requirements, which is a helpful behavioral detail. It does not mention other potential behaviors like rate limits or error handling but meets a good standard.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise: two sentences plus a separate approval note. It front-loads the core purpose and usage, with no wasted words. Every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's low complexity (2 params, no output schema), the description is fairly complete. It covers purpose, usage, and approval behavior. It could mention handling of invalid URLs or dynamic content, but it is adequate for typical use cases.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. The description adds no extra meaning beyond the schema descriptions for the two parameters (url and companyId), which are already clear in the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool reads a web page and returns clean markdown, with specific examples of use cases. However, it does not explicitly differentiate from sibling tools like browse_url or inspect_url, which slightly reduces clarity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit scenarios for using the tool (read, analyze, summarize, extract info from a URL) and mentions additional uses like competitor research. It does not, however, specify when not to use it or suggest alternatives, which would make it stronger.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
reassign_reportsAInspect
Reassign all scheduled reports from one agent to another. Use when user says "reassign reports", "transfer reports to [agent]", "move reports from [agent] to [agent]". Useful after deactivating an agent or hiring a replacement.
[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.]
| Name | Required | Description | Default |
|---|---|---|---|
| companyId | Yes | FreedomOS company id to act within (you must be a member). Required for company-scoped tools. | |
| to_agent_id | Yes | UUID of the agent to transfer reports TO | |
| from_agent_id | Yes | UUID of the agent to transfer reports FROM |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description discloses approval behavior and the need for manager approval on first use. However, it does not clarify whether reports are removed from the original agent or if the action is reversible, which is important for a mutation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is brief and front-loaded with the main purpose. The approval note in brackets adds necessary context but could be more concise. Overall efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema, the description lacks information about the result of reassignment (e.g., success message, whether reports are copied or moved) and does not mention reversibility. Still, it covers the core action and trigger phrases sufficiently.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with descriptions for all parameters. The tool description adds minimal value beyond the schema, mainly through examples. Baseline of 3 is appropriate as the schema already adequately describes each parameter.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool reassigns all scheduled reports from one agent to another, provides example user utterances, and identifies use cases like deactivating an agent or hiring a replacement. It distinguishes from sibling tools by being specific to report reassignment.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly describes when to use (when user says 'reassign reports', 'transfer reports to [agent]', etc.) and after deactivating an agent or hiring a replacement. Does not explicitly exclude alternative scenarios but provides clear context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
recalibrate_agent_jdAInspect
Regenerate an agent's JD using fresh company context. Updates mission, expertise, guardrails, success metrics, and optionally activity plans. Works for both hired agents and Linnet. Use when the company has evolved, an agent needs recalibration, or the user wants to refine an agent's direction.
[sensitive-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.]
| Name | Required | Description | Default |
|---|---|---|---|
| agent_id | Yes | UUID of the agent to recalibrate. Use get_team_roster to find IDs. | |
| companyId | Yes | FreedomOS company id to act within (you must be a member). Required for company-scoped tools. | |
| focus_areas | No | Optional user guidance for recalibration, e.g. "focus more on SEO" or "add financial analysis" | |
| regenerate_activities | No | Also regenerate the activity plan (default: false — preserves evolved activities) |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided. The description discloses the sensitive-tier approval requirement and what gets updated (mission, etc.). It does not mention if changes are reversible or the exact side effect on existing activities, but provides useful behavioral context beyond the schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Very concise: two paragraphs. The first explains purpose and usage; the second adds approval details. No fluff, front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers purpose, usage, parameters implicitly, and approval behavior. Lacks return value information (no output schema), but for a mutation tool this is acceptable. Slightly incomplete but adequate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%. The description does not add significant new meaning for individual parameters beyond the schema, but it mentions 'optionally activity plans' which relates to regenerate_activities. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it regenerates an agent's JD using fresh company context and lists what it updates (mission, expertise, guardrails, success metrics, and optionally activity plans). It distinguishes from siblings like update_agent by specifying recalibration with company context.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states when to use: when the company has evolved, an agent needs recalibration, or the user wants to refine direction. Does not explicitly mention when not to use or alternatives, but the context is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
remove_agent_activityAInspect
Retire ONE activity from an agent's plan. Soft-archive (recoverable): the activity is MOVED to jd_content.archived_activities and removed from the live plan, so the agent stops running it. Never hard-deletes.
[sensitive-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.]
| Name | Required | Description | Default |
|---|---|---|---|
| reason | No | Optional reason for retiring (recorded on the archive + audit log). | |
| agent_id | No | UUID of the agent. Optional if agent_name is provided. | |
| companyId | Yes | FreedomOS company id to act within (you must be a member). Required for company-scoped tools. | |
| agent_name | No | Name of the agent. Provide this or agent_id. | |
| activity_name | No | EXACT (case-insensitive) name of the activity to retire. Provide this or activity_index. | |
| activity_index | No | 0-based index into the activity plan. Alternative to activity_name. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so the description carries full burden. It discloses that the operation is a soft-archive (recoverable), not a hard delete, and that the activity is moved to an archived collection. It also notes potential approval requirements. This provides good insight into behavior and side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two paragraphs: the first covers the main action and mechanism, the second covers approval tiers. It is front-loaded with the core purpose and keeps sentences succinct. Some could argue the approval note adds length, but it is contextually useful.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description explains the effect (archive, stop running) and recoverability, and mentions audit log recording. However, without an output schema, it does not clarify what the return value or success/failure signals are. For a mutation tool, this is a gap. Overall, it covers most essential context but lacks completion on response details.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with descriptions for all 6 parameters. The description does not add significant parameter-level meaning beyond the schema; it provides context for the action but not detailed parameter relationships or constraints. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool retires one activity from an agent's plan with a specific verb ('Retire') and resource ('activity from agent's plan'). It explains the soft-archive mechanism and that it's recoverable, distinguishing it from hard-deletion or other modification tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use (to retire an activity) and mentions a sensitive-tier requiring approval. However, it does not explicitly contrast with sibling tools like 'update_agent_activity' or 'deactivate_agent', nor does it state when not to use this tool. Usage guidance is present but incomplete.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
remove_backgroundAInspect
Remove the background from an existing image, leaving the main subject isolated on a transparent background (PNG).
Routing: "isolate the subject", "make background transparent", "remove background" → use this (1 credit)
[sensitive-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.]
| Name | Required | Description | Default |
|---|---|---|---|
| folder | No | Optional Media gallery folder to file this into (freeform name, e.g. "q3-campaign" or "brand-assets"). Shown as a folder chip on the /media page. Reuse an existing folder name when the work belongs to it. | |
| companyId | Yes | FreedomOS company id to act within (you must be a member). Required for company-scoped tools. | |
| image_url | No | URL of the raster image to process. | |
| artifact_id | No | ID of an existing artifact from the MEDIA block. | |
| folder_name | No | Subfolder name for Drive save. | |
| save_to_drive | No | If true, saves to Drive. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must disclose behavior. It explains the output format (transparent background PNG), credit cost, and approval flow (manager approval for first use, with options for permanent or one-time approval). Missing details on error handling or parameter conflicts, but sufficient for a read-only-like image processing tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise, with two main sections: the core action and the routing/approval note. It is front-loaded with the primary function. The approval details could be more compact, but overall it is efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 6 parameters and no output schema, the description should cover what the tool returns (e.g., URL of processed image). It only mentions the output format but not the actual return type. This gap leaves the agent uncertain about the result structure.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the schema already describes all 6 parameters. The description adds routing keywords but does not elaborate on parameter semantics beyond what the schema provides. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool removes the background from an image, leaving the subject isolated on a transparent background in PNG format. It includes routing keywords ('isolate the subject', 'make background transparent', 'remove background') that distinguish it from siblings, none of which perform exactly this task.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides routing keywords and mentions credit cost (1 credit) and sensitive-tier approval, which helps the agent decide when to use it. However, it does not explicitly state when not to use it or suggest alternatives, but the routing covers common intents.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
remove_dashboard_widgetBInspect
Remove a widget from an agent dashboard.
[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.]
| Name | Required | Description | Default |
|---|---|---|---|
| companyId | Yes | FreedomOS company id to act within (you must be a member). Required for company-scoped tools. | |
| widget_id | Yes | UUID of the widget to remove |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. It mentions an approval tier (write-tier) which is behavioral, but does not disclose side effects (e.g., widget deletion permanence, dashboard state changes) beyond the core action.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise with two sentences. The first sentence clearly states the purpose, and the second adds useful permission context. No unnecessary information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple removal tool with 2 well-documented parameters and no output schema, the description provides sufficient context to use the tool correctly. Could mention prerequisites like knowing the widget_id, but the schema already covers that.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, and both parameters have descriptions in the input schema. The tool description adds no additional meaning beyond what the schema provides, meeting the baseline for a tool with well-documented parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Remove') and the resource ('a widget from an agent dashboard'), with a specific verb and resource that distinguishes it from sibling tools like 'list_dashboard_widgets' (listing only) and 'configure_dashboard' (general configuration).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use this tool versus alternatives (e.g., when to remove via 'configure_dashboard' instead). The approval note is about permissions, not usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
report_feedbackAInspect
Report an error, issue, observation, or suggestion you encountered during your work. Use this proactively when you notice something noteworthy — tool failures, recurring problems, quality issues, or improvement ideas. This helps the founder track and act on agent insights over time.
Routing: For issues YOU observe doing tenant work (tool failures, quality patterns) — lands in the operator's own observability feed. If the operator is reporting that FreedomOS ITSELF (platform UI/MCP/runtime) is broken or missing a capability, route to submit_product_request instead — FO product inbox only. Do NOT use submit_product_request for the tenant's own app/product/KB/retrieval gaps.
[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.]
| Name | Required | Description | Default |
|---|---|---|---|
| title | Yes | Short summary of the issue (1 line). Be specific — "Buffer API returns 429 on image posts" not "API error". | |
| category | Yes | Type of feedback. error = something broke. warning = something might break. observation = pattern noticed. suggestion = improvement idea. blocker = cannot complete task. | |
| severity | No | How urgent this is. Default: medium. Use critical only for data loss or security issues. | |
| companyId | Yes | FreedomOS company id to act within (you must be a member). Required for company-scoped tools. | |
| tool_name | No | The tool that was involved, if applicable (e.g., "generate_image_xai", "post_to_x"). | |
| description | Yes | Detailed explanation. Include: what happened, what you expected, what you tried, and any error messages or codes. | |
| context_json | No | Optional JSON-encoded structured context (error codes, retry counts, URLs, timestamps, etc.). Example: "{\"status\":429,\"retries\":3}". |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It discloses routing behavior (tenant issues go to operator's feed, platform issues go elsewhere) and the approval process for write-tier. However, it does not mention what happens after submission (e.g., confirmation, feedback ID) or potential side effects, slightly reducing transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured with two clear paragraphs and a bullet-like routing explanation. It is reasonably concise for the amount of information conveyed, though the approval note adds a bit of length.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema and 7 parameters, the description covers the tool's purpose, when to use, routing, and approval. It lacks details about the return value or confirmation, but the core context for decision-making is present. The mention of 'helps the founder track and act' is vague but sufficient.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. The description does not add extra meaning beyond what the input schema provides—it focuses on tool purpose and usage rather than parameter details. The schema itself describes all parameters well.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly defines the tool's purpose: reporting errors, issues, observations, or suggestions. It uses specific verbs ('report') and resources ('error, issue, observation, or suggestion') and distinguishes from the sibling tool submit_product_request by specifying routing rules for platform vs. tenant issues.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit guidance on when to use this tool (proactively for noteworthy issues like tool failures, quality problems) and when not to (FreedomOS platform issues should go to submit_product_request). It also mentions the write-tier approval process, helping the agent understand constraints.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
request_attention_closeAInspect
Close an EXISTING coding tab on the operator machine for THIS operator. Use when they say "close that session", "kill that Grok tab", or "shut the stuck Claude". Queues ATTENTION_CLOSE_V1 for desk launcher + parks the FO session row. Default is safe close (idle tab / SKIP-LIVE if CLI still running). kill_live=true only when they say force-kill / stop it now — argv-anchored terminate, not fuzzy. Prefer park_attention_sessions when only the board is ghosty and the Terminal tab is already gone.
[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.]
| Name | Required | Description | Default |
|---|---|---|---|
| host | No | Host adapter: grok | claude-code | claude-desktop (default inferred/grok). | |
| park | No | If true (default), also park the FO session row immediately. | |
| label | No | Optional title fragment for desk match. | |
| companyId | No | FreedomOS company id to act within (you must be a member). Required for company-scoped tools. | |
| kill_live | No | If true, terminate the session's own live CLI then close (modal-free). Default false — refuse busy tabs. | |
| session_id | Yes | Session id from list_attention_sessions (tool-only). |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It discloses several behavioral traits beyond the schema: it queues ATTENTION_CLOSE_V1, parks the FO session row, defaults to safe close (idle tab / SKIP-LIVE if CLI still running), and clarifies that kill_live is 'argv-anchored terminate, not fuzzy.' It also includes write-tier approval notes. The only minor gap is not stating the exact return/response format, but for a mutation tool with this level of behavior disclosure, it's quite complete.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is dense but well-organized: a one-sentence core purpose, example triggers, then behavioral details, a sibling pointer, and an approval note. No fluff; every sentence adds operational value. The bracketed approval note is a useful addition without being verbose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with 6 params, required session_id, no output schema, and no annotations, the description covers: what it does, when to use it, when not to use it (prefer sibling), behavioral nuances (safe vs. kill_live, argv-anchored, modal-free), and approval implications. It also references the correct source for session_id. This is complete for an agent to select and invoke correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has 100% description coverage for all 6 parameters, each with a clear description. The description adds further semantics by defining the default behavior of 'park' (true by default), explaining what kill_live=true means ('terminate the session's own live CLI then close'), and clarifying that host has a default inference. It also explains the source of session_id ('from list_attention_sessions (tool-only)'), which adds context beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb+resource: 'Close an EXISTING coding tab on the operator machine for THIS operator.' It clearly states the action and scope. It also distinguishes from sibling tools by explicitly mentioning 'Prefer park_attention_sessions when only the board is ghosty' and by using terms like 'kill_live' versus 'safe close' that are unique to this close operation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides explicit when-to-use guidance with example phrasings ('close that session', 'kill that Grok tab') and contrasts with the sibling alternative park_attention_sessions ('when only the board is ghosty and the Terminal tab is already gone'). Also gives conditional usage for kill_live=true ('only when they say force-kill / stop it now'), which is clear exclusionary guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
request_attention_focusAInspect
Raise an EXISTING coding tab on the operator machine (OS focus) for THIS operator's desk. Use when they say "show me that Grok", "bring up Claude", or "focus the freedom-ai session". Queues ATTENTION_FOCUS_V1 sticky for desk launcher (same bus as spawn). Does not inject work — pair with create_attention_directive to push. Prefer after list_attention_sessions matched a live session_id.
[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.]
| Name | Required | Description | Default |
|---|---|---|---|
| host | No | Host adapter: grok | claude-code | claude-desktop (default grok). | |
| label | No | Optional spoken/title fragment to help desk match the tab. | |
| companyId | No | FreedomOS company id to act within (you must be a member). Required for company-scoped tools. | |
| session_id | Yes | Session id from list_attention_sessions (tool-only; never speak aloud). |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description carries the full burden. It discloses the queueing mechanism (ATTENTION_FOCUS_V1 sticky on same bus as spawn), the non-injecting nature, and the write-tier approval behavior with from-now-on vs just-once distinctions. This is substantial behavioral context, though it stops short of describing failure modes or return values.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded with the core action, followed by usage examples, behavioral notes, and approval details. Each sentence adds relevant information, though the bracketed approval note adds length.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description gives context on when to use, behavior, and approval, but doesn't mention what the response contains or error scenarios (e.g., invalid session_id). Overall it's sufficient for an agent to invoke correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already documents all four parameters with descriptions (100% coverage), so the baseline is 3. The description adds the guidance to use session_id from list_attention_sessions, which reinforces the parameter's purpose but doesn't add syntax or format beyond schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description explicitly states the action ('Raise an EXISTING coding tab'), the resource (operator's desk/tab), and the OS focus effect. It includes example user phrases and differentiates from siblings like spawn/close/transfer by noting it works on existing tabs only.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It provides explicit trigger phrases ('show me that Grok', 'bring up Claude'), states what it does not do ('Does not inject work'), and recommends pairing with create_attention_directive for pushing work. It also advises using after list_attention_sessions matched a live session_id.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
request_attention_spawnAInspect
Request a NEW local coding session from voice/chat (tab spawn). Queues a sticky for the desk launcher on THIS operator's machine (host must run attention-launcher). Use when they say "start a Grok/Claude on …", "new build for …", "open a session for …". Does not open a cloud IDE — the local launcher opens Terminal + announces + optional first directive.
[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.]
| Name | Required | Description | Default |
|---|---|---|---|
| cwd | No | Working directory on the operator machine (e.g. /Users/…/GitHub/freedom-ai). Prefer absolute paths they already use. | |
| goal | Yes | One-line goal for the new session (1–500 chars). | |
| host | Yes | Which builder to open: grok (Terminal) | claude-desktop (Claude.app Code — preferred) | claude-code (Terminal CLI) | |
| companyId | No | FreedomOS company id to act within (you must be a member). Required for company-scoped tools. | |
| session_id | No | Optional stable session id; default auto-derived from host + project. | |
| first_instruction | No | Optional first work sticky delivered after the new session announces (imperative). |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Since no annotations are provided, the description carries full responsibility. It discloses the local spawning mechanism, prerequisite (host must run attention-launcher), and the write-tier approval behavior (first use may require approval, from-now-on vs just-once). It also explicitly states what it does not do (cloud IDE). This provides sufficient transparency for the agent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single paragraph plus a bracketed note. It is front-loaded with the core purpose, followed by mechanism, usage examples, limitations, and approval details. Every sentence adds value with no fluff, making it highly concise and well-structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers the tool's functionality, prerequisites, usage cues, and behavioral nuances (approval tiers). However, it omits any mention of the return value or expected outcome, which would be helpful given no output schema. Overall, it is fairly complete for an agent to decide when and how to use the tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already has 100% coverage on all 6 parameters with descriptions. The description only indirectly references the first_instruction parameter as 'optional first directive' and implicitly indicates required fields. It does not add significant new semantic nuance beyond the schema, so the baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it requests a NEW local coding session from voice/chat, queues a sticky for the desk launcher on the operator's machine. It distinguishes from cloud IDE and provides example trigger phrases, making the purpose very specific and distinguishable from sibling tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit usage cues ('Use when they say...') and clarifies that this tool does not open a cloud IDE, indicating its local-only scope. It does not explicitly state alternatives or when not to use it, but the examples are clear enough for an agent to infer appropriate usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
request_attention_transferAInspect
Transfer work for THIS operator: push an instruction to a target coding session (or spawn one), optionally close/park the source. Use when they say "move this to a fresh Grok", "hand that off to Claude", or "continue on freedom-ai in a new tab". Composes create_attention_directive or request_attention_spawn + optional request_attention_close. Never invent paste rituals.
[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.]
| Name | Required | Description | Default |
|---|---|---|---|
| cwd | No | Working directory for new spawn. | |
| goal | No | Goal for new spawn (required when spawning; defaults to first 120 of instruction). | |
| companyId | No | FreedomOS company id to act within (you must be a member). Required for company-scoped tools. | |
| from_host | No | Host of from_session (default grok). | |
| close_from | No | If true and from_session_id set, queue OS close of the source tab. | |
| spawn_host | No | If no to_session_id: open new tab with this host (grok | claude-desktop | claude-code). | |
| instruction | Yes | Imperative work for the target session (1–4000 chars). | |
| to_session_id | No | Existing target session_id (from list). Omit with spawn_host to open a new tab instead. | |
| kill_live_from | No | With close_from: force-kill source live CLI (default false). | |
| from_session_id | No | Optional source session to park/close after transfer. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It discloses the write-tier approval flow, the optional side effect of closing/parking the source session, and that it composes other tools. It also adds the operational constraint 'Never invent paste rituals.' It does not detail kill_live_from semantics or what 'park' entails operationally.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Four tight sentences plus a bracketed approval note; the action and resource are front-loaded, the trigger phrases are concrete, and the composition/approval context earns its place. There is no filler or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a complex 10-parameter composite tool with no output schema, the description covers purpose, triggers, composition, constraints, and approval model well. Minor gaps: it does not state in prose that to_session_id and spawn_host are mutually exclusive (spawn vs. transfer), nor what the response contains, though the schema partially addresses the first point.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all 10 parameters are documented structurally; the baseline is 3. The description adds high-level orchestration meaning (target existing session vs. spawn new one, optional close source) but no per-parameter detail beyond what the schema already states.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The opening line 'Transfer work for THIS operator: push an instruction to a target coding session (or spawn one), optionally close/park the source' names a specific verb, resource, and scope. It also distinguishes itself from the sibling sub-tools by explicitly stating it composes create_attention_directive or request_attention_spawn + optional request_attention_close.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives explicit trigger phrases ('move this to a fresh Grok', 'hand that off to Claude', 'continue on freedom-ai in a new tab'), providing clear when-to-use context. It names the composed sibling tools but does not state explicit when-not-to-use conditions (e.g., when to call request_attention_spawn directly instead of this composite).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
request_connectorAInspect
Request that the operator connect an external integration (MCP connector) so you can use its tools. Provide the connector name from search_connector_registry and a short reason for the capability gap it closes. Creates a one-click approval card for the operator. If the connector is NOT on the vetted allowlist, it becomes a "vet this connector" request instead. This does not connect anything by itself and never spends money.
[sensitive-tier, initiates a multi-step agent process — 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.]
| Name | Required | Description | Default |
|---|---|---|---|
| reason | No | Why you need it — the capability gap it closes (e.g. "run the KDP book ad campaign"). | |
| companyId | Yes | FreedomOS company id to act within (you must be a member). Required for company-scoped tools. | |
| connector | Yes | Name of the connector to request (from search_connector_registry, e.g. "Amazon Ads"). |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description effectively discloses key behaviors: it initiates a multi-step process, requires approvals (manager, from-now-on, just-once), does not connect anything itself, and never spends money. This covers security and side-effect concerns adequately.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and front-loaded with the main verb and purpose. Every sentence adds relevant information (approval types, no direct connection, no cost). No unnecessary words or repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the absence of output schema and annotations, the description is highly complete. It covers purpose, parameter guidance, behavioral effects, and approval flow. The only minor gap is the explicit return value, but the 'one-click approval card' implies the result.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, and the description adds value by specifying that the reason should describe the 'capability gap' and that the connector name comes from search_connector_registry. This enhances understanding beyond the schema definitions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool requests an operator to connect an external MCP connector, specifying the required inputs (connector name from search_connector_registry and reason). It distinguishes from sibling tools like search_connector_registry and confirm_mcp_approval by focusing on the request action.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context for when to use the tool (to gain access to a new connector's tools) and mentions alternative paths (if not on allowlist, becomes vet request). However, it does not explicitly state when not to use it or contrast with confirm_mcp_approval.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
request_content_revisionAInspect
Request changes to a content item. Use when user says "revise this", "change the tone", "make it shorter", or provides feedback on pending content. The content will be re-transformed with their feedback.
[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.]
| Name | Required | Description | Default |
|---|---|---|---|
| item_id | Yes | ID of the pipeline output to revise (get from get_pending_approvals) | |
| feedback | Yes | User's feedback on what to change (e.g., "make it shorter", "more professional tone") | |
| companyId | Yes | FreedomOS company id to act within (you must be a member). Required for company-scoped tools. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Since no annotations are provided, the description bears full responsibility for behavioral transparency. It states that the content will be re-transformed with feedback, indicating a write operation. Additionally, it includes a note about a 'write-tier' approval system, detailing that first use may require manager approval and the types of approval (from-now-on vs. just-once). This adds valuable behavioral context beyond the basic action.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise: two short paragraphs. The first front-loads the core purpose and usage triggers, while the second adds essential approval behavior. Every sentence provides useful information, and there is no fluff or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers the core action (requesting changes), the feedback mechanism, and the approval tier. However, it does not describe the return value or expected output after calling the tool. Since there is no output schema, the agent might benefit from knowing what the response contains (e.g., confirmation, new version ID). Still, the description is reasonably complete for a straightforward revision request.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already has full (100%) description coverage, so the schema itself explains the parameters adequately. The description does not add any extra meaning beyond what is in the schema's parameter descriptions. For example, it does not elaborate on the format of 'feedback' or the scope of 'companyId' beyond the schema's text. Baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: requesting changes to a content item. It provides example use cases like 'revise this' and 'change the tone', effectively communicating what the tool does. However, it does not explicitly differentiate from sibling tools such as 'update_pipeline' or 'submit_content_to_pipeline', which might also involve content modifications.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly mentions when to use the tool: when the user says 'revise this', 'change the tone', 'make it shorter', or provides feedback on pending content. This gives clear triggers for invocation. However, it does not provide guidance on when not to use it or suggest alternative tools for similar tasks.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
resolve_brand_guideAInspect
Draft a first brand guide (personality tone, visual/positioning dos and donts) EXTRACTED from the company's own canon documents, with a verified receipt (quote + source doc) on every proposed item. Proposes only — never saves anything; the user reviews the receipts and accepts, then the accepted items are applied via update_brand_guidelines. Use when the user accepts an offer to build their brand guide from existing material, or explicitly asks to assemble a brand guide from what is already on file. For a company with no material on file, this returns nothing — ask instead.
[sensitive-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.]
| Name | Required | Description | Default |
|---|---|---|---|
| companyId | Yes | FreedomOS company id to act within (you must be a member). Required for company-scoped tools. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description clearly explains the tool's behavior: it proposes only, never saves, and requires user acceptance before items are applied via update_brand_guidelines. It also describes approval tiers for first use, though does not cover other potential side effects like logging or rate limits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured, front-loading the purpose and then providing workflow and usage conditions. It could be slightly more concise, but each sentence adds value without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with no output schema, the description explains return content (receipts with quotes and source docs) and the overall workflow. It also covers edge cases (no material on file). Missing details on exact output format, but adequate given other richness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the description does not add semantic detail beyond what the schema already provides for companyId. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool drafts a brand guide from company documents with verified receipts. It uses specific verbs ('Draft', 'Proposes') and explicitly distinguishes itself from sibling tool update_brand_guidelines by noting it never saves.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states when to use (user accepts an offer to build from existing material or asks to assemble), when not to use (no material on file, returns nothing), and mentions the follow-up tool update_brand_guidelines. Also includes sensitive-tier approval context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
resolve_workAInspect
Mark a shared work-graph item resolved — verified (default), published, or cancelled. In the full system, resolving an item cascades to unblock items that depend on it, so this is a process-initiator. Optionally record a verified_outcome.
[sensitive-tier, initiates a multi-step agent process — 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.]
| Name | Required | Description | Default |
|---|---|---|---|
| status | No | Terminal status (default "verified"). | |
| outcome | No | Optional structured verified_outcome to record. | |
| companyId | Yes | FreedomOS company id to act within (you must be a member). Required for company-scoped tools. | |
| work_item_id | Yes | UUID of the lab_work_items row to resolve. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden. It discloses the multi-step process initiated, cascade to unblock dependencies, and approval sensitivity. However, it does not mention idempotency or behavior if the item is already resolved.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two paragraphs, with the first being concise and front-loaded. The second paragraph adds important approval context, though it could be slightly more streamlined.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema, the description provides sufficient context on purpose, effect, and approval. It could mention response format or error cases, but overall it is complete for the tool's complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline 3 is appropriate. The description adds minimal extra meaning beyond the schema for parameters; it mentions status options and optional outcome, but the schema already covers this.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Mark' and the resource 'shared work-graph item resolved' with specific statuses. It distinguishes from sibling tools by mentioning the work-graph context and cascade effect, which is unique among the listed siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides context about the tool being a process-initiator and notes approval requirements, but does not explicitly compare to sibling tools or state when not to use it. It gives implied usage guidance but lacks explicit when/when-not alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
retire_featureAInspect
Archive (retire) a feature so it stops showing to readers and agents, or restore a previously retired one. Safe-archive ONLY — never hard-deletes; retiring is fully reversible. Use when a feature is no longer accurate, was replaced, or the user says "remove this feature", "retire X", or "un-retire X".
[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.]
| Name | Required | Description | Default |
|---|---|---|---|
| reason | No | Optional note on why this feature is being retired. | |
| restore | No | Set true to un-retire (restore) a previously archived feature. Default false. | |
| companyId | Yes | FreedomOS company id to act within (you must be a member). Required for company-scoped tools. | |
| feature_id | Yes | The feature_id slug (e.g., "ai-content-pipeline") or UUID. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, but description discloses key traits: safe-archive only, never hard-deletes, fully reversible, and mentions write-tier approval requirements, adding value beyond the schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Efficient two-paragraph structure: first states core function, second adds approval context. Every sentence adds value, though the approval note could be integrated more smoothly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a state-mutating tool with no output schema, the description covers behavior, reversibility, and approval flow. Lacks return value details but sufficient given simplicity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema covers 100% of parameters with descriptions. The description adds minimal additional context (e.g., 'feature_id' can be slug or UUID) but mostly restates schema info. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses specific verbs ('archive', 'restore') and clearly states the resource ('feature'), distinguishing it from siblings like 'delete_idea' or 'update_feature_status' by emphasizing safe-archive (reversible) and the ability to restore.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides explicit scenarios: when a feature is no longer accurate, replaced, or user requests 'remove', 'retire', or 'un-retire'. Lacks explicit exclusion of hard-deletion tools but covers core use cases well.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
revoke_agent_toolAInspect
Remove ONE specific tool from an agent's loadout (tool_access). Use when an operator says "take away from " — or to clean a phantom/stale name out of a loadout (unresolvable names ARE removable here, unlike grant). Reports honestly when the name was not present, and when the tool is a universal base tool the runtime keeps available regardless.
[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.]
| Name | Required | Description | Default |
|---|---|---|---|
| agent_id | Yes | UUID of the agent. Use get_team_roster to find IDs. | |
| companyId | Yes | FreedomOS company id to act within (you must be a member). Required for company-scoped tools. | |
| tool_name | Yes | Exact loadout entry to remove (phantom/stale names allowed). |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, but description fully discloses behavior: reports honestly if name not present, handles universal base tools, and explains write-tier approval flow. This provides excellent transparency for a mutation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise paragraphs: first explains core function and special cases, second covers approval details. No wasted words, front-loaded with key information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has 3 required parameters, no output schema, and no annotations, the description is complete. It covers purpose, usage, behavior, parameter nuances, and approval context. Nothing essential is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with adequate descriptions, so baseline is 3. The description adds value by clarifying that 'tool_name' accepts phantom/stale names, which goes beyond the schema. Thus a 4 is warranted.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool removes one specific tool from an agent's loadout (tool_access). It uses specific verbs and resources, and distinguishes from sibling grant_agent_tool by noting that phantom/stale names are removable here.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly provides when to use: when operator says 'take <tool> away from <agent>' or to clean phantom/stale names. Also contrasts with grant tool and mentions write-tier approval process, offering clear usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
run_quality_checkAInspect
Evaluate content or media against your ICP persona using Gemini 3.1 Pro vision. Actually SEES images and WATCHES videos. Returns quality scores (1-10) across 6 dimensions + specific ICP feedback. Use after generating media or drafting content to validate quality before delivering to the user.
[sensitive-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.]
| Name | Required | Description | Default |
|---|---|---|---|
| task | No | What this deliverable is for (e.g. "X post about Freedom OS launch"). Gives the ICP evaluator context. | |
| content | No | Text content to evaluate (X post copy, email draft, newsletter). Can be combined with artifact_id for text + visual evaluation. | |
| companyId | Yes | FreedomOS company id to act within (you must be a member). Required for company-scoped tools. | |
| artifact_id | No | ID of a specific artifact to evaluate (from generate_image or generate_video result). If omitted, auto-finds the most recent media artifact. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses that the tool processes visual content and includes an approval note about sensitive-tier access. With no annotations provided, it carries the full burden and addresses authorization behavior, though it does not explicitly state side effects or destructive potential.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise with two focused paragraphs: first outlining purpose and outcomes, second providing usage guidance and approval details. Every sentence adds value and is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description explains the return values (quality scores and ICP feedback) but lacks details on the structure of the 6 dimensions. Given no output schema, this is a minor gap. Overall, it is mostly complete for the tool's complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% coverage with descriptions. The description adds value beyond schema by explaining that artifact_id can be omitted to auto-find recent media, that content can be combined with artifact_id, and that task provides context for evaluation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool evaluates content or media against an ICP persona, using Gemini 3.1 Pro vision to see images and watch videos, returning quality scores and feedback. It distinguishes itself from sibling tools like generate_image or generate_video by being a quality check.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description says 'Use after generating media or drafting content to validate quality before delivering to the user,' providing clear when-to-use context. It does not explicitly mention alternatives or when not to use, but no sibling tool serves a similar purpose.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
run_tacticAInspect
Run a saved Play (growth_tactics) for the company operator or agent — dispatch the next unit as a one-off draft activity, or dry-run a Play brief with suggest_only. Use when the operator or agent should execute an Agreed play this cycle (same owner as Focus “Run play”), or preview cast/steps/cost without spend. Structured plays require plan Agree before dispatch; suggest_only does not.
[sensitive-tier, initiates a multi-step agent process — 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.]
| Name | Required | Description | Default |
|---|---|---|---|
| companyId | Yes | FreedomOS company id to act within (you must be a member). Required for company-scoped tools. | |
| tactic_id | No | UUID of the Play/tactic to run (use this or tactic_title). | |
| agent_name | No | Optional: override which agent runs it (else resolved from the tactic's lane or assignee). | |
| suggest_only | No | If true, return Play execution brief only (who / steps / readiness / estimate) — no dispatch, no spend, no Agree required. Use for Chat/MCP dry-run before Run. | |
| tactic_title | No | Title (or fragment) of the Play/tactic to run (use this or tactic_id). |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It discloses sensitive-tier approval requirements, multi-step agent process, and side effects such as dispatch/spend versus suggest_only's no-spend dry run. This is substantial behavioral context beyond a simple action statement.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two dense sentences plus a bracketed compliance note. It front-loads the action and resource, then provides usage context and an approval caveat. The phrase 'same owner as Focus “Run play”' is somewhat jargony but not bloated; the structure is efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is complex (multi-step, approval, spend), and the description covers purpose, usage triggers, prerequisites, and approval behavior. It doesn't describe the return format in detail, but it does state what suggest_only outputs (a brief). Given no output schema, it is sufficiently complete for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description adds meaning by explaining suggest_only as a dry-run mode returning a brief without dispatch, and clarifies tactic_id/tactic_title interchangeability ('use this or that'), which enriches what the schema provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with 'Run a saved Play (growth_tactics)...' clearly identifying the verb and resource. It distinguishes from siblings by specifying the core action (dispatch as one-off draft) and an alternative mode (suggest_only dry-run), which separates it from create/update/delete tactic tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states 'Use when the operator or agent should execute an Agreed play this cycle...' and contrasts with previewing 'cast/steps/cost without spend.' It also gives a conditional prerequisite for structured plays (plan Agree required before dispatch, but not for suggest_only), helping an agent decide when to call this tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
save_artifactAInspect
Save an artifact (screenshot, analysis, report) to the company archive. Use after browse_url to persist visual evidence, or to save any agent-produced artifact for future reference.
[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.]
| Name | Required | Description | Default |
|---|---|---|---|
| title | Yes | Short descriptive title for the artifact | |
| companyId | Yes | FreedomOS company id to act within (you must be a member). Required for company-scoped tools. | |
| source_url | No | URL the artifact relates to (if applicable) | |
| description | No | What this artifact shows or contains | |
| storage_path | No | Storage path where the file was uploaded | |
| artifact_type | Yes | Type of artifact being saved | |
| metadata_json | No | Optional JSON-encoded metadata (scores, analysis results, etc.). |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden. It adds value by noting the write-tier nature and approval requirements ('first use may require a manager's approval'). This goes beyond a simple 'save' statement, though it lacks details on overwrite behavior or return values.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact: two main sentences and a bracketed note. Core purpose is front-loaded, with additional context provided efficiently. Every sentence adds value without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema, the description omits what the tool returns (e.g., artifact ID, success status). It covers purpose, usage, and parameter types well, but for a saving operation, return information would be helpful for the agent. Minor gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so all parameters already have descriptions. The description lists artifact types matching the enum but adds no new parameter semantics beyond what the schema provides. Baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool saves artifacts (screenshot, analysis, report) to a company archive, specifying the verb and resource. It distinguishes use cases (after browse_url, or saving agent-produced artifacts) and is distinct from sibling tools like browse_url or save_knowledge.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly states when to use the tool ('Use after browse_url to persist visual evidence, or to save any agent-produced artifact for future reference'). It also includes approval dynamics hints. However, it doesn't explicitly exclude alternatives like save_knowledge or other save tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
save_knowledgeAInspect
Save a Markdown knowledge file. Use for guidelines, SOPs, strategies, playbooks, meeting notes, contact lists, trackers, or any reference material that agents read and update over time. Pass scope="personal" to save private notes visible only to the current user (e.g., notes tied to their commitments).
[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.]
| 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. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so the description must convey behavioral traits. It mentions the write-tier approval process and duplicate gate (via override_duplicate_reason), but does not detail success responses or update vs create behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is efficient, front-loading the core purpose, then expanding with use cases, scope clarification, and approval note. Every sentence adds value without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 7 parameters and no output schema, the description covers main usage and approval, but lacks details on duplicate behavior and update semantics. It adequately supports the tool's complexity but has room for improvement.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with detailed parameter descriptions. The main description adds minimal parameter context beyond highlighting the 'scope' parameter's personal/company distinction. Baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Save a Markdown knowledge file' and provides concrete use examples (guidelines, SOPs, meeting notes). This differentiates it from sibling tools like read_knowledge, delete_knowledge, etc.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description offers guidance on when to use 'personal' vs 'company' scope and lists appropriate content types, but does not explicitly state when not to use the tool or how it differs from alternatives like update_knowledge_section.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
scan_product_signalsAInspect
Scan a company for product-system bugs and unlocks (failed/timed-out activity runs, blocked_on_you cards, open error agent_feedback) and return ranked product-request candidates for the FreedomOS product team. Use when the product team is hunting class bugs/unlocks across a portfolio tenant (dry-run by default; set file_top_n to file up to 5 bug cards). Does NOT invent feature fantasy — bias is bugs/unlocks only. For FreedomOS product-inbox members only.
[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.]
| Name | Required | Description | Default |
|---|---|---|---|
| companyId | No | FreedomOS company id to act within (you must be a member). Required for company-scoped tools. | |
| company_id | Yes | Tenant company_id to scan (e.g. …_the-optimal-company- or a portfolio co). | |
| file_top_n | No | If >0, file the top N signals as product_request decision cards (max 5). Default 0 = dry-run only. | |
| lookback_days | No | How far back to look (1–60, default 14). |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It thoroughly discloses behavioral traits: write-tier requiring potential approval, dry-run default, limit on file_top_n (max 5), bias toward bugs/unlocks only, and specific scanning scope (failed/timed-out runs, blocked cards, open error feedback). This is comprehensive and transparent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is informative and well-structured, with the main action front-loaded. It includes necessary details without being overly verbose. However, it could be slightly more concise by removing some redundancy (e.g., repeating 'dry-run' in both the description and parameter context).
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity (4 parameters, no output schema, no annotations), the description covers the essential information: purpose, inputs, behavior, limitations, and approval notes. It lacks a detailed description of the return format, which is somewhat mitigated by stating it returns 'ranked product-request candidates.'
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3. The description adds minimal extra meaning beyond the schema descriptions. It repeats the dry-run default and file_top_n limit, but these are already implied by the parameter descriptions. No additional semantic value is provided for parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: scanning a company for product-system bugs and unlocks, and returning ranked product-request candidates. It specifies the target audience (FreedomOS product team) and distinguishes itself from feature creation by explicitly stating it does not invent feature fantasy.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit usage context: 'Use when the product team is hunting class bugs/unlocks across a portfolio tenant.' It also mentions dry-run default and the file_top_n parameter to file cards, and clarifies access restrictions ('For FreedomOS product-inbox members only'). However, it does not explicitly compare to sibling tools, which would earn a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_ad_targetingAInspect
Search Meta's ad-interest targeting catalog (returns interest ids + audience sizes). Use when designing a Meta ad draft and you need valid {id, name} targeting pairs for create_meta_ad_draft — e.g. search "pharmacy" or "compounding".
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | Interest keyword, e.g. "pharmacy", "healthcare compliance" | |
| companyId | Yes | FreedomOS company id to act within (you must be a member). Required for company-scoped tools. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It discloses that the tool returns data (interest ids, audience sizes) but does not explicitly state it is read-only or free of side effects. It also lacks details on pagination, rate limits, or authorization beyond the required companyId parameter. The description is adequate but could be more transparent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise with two sentences. The first sentence front-loads the core action and output, while the second provides essential usage guidance. No redundant or extraneous information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the two required parameters, no output schema, and no annotations, the description adequately explains the tool's purpose, usage context, and output structure (interest ids and audience sizes). However, it does not detail the exact format of the response, which could help an agent parse the results. Still, it is nearly complete for a search tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage, with clear descriptions for both parameters. The description adds context by stating the catalog is for Meta ads and gives example queries, but this does not significantly enhance understanding beyond the schema. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Search'), the resource ('Meta's ad-interest targeting catalog'), and what it returns ('interest ids + audience sizes'). It effectively distinguishes itself from sibling tools like create_meta_ad_draft by specifying its role in providing valid targeting pairs.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly states when to use the tool ('when designing a Meta ad draft') and ties the output to a specific sibling tool ('create_meta_ad_draft'). It also provides concrete examples ('search 'pharmacy' or 'compounding''). While it does not explicitly state when not to use, the context is clear enough.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_connector_registryAInspect
Search the vetted connector registry for an external integration (MCP connector) you need but that is not yet connected. Returns ONLY FreedomOS-allowlisted connectors (e.g. ad platforms, analytics) — never the open internet. Use this when you hit a capability gap, then call request_connector with the name to ask the operator to connect one.
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | Optional keyword to filter by name or capability (e.g. "ads", "amazon", "analytics"). Omit to list the whole vetted catalog. | |
| companyId | Yes | FreedomOS company id to act within (you must be a member). Required for company-scoped tools. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description discloses key behavior: returns only allowlisted connectors, never open internet. Adds workflow context beyond schema. Could mention pagination or return format but is sufficient for a search tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three focused sentences with no redundancy. Front-loads purpose and immediately distinguishes from alternatives. Every sentence adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema exists; description should explain return structure. It says 'returns ONLY FreedomOS-allowlisted connectors' but lacks details on format (list, details). Partially complete due to clear workflow guidance.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with good descriptions. The narrative adds no new parameter meaning beyond what schema already provides. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool searches a vetted connector registry for external integrations, specifies it returns only FreedomOS-allowlisted connectors (not open internet), and distinguishes it from siblings like request_connector.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly says when to use ('when you hit a capability gap') and what to do after ('call request_connector with the name'). Provides clear context and next steps.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_conversationsAInspect
Search past conversations with the user. Use when the user says "remember when we talked about...", "haven't we discussed X before?", "what did we decide about...", or references any prior conversation. Returns matching conversations with relevant message snippets. Does NOT return the current conversation.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max conversations to return (default: 5, max: 10) | |
| query | Yes | Search terms — keywords, topics, or phrases from the conversation the user is referencing | |
| companyId | Yes | FreedomOS company id to act within (you must be a member). Required for company-scoped tools. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. States it searches past conversations and returns matching conversations with snippets. Could mention read-only nature or pagination, but core behavior is clear.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three concise sentences with no redundant information. Each sentence adds value: purpose, usage triggers, and behavior constraint.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Simple tool with 3 parameters, no output schema. The description fully covers what the tool does, when to use it, and a key exclusion. No gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema covers all parameters (100% coverage). Description adds no extra parameter context beyond the schema. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clear verb-resource combination 'search past conversations' with specific example phrases. Distinct from sibling tools like list_inbox or other search tools. Explicitly excludes current conversation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides explicit trigger phrases ('remember when we talked about...') and states what the tool does not return ('Does NOT return the current conversation'). No alternatives mentioned but strong contextual guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_transactionsBInspect
Search transactions by description. Use when user asks about specific vendors, expenses, or payments.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max results (default: 10) | |
| query | Yes | Text to search for in transaction descriptions | |
| companyId | Yes | FreedomOS company id to act within (you must be a member). Required for company-scoped tools. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of disclosing behavioral traits. It does not mention that the tool is read-only, any authentication requirements, rate limits, or the format of results (e.g., pagination, default limit of 10). Only the schema indicates the limit parameter with default 10, but the description adds no behavioral context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, highly concise, and front-loaded with the primary purpose. Every sentence adds value. However, it could be slightly more informative without becoming verbose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple with 3 parameters and no output schema. The description, combined with schema, covers the basic purpose and parameter meanings. However, it lacks details on search behavior (e.g., case sensitivity, exact match vs. partial), what the response contains, and any constraints. It is minimally complete but leaves gaps for the agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description adds no extra meaning beyond the schema; the query parameter is implied by 'by description', but limit and companyId are not elaborated. It does not compensate for or enrich the schema descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description states 'Search transactions by description' which is a clear verb+resource. It also provides typical use cases: 'Use when user asks about specific vendors, expenses, or payments.' However, it does not distinguish from sibling tools like 'get_transactions' or 'list_xero_bank_transactions', which may have overlapping functionality.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives context on when to use the tool ('Use when user asks about specific vendors, expenses, or payments'), but lacks explicit guidance on when not to use it or identify alternatives. For example, it doesn't mention that 'get_transactions' might be better for listing all transactions without a text filter.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
segment_leadsAInspect
Organize, select, or clear a lead segment on the Leads tab by its exact source tag (e.g. 'csv:apc-cch-2024'). Validates the tag against the company's live segment tags and returns the exact-token filter plus a server-computed lead count (excluding do-not-contact, archived, and test leads). Read-only: the Leads tab applies the action; this tool changes no data and CANNOT enroll anyone — enrollment only happens via the Enroll button on the Leads tab. Use when the operator wants to focus the Leads tab on one segment or event — group it, select all its leads for enrollment, or clear that selection.
Routing: CRM/sales → select or organize leads by segment/event tag → use this
| Name | Required | Description | Default |
|---|---|---|---|
| action | Yes | 'organize' = group Leads tab by this segment; 'select' = select all leads in it; 'clear' = clear that selection. | |
| companyId | Yes | FreedomOS company id to act within (you must be a member). Required for company-scoped tools. | |
| segment_tag | Yes | Exact segment tag token from crm_leads.source, e.g. 'csv:apc-cch-2024'. No substring matching — must match a live tag exactly. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description explicitly states that the tool is read-only, changes no data, cannot enroll leads, and returns a server-computed lead count excluding certain leads. This fully discloses behavioral traits without annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise, well-structured, and front-loaded with the main purpose. Every sentence adds value without extraneous information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description fully covers the tool's functionality, inputs, and outputs, sufficient for an AI agent to use it correctly, despite no output schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, and the description adds clarity by explaining the three actions and emphasizing exact matching for segment_tag, going beyond the schema definitions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states that the tool organizes, selects, or clears a lead segment by exact source tag, distinguishing it from sibling tools like list_segments or add_lead.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explains when to use the tool (to focus the Leads tab on a segment) and provides routing context. It lacks explicit when-not-to-use guidance but is otherwise clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
send_emailAInspect
Send an outbound email via the company's Resend connection. Resolves the per-company Resend API key + from identity, then sends to a single recipient. Honors the do_not_contact suppression list (crm_leads): if the recipient is marked do_not_contact, the send is refused. RECIPIENT RULE: when emailing a CRM LEAD, do NOT type their address yourself — draft with draft_lead_email/draft_outreach and deliver with send_lead_draft, which reads the lead's real email from the database. Only pass to directly for a non-lead recipient whose exact address the operator literally provided in this conversation. NEVER guess, infer, or fabricate an email address — a wrong guess sends a real email to a stranger. Use when the operator gives you an exact non-lead recipient address to email; for CRM leads use send_lead_draft instead.
Routing: Send an outbound email to an operator-given address → use this; for CRM leads use send_lead_draft (DB-derived recipient, respects do_not_contact)
[outbound-tier — EVERY call needs a manager's approval (per-send human rail): each request queues its own approval card and sends exactly once on approve. There is no standing grant for this tool.]
| Name | Required | Description | Default |
|---|---|---|---|
| to | Yes | Recipient email address (single recipient). | |
| from | No | Optional explicit from address (e.g. "Jane <jane@acme.com>"). If omitted, defaults to no-reply@<resolved from_domain>. | |
| html | No | HTML body of the email. Provide html and/or text (at least one is required). | |
| text | No | Plain-text body of the email. Provide text and/or html (at least one is required). | |
| lead_id | No | Optional UUID of the crm_leads row this email targets. Used for telemetry/linking; the do_not_contact check is keyed on (company_id, to) regardless. | |
| subject | Yes | Email subject line. | |
| draft_id | No | Optional UUID of the lead_drafts row being sent. If provided, the Resend email id returned by the send is recorded onto that draft (resend_email_id) so engagement webhook events (opens/clicks/replies via /resend-events) correlate back to it. | |
| reply_to | No | Optional Reply-To address. | |
| companyId | Yes | FreedomOS company id to act within (you must be a member). Required for company-scoped tools. | |
| company_id | No | Company UUID. Optional — defaults to the caller's company context. Used to resolve the Resend key and scope the do_not_contact check. | |
| sequence_id | No | Optional UUID of the outreach_sequences row backing an autonomous warm send. Required ONLY on the outreach-autosend path (executionSource=autonomous_warm); the warm-send gate verifies the sequence is ACTIVE and the lead is enrolled, and authorizes when the sequence is live (send_mode=auto) OR the enrollment is verifiably human-made (enrollment_source=manual — the human-enrolled lane, 2026-07-22). Ignored on the human path. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Despite no annotations, the description discloses key behaviors: honors do_not_contact suppression list, requires per-send human approval (approval card), sends exactly once. Mentions resolution of Resend API key and from identity.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Well-structured with sections, but somewhat lengthy due to detailed rules. Front-loads core purpose and then provides necessary context. Could be slightly more concise but justified by complexity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 11 parameters and no output schema, the description covers important aspects: behavior, constraints, approval requirement, and suppression list. Missing details on return values, but acceptable for an outbound email tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 100% schema coverage, baseline is 3. Description adds value by explaining the purpose of lead_id, draft_id, sequence_id, and clarifying the to parameter rule. Provides context beyond schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Send an outbound email via the company's Resend connection' with specific verb and resource, and distinguishes from sibling send_lead_draft by specifying recipient rules.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states when to use this tool vs sibling: 'Use when the operator gives you an exact non-lead recipient address to email; for CRM leads use send_lead_draft instead.' Also includes a RECIPIENT RULE section with detailed instructions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
send_lead_draftAInspect
Send an approved outreach draft to its lead via the company's Resend connection, then mark the draft 'sent'. This is the manual human-in-the-loop send: it delivers exactly one lead_drafts row (by id) to the lead's email and records sent_at + resend_message_id. Honors the do_not_contact suppression list (the send is refused if the lead is suppressed). Use after an operator approves a draft in the Leads tab.
Routing: Operator approved an outreach draft and wants to send it → use this
[outbound-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.]
| Name | Required | Description | Default |
|---|---|---|---|
| draft_id | Yes | UUID of the lead_drafts row to send. | |
| reply_to | No | Optional Reply-To address for the outbound email. | |
| companyId | Yes | FreedomOS company id to act within (you must be a member). Required for company-scoped tools. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It discloses that the tool sends via Resend, marks sent, records sent_at and resend_message_id, and honors suppression lists. It also mentions outbound-tier approval requirements. However, it does not describe error behavior, idempotency, or what happens if the send fails, which would be valuable for a mutation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact with six sentences plus a routing section and a note. It is front-loaded with the core action. The additional information (suppression list, approval note) is valuable and not redundant. A slight reduction in length could be possible, but it remains focused.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given that there is no output schema and no annotations, the description covers the tool's purpose, when to use it, approval context, suppression list, and required parameters. It lacks details about the response or error states, but for a straightforward send action, it provides sufficient context for an AI agent to use it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with each parameter already having a clear description in the schema. The tool description reinforces that draft_id is for a single lead_drafts row but does not add significant new meaning beyond the schema. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Send'), the resource ('approved outreach draft'), the target ('to its lead via the company's Resend connection'), and the additional effect ('mark the draft sent'). It also distinguishes from siblings like 'send_email' by specifying it operates on a single lead_drafts row and is a human-in-the-loop operation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly states when to use the tool: 'Use after an operator approves a draft in the Leads tab' and includes a routing section that says 'Operator approved an outreach draft and wants to send it → use this'. It also notes the do_not_contact suppression list and the outbound-tier approval requirement, providing clear context. However, it does not explicitly list alternative tools or when not to use it beyond suppressed leads.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
send_slack_messageAInspect
Send a message to a Slack channel or direct message to a team member. Use when user asks to "message X on Slack", "send a Slack message", "DM someone on Slack", "post to #channel", etc.
[outbound-tier — EVERY call needs a manager's approval (per-send human rail): each request queues its own approval card and sends exactly once on approve. There is no standing grant for this tool.]
| Name | Required | Description | Default |
|---|---|---|---|
| message | Yes | The message text to send (supports Slack markdown: *bold*, _italic_, etc.) | |
| companyId | Yes | FreedomOS company id to act within (you must be a member). Required for company-scoped tools. | |
| thread_ts | No | Optional thread timestamp to reply in a thread | |
| channel_name | No | Slack channel name to post to (without #), e.g., "general", "engineering". Use this OR recipient_name, not both. | |
| recipient_name | No | Name of the person to DM (e.g., "Alex", "Jordan"). Will be looked up via linked accounts or Slack directory. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description fully discloses critical behavior: every call needs manager approval, each request queues an approval card, and exactly one message is sent on approval with no standing grant. This is essential for an agent to understand the tool's approval gating.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise with only two sentences plus an approval block, all front-loaded with the most important information. Every sentence adds value and there is no redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers purpose, usage triggers, and behavioral transparency adequately for a tool with a well-documented schema. It could mention that the message sends as the authenticated user, but overall it is highly complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description does not add additional information about parameters beyond what the schema already provides, such as markdown support for message or the mutual exclusivity of channel_name and recipient_name.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool sends a Slack message to a channel or DM. It provides specific example intents like 'message X on Slack' and 'post to #channel', which distinctly separate it from sibling tools like send_email.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly lists user phrases that trigger the tool, providing clear context for when to use it. However, it does not explicitly mention when not to use it or name alternatives, though the examples imply the distinction.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_attention_budgetAInspect
Set the founder's attention budget — the maximum pending review cards before they are 'overloaded' (a whole number 1–100; default 7) — for a manager or the founder. Use when the founder (or a manager on their behalf) wants to raise or lower their overload threshold (e.g. "set my overload threshold to 10", "I can handle more pending cards before you flag me", "lower my attention budget to 5"). This is the founder's OWN constraint, so it is gated: an autonomous agent CANNOT change it (surface a recommendation instead); only a human-present company manager can. Always call get_attention_budget first and explain why a change helps the founder.
[sensitive-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.]
| Name | Required | Description | Default |
|---|---|---|---|
| note | No | Optional rationale for the change (stored with the budget). | |
| companyId | Yes | FreedomOS company id to act within (you must be a member). Required for company-scoped tools. | |
| max_pending_cards | Yes | The new ceiling: pending review cards before the founder is overloaded (whole number, 1–100). |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, description fully carries the burden. It discloses the gated nature (autonomous agent cannot change), requires human manager, mentions approval modes (first use may require approval, from-now-on vs just-once), and advises explanation. This is highly transparent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Description is well-structured: starts with definition, then usage context, then constraints, then safety note. Every sentence adds value; no redundant or unclear phrasing. Concise yet thorough.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a setter tool with no output schema, the description covers purpose, parameters, constraints, and usage advice. It does not need to explain return values. The information is sufficient for an agent to decide when and how to invoke it.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, baseline 3. Description adds meaning by explaining max_pending_cards as whole number 1-100 with default 7, and note as optional rationale. It contextualizes the core parameter beyond schema, justifying one point above baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool sets the founder's attention budget, defines it as the maximum pending review cards before overload, and specifies the action (set) and resource (founder's attention budget). It also distinguishes from sibling 'get_attention_budget' by mentioning to call it first.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicit usage guidance: when to use (founder or manager wants to change overload threshold), example phrases, what not to do (autonomous agent cannot change, only human-present manager can), and recommended prior step (call get_attention_budget and explain why). This is comprehensive.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_cac_strategyAInspect
Change this company's LTV:CAC strategy (the acquisition-spend posture): aggressive (2:1, early-stage growth), standard (3:1, recommended default), conservative (4:1, high churn / mature), or enterprise (5:1, long sales cycles). This governs marketing spend, so it is gated: an autonomous agent CANNOT apply it — surface a recommendation instead. Always call get_cac_strategy first and include a clear rationale when proposing a change.
[sensitive-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.]
| Name | Required | Description | Default |
|---|---|---|---|
| note | No | Optional rationale for the change (stored with the policy). | |
| strategy | Yes | The CAC posture: aggressive (2:1), standard (3:1), conservative (4:1), or enterprise (5:1). | |
| companyId | Yes | FreedomOS company id to act within (you must be a member). Required for company-scoped tools. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Description thoroughly discloses behavioral context: gated operation requiring approval, sensitive-tier with manager approval possibly needed, and details on approval types (from-now-on vs just-once). No annotations present, so description fully bears this burden.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Concise, front-loaded with purpose, then usage caveats and approval details. Every sentence adds value without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers purpose, prerequisites, behavioral traits, and approval process. No output schema, but return value is implied. Slightly missing output description, but overall sufficient for a mutation tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with descriptions, but description adds value by explaining strategy options with LTV:CAC ratios and business contexts, plus note on optional rationale and companyId requirement beyond schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description explicitly states the tool changes the LTV:CAC strategy with specific posture options (aggressive, standard, conservative, enterprise) and explains each, distinguishing it from sibling tools like get_cac_strategy.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Clear instructions: always call get_cac_strategy first, include a rationale, and note that autonomous agents cannot apply it—only surface a recommendation. Provides when-to-use and when-not-to-use guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_cos_preferencesAInspect
Replace THIS operator's full CoS preference block (or clear with empty). Use when they want a full rewrite of saved preferences. Per user_id only — not a global product prompt edit.
[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.]
| Name | Required | Description | Default |
|---|---|---|---|
| companyId | No | FreedomOS company id to act within (you must be a member). Required for company-scoped tools. | |
| cos_preferences | Yes | Full preferences text (≤2000 chars). Empty string clears. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden. It discloses write operation ('Replace'), clearing behavior ('or clear with empty'), and authorization nuance ('first use may require a manager's approval; a from-now-on approval makes future calls seamless'). Lacks details on idempotency, error handling, or rate limits, but sufficient for a straightforward set operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences plus a bracket note with front-loaded main action. Every sentence serves a purpose: main action, usage guidance, approval context. No unnecessary words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema, the description fully covers the tool's purpose, scope, parameters (via schema), and usage context including approval tiers. Complexity is low, so no gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline of 3. Description adds clarity for cos_preferences: 'Full preferences text (≤2000 chars). Empty string clears.' This adds value beyond schema. No additional info for companyId. Overall, description adds marginal value but not significantly beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Replace' with the resource 'THIS operator's full CoS preference block' and distinguishes it from partial updates (append) by explicitly saying 'full rewrite'. It contrasts with get_cos_preferences (read) and append_cos_preference (partial update) among siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states when to use: 'when they want a full rewrite of saved preferences.' It also clarifies scope ('Per user_id only — not a global product prompt edit') and includes approval notes for write-tier. However, no explicit mention of when not to use or direct sibling name, but context is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_grain_policyAInspect
Create or update the wisdom-layer publish policy for ONE content grain in the current company. gate_mode 'human_pre_gate' reserves the grain for human approval; 'autonomous' lets an agent publish it directly. A brand-new grain defaults to human_pre_gate (fail-safe). Because this governs an agent's own publishing autonomy, the change routes to operator approval — it does not take effect silently.
[sensitive-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.]
| Name | Required | Description | Default |
|---|---|---|---|
| note | No | Human-readable note on why this grain has this policy. | |
| grain | Yes | The content grain key, lowercase_with_underscores (e.g. faith_values, harness_education, professional). | |
| companyId | Yes | FreedomOS company id to act within (you must be a member). Required for company-scoped tools. | |
| gate_mode | No | 'autonomous' = an agent may auto-publish this grain; 'human_pre_gate' = it must route to a human first. | |
| curate_only | No | If true, an agent may only assemble this grain from source_corpus_ref, never originate de-novo content. | |
| source_corpus_ref | No | For curate_only grains: the corpus an agent may assemble from (e.g. a knowledge collection key). |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description fully carries behavioral disclosure. It reveals the mutable nature, operator approval requirement, default fail-safe mode for new grains, and sensitive-tier approval types. This adds significant transparency beyond the schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two paragraphs with a clear structure: first sentence states the main action, followed by gate_mode details, defaults, and rationale. The bracketed note adds critical approval context without redundancy. Every sentence serves a purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (6 params, no output schema, no annotations), the description covers purpose, gate modes, defaults, and approval behavior. However, it lacks information about the response or return value, which is a minor gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. The description adds context for 'gate_mode' (explaining enum values and defaults) and the overall approval implication, but does not elaborate on 'curate_only' or 'source_corpus_ref', which are sufficiently described in the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Create or update the wisdom-layer publish policy for ONE content grain in the current company.'), specifies the resource type ('content grain'), and distinguishes from siblings like 'get_grain_policy' by emphasizing the mutative and scope of 'ONE grain' and 'current company'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explains when to use (to set publish policy), the two gate modes with defaults, and the approval routing ('routes to operator approval'). It does not explicitly contrast with read-only alternatives but provides enough context for appropriate use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_meta_ad_statusAInspect
Activate or pause a Meta campaign, ad set, or ad. ACTIVATION STARTS REAL AD SPEND and always requires the human (live chat or an approved card) — agents cannot activate. Pausing stops spend. Use after the user has reviewed a draft and explicitly says to launch, or asks to stop a running ad.
[outbound-tier — EVERY call needs a manager's approval (per-send human rail): each request queues its own approval card and sends exactly once on approve. There is no standing grant for this tool.]
| Name | Required | Description | Default |
|---|---|---|---|
| status | Yes | 'ACTIVE' (starts spend — human only) or 'PAUSED' (stops spend) | |
| companyId | Yes | FreedomOS company id to act within (you must be a member). Required for company-scoped tools. | |
| object_id | Yes | Numeric campaign / ad set / ad id |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses that activation starts real ad spend, pausing stops spend, and activation requires human approval. Additionally explains the outbound-tier approval process (per-send human rail) since no annotations are provided.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two paragraphs with clear, front-loaded information. Every sentence adds value: purpose, usage context, and approval requirements. No fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (3 required params, no output schema), the description covers purpose, usage guidelines, behavioral transparency, and parameter context comprehensively. No gaps identified.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the description adds minimal extra meaning beyond the schema. The description reiterates the status parameter's meaning but does not provide new parameter-level details beyond the schema's descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses specific verbs ('activate or pause') and resources ('Meta campaign, ad set, or ad'). It clearly distinguishes this tool from siblings by highlighting real ad spend and human approval requirements.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states when to use: after the user has reviewed a draft and explicitly says to launch, or asks to stop a running ad. Also provides when-not-to-use guidance: activation always requires human, and outbound-tier approval is needed.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_offerAInspect
Author or update the company's grand slam OFFER — the operator-authored positioning agents ground all outbound in (the offer half of the product layer). Sets offer (what the company sells + the transformation it promises) and an optional target_summary (who it's for). Capability truth — what the product can and can't actually do — lives in feature_index via create_feature, NOT here; do not list features in the offer.
[sensitive-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.]
| Name | Required | Description | Default |
|---|---|---|---|
| offer | No | The grand slam offer + positioning: what the company sells and the transformation it promises. Operator-authored wisdom-like content. | |
| companyId | Yes | FreedomOS company id to act within (you must be a member). Required for company-scoped tools. | |
| is_regulated | No | Mark this company/product as operating in a REGULATED category (health, medical, financial). When true, the Integrity Gate treats health/efficacy/financial claims in agent-produced outbound as requiring substantiation before they can ship. | |
| target_summary | No | Optional one-line summary of who the offer is for (the target customer). |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry the full behavioral transparency burden. It discloses the approval requirements but does not mention whether the operation is destructive, whether existing values are overwritten, or what the response looks like. This leaves gaps in understanding the tool's full behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very concise: two core sentences plus a brief sensitive-tier note in brackets. Every sentence serves a purpose—clarifying the tool's role, what to include/exclude, and approval implications. No superfluous text.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema and no annotations, the description covers the tool's purpose, parameter semantics, and usage boundaries well. It lacks details on return value or error handling, but for a configurational tool, the provided information is mostly sufficient.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, but the description adds meaningful context beyond the schema: for 'offer' it describes it as 'operator-authored wisdom-like content', for 'target_summary' it clarifies it's optional and for 'is_regulated' it explains the Integrity Gate relevance. This enriches understanding.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies the tool's verb ('author or update') and resource (the company's grand slam OFFER). It distinguishes this tool from create_feature by explicitly stating that features are not to be listed here, providing clear differentiation from a closely related sibling.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description states when to use (setting offer and target_summary) and when not to use (features go to create_feature). It also includes a sensitive-tier approval note. However, it does not explicitly compare against other 'set_*' sibling tools, leaving some ambiguity among them.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_revenue_channelsAInspect
Declare where this business makes money — stripe, xero, shopify, amazon, ebay, manual invoicing, "none_yet" (pre-revenue), or other (name it). This is OPERATOR TRUTH an agent cannot derive, so it is gated: an autonomous agent CANNOT declare it — only a human (chat) or a graduated MCP operator can. Once declared, agents stop asking to connect Stripe for businesses that don't use it and are routed to the right revenue tool for this company's actual channel(s). Call get_setup_state first — if "Revenue channels" already shows done, only call this again when the operator says it changed.
[sensitive-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.]
| Name | Required | Description | Default |
|---|---|---|---|
| channels | Yes | Any that apply: stripe, xero, shopify, amazon, ebay, manual, none_yet, other. "none_yet" is exclusive — if the business is pre-revenue, pass ONLY ["none_yet"]. | |
| companyId | Yes | FreedomOS company id to act within (you must be a member). Required for company-scoped tools. | |
| other_label | No | Required when channels includes "other" — the operator's own words for the revenue channel (e.g. "wholesale invoices"). |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden. It discloses gating (requires human or graduated operator), approval tiers, and effect on other tools (routed to correct revenue tool). Lacks explicit mention of idempotency or side effects, but still strong.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Description is front-loaded with purpose, then structured into notes and prerequisites. Each sentence adds value, though slightly lengthy. Could be trimmed without losing core information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 3-param tool with no output schema, the description is thorough. Covers purpose, prerequisites, gating, approval, parameter constraints, and effect on other tools. No gaps for its complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. The description adds value: explains exclusivity of 'none_yet', requirement for 'other_label' when 'other' is chosen, and the operator's perspective. Adds concrete guidance beyond schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Declare where this business makes money' and lists examples. It is specific about what it does and sets context among siblings, though it could be more direct as 'Sets revenue channels for a company.'
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Excellent guidelines: explicitly states when not to use (autonomous agent cannot call), prerequisite ('Call get_setup_state first'), and state management ('only call this again when the operator says it changed'). No sibling alternatives exist for this specific function.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
split_agent_activityAInspect
Split ONE oversized activity into smaller activities (intake + finish) without regenerating the rest of the plan. Use when a run hit the continuation safety backstop while still progressing — the activity is bigger than one deliverable.
[sensitive-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.]
| Name | Required | Description | Default |
|---|---|---|---|
| pieces | No | Optional precomputed replacement activities (name, frequency, description, …). When omitted, derived from the source. | |
| reason | No | Optional reason recorded on the archive + audit log. | |
| agent_id | No | UUID of the agent. Optional if agent_name is provided. | |
| companyId | Yes | FreedomOS company id to act within (you must be a member). Required for company-scoped tools. | |
| agent_name | No | Name of the agent. Provide this or agent_id. | |
| activity_name | Yes | Exact (case-insensitive) name of the oversized activity to split. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Adds context about splitting into 'intake + finish' and non-regeneration, and mentions approval tier. However, it does not disclose whether the original activity is deleted/archived, idempotency, or other side effects beyond splitting.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two main sentences plus a bracketed approval note. Front-loaded with purpose, then usage scenario. Efficient but the approval note could be integrated or shortened slightly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers purpose and usage but omits output or return value (no output schema). For a mutating tool, it would be helpful to know if it returns the new activities or confirmation. Adequate but incomplete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. Description does not add extra meaning to parameters beyond what schema descriptions already provide (e.g., 'pieces', 'reason', 'agent_id'). No additional parameter guidance given.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states 'Split ONE oversized activity into smaller activities' with specific verb and resource. It distinguishes from siblings like add_agent_activity by noting 'without regenerating the rest of the plan', making its purpose unique.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states when to use: 'when a run hit the continuation safety backstop while still progressing — the activity is bigger than one deliverable.' Lacks explicit when-not-to-use or alternatives, but the context is clear enough.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
submit_content_to_pipelineAInspect
Submit manual content to a pipeline for transformation. Use when user says "add this to my changelog", "create a newsletter from this", "transform this content", or provides content to be processed. Content will be transformed using the pipeline's persona and ICPs. Social pipelines publish to the pipeline's declared destination (x/linkedin/instagram/facebook/threads — set via update_pipeline; undeclared defaults to x) after human approval; instagram items REQUIRE media_artifact_ids.
[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.]
| Name | Required | Description | Default |
|---|---|---|---|
| content | Yes | Raw content to transform (updates, notes, announcements, etc.) | |
| companyId | Yes | FreedomOS company id to act within (you must be a member). Required for company-scoped tools. | |
| pipeline_id | Yes | ID of the pipeline to submit to (get from list_pipelines) | |
| media_artifact_ids | No | Optional. Artifact IDs (image or video, from generate_image_xai / generate_video, same company) to attach as media on this post. Required for visual social posts — the post publishes with this media attached. Each ID must belong to this company. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description fully discloses behavior: content transformed using pipeline's persona/ICPs, social pipelines publish to declared destinations after human approval, Instagram requires media_artifact_ids, and note about write-tier approval (first-use, from-now-on, just-once).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Description is informative but somewhat lengthy. However, it front-loads the purpose and each sentence adds necessary detail. Slightly verbose but well-structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 4-param tool with no output schema, the description covers key context: transformation pipeline, social publishing behavior, approval flow, and media requirements. An agent has sufficient information to decide when and how to invoke this tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, but description adds value: pipeline_id from list_pipelines, media_artifact_ids from generate_image_xai/generate_video and required for visual social posts. Not all parameters get extra context, but the additional info is useful.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states the tool submits manual content to a pipeline for transformation. The verb 'submit' and resource 'content to pipeline' are explicit. Distinguishes from siblings by focusing on manual content submission, not listing or other operations.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides explicit usage triggers like 'add this to my changelog' and 'transform this content'. Also explains pipeline behavior (transformation, social publishing, destinations) and first-use approval process, guiding when and how to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
submit_product_requestAInspect
File a bug report or feature request about FreedomOS the platform (FO UI, MCP tools, Command Center, auth, connectors, FO agents runtime) with the FreedomOS product team. Creates a FO product-inbox Command Center card and returns a request_id you can poll with get_product_request_status. ONLY for FreedomOS itself broken, missing, or confusing. Do NOT use for: (1) tenant ops (hire agents, send email, OKRs, content); (2) YOUR OWN company product — app code, domain knowledge base, chatbot/SME retrieval, compliance corpus, state/regulatory overlays, or anything your team can ship without FO engineers. Own-product gaps stay on YOUR company Command Center (decision/report card, collaboration, knowledge pipeline, or escalate to your human as product work). Example misroute: Conduit agent filing PCAI state-overlay KB work here — wrong inbox; file on Conduit instead.
Routing: When the USER says something in FreedomOS itself is broken, missing, or confusing ("this button does nothing", "I wish it could…", "this is a bug", "can you debug this?" about FO product), this is the tool — FILE FIRST. Bias: submit_product_request(kind:"bug"|feature) before opening a live coding host or Send-to-Grok/Claude. REFUSE this tool for own-product / domain work: knowledge corpus, retrieval quality, compliance packs, chatbot answers for YOUR product (e.g. Compounding AI / PCAI), marketing claims about your app — keep those on the source company rail (Command Center card for your operator, suggest_collaboration, save_knowledge, Compliance Check), never FO product inbox. TRIAGE FIRST, briefly: if your own tools can resolve it right now (a reconnect, a setting, the wrong page), fix it and say so instead of filing — filing is never an exit from work you can finish yourself. Cap triage at one or two quick checks, never a debugging quest in chat. An explicit "file it" from the user always wins: file immediately, no pushback — and fold whatever you ruled out into the description. Pull title/repro from the conversation (never make them fill a form), TELL them you filed it, and that the factory/product team picks it up. Live-terminal / attention-directive / Send to Grok or Claude ONLY when the user explicitly asks to open a host session now (e.g. "send this to Grok", "debug with me live") — never as the default path for a product bug. For errors YOU hit doing tenant work (not FO product defects), use report_feedback instead.
[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.]
| Name | Required | Description | Default |
|---|---|---|---|
| kind | Yes | bug = FO broken; feature = FO missing capability; question = how-to for the FreedomOS team. Not for your own app/product backlog. | |
| title | Yes | One-line summary. Specific: "Connect CTA dumps to Smart Tools instead of OAuth" not "bug". | |
| severity | No | Default medium. critical = data loss / security / blocked onboarding. | |
| companyId | Yes | FreedomOS company id to act within (you must be a member). Required for company-scoped tools. | |
| description | Yes | What happened / what you need. Include repro steps, expected vs actual, company name, agent name if relevant. | |
| repro_steps | No | Optional numbered repro steps. | |
| suggested_fix | No | Optional: what a good fix would look like (agent hypothesis — product team decides). | |
| source_agent_name | No | Optional: which of the operator's agents hit this (e.g. "Linnet", "Morgan"). |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description fully discloses behavior: it creates a FO product-inbox Command Center card, returns a request_id for polling, describes triage and approval context, and mentions the write-tier. This goes beyond basic purpose to cover key behavioral traits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is verbose and could be more concise, but every sentence serves a purpose given the tool's routing complexity. It is front-loaded with the core purpose but contains extensive guidelines that, while necessary, impact conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite no output schema, the description thoroughly covers what the tool returns (request_id), when to use, routing rules, triage steps, and approval context. It is complete for a complex tool with high potential for misuse.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3. The description does not add significant parameter meaning beyond the schema; it provides usage context rather than parameter details. While helpful, it does not compensate for the parameter descriptions already present.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it files a bug report or feature request about FreedomOS platform to the product team, emphasizing the tool is for FO product issues only. It distinguishes from siblings by specifying it is not for tenant ops or own company product, aligning with the specific verb+resource+scope.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides extensive when-to-use and when-not-to-use guidelines, including explicit exclusions, routing bias towards this tool before other actions, triage instructions, and handling of explicit user requests. It includes an example misroute, making it highly helpful for an AI agent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
suggest_collaborationAInspect
Create a cross-agent collaboration request. Use when one agent identifies work that another agent should handle, or when the analysis reveals a gap that could be filled by an existing team member. If the target role doesn't exist on the team, mention it as a hiring opportunity instead.
| Name | Required | Description | Default |
|---|---|---|---|
| priority | No | How urgent is this collaboration request | |
| companyId | Yes | FreedomOS company id to act within (you must be a member). Required for company-scoped tools. | |
| to_agent_name | Yes | Name of the target agent, or a role description if the agent doesn't exist yet | |
| from_agent_name | Yes | Name of the agent suggesting the collaboration (e.g., "Maya", "Evan") | |
| task_description | Yes | What needs to be done — specific and actionable |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It explains the purpose but does not disclose what happens after creation (e.g., notification, storage, side effects). The mention of 'hiring opportunity' suggests conditional behavior but lacks detail.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, front-loaded with the main action, no fluff. Every sentence adds value—purpose, usage guidance, and an edge-case hint.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description is mostly complete for a creation tool, but lacks details on return values or confirmation. Since there is no output schema, this is a minor gap. Sibling tools like 'create_attention_directive' have similar descriptions.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema covers all parameters with 100% coverage. The description adds context by explaining when to use 'to_agent_name' as a role description and the alternative behavior for missing roles. This enhances the schema descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it creates a cross-agent collaboration request, specifying the verb 'Create' and resource 'collaboration request'. It distinguishes from sibling tools like 'send_slack_message' by focusing on internal agent work delegation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly states when to use: when one agent identifies work for another or when a gap is found. It also provides an alternative: if the target role doesn't exist, mention it as a hiring opportunity, implying use of a different tool like 'suggest_next_hire'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
suggest_next_hireAInspect
Analyze team gaps and recommend hires or routing to existing agents. Use when user asks "who should I hire", "who to hire next", "what roles do I need", "hiring recommendations", "grow my team", "next hire".
| Name | Required | Description | Default |
|---|---|---|---|
| companyId | Yes | FreedomOS company id to act within (you must be a member). Required for company-scoped tools. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry the full burden for behavioral disclosure. It mentions analysis and recommendation but does not indicate side effects (e.g., does it modify team structure?), required permissions, or whether it is read-only. The description lacks transparency beyond the basic purpose.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences: the first states the core function, the second lists usage examples. It is front-loaded, concise, and every sentence adds value. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple tool with one parameter and no output schema, the description is mostly adequate but leaves gaps: it does not explain what the recommendation looks like (e.g., names, roles) or whether it modifies the system. More completeness would help, especially given the absence of an output schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% (only companyId, well-described in schema). The description does not add parameter information, but the schema already provides adequate context. Baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool analyzes team gaps and recommends hires or routing to existing agents. It provides specific query examples, making its purpose unambiguous. It distinguishes itself from siblings like 'analyze_team_needs' by adding the recommendation and routing aspect.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly says 'Use when user asks' and lists example queries, providing clear when-to-use guidance. However, it does not mention when not to use or suggest alternatives like 'analyze_team_needs' or 'get_team_members'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
sync_stripe_conversionsAInspect
Record won deals from the company's connected Stripe so lead→paid conversion becomes measurable. Reads paid Stripe customers (read-only), matches them to leads by email, and records a closed_won deal per paying customer (idempotent — re-running is safe, never double-counts). Only works if Stripe is connected. Use when conversion "isn't measured yet" or to refresh the conversion picture.
Routing: CRM/sales/revenue → measure conversion / record won deals from Stripe → 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.]
| Name | Required | Description | Default |
|---|---|---|---|
| companyId | Yes | FreedomOS company id to act within (you must be a member). Required for company-scoped tools. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description bears the full burden. It discloses that the tool is read-only on Stripe ('Reads paid Stripe customers (read-only)'), idempotent ('re-running is safe, never double-counts'), and requires a connected Stripe account. It also mentions an approval tier for first use. This level of detail is exemplary for behavioral transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise yet comprehensive. It is front-loaded with the primary purpose, then explains the process, usage context, routing, and approval notes. Every sentence adds value, and the structure is logical. No redundant or vague statements.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with one simple input parameter and no output schema, the description provides complete context: the process (reading customers, matching by email, recording deals), idempotency, prerequisites, and approval tier. An agent can fully understand what the tool does and what to expect without additional information.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has only one required parameter (companyId) with a description already covering its purpose and required membership. The tool description does not add any further information about the parameter, but given 100% schema coverage, a baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: recording won deals from Stripe to measure lead→paid conversion. It uses specific verbs like 'reads', 'matches', 'records' and describes a specific resource (paid Stripe customers). It distinguishes from sibling tools by specifying when to use it (conversion not yet measured or to refresh) and implies it's different from other Stripe tools like get_stripe_metrics.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context on when to use the tool: 'Use when conversion isn't measured yet or to refresh the conversion picture.' It also notes a prerequisite ('Only works if Stripe is connected'). However, it does not explicitly state when not to use it or name alternatives among siblings, which would raise it to a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
synthesize_lead_hypothesisAInspect
Given a lead journey (from query_lead_journey), produce a structured hypothesis: intent score, conversion-failure mode, suggested outreach angle, and notes for drafting. Writes the synthesis back to leads.synopsis_jsonb so the Leads tab UI sees it. Use this after journey reconstruction, before draft_outreach.
[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.]
| Name | Required | Description | Default |
|---|---|---|---|
| lead_id | Yes | UUID of the lead. Used to persist synthesis back to leads.synopsis_jsonb. | |
| companyId | Yes | FreedomOS company id to act within (you must be a member). Required for company-scoped tools. | |
| journey_json | Yes | JSON-encoded journey object returned by query_lead_journey. Caller should JSON.stringify the journey output before passing. | |
| company_context | No | Optional short summary of the company the lead arrived at (e.g., 'Acme Health — pharmacy compounding compliance consulting for US pharmacies'). Helps the model evaluate fit. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden. It discloses that the tool writes back to leads.synopsis_jsonb, and the write-tier note explains approval behavior. No destructive or side effects are hidden, though error handling is not mentioned.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with core functionality, followed by a brief approval note. Every sentence serves a purpose, though the approval note could be more concise. No unnecessary information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema, the description adequately describes the output structure (intent score, conversion-failure mode, etc.). It explains inputs, the write effect, and workflow ordering. Lacks details on error states or exact field names, but sufficient for a structured tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% (baseline 3). The description adds context: journey_json must be stringified output from query_lead_journey, lead_id is for persistence, companyId for scoping, and company_context as optional fit context. This adds value beyond the schema descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb ('synthesize') and resource ('lead hypothesis'), listing specific outputs (intent score, conversion-failure mode, etc.). It distinguishes itself from siblings by naming query_lead_journey as input and draft_outreach as subsequent step.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly positions the tool in the workflow: 'Use this after journey reconstruction, before draft_outreach.' It also mentions the approval requirement for the write tier, which guides the agent on potential authorization needs.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
toggle_agent_scheduleAInspect
Pause or resume an agent's scheduled activities — the whole activity plan, or a single activity via activity_name. Pausing stops future scheduler-dispatched runs until resumed; manual trigger_agent_activity still works and in-flight runs are not affected.
[sensitive-tier, initiates a multi-step agent process — 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.]
| Name | Required | Description | Default |
|---|---|---|---|
| action | Yes | pause or resume | |
| companyId | Yes | FreedomOS company id to act within (you must be a member). Required for company-scoped tools. | |
| agent_name | Yes | Name of the agent whose schedule to toggle | |
| activity_name | No | Optional: pause/resume only this one activity (exact name, case-insensitive). Omit to affect the agent's whole activity plan. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses key behaviors: pausing stops future runs, in-flight runs unaffected, manual triggers still work. Also mentions multi-step process and approval requirements. No annotations provided, so description carries full burden.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise paragraphs. First explains core function, second adds important approval notes. No filler, front-loaded with essential information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers what the tool does, scope, behavioral notes, and approval process. No output schema, but description sufficiently addresses usage. Minor gap: could mention if any side effects on ongoing activities, but adequately complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema descriptions cover all parameters (100% coverage). Description adds value by clarifying activity_name is optional, exact name, case-insensitive, and effect of omitting it. Adds context beyond schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states the verb (pause/resume) and resource (agent's schedule). Distinguishes scope via activity_name vs whole plan and differentiates from sibling trigger_agent_activity by noting manual triggers still work.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides clear context for when to use (pause/resume schedule) and notes that manual triggering is unaffected. Includes sensitivity/approval guidance. Could be more explicit about when not to use, but adequate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
triage_ideaAInspect
Assign an idea to one or more workspaces. Can identify by content snippet, ID, or "newest"/"latest".
[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.]
| Name | Required | Description | Default |
|---|---|---|---|
| companyId | No | FreedomOS company id to act within (you must be a member). Required for company-scoped tools. | |
| workspace_id | No | Single workspace/company ID (use workspace_ids for multiple) | |
| workspace_ids | No | Array of workspace/company IDs to assign the idea to | |
| idea_identifier | Yes | How to find the idea: UUID, content snippet, or "newest"/"latest" for most recent |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden of behavioral disclosure. It notes that the tool is write-tier and may require approval, but it does not explain idempotency, side effects (e.g., overwriting existing assignments), or error conditions. The approval workflow info provides some transparency but is incomplete.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise with two sentences, front-loading the main action and identification methods. The approval note is clearly set apart in brackets. No unnecessary words or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool is a write operation with 4 parameters and no output schema, the description provides the core action and identification methods but lacks details on return value, error handling, and behavior for multiple workspaces (e.g., overwrite or append). More completeness would aid correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description adds no new parameter details beyond the schema; the note about idea_identifier options (content snippet, ID, 'newest'/'latest') is already present in the schema. Other parameters are adequately described in the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('assign an idea to one or more workspaces') and how to identify the idea (by ID, snippet, or 'newest'/'latest'). This distinguishes it from sibling tools like 'capture_idea' (creating) and 'delete_idea' (removing).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description does not provide explicit guidance on when to use this tool versus alternatives. It mentions a potential manager approval requirement but lacks context for when to choose this over, e.g., 'list_workspace_ideas' for viewing or 'capture_idea' for creating. Usage is implied but not explicitly guided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
trigger_agent_activityAInspect
Trigger a specific agent to run a specific activity immediately. This dispatches the work and returns — it does not wait for the activity to complete. Use this to direct agents to take action.
[sensitive-tier, initiates a multi-step agent process — 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.]
| Name | Required | Description | Default |
|---|---|---|---|
| reason | No | Optional. A specific instruction for THIS run only — e.g. "only reconcile the X reply queue, skip everything else". When given, it becomes this run's goal and takes priority over the activity's standing description. Omit for a normal run. | |
| companyId | Yes | FreedomOS company id to act within (you must be a member). Required for company-scoped tools. | |
| agent_name | Yes | Name of the agent to trigger (e.g. "Aiko") | |
| activity_name | Yes | Name of the activity to run (e.g. "weekly_content_report") |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It discloses that the tool is asynchronous ('dispatches the work and returns — it does not wait'), initiates a multi-step process, and requires potential approvals. This provides a good behavioral overview, though details on error handling or side effects are missing.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two paragraphs, front-loading the core action in the first sentence. It is efficient without unnecessary words, though the second paragraph could be slightly more integrated. Overall, it is well-structured and concise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no annotations and no output schema, the description covers the main behavioral points (asynchronous, approval required) but lacks details on prerequisites (e.g., agent must be active, activity must exist, company membership) and the return value (e.g., confirmation ID). It is sufficient but not comprehensive.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so baseline is 3. The tool description does not add significant meaning beyond the schema; it mentions agent_name and activity_name implicitly but the schema already thoroughly documents each parameter including the reason parameter's override behavior.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb ('trigger') and the resource ('a specific agent to run a specific activity'), and distinguishes it from siblings like add_agent_activity or run_tactic by emphasizing immediate dispatch without waiting. The asynchronous behavior is explicitly noted.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description says 'Use this to direct agents to take action,' which provides general guidance but does not explicitly state when to use this tool versus alternatives (e.g., run_tactic, resolve_work) or when not to use it. The approval note gives some context but no comparative guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_agentAInspect
Rename a team member or fix its role/title. Updates an agent's display name and/or role/job-title. Use when the user says "rename X to Y", "call this agent Z", or "fix the title". For changing an agent's mission/skills use recalibrate_agent_jd instead.
[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.]
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | New display name — a single first name (e.g. "Garth"). Omit to leave the name unchanged. | |
| role | No | New role / job title (e.g. "Agent Deployment & Quality Reviewer"). Do NOT include the agent name. Omit to leave the role unchanged. | |
| agent_id | Yes | UUID of the agent to update. Use get_team_roster to find IDs. | |
| companyId | Yes | FreedomOS company id to act within (you must be a member). Required for company-scoped tools. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so description carries full burden. It mentions what is updated (name/role) and write-tier approval, but lacks details on side effects, permissions, or return value.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise paragraphs, no fluff. First paragraph states purpose and examples; second adds approval info. Well-structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Adequate for a simple update tool, but lacks mention of return value or error handling. Given no output schema, a bit more context would help.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, but description adds value with example values for name and role, and suggests using get_team_roster for agent_id.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool renames or updates role/title, with example user phrases. It distinguishes from recalibrate_agent_jd for mission/skills changes.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly provides when to use (rename, fix title) and when not (mission/skills, pointing to recalibrate_agent_jd). Also mentions write-tier approval context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_agent_activityAInspect
Edit ONE existing activity in an agent's plan — change its name, description, frequency, tools_used, deliverable, or completion_criteria. Surgical alternative to regenerating the whole plan.
[sensitive-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.]
| Name | Required | Description | Default |
|---|---|---|---|
| patch | Yes | Fields to change. Only the supplied fields are updated. | |
| agent_id | No | UUID of the agent. Optional if agent_name is provided. | |
| companyId | Yes | FreedomOS company id to act within (you must be a member). Required for company-scoped tools. | |
| agent_name | No | Name of the agent. Provide this or agent_id. | |
| activity_name | No | Exact (case-insensitive) name of the activity to edit. Provide this or activity_index. | |
| activity_index | No | 0-based index into the activity plan. Alternative to activity_name. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden. It adds a note about manager approval tiers, which is valuable behavioral context. However, it does not disclose other traits like idempotency, side effects, or error conditions, leaving gaps.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences plus a short note, all front-loaded and free of fluff. Every sentence serves a purpose: purpose, alternative, and approval context.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema and 6 parameters with nested objects, the description covers the main purpose and approval sensitivity. However, it lacks information about prerequisites (activity must exist), error cases, or return values, making it slightly incomplete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description adds some value by noting 'Only the supplied fields are updated' and 're-keys the scheduler' for name, but most parameter details are already in the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Edit ONE existing activity' and lists the specific fields that can be changed, distinguishing it from regenerating the whole plan. It uses a specific verb and resource, making the purpose unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description positions the tool as a 'surgical alternative' to regenerating the whole plan, implying when to use it. However, it lacks explicit guidance on when not to use it or alternatives like add_agent_activity or remove_agent_activity for adding/removing activities.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_agent_avatarAInspect
Generate or regenerate AI agent profile avatar(s) for a company's AI team. Use when an operator wants to create, refresh, or restyle one or more agents' profile avatars. Single agent: pass agent_id OR agent_name. Several agents: pass agent_ids[] OR agent_names[] in ONE call. Whole team: pass all:true. The tool regenerates EVERY target itself in a single call (1 credit per agent) and returns the real new signed avatar_url for each. Report ONLY the agents listed in the result's regenerated array — never claim or invent an avatar for an agent the tool did not return.
[sensitive-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.]
| Name | Required | Description | Default |
|---|---|---|---|
| all | No | Set true to regenerate avatars for EVERY active agent in the company. Takes precedence over the id/name params. | |
| style | No | Optional style override (e.g., "pixel-art", "watercolor", "geometric"). Overrides company avatar_theme for this generation. | |
| agent_id | No | UUID of a single agent to (re)generate an avatar for. | |
| agent_ids | No | UUIDs of multiple agents to regenerate in ONE batch call. | |
| companyId | Yes | FreedomOS company id to act within (you must be a member). Required for company-scoped tools. | |
| agent_name | No | Name of a single agent (used to look up the agent when agent_id is not provided). Must resolve to exactly one active agent. | |
| agent_names | No | Names of multiple agents to regenerate in ONE batch call. Each name must resolve to exactly one active agent (ambiguous names are returned in `failed`). |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description fully discloses behavioral traits: it regenerates avatars, consumes 1 credit per agent, returns signed avatar URLs, and mentions the sensitive-tier approval process. It warns against inventing avatars for agents not returned, which is a key behavioral constraint.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the purpose and use cases, and every sentence adds value. However, it is slightly lengthy due to the inclusion of the approval note and reporting instructions, which could be more succinct without losing clarity. Still, it is well-structured and easy to follow.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (7 parameters, multiple modes, no output schema), the description is remarkably complete. It covers purpose, usage scenarios, parameter interactions, behavioral details, and post-call reporting. The only missing element is explicit error handling, but the schema comments and description indirectly address failures (e.g., ambiguous names in 'failed').
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, but the description adds substantial meaning beyond the schema. It explains the precedence of 'all' over id/name parameters, the resolution behavior for agent_name (must map to exactly one active agent), and the style parameter's purpose (overrides company theme). It also clarifies that ambiguous names are returned in 'failed'.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool generates or regenerates AI agent profile avatars, distinguishing it from sibling tools like 'update_agent' by focusing specifically on avatar operations. It explicitly names the resource (AI agent profile avatar) and the action (generate/regenerate).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit when-to-use guidance (operator wants to create, refresh, or restyle avatars). It details three distinct usage modes with corresponding parameter combinations: single agent (agent_id/agent_name), several agents (agent_ids[]/agent_names[]), and whole team (all:true). It also includes a critical reporting instruction to only list agents in the 'regenerated' array.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_agent_skillAInspect
Create or update a skill (process/procedure) for an agent. Use when a user says "@Marcus here's how I want you to do the cash forecast" or "change how the CFO does the monthly review" or "here's my process for X". Skills teach agents HOW to perform their activities.
[sensitive-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.]
| Name | Required | Description | Default |
|---|---|---|---|
| steps | Yes | Ordered steps of the process (e.g., ["Pull balances", "Calculate 13-week average", "Flag if runway < 3 months"]) | |
| agent_id | No | UUID of the agent to teach. Optional if agent_name is provided. | |
| companyId | Yes | FreedomOS company id to act within (you must be a member). Required for company-scoped tools. | |
| resources | No | URLs, doc names, templates, or other resources (e.g., ["company P&L template"]) | |
| agent_name | No | Name of the agent (e.g., "Marcus"). Used to look up agent_id if not provided. | |
| skill_name | Yes | Short name for the skill (e.g., "13-Week Cash Forecast") | |
| tools_used | No | Tool names referenced in the process (e.g., ["get_cash_position", "create_google_sheet"]) | |
| activity_name | No | Activity this skill backs (e.g., "Weekly Cash Review"). If provided, the skill will be linked to this activity via skill_id. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It reveals that the tool is sensitive-tier and may require manager approval, with details about different approval modes. It also states it can both create and update skills. This adds meaningful transparency, though it could further clarify whether updates overwrite or merge.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise, consisting of two short paragraphs. The first paragraph immediately states the purpose and usage context, while the second paragraph provides essential behavioral notes. Every sentence adds value with no wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity of 8 parameters (3 required) and no output schema, the description provides good context including usage examples and approval requirements. However, it does not explain what the tool returns (e.g., success message or skill object) or clarify the exact behavior of updates (e.g., whether it replaces or appends steps).
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the input schema already documents all 8 parameters with descriptions. The tool description does not add any parameter-specific meaning beyond what is in the schema. Therefore, the baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it creates or updates a skill for an agent, with specific verb ('Create or update') and resource ('skill'). It distinguishes from siblings by emphasizing that skills teach agents HOW to perform activities, and provides concrete usage examples like '@Marcus here's how I want you to do the cash forecast'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit trigger phrases for when to use the tool (e.g., 'Use when a user says...'), offering clear context for invoking it. However, it does not explicitly describe when not to use it or compare it to similar sibling tools like 'add_agent_activity', which would strengthen the guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_brand_guidelinesAInspect
Update specific fields of the company's brand guidelines (visual identity, naming, positioning). Only modifies the fields you specify - all other data is preserved. Use when the user asks to change colors, tagline, typography, personality/tone, naming rules, or visual dos/donts. For changing how the brand WRITES (voice/cadence), use update_voice_profile instead.
[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.]
| Name | Required | Description | Default |
|---|---|---|---|
| updates | Yes | Only the fields to update. Other fields are preserved automatically. | |
| companyId | Yes | FreedomOS company id to act within (you must be a member). Required for company-scoped tools. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses important behavioral traits: only modifies specified fields (preserves others) and the write-tier approval process. Without annotations, this provides good context but could elaborate on error handling or response format.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two clear sentences plus a compact approval note. Front-loaded with essential purpose, no redundant or extraneous information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers purpose, usage, key behavioral aspects, and approval context. Lacks details on return value or exhaustive list of updatable fields, but schema provides structure. Minor gaps but still informative.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% (both params described). The description adds value by listing examples of updatable fields (colors, tagline, etc.) beyond the generic schema description, aiding understanding of the updates object.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Describes a specific action: updating specific fields of brand guidelines, with examples like colors, tagline, typography. Clearly distinguishes from sibling tool update_voice_profile by stating when to use that instead.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states when to use this tool (user asks to change brand attributes) and when not (for writing voice/cadence), with direct reference to the alternative update_voice_profile.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_commitmentAInspect
Update fields of an existing commitment — title, domain, due date, consequence, or description. Use when the user says "change the due date on...", "rename that commitment to...", "move X to next week", or otherwise edits something already tracked (not marking it done — use complete_commitment for that).
[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.]
| Name | Required | Description | Default |
|---|---|---|---|
| title | No | New title. | |
| domain | No | New life domain: personal, family, home, w2, or company:<name>. | |
| due_date | No | New due date in YYYY-MM-DD format. | |
| companyId | No | FreedomOS company id to act within (you must be a member). Required for company-scoped tools. | |
| consequence | No | New consequence — what happens if this slips. | |
| description | No | New additional details or notes. | |
| title_search | No | Search by title if ID not known (fuzzy match). | |
| commitment_id | No | The UUID of the commitment to update. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so the description must cover behavioral traits. It reveals that an update is a write-tier action requiring potential manager approval, with nuance on approval persistence. However, it does not describe side effects, permission checks, or reversibility, missing some behavioral details.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise: a single clarifying sentence followed by usage examples and approval context. It is front-loaded with the core purpose and avoids unnecessary fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers purpose, usage, and approval context. It lacks return value information (no output schema) and error scenarios, but given the tool's straightforward update nature, the provided context is largely sufficient.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with parameter descriptions, so baseline is 3. The description reiterates the field names but does not add new semantics beyond the schema. No extra value provided for parameter meaning.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool updates an existing commitment's fields, lists specific fields (title, domain, due date, consequence, description), and provides example user phrases. It distinguishes from complete_commitment, making the purpose unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicit usage guidance is given: 'Use when the user says...' with examples, and a contrast to complete_commitment. Additionally, it mentions write-tier approval requirements, helping the agent decide when to invoke the tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_companyBInspect
Update company profile. Can set mission, vision, elevator pitch, logo, website, or other details.
[sensitive-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.]
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | Company name | |
| vision | No | Company vision statement | |
| mission | No | Company mission statement | |
| logo_url | No | URL to company logo image | |
| companyId | Yes | FreedomOS company id to act within (you must be a member). Required for company-scoped tools. | |
| website_url | No | Company website URL | |
| elevator_pitch | No | Brief company description (30 seconds) |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Adds the sensitive-tier approval context, which is helpful since annotations are absent. However, it does not disclose other behaviors like error cases, reversibility, or side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise: two sentences and a bracketed note. It front-loads the main action and adds essential context without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema and 7 well-described parameters, the description covers the tool's purpose and sensitive nature. It lacks details on immediate effects or visibility, but is adequate for a simple update tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents each parameter. The description adds no extra meaning beyond listing the fields, resulting in baseline score of 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'update' and the resource 'company profile', and lists the fields that can be set (mission, vision, etc.). It is distinct from sibling update tools, though it does not explicitly differentiate them.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives like other update tools. No prerequisites or context for when to call it. The approval note is behavioral, not usage guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_featureAInspect
Update fields on an existing Feature Index entry — title, description, category, solves, limits, or demo_url. Use when the user wants to correct or enrich a feature's marketing copy. To change status use update_feature_status; to remove a feature from view use retire_feature — never delete.
[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.]
| Name | Required | Description | Default |
|---|---|---|---|
| title | No | Display title (e.g., "AI Content Pipeline") | |
| limits | No | Current limitations | |
| solves | No | Problems/pain points this feature solves | |
| category | No | Category (e.g., "ai", "marketing", "finance", "automation") | |
| demo_url | No | URL to a demo video (Screen Studio, Loom, etc.) | |
| companyId | Yes | FreedomOS company id to act within (you must be a member). Required for company-scoped tools. | |
| feature_id | Yes | The feature_id slug (e.g., "ai-content-pipeline") or UUID. | |
| description | No | Marketing-ready description of the feature |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description must disclose behavioral traits. It mentions write-tier and approval but does not detail side effects, idempotency, or success/failure behavior. Adequate but not rich.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two clear sentences plus a compact inline note. Front-loaded with purpose and field list, followed by sibling guidance. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers purpose and usage well but lacks return value info or error scenarios. For an update tool with no output schema, additional context would improve completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and schema descriptions adequately define parameters. Description lists which fields can be updated but adds no extra meaning beyond schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Describes updating fields on a Feature Index entry, listing specific fields. Distinguishes from sibling tools update_feature_status and retire_feature.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states when to use (correct/enrich marketing copy) and when not (status changes, removal), with alternatives. Also notes approval requirements for write-tier.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_feature_statusAInspect
Mark a feature as ready for marketing. Use when user says "mark X as ready", "this feature is ready to market", or wants to highlight a feature for marketing content.
[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.]
| Name | Required | Description | Default |
|---|---|---|---|
| status | Yes | New status for the feature | |
| companyId | Yes | FreedomOS company id to act within (you must be a member). Required for company-scoped tools. | |
| feature_id | Yes | The feature_id slug (e.g., "ai-content-pipeline") or UUID |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description adds critical behavioral context by disclosing the [write-tier] approval requirement: first use may need manager approval, with details on from-now-on vs just-once approval. This goes beyond the basic action to inform the agent of authorization needs.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences and a bracketed note, all front-loaded with the core purpose. Every sentence adds value, with no wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 3-parameter tool with no output schema, the description covers the core use case and approval nuances. However, it focuses solely on marking as ready, omitting that the status can also be set to 'draft', which the schema allows. This is a minor gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. The description does not add extra meaning beyond the schema descriptions, but it reinforces the purpose by aligning the 'ready' intent with the 'ready_to_market' enum value.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Mark a feature as ready for marketing') and the resource ('feature'), with specific example user utterances that distinguish it from sibling tools like 'update_feature' or 'retire_feature'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives example user phrases and context ('ready for marketing'), but does not explicitly state when NOT to use this tool or compare with alternatives like 'update_feature' for other status changes.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_finance_noteBInspect
Add or update a note on a P&L account row. Use this to annotate accounts with context like "Includes annual contract renewal" or "One-time consulting fee in June".
[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.]
| Name | Required | Description | Default |
|---|---|---|---|
| note | Yes | Note text to set on the account (empty string to clear) | |
| companyId | Yes | FreedomOS company id to act within (you must be a member). Required for company-scoped tools. | |
| fiscal_year | No | Fiscal year (default: current year) | |
| account_name | Yes | Account name to annotate (fuzzy matched) |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It reveals that the tool can add or update notes and that an empty string clears the note. It also describes the write-tier approval process. However, it does not disclose whether the note is replaced or appended, what the return value is, or any side effects on existing data.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise: two sentences plus a brief permission note. It front-loads the purpose and uses examples efficiently. The bracketed permission information, while useful, adds a minor structural distraction but does not harm clarity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has 4 parameters and no output schema, the description provides examples and permission context but lacks details on return values, overwrite vs append behavior, and the exact effect of the 'fiscal_year' parameter. For a simple note update tool, it is adequate but not fully comprehensive.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so each parameter is documented. The description adds no extra semantics beyond the schema. The examples in the description illustrate parameter usage but do not provide additional details about constraints or formats.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Add or update a note') and the specific resource ('P&L account row'). It provides concrete examples of note content, helping the agent understand the tool's use case. However, it does not explicitly distinguish this tool from sibling tools like update_transaction_note, though the resource difference is inferable.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives no guidance on when to use this tool versus alternatives. It does not mention when not to use it or how it relates to similar tools like update_transaction_note. The write-tier approval note is about permissions, not use-case differentiation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_google_docAInspect
Append new content to an existing Google Doc.
[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.]
| Name | Required | Description | Default |
|---|---|---|---|
| doc_id | Yes | Google Doc ID to update | |
| content | Yes | Content to append to the document | |
| companyId | Yes | FreedomOS company id to act within (you must be a member). Required for company-scoped tools. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the burden. It discloses that the tool is a write operation (append) and mentions the approval process, but lacks details on side effects, reversibility, or rate limits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is one sentence plus a brief note, no wasted words, and front-loaded with the core purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple append operation, the description covers the main purpose and approval context. However, it does not specify if appending happens at the end or at a specific location, nor the return value (no output schema).
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema documentation coverage is 100%, so the schema already describes the parameters. The description does not add additional meaning or context beyond what is in the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (append new content) and the resource (existing Google Doc). It distinguishes from siblings like create_google_doc and read_google_doc.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Includes a note about write-tier approval, which provides useful context on when this tool may require authorization. However, it does not explicitly state when not to use it or compare directly to alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_icpAInspect
Update specific fields of a saved Ideal Customer Profile (ICP). Only modifies the fields you specify - all other data is preserved. To change the public audience label used in published copy, pass publicName in updates (the public-facing label — NEVER the internal persona name/codename); the internal "name" stays the private targeting label.
[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.]
| Name | Required | Description | Default |
|---|---|---|---|
| icp_id | Yes | The unique ICP ID from get_icps response. | |
| updates | Yes | Only the fields to update. Other fields are preserved automatically. | |
| companyId | Yes | FreedomOS company id to act within (you must be a member). Required for company-scoped tools. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden. It discloses that the tool performs a partial update and that all other data is preserved, and notes the write-tier approval requirement. However, it does not describe the response format, potential side effects, or error conditions, leaving some behavioral gaps.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise with 4-5 sentences and is front-loaded with the core purpose. Each sentence adds necessary information without redundancy. The approval note is appropriately bracketed.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has 3 parameters, a nested updates object, no output schema, and no annotations, the description covers the main behavioral aspects (partial update, field naming, approval). It lacks details on success/error outcomes but is largely complete for its complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the description adds value by explaining the update behavior (only fields in updates are changed) and the critical distinction between publicName and internal name. This goes beyond the schema, but could include more examples of typical fields in updates.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Update' and the resource 'saved Ideal Customer Profile (ICP)', and specifies that it only modifies specified fields while preserving others. This distinguishes it from siblings like create_icp, delete_icp, and get_icps.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides specific guidance on when to use this tool (for partial updates), and includes important nuance about the publicName field vs internal name. It also mentions the write-tier approval process, but does not explicitly compare to alternative tools or state when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_key_resultAInspect
Update a key result for the company operator and any agent owning KR progress (progress, assignment, due date, rename, measure binding). Use when work moves a Key Result and you need to log current value, reassign, rename, or bind a measure source. Prefer key_result_id — the parent objective is resolved from the KR row (no fuzzy title search). Title match is a fallback; resolution uses the EXISTING title even when renaming in the same call. A missing/archived KR returns one terminal recovery with live alternatives — do not retry the same args.
[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.]
| Name | Required | Description | Default |
|---|---|---|---|
| title | No | New display title for the key result (rename) | |
| due_date | No | Due date (YYYY-MM-DD format) | |
| companyId | Yes | FreedomOS company id to act within (you must be a member). Required for company-scoped tools. | |
| start_date | No | Start date (YYYY-MM-DD format) | |
| assigned_to | No | User ID to assign this KR to. Use "me" or "current_user" to assign to the current user. | |
| objective_id | No | ID of the parent objective (optional when key_result_id is set — id resolves the parent) | |
| target_value | No | Target value to achieve | |
| current_value | No | Current progress value | |
| key_result_id | No | Stable KR id (preferred). Parent objective is looked up from the KR row across active objectives — do not re-search by fuzzy objective title. | |
| measure_source | No | Bind current progress to a live data source (auto-updated daily by the OKR health sweep). One of: stripe_active_subscribers, stripe_mrr, crm_active_leads. Pass "none" to unbind and return the KR to manual updates. | |
| objective_title | No | Title of the parent objective (optional when key_result_id is set — id resolves the parent) | |
| key_result_title | No | Title of the key result to update (use this OR key_result_id) — matched against the CURRENT title, even when also renaming |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description fully carries the behavioral burden. It discloses write-tier approval requirements, title matching behavior during rename, and the specific error recovery pattern for missing/archived KRs. This is comprehensive and transparent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured with front-loaded main action and subsequent details. It is somewhat lengthy but every sentence adds value. Could be slightly more concise, but overall efficient for the complexity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has 12 parameters and no output schema, the description covers all essential behavioral aspects, including error handling, approval requirements, and parameter interactions. It is sufficiently comprehensive for an agent to use the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
All 12 parameters have schema descriptions (100% coverage), but the tool description adds significant context beyond the schema, such as the preferred use of key_result_id, the explanation of measure_source values, and the fallback behavior for key_result_title. This enhances understanding beyond the schema alone.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Update a key result') and specifies the resources and fields involved (progress, assignment, due date, rename, measure binding). It distinguishes itself from sibling tools like create_key_result and delete_key_result through specific wording and context.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states when to use the tool ('when work moves a Key Result'), provides preferences (key_result_id over title), fallback behavior, and error recovery guidance ('do not retry the same args'). This gives clear direction on proper usage versus alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_knowledge_sectionAInspect
Update a specific section of a knowledge file by its ## header. If the section exists, its content is replaced. If it doesn't exist, it's appended as a new section. Use this for surgical edits to guidelines or strategies without rewriting the entire file.
[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.]
| Name | Required | Description | Default |
|---|---|---|---|
| slug | Yes | The slug of the knowledge file to update | |
| companyId | Yes | FreedomOS company id to act within (you must be a member). Required for company-scoped tools. | |
| new_content | Yes | The new Markdown content for this section (replaces everything between this ## and the next ##). Use proper Markdown: blank lines between paragraphs, - for list items, ### for sub-headers. Never use **bold** as a substitute for headers. | |
| section_header | Yes | The ## section header to find and replace (case-insensitive). If not found, appended as a new section. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Description discloses the replace-or-append behavior and includes approval tier information ('write-tier' with manager approval). Without annotations, it provides good behavioral context, though it could elaborate on potential pitfalls like erroneous matching.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with core functionality in the first sentence, followed by behavioral nuance. The second paragraph on approvals is relevant but slightly wordy. Overall, no superfluous content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Tool has no output schema, but the description omits return behavior (e.g., success confirmation, error scenarios). Given its simple update/addition function, it is mostly adequate but could be more complete with expected outcomes.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema already provides full descriptions for all 4 required parameters (100% coverage). The description largely reiterates the schema's content (case-insensitive matching, Markdown format) without adding significant new meaning, meeting baseline expectations.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the tool updates a specific section of a knowledge file by its ## header, with explicit behavior for existing (replace) and non-existing (append) sections. It distinguishes from sibling tools like save_knowledge or delete_knowledge by emphasizing surgical edits.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Description advises using this tool for surgical edits without rewriting the entire file, implying when to use. It does not explicitly list when not to use or name alternatives, but the context is clear enough for an AI agent to infer appropriate usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_leadAInspect
Edit an existing lead in the Leads CRM (crm_leads): name, email, phone, location, do-not-contact flag/reason, lifecycle state (new/active/flagged/archived), or the synopsis fields (title, company_name, tags, notes). Identify the lead with lead_id or email_lookup. Moving state to 'flagged' or 'archived' REQUIRES state_reason. Archiving sets archived_at (safe-archive, reversible — move state off archived to restore it). If the lead's outreach is set to auto and you move it off 'active', outreach is demoted back to manual (auto-outreach is only valid while active). Use when the operator or an agent needs to fix or maintain lead data — wrong email, bad name, DNC request, or a lifecycle move — instead of telling the user to edit it in the UI.
Routing: CRM/sales → edit a lead's fields, status, or DNC flag → use this (NOT update_lead_status/log_activity — those are removed)
[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.]
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | New full name. | |
| tags | No | Replacement tag list — folded into synopsis_jsonb.manual_entry. | |
| No | New email (normalized to lowercase/trim). Rejected if it already belongs to another lead in this company. | ||
| notes | No | Notes about the lead — folded into synopsis_jsonb.manual_entry. | |
| phone | No | New phone number. | |
| state | No | New lifecycle state. state_reason is REQUIRED when moving to 'flagged' or 'archived'. | |
| title | No | Job title — folded into synopsis_jsonb.manual_entry (other manual_entry keys are preserved). | |
| lead_id | No | UUID of the lead to update. Provide this OR email_lookup. | |
| location | No | New location. | |
| companyId | Yes | FreedomOS company id to act within (you must be a member). Required for company-scoped tools. | |
| company_name | No | Company they work for — folded into synopsis_jsonb.manual_entry. | |
| email_lookup | No | The lead's CURRENT email, used to find it. Provide this OR lead_id. | |
| state_reason | No | Reason for the state change. Required when state is 'flagged' or 'archived'. | |
| do_not_contact | No | Set true to flag the lead do-not-contact (excluded from outreach); false to clear it. | |
| do_not_contact_reason | No | Reason for do_not_contact, e.g. 'customer', 'churned', 'opted_out'. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, description covers many behaviors: required state_reason for flagged/archived, auto-outreach demotion, email uniqueness check, reversible archive. Lacks mention of rate limits or authorization details beyond write-tier approval.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Well-structured with purpose, rules, usage, and approval note. Concise given the detail, though slightly lengthy. Every sentence serves a purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 15-parameter tool with no output schema, description covers behavioral constraints, special cases, identification methods, and approval tier. Comprehensive without gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Despite 100% schema coverage, description adds significant value: explains state_reason requirement, email_lookup vs lead_id, do_not_contact interaction, synopsis_jsonb folding, email normalization and rejection. Goes well beyond schema basics.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Edit an existing lead' and lists all editable fields. It distinguishes from siblings by naming update_lead_status/log_activity as removed, providing clear differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states when to use: 'when the operator or an agent needs to fix or maintain lead data' and provides alternatives (not to use update_lead_status/log_activity). Also includes routing context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_meta_ad_budgetAInspect
Change the daily budget of a Meta ad set (account currency, major units; structural cap applies). Moves real money, so it always requires the human — agents cannot change budgets. Use when the user explicitly asks to raise or lower spend on a campaign.
[outbound-tier — EVERY call needs a manager's approval (per-send human rail): each request queues its own approval card and sends exactly once on approve. There is no standing grant for this tool.]
| Name | Required | Description | Default |
|---|---|---|---|
| adset_id | Yes | Numeric ad set id | |
| companyId | Yes | FreedomOS company id to act within (you must be a member). Required for company-scoped tools. | |
| daily_budget | Yes | New daily budget, account currency major units | |
| ad_account_id | No | Optional — for currency resolution when several accounts exist |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description fully discloses that the tool moves real money, always requires human approval, and every call needs per-send manager approval queuing its own approval card. This is rich behavioral context beyond what annotations would provide.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two paragraphs, front-loaded with purpose, then approval details. It is concise but could be slightly tighter; every sentence earns its place. Minor redundancy in the approval block.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema and no annotations, the description covers purpose, behavioral constraints, and approval process well. It mentions structural cap but does not explain it, and lacks return value or error details. Still fairly complete for a mutation tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so baseline is 3. The description does not add additional meaning beyond the schema; it only reiterates 'account currency, major units' already in the schema. No extra semantic value for parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Change the daily budget of a Meta ad set', which is a specific verb+resource. It adds clarifying details like account currency, major units, and structural cap, and distinguishes it from siblings like set_meta_ad_status by focusing on budget changes.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly says 'Use when the user explicitly asks to raise or lower spend on a campaign' and notes that agents cannot change budgets, providing clear when-to-use and when-not-to-use guidance. It lacks mention of specific sibling alternatives but effectively sets usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_my_profileAInspect
Update the current user's profile. Can set name, title, phone, linkedin, location, zone of genius, or quiet hours (the do-not-disturb window for agent push alerts).
[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.]
| Name | Required | Description | Default |
|---|---|---|---|
| phone | No | Phone number | |
| title | No | Job title (e.g., CEO, CTO, Marketing Director) | |
| location | No | City, State or Location | |
| quiet_tz | No | IANA timezone for the quiet window, e.g. "America/Los_Angeles". Use the user's own timezone. | |
| companyId | No | FreedomOS company id to act within (you must be a member). Required for company-scoped tools. | |
| last_name | No | User's last name | |
| quiet_end | No | Quiet window end, local wall-clock 24h "HH:MM" (e.g. "07:00"). May cross midnight (start after end). | |
| first_name | No | User's first name | |
| founder_why | No | Founder's motivation and purpose | |
| quiet_start | No | Quiet window start, local wall-clock 24h "HH:MM" (e.g. "22:00"). Set together with quiet_end and quiet_tz. | |
| custom_title | No | Custom display title | |
| linkedin_url | No | LinkedIn profile URL | |
| holdco_vision | No | Vision for holding company (executives) | |
| zone_of_genius | No | What the user is uniquely great at | |
| future_self_note | No | Note to future self | |
| profile_image_url | No | URL to profile image | |
| experience_summary | No | Brief summary of professional experience | |
| quiet_hours_enabled | No | Turn the do-not-disturb / quiet-hours window on or off. When on, agent push alerts are held during the window and delivered as one summary at wake. | |
| outbound_routes_to_me | No | The operator's OWN no-manual-outbound preference (S5). true = "I personally do outbound" → the founder-outbound tactic filter is OFF for me; false = "do NOT route founder manual outbound to me" → the filter stays ON. Only the operator can set this for themselves; it is never set on behalf of another user. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It discloses the write operation and includes the approval tier behavior. The note about 'first use may require manager's approval' adds transparency beyond the basic write nature.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences with no redundant information. The first sentence states purpose and lists fields; the second provides key behavioral context (approval). Every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers the main purpose and mentions the quiet hours feature in detail. With no output schema, the description doesn't explain return values, but for a profile update tool this is acceptable. It could be improved by explicitly noting that all parameters are optional and only provided fields are updated.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description summarizes the main fields but does not add significant meaning beyond what the schema already provides for each parameter. The quiet hours explanation is helpful but already detailed in the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Update' and the resource 'current user's profile'. It lists the specific fields that can be set (name, title, phone, linkedin, location, zone of genius, quiet hours), distinguishing it from sibling tools like get_my_profile or update_company.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description includes a detailed note about the write-tier and approval requirements ('first use may require a manager's approval...'), providing important context for when the tool can be used. However, it does not explicitly state when not to use it or compare to alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_objectiveAInspect
Update an existing objective's title, description, or year. Identify by objective_id or objective_title (preferred). If the title matches more than one active objective it refuses and lists them — pass objective_id to disambiguate. Use when the operator wants to rename or reword an objective or move it to another year — the OKR edit door for agents.
[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.]
| Name | Required | Description | Default |
|---|---|---|---|
| year | No | New year for the objective (e.g., 2026) | |
| title | No | New title for the objective | |
| companyId | Yes | FreedomOS company id to act within (you must be a member). Required for company-scoped tools. | |
| description | No | New description for the objective | |
| objective_id | No | ID of the objective to update (use this or objective_title) | |
| objective_title | No | Title of the objective to update (use this or objective_id) |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It discloses that if the title matches multiple active objectives, the tool refuses and lists them, requiring an objective_id to disambiguate. It also mentions approval requirements for first use and the meaning of just-once vs. from-now-on approvals.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two paragraphs of moderate length. The first paragraph directly states the tool's function, while the second adds approval context. It is generally concise, though the approval note could be considered slightly verbose for its marginal benefit.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (6 parameters, mutation behavior) and no output schema, the description covers the essential aspects: what is updated, how to identify the objective, disambiguation rules, and approval flow. It lacks explicit mention of what is returned on success/failure, but the refusal behavior is well-explained.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the schema already documents all parameters. The description adds context about the identification options (objective_id vs. objective_title) and the disambiguation behavior, but it does not add new details about parameter semantics beyond the schema. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it updates an existing objective's title, description, or year. It specifies the verb 'update' and the resource 'objective', and lists the updatable fields, distinguishing it from sibling tools like create_objective and delete_objective.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides context: 'Use when the operator wants to rename or reword an objective or move it to another year — the OKR edit door for agents.' It also explains the disambiguation behavior when multiple objectives match. However, it does not explicitly state when not to use it or suggest alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_pipelineAInspect
Update an existing content pipeline. Use when user says "rename my pipeline", "change the pipeline name", "update pipeline settings", or wants to modify pipeline configuration. Can update name, persona, ICPs, output type, or destination.
[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.]
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | New name for the pipeline | |
| output | No | New output type | |
| icp_ids | No | New list of ICP IDs to target | |
| persona | No | New persona ID to use for transformations | |
| companyId | Yes | FreedomOS company id to act within (you must be a member). Required for company-scoped tools. | |
| destination | No | Where to publish: freedom_os (auto-publish to platform), manual (copy/paste). Social platforms (x/linkedin/instagram/facebook/threads) publish via the gated owner after human approval — instagram items REQUIRE media. Meta platforms need the company's Facebook & Instagram (or Threads) connection in Smart Tools. | |
| pipeline_id | Yes | ID of the pipeline to update (get from list_pipelines) |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It discloses that the tool is a 'write-tier' operation requiring potential manager approval, and explains approval persistence behavior. This adds significant transparency beyond the schema, though it does not detail reversibility or permissions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise: two sentences plus an approval note in brackets. The first sentence states the core purpose, the second gives example triggers, and the bracket adds essential behavioral info. No redundant content, though the bracket's italics could be distracting.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (7 parameters, 2 required, enums) and lack of output schema, the description is fairly complete. It covers what the tool does, when to use it, and an important behavioral constraint (approval). It doesn't mention return values or errors, but that's acceptable without output schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description lists the fields that can be updated (name, persona, etc.), which is a high-level summary but does not add meaning beyond what the schema already provides in detail. No additional parameter insights are given.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Update an existing content pipeline' and provides example user phrases ('rename my pipeline', etc.), making the tool's purpose specific and easily distinguishable from siblings like create_pipeline or archive_pipeline.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly says 'Use when user says...' and lists example commands, giving clear when-to-use guidance. It also includes the write-tier approval note, which helps the agent understand preconditions and alternative scenarios (first use vs. subsequent uses).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_pipeline_style_guideAInspect
Manually add a style rule to a pipeline. Use when user says "always use bullet points", "never include hashtags", "keep it under 100 words", "use more casual tone", or gives general content preferences.
[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.]
| Name | Required | Description | Default |
|---|---|---|---|
| companyId | Yes | FreedomOS company id to act within (you must be a member). Required for company-scoped tools. | |
| style_rule | Yes | The style rule to add (e.g., "Use bullet points for lists", "Keep under 150 words") | |
| pipeline_id | Yes | Pipeline ID (get from list_pipelines) | |
| output_format | Yes | Which format this rule applies to: changelog, social_post, team_update, newsletter, report |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description partially covers behavior by noting the approval process for first use and ongoing use. It does not disclose whether adding a rule overrides existing rules, reverts, or has other side effects. Some behavioral context is provided but not exhaustive.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise with two sentences plus a brief note. It is front-loaded with the core action, includes examples, and provides essential behavioral context without unnecessary fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has 4 required parameters, no output schema, and no annotations, the description covers purpose, usage, and approval behavior. It lacks details on return values or whether the rule replaces existing ones, but it is fairly complete for a straightforward add-rule tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so baseline is 3. The description adds value by giving concrete examples for style_rule and output_format parameters (e.g., 'Use bullet points', 'changelog'), which helps the agent select appropriate values beyond the schema's generic descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Manually add a style rule to a pipeline,' which is a specific verb+resource. Examples like 'always use bullet points' help clarify the tool's purpose, but it does not explicitly differentiate from sibling tools such as update_pipeline, though the intent is distinct.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit guidance on when to use the tool ('Use when user says...') with concrete examples. It also includes note about write-tier approval requirements. However, it lacks explicit instructions on when not to use it or alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_projectionAInspect
Update projected values for specific accounts and months in the financial plan. Use this when the user asks to change a projection, forecast, or budget number. Only current and future months can be updated — past months with bank actuals are protected. IMPORTANT: If an account already has non-zero values, you must specify mode="add" to add on top of existing values, or mode="set" with force=true to replace. Without these, the tool will return the current values and ask for clarification.
[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.]
| Name | Required | Description | Default |
|---|---|---|---|
| mode | No | How to apply the value. "set" = replace existing value (default). "add" = add on top of existing value. | |
| force | No | When mode="set", skip the overwrite confirmation for non-zero values. Use only when user explicitly wants to replace existing values. | |
| updates | Yes | Array of month+value pairs | |
| companyId | Yes | FreedomOS company id to act within (you must be a member). Required for company-scoped tools. | |
| fiscal_year | No | Fiscal year to update (default: current year) | |
| account_name | Yes | Account name to update (must match closely, e.g., "Software Revenue", "AWS Hosting"). Use get_projections to see exact names first. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations were provided, so the description fully covers behavioral traits: protected past months, mode/force behavior, and write-tier approval. It explains what happens if mode/force aren't specified correctly.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise with no extraneous words. It front-loads the purpose and uses clear formatting (IMPORTANT, [write-tier]) to highlight key points.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 6 parameters and no output schema, the description adequately covers usage constraints and behavior. It lacks explicit mention of return format, but the context is sufficient for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so baseline is 3. The description adds value by clarifying usage of account_name (use get_projections) and providing additional context beyond schema (e.g., approval notes, protection of past months).
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description explicitly states the tool updates projected values for accounts and months in the financial plan, distinguishing it from other update tools. It clearly uses verb+resource and provides usage context.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit guidance on when to use (change projections/forecast/budget), constraints (only current/future months), and important details about mode/force parameters. It also mentions approval requirements and suggests using get_projections for exact account names.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_reader_profileAInspect
Update a person's OPERATOR FLUENCY (baseline + per-topic strengths that follow them across companies). Use when the operator (or an admin) sets or corrects how agents should speak to them, or when seeding an empty profile with seed_if_empty for a first guess. Human door for edits; agents may seed empty self only.
[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.]
| Name | Required | Description | Default |
|---|---|---|---|
| domains | No | Topic → novice|fluent|expert (merged). | |
| companyId | Yes | FreedomOS company id to act within (you must be a member). Required for company-scoped tools. | |
| member_id | No | Optional target UUID. Defaults to you. | |
| default_level | No | ||
| glossary_seen | No | ||
| seed_if_empty | No | If true, agents may write only when the target has no profile yet (self only). Human doors may always write. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It discloses the write-tier approval requirement ('first use may require a manager's approval; a from-now-on approval makes future calls seamless') and the distinction between human and agent write permissions. This adds meaningful behavioral context beyond a simple 'update' verb.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the main purpose in the first sentence, followed by usage guidance and a bracketed approval note. No wasted words; each sentence adds information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers purpose, usage, role-based permissions, and approval workflow. For a write tool with no output schema, this is sufficient. It doesn't enumerate return values or error conditions, but those aren't expected. The only minor gap is the unaddressed glossary_seen parameter.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 67%, so the description compensates by defining the core concept ('OPERATOR FLUENCY (baseline + per-topic strengths)') which maps to default_level and domains. It also clarifies the behavior of seed_if_empty. However, glossary_seen remains undocumented in both schema and description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb and resource ('Update a person's OPERATOR FLUENCY') and clarifies the scope ('baseline + per-topic strengths that follow them across companies'), distinguishing it from generic profile updates. The role distinction ('Human door for edits; agents may seed empty self only') further differentiates it from sibling tools like update_voice_profile.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly states when to use it: 'when the operator (or an admin) sets or corrects how agents should speak to them, or when seeding an empty profile with seed_if_empty.' It also provides exclusion by role: 'agents may seed empty self only,' making it clear when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_sheetAInspect
Update specific cells in a Google Spreadsheet.
[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.]
| Name | Required | Description | Default |
|---|---|---|---|
| range | Yes | A1 notation range to update (e.g., "Sheet1!A1:B5") | |
| values | Yes | New values for the range | |
| companyId | Yes | FreedomOS company id to act within (you must be a member). Required for company-scoped tools. | |
| spreadsheet_id | Yes | Spreadsheet ID |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It discloses the write nature and approval tier, but lacks details on side effects (e.g., overwriting behavior), required permissions, or response format. The approval note adds some value, but other behavioral traits are missing.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise: two sentences, front-loaded with the core purpose, and the approval note in brackets adds necessary context without verbosity. Every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple write tool with no output schema, the description provides the essential purpose and approval information. However, it does not explain return values, behavioral constraints (e.g., cell limits), or how updates affect existing data, leaving gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all parameters are documented in the schema. The description does not add additional meaning beyond the schema, hence baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Update specific cells in a Google Spreadsheet,' which is a specific verb+resource combination. It distinguishes from siblings like append_to_sheet (which appends rather than updates specific cells) and read_sheet (read-only).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description includes a write-tier approval note that informs when the tool should be used (write operations) and approval requirements. However, it does not explicitly exclude scenarios or compare to alternatives like batch_update_spreadsheet.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_tacticAInspect
Update an existing tactic. Can identify by title instead of ID. Can modify title, description (the how-to / instructions), status, category, assigned_to, or re-bind it to an OKR key result (objective_id / linked_kr_id).
[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.]
| Name | Required | Description | Default |
|---|---|---|---|
| title | No | New title | |
| status | No | New status | |
| category | No | New category | |
| companyId | Yes | FreedomOS company id to act within (you must be a member). Required for company-scoped tools. | |
| tactic_id | No | ID of the tactic to update (optional if using tactic_title) | |
| assigned_to | No | User ID or "me"/"current_user" to assign to | |
| description | No | New description | |
| linked_kr_id | No | Key-result id the tactic most advances (validated against the company OKRs; takes precedence over objective_id, and its parent objective is derived). Unresolvable → binding cleared to null. Omit to leave the existing binding untouched. | |
| objective_id | No | OKR objective UUID to re-bind this tactic to (validated against this company); its most off-track key result is chosen. Unresolvable → binding cleared to null. Omit to leave the existing binding untouched. | |
| tactic_title | No | Title of the tactic to update (use this or tactic_id) |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It discloses important behaviors: precedence of linked_kr_id over objective_id, clearance behavior for unresolvable bindings, and the derivation of parent objective from the most off-track key result. The write-tier approval note also adds transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is efficiently structured in two paragraphs: first covering purpose and key fields, second covering approval behavior. It is concise and front-loaded with the core purpose, though the approval note could be integrated more seamlessly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 10 parameters and no output schema, the description omits return value information. For a mutation tool, the agent would benefit from knowing what the response contains (e.g., the updated tactic object or success confirmation). The description is mostly complete in explaining inputs and side effects but lacks output details.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3. The description adds value beyond the schema by explaining the precedence rule between linked_kr_id and objective_id, and the behavior when IDs are unresolvable (binding cleared to null). This helps the agent understand parameter interactions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('update'), the resource ('existing tactic'), and lists the updatable fields (title, description, status, etc.). It distinguishes from sibling tools like create_tactic and delete_tactic by focusing on modification and allowing identification by title or ID.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides context on how to identify the tactic (by title or ID) and mentions the write-tier approval process (first use may require manager's approval). However, it does not explicitly state when not to use this tool compared to alternatives like create_tactic or run_tactic.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_transaction_noteAInspect
Add or update a note on a specific transaction. Use after pulling transactions to annotate individual items.
[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.]
| Name | Required | Description | Default |
|---|---|---|---|
| note | Yes | Note text to set on the transaction (empty string to clear) | |
| companyId | Yes | FreedomOS company id to act within (you must be a member). Required for company-scoped tools. | |
| transaction_id | Yes | Transaction ID (from get_transactions output) |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden. It discloses that the tool is write-tier and may require approval. It also mentions that an empty string clears the note. However, it does not explain whether notes are appended or replaced, nor does it describe any side effects or error scenarios beyond the approval note.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise: two clear sentences plus a brief approval note. Every sentence adds value—purpose, usage guidance, and behavioral context—without any redundancy or fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (no output schema, 3 well-described parameters), the description covers the main purpose and usage context. It could be improved by mentioning the return value (e.g., success confirmation) or potential errors, but it is sufficiently complete for the typical use case.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all three parameters. The description adds minimal extra meaning beyond what the schema provides, such as 'empty string to clear' which is already in the schema. Baseline 3 is appropriate as the description does not significantly enhance parameter understanding.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action 'Add or update a note on a specific transaction,' identifying both the verb and resource. It distinguishes from sibling tools like get_transactions and search_transactions by specifying the operation on individual transaction notes.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides a clear usage sequence: 'Use after pulling transactions to annotate individual items.' It also includes important context about write-tier approval requirements, helping the agent understand when manager approval may be needed. However, it does not explicitly state when not to use this tool over alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_voice_profileAInspect
Update the company's voice profile. Only modifies the fields you specify; all other data is preserved. Use when the operator wants to tune their voice — add/refine an in-voice DO or an out-of-voice AVOID, adjust the style descriptor, set a target reading level, or set whose voice it is.
[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.]
| Name | Required | Description | Default |
|---|---|---|---|
| updates | Yes | Only the fields to update. Others are preserved. | |
| companyId | Yes | FreedomOS company id to act within (you must be a member). Required for company-scoped tools. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses partial update behavior ('Only modifies fields you specify; all other data is preserved') and write-tier approval process (manager approval, from-now-on vs just-once). With no annotations, this provides essential behavioral context beyond the schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short paragraphs: first line gives purpose and update behavior, then bullet-like list of use cases, then approval info in brackets. No wasted words, front-loaded with key information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers purpose, usage, update behavior, and approval. No output schema but update tools typically return success. Could mention prerequisite of having a voice profile, but get_voice_profile sibling implies existence. Generally complete for this complexity level.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema already describes both parameters (100% coverage). Description adds value by listing specific fields for the 'updates' parameter (in-voice DO, out-of-voice AVOID, style descriptor, reading level, voice ownership), going beyond the generic schema description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Update the company's voice profile' with specific verbs and resource. It lists concrete use cases (add/refine DO or AVOID, adjust style, set reading level, set voice ownership), distinguishing this write tool from its sibling get_voice_profile.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly says 'Use when the operator wants to tune their voice' and details scenarios. Also provides approval context. Does not explicitly mention alternative read tool, but sibling differentiation is clear from purpose.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
upsert_attention_sessionAInspect
Emit or update thin session telemetry for THIS operator (host coding agent self-announce). Use when YOU are Grok or Claude Code at session start / status change so voice CoS can list_attention_sessions and target you. Prefer tiny goals; never dump transcripts.
[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.]
| Name | Required | Description | Default |
|---|---|---|---|
| cwd | No | Optional working directory | |
| goal | No | One-line goal | |
| host | No | claude-code | claude-desktop | grok | manual | slack | github | freedomos | other | |
| status | No | running | blocked_on_operator | done | parked | unknown (blocked_on_tim accepted as alias) | |
| project | No | Optional project name | |
| artifact | No | Ship-seat stamp when known (e.g. pr:1752). Local and FO spawns use the same field — origin does not matter. If omitted and goal names a PR, server may infer pr:N. | |
| priority | No | Optional priority (higher = sooner) | |
| companyId | No | FreedomOS company id to act within (you must be a member). Required for company-scoped tools. | |
| company_id | No | Optional company id | |
| session_id | Yes | Stable session id (same string used as target_session_id for directives). | |
| ask_for_operator | No | If blocked: one sentence the operator must answer |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden of behavioral disclosure. It discloses write-tier and approval requirements ('write-tier — first use may require a manager's approval...'), and sets expectations for payload size ('Prefer tiny goals; never dump transcripts'). This exceeds baseline without annotations, though it doesn't cover all possible side effects or return behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two tightly written sentences plus an approval note. It front-loads the core purpose, gives usage context, and provides necessary operational caveats without any wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a telemetry tool with 11 params, 1 required, no output schema, and no annotations, the description covers purpose, usage, approval semantics, and content constraints. It doesn't explain return values or error handling, but upsert semantics and write-tier approval are sufficiently conveyed for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so baseline is 3. Description adds slight semantic guidance via 'Prefer tiny goals' which informally reinforces the goal parameter's one-line constraint, but otherwise does not add significant parameter-level meaning beyond the schema's own descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description states 'Emit or update thin session telemetry for THIS operator (host coding agent self-announce)', which clearly identifies the verb (emit/update), resource (session telemetry), and subject (this operator). It distinguishes from siblings like list_attention_sessions and create_attention_directive by focusing on self-announcement telemetry.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicit use condition: 'Use when YOU are Grok or Claude Code at session start / status change so voice CoS can list_attention_sessions and target you.' This provides clear context and purpose, though it does not explicitly mention when not to use or name alternative tools, but the self-announcement context is distinct enough.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vectorize_imageAInspect
Convert an existing raster image (PNG, JPG, WebP) to SVG vector format using Recraft. Preserves details and creates clean vector paths.
Routing: "vectorize this", "convert to SVG", "make scalable" → use this (1 credit)
[sensitive-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.]
| Name | Required | Description | Default |
|---|---|---|---|
| folder | No | Optional Media gallery folder to file this into (freeform name, e.g. "q3-campaign" or "brand-assets"). Shown as a folder chip on the /media page. Reuse an existing folder name when the work belongs to it. | |
| companyId | Yes | FreedomOS company id to act within (you must be a member). Required for company-scoped tools. | |
| image_url | No | URL of the raster image to vectorize. Use a signed URL from the MEDIA IN THIS CONVERSATION block or any accessible image URL. | |
| artifact_id | No | ID of an existing artifact from the MEDIA IN THIS CONVERSATION block. The system will resolve a fresh signed URL automatically. | |
| folder_name | No | Subfolder name for Drive save. Only used when save_to_drive is true. | |
| save_to_drive | No | If true, also save the vectorized SVG to Google Drive. Defaults to false. | |
| isolate_subject | No | Smart Workflow: If true, the tool will automatically remove the background to isolate the subject BEFORE vectorizing. Defaults to true. Set to false ONLY if you want to vectorize the entire scene including the background. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description must compensate. Discloses use of Recraft, credit cost, and sensitive-tier approval process, but omits side effects, error handling, or permissions details.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Relatively short with three distinct sections (purpose, routing, approval info), front-loaded. No wasted sentences, but could be more streamlined.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Description covers core conversion but lacks comprehensive context for a 7-parameter tool. Missing details on required prerequisites, output format, or behavior in edge cases.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with detailed parameter descriptions; the main description adds little beyond the schema. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clear verb 'Convert' with specific resource ('raster image to SVG'), supported formats listed, and explicit routing keywords. Distinguishes from siblings by focusing on existing images rather than generation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides specific routing phrases and credit cost, but does not explicitly compare against sibling 'generate_vector_image' for distinction. Still, gives strong positive guidance for when to use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Claim this connector by publishing a /.well-known/glama.json file on your server's domain with the following structure:
{
"$schema": "https://glama.ai/mcp/schemas/connector.json",
"maintainers": [{ "email": "your-email@example.com" }]
}The email address must match the email associated with your Glama account. Once published, Glama will automatically detect and verify the file within a few minutes.
Control your server's listing on Glama, including description and metadata
Access analytics and receive server usage reports
Get monitoring and health status updates for your server
Feature your server to boost visibility and reach more users
For users:
Full audit trail – every tool call is logged with inputs and outputs for compliance and debugging
Granular tool control – enable or disable individual tools per connector to limit what your AI agents can do
Centralized credential management – store and rotate API keys and OAuth tokens in one place
Change alerts – get notified when a connector changes its schema, adds or removes tools, or updates tool definitions, so nothing breaks silently
For server owners:
Proven adoption – public usage metrics on your listing show real-world traction and build trust with prospective users
Tool-level analytics – see which tools are being used most, helping you prioritize development and documentation
Direct user feedback – users can report issues and suggest improvements through the listing, giving you a channel you would not have otherwise
The connector status is unhealthy when Glama is unable to successfully connect to the server. This can happen for several reasons:
The server is experiencing an outage
The URL of the server is wrong
Credentials required to access the server are missing or invalid
If you are the owner of this MCP connector and would like to make modifications to the listing, including providing test credentials for accessing the server, please contact support@glama.ai.
Discussions
No comments yet. Be the first to start the discussion!
Related MCP Servers
- Alicense-qualityCmaintenanceEnd-to-end agent-managed company brain. Humans and any MCP agent co-author living docs (Markdown + extensions), 40+ visual diagrams (Mermaid, BPMN, D2, PlantUML, ELK, Excalidraw), plans, and a self-learning Knowledge Graph. 163 tools across 16 categories. Auth: OAuth 2.1 or API key. Lean, secure, affordable — from individuals to enterprise.MIT
- AlicenseAqualityAmaintenanceAI Agent Mission Control — 200+ MCP tools across 31 domains. Manage agents, experiments, workflows, crews, skills, tools, credentials, approvals, signals, budgets, marketplace, knowledge bases, chatbots, and more. Self-hosted, open-source (AGPL-3.0). Supports stdio + Streamable HTTP/SSE with OAuth 2.0 auth.3456AGPL 3.0

AllMCPofficial
Alicense-qualityBmaintenanceOpen-source MCP hub providing a single endpoint for AI agents to access dozens of business integrations (CRMs, spreadsheets, telephony, ads) with multi-tenancy, OAuth, and context-efficient tool discovery.Apache 2.0
vibops-mcpofficial
FlicenseAqualityAmaintenanceVibOps MCP is the control plane between your AI agents and your GPU infrastructure. 74 tools covering: GPU fleet management (deploy, scale, monitor across NVIDIA, AMD, Intel, AWS, Google, Groq), Agent Infrastructure Control Plane (per-agent GPU cost, budget enforcement, model policies, dependency graph), governance (AI Act, SOC 2, immutable HMAC audit chain), and GPU FinOps (chargeback, waste..)..7418