Flower MCP
Flower MCP is a persistent software lifecycle management server for coding agents, storing project state in SQLite and exposing 37 MCP tools for requirements, planning, evidence, verification, acceptance, and handover.
Create and manage lifecycle projects, requirements, goal graphs, and SRS baselines (create, import, validate, revise).
Plan milestones, dependencies, entry/exit/risk policies, and record governed acceptance.
Author and advance implementation packets with work plans, units, dependencies, gates, and provider delivery.
Track implementation runs and steps performed by the coding agent.
Author and advance verification campaigns with cases, obligations, Oracles, attestations, and evidence.
Record verification evidence, inspect traceability, run phase audits, and project next bounded actions.
Manage architecture authority: inspect, propose, and adopt technical architecture revisions.
Govern changes, assurance findings, corrective packets, and residual risk.
Create durable handovers, resume context, and project state/progress projections.
Bind projects to coding hosts or optional providers via portable association receipts.
Prepare, validate, and adopt bounded semantic assignments for SRS validation and intention grounding, optionally using internal inference.
Generate/retrieve lifecycle documents and manage durable jobs.
Discover capabilities, recipes, exact operation help, and interactively select work surfaces.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Flower MCPresume the handover state for the payment service"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Flower MCP
Persistent software lifecycle management for coding agents.
Flower connects requirements, milestones and implementation plans to evidence, verification, acceptance and handover. It stores project state in a SQLite ledger and exposes it through the Model Context Protocol (MCP), while your coding agent investigates repositories, writes code and runs checks.
Published release: 0.6.3 · In testing · Python: 3.11+ · Apache-2.0
Quick start · English walkthrough · Presentazione italiana · Development method
Flower 0.6.3
The 0.6.3 notes describe a focused HTTP shutdown correction. After SIGTERM, Flower reaches its existing runtime cleanup, waits for owned workers, releases ownership and closes logging. Repeated termination signals do not interrupt that cleanup; genuine shutdown failures remain failures. Stdio behavior, the 37 tools, 445 input fields, 182 operation routes, dependencies and SQLite schema 55 are unchanged. No provider, model or witness feature is added.
Flower 0.6.3 is published. The commands below select its official assets. Use the same-profile upgrade, preserving SQLite, configuration, receipts, evidence and handovers.
Related MCP server: project-memory-mcp
Flower 0.6.2
The 0.6.2 notes and readable lifecycle guide describe the presentation correction. Lifecycle records, guided roadmaps and generated references now render as complete Markdown sections and lists, preserving multiline paragraphs and ordered steps. The complete roadmap appears once alongside its summary and gates; machine consumers retain the structured application envelope. Requirements, prerequisites, producer contracts and verification obligations remain explicit. Formatting does not resolve gaps, change authority or grant acceptance.
Flower 0.6.2 remains a preserved historical release. Current commands select 0.6.3. Use the SQLite-preserving upgrade with the original environment and profile. Schema 55, configuration, historical artifacts, receipts, evidence and handovers stay in place. The core remains model-free, with 37 tools, 445 input fields and 182 operation routes.
Flower 0.6.1
The 0.6.1 notes and
lens catalog guide describe the new read-only
fow_interaction(operation="catalog") route. Hosts can present relevant direct
verbs from complete core/primary/companion membership. Flower keeps 37 tools and
445 input fields; selection and execution gates remain explicit.
Flower 0.6.1 remains a preserved historical release. Its catalog and verified assets remain available; current operational commands below select 0.6.3. Source builds and installer-owned release artifacts remain distinct. Use the same-profile upgrade, preserving SQLite schema 55, configuration, receipts, evidence and handovers.
Flower 0.6.0 history
Flower 0.6.0 is published. The release notes describe the compatibility change. Its immutable assets and compatibility history remain available.
Milestones separate work realized now from requirements owned by earlier milestones.
prerequisite_requirement_idsreplacesdependency_closure_ids; use[]when there are no prerequisites, and refresh the host's tool schema.Certified pre-write milestone rejections carry a correlated no-effect receipt. Uncertain outcomes require durable inspection before retrying.
Native hosts can explicitly prepare, inspect, delete and reconcile project data with
flower-mcp project-purge. This is not an MCP tool. Follow the native deletion guide; Windows native purge durability remains unqualified.
Schema 55 and original lifecycle history stay in place. Follow the 0.6.0 upgrade guidance with the same SQLite profile; project deletion is never an upgrade step. Core remains model-free.
Why Flower exists
An agent can finish a patch while the requested behavior remains unverified. A later session needs to know which decisions still apply, which results are current and what remains open before delivery.
Flower checks declared plan dependencies and verification obligations, applies lifecycle gates, and preserves result provenance and revisions. A handover recovers current work and the next gate. Exported Markdown plans support authorized offline work and reconciliation when Flower returns.
The model is not the system of record. Persistence supports the lifecycle; the purpose is to keep agreed intent, delegated work and evidence connected.
You can start with a scenario: what should the software do and show? Using Flower's bootstrap guidance, the agent investigates technical gaps and asks progressive questions about your intent. It records requirements and decisions in Flower and proposes a roadmap for your confirmation before implementation. You do not need to define the architecture up front.
Who does what?
Participant | Responsibility |
Person / project authority | Clarifies intent, confirms scope and makes the acceptance and delivery decisions assigned to them. |
Coding agent and its host | Investigates the repository, chooses the technical implementation, edits code, runs checks and reports outcomes. |
Flower MCP | Maintains lifecycle records, applies its operation gates, tracks evidence provenance and returns durable state. |
The core works without CodingCastle or an internal model. Optional providers can connect lifecycle records to technical evidence and execution; see integration boundaries and the advanced configuration guide.
Implemented ≠ verified ≠ accepted
State | What it means |
Implemented | The material work is declared produced. |
Verified | The required checks have passed for the declared scope and relevant current revision, with supporting evidence. |
Accepted | The competent authority has made the required decision. |
Local checks, deferred campaigns and acceptance stay distinct. Results from an older revision do not automatically satisfy current work. Plans, evidence and gates.
Example: two people book the same room
Illustrative scenario from the presentation, not an executed demo or benchmark.
The requirement: two concurrent requests for the same room and time slot must produce one confirmation and one explicit conflict. The agent records the requirement and scenario in Flower, plans bounded work with dependencies and checks, and reports results against the relevant revision. The implementation remains its job.
Two confirmations would be a defect; recurring bookings would be a new request. Flower preserves that distinction and the work still awaiting verification.
The walkthrough follows Require → Plan → Build → Verify → Deploy → Operate. These are lifecycle perspectives, not mandatory sequential commands or built-in deployment and monitoring. Follow the story in English or Italiano.
Quick start
Choose one installation route. Use a writable user directory and have a Codex, Claude Code, Cursor, Antigravity or Gemini CLI client installed. Downloads require Internet access and trusted HTTPS certificates. Check the prerequisites first.
For an existing installation, use the safe upgrade plan
with its original environment and profile. The commands below require matching
published release assets; changes on main do not publish a release.
These download commands select published 0.6.3. Use the existing environment
and profile when upgrading, so the SQLite ledger and client registration stay in place.
macOS / Linux
Requires Bash, curl, awk, sha256sum or shasum, and standard shell utilities.
Review the release installer before execution:
curl -fsSL https://github.com/Damel91/flower-mcp/releases/download/v0.6.3/install.sh | bashThe installer prepares an isolated Python environment, obtaining Python if needed, checks backend and wheel checksums, and offers optional client registration.
Windows
Requires Windows PowerShell 5.1+. Download the launcher, inspect it, then run the second command only after the download succeeds:
Invoke-WebRequest -UseBasicParsing -Uri "https://github.com/Damel91/flower-mcp/releases/download/v0.6.3/install.ps1" -OutFile ".\install.ps1"
powershell.exe -NoProfile -ExecutionPolicy Bypass -File .\install.ps1 -Platform codexUse -Platform claude-code, -Platform cursor, -Platform antigravity,
-Platform gemini-cli or -NoRegister as appropriate.
The launcher reuses or prepares Python and installs the checked release wheel.
The execution-policy option applies only to that process.
Manual alternatives: source
or release wheel with checksum verification.
Both require Python 3.11+ with SSL, venv and ensurepip; cloning also requires
Git. The installation guide covers downloads, upgrades,
profiles, removal and recovery.
Already using Flower? Follow the safe upgrade plan
to retain the existing SQLite ledger, profile and client registration. Stop all
clients sharing its environment, inspect --upgrade --dry-run, then run the
same command without --dry-run. Do not reinstall into a different profile.
See Google client setup for Antigravity and Gemini CLI.
Optional internal inference
Flower 0.6.3 selects the independently published
runtime-llama 0.5.0,
pinned by URL and SHA256 through its optional inference extra.
Historical Flower 0.6.1 and 0.6.0 selected the same SDK. Historical Flower 0.5.2 still selects runtime 0.4.1; its assets remain immutable. Existing optional installations can update
only the SDK while retaining the installed Flower artifact, receipt and profile;
reinstalling its old extra can select the old SDK again. Historical Flower
v0.4.1 still requires runtime 0.4.0 and retains its eight assets.
Core installers remain core-only. See inference setup and migration
for current-source installation, verified offline downloads and the targeted
SDK-only update.
An operator-managed llama.cpp endpoint is required only for internal inference.
Host-produced semantic results continue to work without a model.
See advanced configuration for role selection,
operator YAML, provider contracts, portable associations and explicit execution.
Glama and containers
The repository includes maintainer metadata and a core-only Dockerfile for
Glama's build workflow. See the Glama and container guide for
startup arguments, persistent SQLite storage and client setup. Glama account
claim, hosted deployment and platform release are separate steps; the
GitHub v0.6.0 release includes these container files.
Glama's tool-definition feedback helped identify the discovery gaps addressed in 0.5.1. The changes were verified against Flower's code and public operation contracts. Platform evaluation, hosted deployment and functional acceptance remain separate.
Connect an agent and start a project
Reload the registered client and approve its MCP connection. The client starts Flower. If you installed without registration, configure the client first. Do not start another server process against the same ledger.
Give your agent this request while working in the project you intend to develop. Replace "the installed Flower MCP command" with the executable path returned by the installer:
Run the installed Flower MCP command with
bootstrapand follow its output to update this project'sAGENTS.md, preserving its existing rules. Verify the MCP connection, discover the lifecycle projects and select the intended project explicitly. If the ledger is empty, I authorize creating a lifecycle project for this repository. Report an ambiguous project choice or a missing connection instead of guessing. Read the durable project snapshot and follow Flower's current recipes. Help me describe the first scenario, clarify its intent progressively and present a roadmap for my confirmation before coding.
The bootstrap command prints instructions; the agent merges them into
AGENTS.md. Ensure your host loads those instructions through its supported
mechanism. Project selection and state recovery use Flower's public tools;
the agent follows their current recipes.
For a manual source installation, the bootstrap command is
.venv/bin/flower-mcp bootstrap on macOS/Linux or
& .\.venv\Scripts\flower-mcp.exe bootstrap in PowerShell, from the Flower
checkout. From your application project, use the absolute path to that
executable. A bare flower-mcp command works only when it is on PATH.
First-use check: the agent can see Flower's tools, select the intended
project and retrieve its current snapshot and next gate. doctor checks
configuration files; it does not prove the MCP connection. The
bootstrap guide includes a ready-to-use agent request.
Already installed? Follow the SQLite-preserving upgrade plan.
Stop clients sharing the Flower environment, preview with the new installer's
--upgrade --dry-run (PowerShell -Upgrade -DryRun), then upgrade with the same
environment/profile paths. Flower backs up SQLite and YAML before package
changes. Updating an existing schema 55 installation to 0.6.3 keeps
schema 55 unchanged; older 0.3.1/schema 52 installations use the existing additive
migrations to 55. Resume the existing project and verify another restart.
Documentation
Topic | English | Italiano |
Scenario-led walkthrough | ||
Concepts, packet validation and evidence | ||
Public MCP tools | ||
Optional providers and technical execution | ||
Comparison with related projects | ||
Sources, provenance and limits |
The presentation index also links the offline readers.
Advanced configuration explains internal LLM setup, supported host semantic roles and external technical providers. The 0.6.3 release notes and readable lifecycle guide describe current references. The 0.6.1 notes and lens catalog guide retain the catalog introduction. The 0.5.2 release notes record the published corrections. The 0.6.0 release notes and native project deletion guide describe the new contracts and their qualification boundaries.
Release 0.4.1 retains continuous work and recovery: frozen handovers, current authority, original evidence, offline outcomes and the installed HTTP probe. Historical 0.3.0 assets remain unchanged.
Release 0.4.1 retains project architecture and negotiated PVP handoff. Standalone external plans remain independent; real provider pairing requires compatible consumer support and separate qualification.
The 0.4.1 patch preserves every finding when an SRS import or revision is rejected, including repeated diagnostic codes. It adds no tool or database migration. Already using Flower? Follow the upgrade plan with the same environment and profile: preview, stop all clients, back up before pip, update and verify the existing project after restart. Do not reinstall into a new profile to recover project state.
Development method
Flower is a personal project by Davide Mele, developed outside his professional work. He designed the system, defined requirements and constraints, guided verification and made acceptance decisions; coding agents, primarily Codex, carried out repository investigation, technical planning, implementation, tests and document updates. The work first used a documentary framework; Flower moves part of that discipline into a persistent server. Read the method in English or Italiano.
A real project managed with Flower is llama-runtime. Its requirements, milestones, implementation packets, plan validation, verification evidence and handovers are maintained in Flower's persistent project ledger. Flower supports the library's development lifecycle; installing or using the library does not require Flower.
Status and operating limits
Flower 0.6.3 is published at commit
e6e6649bf631ed986217bf758ff3d9d8d389937e
(release 418513137).
The Release workflow
passed all eight jobs, including Python 3.11–3.14, Windows and the core container.
Seven official assets were downloaded and checked against SHA256SUMS. The wheel
SHA256 is dc1716e87c10f5417693edd7ed6656b49da95c7c9e72c27e7a3c9b952f613f20.
SQLite stays at schema 55; use the existing backup-preserving upgrade procedure.
Client startup and human acceptance remain separate. The writer witness stays deferred.
Historical release checkpoints follow.
Flower 0.6.2 is published and remains in testing. Tag v0.6.2 identifies
commit 12ad69317dab92bdba06ae113ac22d107d259236
(release 416738867).
Exact candidate CI passed six jobs;
the Release workflow passed all eight.
Seven anonymous official assets and a fresh owned macOS HTTPS 0.6.1 → 0.6.2
upgrade were verified separately, preserving SQLite schema 55, existing history,
configuration, client paths and restart continuity. New artifact generation was
checked separately from pure preservation of the old records. These fixtures
changed no real user installation. Noxi's actual adoption follows its owner's
native updater and remains a separate deployment checkpoint; it is not inferred
from package or CI checks. Unknown OS/client usability, model quality and human
acceptance remain separate. The writer witness stays deferred.
Historical release checkpoints follow.
Flower 0.6.1 is published and remains in testing. Tag v0.6.1 identifies
commit 8de41beb1368ef772755b068b7404a91d3197f49
(release 416461595).
Exact candidate CI
passed six jobs. The Release workflow, attempt 2
has eight successful job results. Seven anonymous official assets and a fresh
owned macOS HTTPS upgrade from 0.6.0 to 0.6.1 were verified separately, including
SQLite schema 55, existing history, configuration, client paths and restart.
No real user installation was changed for those checks. Published tags and
assets are preserved by maintainer policy; GitHub does not enforce immutability
for this release. Current guides on main do not replace its published bytes.
These checks do not certify an unknown OS, model usability, a real client update
or human acceptance. The witness remains deferred.
Flower 0.6.0 is published and remains in testing. Published tag v0.6.0 identifies commit bb43b5a161ecc85e56f1d2dba2c69184da0a02b7 (release 416096822). Candidate CI and Release workflow are separate from anonymous asset checks and the populated-profile HTTPS upgrade.
The official assets and a fresh owned 0.5.2/schema55 → 0.6.0/schema55 HTTPS upgrade
were checked separately from source, installed-package and CI checks.
No user installation or real project deletion was used for those checks.
The incompatible milestone input is documented above; refresh the host schema.
The writer witness remains deferred. Windows native purge durability and real
Noxi/client acceptance remain separate qualifications.
Flower 0.5.2 is published and remains in testing. Its
release notes, the historical
0.4.1 release notes and
installation status
distinguish installed-package and CI checks from end-to-end installer and
target-client qualification.
The patch corrects repeated authority reads and shared-predecessor PVP work in
complete project recovery, preserving full results, gates and the existing
deadlines. It retains 0.5.1's descriptions for all 37 tools and 445 inputs,
conservative MCP annotations and canonical examples, together with the
0.5.0 receipt/error-recovery corrections, explicit sync-only provider delivery
and bounded provider RPCs, with the same callable contracts and schema 55. The writer witness remains deferred; this release does not claim
its integration or cross-server acceptance.
The immutable release archive retains its preparation-era documentation; these
current guides on main align installation instructions with the published assets.
Flower's gates govern its server operations, not every action available to the agent's host. Host-declared evidence is not an independent source audit; correctness depends on the implementation, checks and oracles behind it. Optional CodingCastle adapters need compatible services; their presence alone does not establish that a runtime pairing has been qualified.
To report an issue, include the Flower version, operating system, client, operation and error in the issue tracker, without credentials or private project data.
License and compatibility
Licensed under Apache-2.0, with attribution in NOTICE.
The public command is flower-mcp; the Python distribution flow-of-work-mcp,
import package flow_of_work_mcp and MCP prefix fow_* retain their existing names.
Available Tools
37 toolsfow_accept_milestoneA
Record governed acceptance of an eligible milestone using actual acceptance evidence after its required verification and campaign gates. Single operation; call directly without an operation argument. Prerequisites: Use an existing eligible milestone and actual governed acceptance evidence after required verification/campaign closure. Effects: Appends explicit acceptance authority under policy guards; never substitutes agent completion for acceptance. Exact help (replace operation_name with the selected route): fow_capabilities({"view":"operation","operation_tool":"fow_accept_milestone","operation_name":"call"}).
| Name | Required | Description | Default |
|---|---|---|---|
| actor | Yes | Identity of the human or agent recording this action; retain the original identity when replaying its request. | |
| project_id | Yes | Canonical lifecycle project ID. Select the existing project explicitly; development Markdown authorities are separate from runtime projects. | |
| request_id | No | Caller-owned retry identity. For receipted mutations replay the same actor and contents; changed contents can conflict. Inspect exact operation help for its receipt policy. | |
| milestone_id | Yes | Existing milestone identity governing or filtering the requested scope. | |
| acceptance_evidence | Yes | Declared evidence supporting human/governed milestone acceptance; not a completion claim by the coding agent. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare the mutation/safety profile (readOnlyHint=false, destructiveHint=false, idempotentHint=false), so the bar is lower. The description nonetheless adds real behavior: the action appends acceptance authority under policy guards and explicitly cannot be used to substitute for agent completion. It omits any retry/idempotency warning, which matters given idempotentHint=false.
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 short, front-loaded lines covering purpose, invocation style, prerequisites, and effects, with a pointer to exact help last. Every line contributes; the help-pointer line is somewhat formulaic but useful for route discovery.
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 an output schema present, return values need not be described, and structured fields supply safety and parameter detail. The description still covers what an agent needs: gates that must close first, the evidence requirement, and the fact that this records authority rather than agent-claimed completion.
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 five parameters are already documented in the schema, including actor, request_id retry semantics, and the meaning of acceptance_evidence. The description adds only high-level prerequisite context (eligible milestone, actual evidence) rather than parameter-level syntax or constraints, so the 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?
States a specific verb and resource ('Record governed acceptance of an eligible milestone') with scope conditions (evidence, verification and campaign gates closed). It implicitly distinguishes itself from verification and completion tools via 'never substitutes agent completion for acceptance', but no sibling is named outright.
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?
An explicit Prerequisites line tells the agent when this applies: an existing eligible milestone plus actual governed acceptance evidence after verification/campaign closure. It also clarifies invocation style ('single operation; call directly without an operation argument'). It stops short of naming an alternative tool for the when-not case, though the 'not a completion claim' line implies one.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
fow_architectureADestructive
Define and select the project technical architecture: components, interfaces and engineering decisions. Inspect current authority, propose a complete revision, then explicitly adopt it. Route with operation: inspect, propose, adopt. Prerequisites: Use an existing project and current architecture revision. Effects: propose stores an immutable candidate; adopt changes selected engineering authority. No model/provider call, coding or acceptance. Exact help (replace operation_name with the selected route): fow_capabilities({"view":"operation","operation_tool":"fow_architecture","operation_name":"inspect"}).
| Name | Required | Description | Default |
|---|---|---|---|
| actor | No | Identity of the human or agent recording this action; retain the original identity when replaying its request. | |
| payload | No | Architecture operation input: inspect selects revision/kind/page; propose supplies expected_revision and a complete definition; adopt selects expected_revision/revision and rationale. Proposals become authority only through adopt. Required by: propose, adopt. Exact required/optional dotted fields and guidance: fow_capabilities(view=operation, operation_tool=fow_architecture, operation_name=<selected route>). | |
| operation | Yes | Operation selector for this multiplexer; use a canonical route listed below. Canonical values: inspect, propose, adopt. | |
| project_id | Yes | Canonical lifecycle project ID. Select the existing project explicitly; development Markdown authorities are separate from runtime projects. | |
| request_id | No | Caller-owned retry identity. For receipted mutations replay the same actor and contents; changed contents can conflict. Inspect exact operation help for its receipt policy. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Adds real behavior beyond the annotations: propose produces an 'immutable candidate' while adopt is what 'changes selected engineering authority', and it scopes out work ('No model/provider call, coding or acceptance'). This complements the destructiveHint=true/idempotentHint=false annotations by telling the agent which route actually mutates authority. It does not spell out immutability/reversibility of an adopted revision, keeping it below 5.
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-loads the purpose, then routes, then prerequisites, then effects - a sensible ordering with no filler sentences. The repeated pointer to fow_capabilities (once in the description and again in the payload schema) duplicates a help-hint already carried by structured fields, which slightly dilutes it.
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?
An output schema exists, so return values need not be described, and the description covers routing, prerequisites, and side effects for a destructive multiplexer. What is missing is any note on what 'current authority' means operationally (how the agent obtains the expected_revision it must pass on propose/adopt).
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 baseline is 3, but the description adds route-specific payload meaning ('inspect selects revision/kind/page; propose supplies expected_revision and a complete definition; adopt selects expected_revision/revision and rationale'), which the schema does not spell out per route. The actor/request_id retry identity is left to the schema, so it is not a 5.
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?
States a specific verb and resource ('Define and select the project technical architecture: components, interfaces and engineering decisions') and enumerates the three routes, so the subject matter is unmistakable. It never names a sibling tool (e.g. fow_goal, fow_semantic, fow_bindings) to differentiate scope, so it stops short of a 5.
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?
Gives explicit routing ('Route with operation: inspect, propose, adopt') and prerequisites ('Use an existing project and current architecture revision'), which is clear context for when this tool applies. It does not state when NOT to use it or point at an alternative tool, so it lacks the exclusion/alternative element of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
fow_assuranceADestructive
Record and inspect software assurance findings, reassess them against current intent, associate corrective packets and request guarded change acceptance using actual evidence. Route with operation: record_finding, get_finding, reassess_intent, set_finding_disposition, link_fixing_packet, request_change_acceptance. Prerequisites: Investigate current requirements/goals and evidence before classifying a finding or correction. Effects: Records findings, semantic reassessment, dispositions, fixing-packet links and guarded change acceptance. Reassessment is engineer-authored; completion, verification and acceptance remain separate. Exact help (replace operation_name with the selected route): fow_capabilities({"view":"operation","operation_tool":"fow_assurance","operation_name":"record_finding"}).
| Name | Required | Description | Default |
|---|---|---|---|
| actor | Yes | Identity of the human or agent recording this action; retain the original identity when replaying its request. | |
| title | No | Short human-readable title of the authored requirement, finding, packet, run step or campaign. Applies to: record_finding. Required by: record_finding. | |
| severity | No | Canonical assurance finding severity, expressing impact without implying acceptance. Applies to: record_finding. Required by: record_finding. Canonical values: info, low, medium, high, critical. | |
| change_id | No | Canonical owning change ID; when address resolution permits omission, the packet/campaign must resolve unambiguously. | |
| operation | Yes | Operation selector for this multiplexer; use a canonical route listed below. Canonical values: record_finding, get_finding, reassess_intent, set_finding_disposition, link_fixing_packet, request_change_acceptance. | |
| packet_id | No | Canonical packet identity returned by authoring; it identifies the bounded implementation work. | |
| rationale | No | Concrete reasoning supporting this ordinary mutation, decision or selected authority. Applies to: record_finding, set_finding_disposition. Required by: record_finding, set_finding_disposition. | |
| scope_ref | No | Existing object/reference identifying the finding's selected scope. Applies to: record_finding. Required by: record_finding. | |
| assessment | No | Engineer-authored reassessment against current intent/finding fingerprints, classification, rationale and technical evidence. Applies to: reassess_intent. Required by: reassess_intent. Exact required/optional dotted fields and guidance: fow_capabilities(view=operation, operation_tool=fow_assurance, operation_name=<selected route>). | |
| finding_id | No | Stable identity of the existing assurance finding. Applies to: get_finding, reassess_intent, set_finding_disposition, link_fixing_packet. Required by: get_finding, reassess_intent, set_finding_disposition, link_fixing_packet. | |
| project_id | Yes | Canonical lifecycle project ID. Select the existing project explicitly; development Markdown authorities are separate from runtime projects. | |
| request_id | No | Caller-owned retry identity. For receipted mutations replay the same actor and contents; changed contents can conflict. Inspect exact operation help for its receipt policy. | |
| scope_kind | No | Kind of lifecycle/source object affected by the assurance finding. Applies to: record_finding. Required by: record_finding. | |
| disposition | No | Explicit classification/action for the selected finding, review, packet question or campaign obligation. Applies to: set_finding_disposition. Required by: set_finding_disposition. Canonical values: open, confirmed, resolved, accepted_exception, deferred, superseded, cancelled. | |
| finding_kind | No | Semantic category of the assurance finding. Applies to: record_finding. Canonical values: semantic, engineering, informational, unspecified. | unspecified |
| evidence_refs | No | References to actual supporting evidence; host-declared provenance remains host-declared. Applies to: set_finding_disposition. | |
| source_anchor | No | String source locator/reference (path, section, entity or revision as applicable) linking authority to its originating material; this public input is not a structured object. Applies to: record_finding. | |
| implementation_ref | No | Reference to the implementation location or artifact involved in the finding. Applies to: record_finding. | |
| expected_correction | No | Bounded corrective behavior required to resolve the finding within the current intent. Applies to: record_finding, link_fixing_packet. Required by: record_finding, link_fixing_packet. | |
| acceptance_reference | No | Reference to the explicit authority accepting the governed change. Applies to: request_change_acceptance. Required by: request_change_acceptance. | |
| disposition_reference | No | Reference to the authority supporting the recorded disposition. Applies to: set_finding_disposition. | |
| required_campaign_ids | No | Existing campaigns whose successful verification remains required by this corrective packet/finding. Applies to: link_fixing_packet. | |
| supersedes_finding_id | No | Existing finding explicitly superseded by this new finding; history remains retained. Applies to: set_finding_disposition. | |
| required_regression_evidence | No | Declared regression evidence obligations that must remain visible until actually satisfied. Applies to: link_fixing_packet. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already flag the mutation profile (readOnlyHint=false, destructiveHint=true, idempotentHint=false), but the description adds real context beyond them: it lists what effects are produced and stresses that 'reassessment is engineer-authored; completion, verification and acceptance remain separate,' which prevents the agent conflating these stages. It does not, however, describe reversibility or the receipt/retry behavior (only the schema's request_id field hints at that).
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 tight blocks — purpose, route list, prerequisites/effects — plus one help pointer, all front-loaded with the capability statement first. Density is justified for a six-operation multiplexer, though the 'Effects' sentence is somewhat compressed and could be clearer.
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?
An output schema exists, so return values need no explanation, and the description covers routing, prerequisites, mutation effects and a mechanism for per-operation detail. For a 24-parameter, 6-route multiplexer it is close to complete, but it leaves the receipt/replay policy and success criteria implicit in the schema only.
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 24 parameters and 100% schema description coverage, the schema already carries per-field meaning, including 'Applies to' / 'Required by' routing annotations, so the baseline is 3. The description contributes only the operation enumeration and a pointer to fow_capabilities for dotted-field help, adding nothing about field formats or constraints 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 set — recording/inspecting software assurance findings, reassessing intent, linking fixing packets, requesting guarded change acceptance — and enumerates the six routing operations that scope the tool. It is clearly distinguishable in domain from siblings like fow_campaign_author or fow_record_verification, but it never explicitly contrasts itself against those neighbors.
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 an explicit prerequisite ('Investigate current requirements/goals and evidence before classifying a finding or correction') and names the operation routes for each intended behavior, so an agent knows which route to select. It stops short of when-not-to-use guidance or pointing to an alternative sibling tool for overlapping work.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
fow_audit_phaseA
Compare current requirement traceability with the previous snapshot of a named scope and retain the resulting phase audit as a durable local job. Single operation; call directly without an operation argument. Prerequisites: Use a defined requirement scope; retain the same requirement selection when reusing its scope_id. Effects: Schedules a durable local audit of traceability changes since the prior scope snapshot. No model/provider call or lifecycle transition; audit evidence is distinct from acceptance. Exact help (replace operation_name with the selected route): fow_capabilities({"view":"operation","operation_tool":"fow_audit_phase","operation_name":"call"}).
| Name | Required | Description | Default |
|---|---|---|---|
| actor | Yes | Identity of the human or agent recording this action; retain the original identity when replaying its request. | |
| scope_id | Yes | Named audit/work scope selecting the relevant requirement phase or work projection. | |
| project_id | Yes | Canonical lifecycle project ID. Select the existing project explicitly; development Markdown authorities are separate from runtime projects. | |
| request_id | No | Caller-owned retry identity. For receipted mutations replay the same actor and contents; changed contents can conflict. Inspect exact operation help for its receipt policy. | |
| requirement_ids | No | Explicit existing requirement IDs defining the selected scope. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the annotations, the description discloses that it schedules a durable LOCAL job, makes no model/provider call, performs no lifecycle transition, and that audit evidence is distinct from acceptance. This meaningfully expands on destructiveHint=false/readOnlyHint=false, though it stays silent on idempotency/replay behavior despite idempotentHint=false.
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, then Prerequisites and Effects blocks that are easy to scan. The final fow_capabilities help-pointer line is slightly meta/verbose but every other 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 mutation-style job-scheduling tool, the description covers prerequisites, effects, and scope semantics, and an output schema exists so return values need no explanation. Only the retry/idempotency story (relevant given idempotentHint=false) is left largely to the schema's request_id field.
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 only marginal value for parameters, mainly the scope_id reuse constraint ('retain the same requirement selection when reusing its scope_id'); it does not explain requirement_ids or request_id beyond what the schema already documents.
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 precise verb and resource: 'Compare current requirement traceability with the previous snapshot of a named scope' and clarifies the output is a retained phase audit. It is specific enough to distinguish itself from passive read siblings like fow_traceability, though it never names an alternative explicitly.
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?
'Single operation; call directly without an operation argument' plus a Prerequisites line ('Use a defined requirement scope; retain the same requirement selection when reusing its scope_id') gives clear invocation context. It does not name a competing sibling tool or state when NOT to use it, so it stops 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.
fow_bindingsADestructive
Associate an existing lifecycle project with a coding host or optional configured provider through portable versioned JSON receipts. Inspect/export current associations or explicitly import and replace one. Route with operation: inspect, export, import. Prerequisites: Use an existing project; provider receipts may select already configured routes only. Effects: inspect/export read associations; import records idempotent canonical associations and requires a reason for replacement. No endpoint, credentials, commands or restart are supplied by receipts. Exact help (replace operation_name with the selected route): fow_capabilities({"view":"operation","operation_tool":"fow_bindings","operation_name":"inspect"}).
| Name | Required | Description | Default |
|---|---|---|---|
| actor | No | Identity of the human or agent recording this action; retain the original identity when replaying its request. | |
| host_id | No | Stable coding-host identity for the host association; independent from optional provider bindings. Applies to: export. | |
| operation | Yes | Operation selector for this multiplexer; use a canonical route listed below. Canonical values: inspect, export, import. | |
| project_id | Yes | Canonical lifecycle project ID. Select the existing project explicitly; development Markdown authorities are separate from runtime projects. | |
| request_id | No | Caller-owned retry identity. For receipted mutations replay the same actor and contents; changed contents can conflict. Inspect exact operation help for its receipt policy. | |
| provider_kind | No | Configured route category selecting the implementation_provider association to export; not the provider's transport URL or executable command. Applies to: export. | |
| association_kind | No | Association category to export: host or implementation_provider; these are independent bindings. Applies to: export. Required by: export. | |
| replacement_reason | No | Required explanation when replacing a different canonical host/provider association; replay of the same receipt does not replace it. Applies to: import. | |
| association_receipt | No | Versioned flow.project-association.v1 JSON receipt. Contains associations only; URLs, credentials, commands and unknown fields are rejected. Applies to: import. Required by: import. Exact required/optional dotted fields and guidance: fow_capabilities(view=operation, operation_tool=fow_bindings, operation_name=<selected route>). |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare the tool destructive and not read-only, and the description usefully splits behavior per operation (inspect/export read, import replaces and requires a reason), notes idempotent replay semantics, and reassures that receipts carry no endpoints or credentials. It still defers finer behavioral detail (error handling, exact receipt policy) to the per-operation help view.
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?
Information is front-loaded: purpose first, then routing, prerequisites, and effects, with the help pointer at the end. It is dense and slightly repetitive (the fow_capabilities help pattern is stated twice across the description and schema), which keeps it from 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?
For a nine-parameter multiplexer with an output schema and complex receipt payloads, the description covers routing, prerequisites, side effects, and where to get exact help, which is enough for correct invocation. Deep per-operation details are delegated to a discovery call rather than included, leaving a minor completeness 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 schema already documents all nine parameters including route applicability and the receipt contract. The description only echoes the operation routing and the receipt-safety rule, adding little syntax or meaning the schema lacks, so 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 states a specific verb and resource: bind an existing lifecycle project to a coding host or configured provider via versioned JSON receipts, with inspect/export/import routing made explicit. No sibling tool in the list performs association binding, so overlap is not an issue, but it never explicitly contrasts itself with any sibling, keeping it below 5.
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 names the three routes (inspect, export, import) and gives prerequisites: an existing project is required and provider receipts may only select already-configured routes. It does not name alternative tools or state when NOT to use this one, so it stops short of a full when/when-not treatment.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
fow_bootstrapADestructive
Turn stakeholder scenarios into recorded lifecycle intent and an explicitly confirmed roadmap, then track correspondence, progress choices and completion of that bootstrap cycle. Route with operation: bind_implementation_provider, provider_binding_state, list_provider_bindings, start, resume, state, record_intake, record_contradiction, confirm_intake, derive_behavior, complete, cancel, guidance, record_answer, record_correspondence, roadmap, confirm_roadmap, record_continuation. Prerequisites: Select the real project/current bootstrap. Start from stakeholder scenarios and record only governing answers. Effects: Records intake, correspondence, confirmation and continuation; complete/cancel closes a cycle. Provider-binding replacement and optional behavior derivation are explicit operations. Never invent stakeholder approval or execute unclear scope. Exact help (replace operation_name with the selected route): fow_capabilities({"view":"operation","operation_tool":"fow_bootstrap","operation_name":"bind_implementation_provider"}).
| Name | Required | Description | Default |
|---|---|---|---|
| path | No | Bootstrap workflow: import existing requirements, inspect existing code, create requirements or use guided engineering. Use a canonical path listed below. Applies to: start. Required by: start. Canonical values: requirements_import, code_import, requirements_creation, guided_engineering. | |
| actor | Yes | Identity of the human or agent recording this action; retain the original identity when replaying its request. | |
| answer | No | Structured answer to the selected bootstrap or Oracle question; obtain its exact shape from operation help. Applies to: record_answer. Required by: record_answer. Exact required/optional dotted fields and guidance: fow_capabilities(view=operation, operation_tool=fow_bootstrap, operation_name=<selected route>). | |
| intake | No | Structured bootstrap intake capturing scenario, constraints and existing-system context. Applies to: record_intake. Required by: record_intake. Exact required/optional dotted fields and guidance: fow_capabilities(view=operation, operation_tool=fow_bootstrap, operation_name=<selected route>). | |
| reason | No | Explicit reason for the transition, cancellation or continuation action. Applies to: cancel, record_continuation. Required by: cancel, record_continuation. | |
| surfaces | No | Explicit provider evidence/association surfaces, such as repo; use the exact configured route contract. Applies to: bind_implementation_provider. | |
| operation | Yes | Operation selector for this multiplexer; use a canonical route listed below. Canonical values: bind_implementation_provider, provider_binding_state, list_provider_bindings, start, resume, state, record_intake, record_contradiction, confirm_intake, derive_behavior, complete, cancel, guidance, record_answer, record_correspondence, roadmap, confirm_roadmap, record_continuation. | |
| project_id | Yes | Canonical lifecycle project ID. Select the existing project explicitly; development Markdown authorities are separate from runtime projects. | |
| request_id | No | Caller-owned retry identity. For receipted mutations replay the same actor and contents; changed contents can conflict. Inspect exact operation help for its receipt policy. | |
| bootstrap_id | No | Identifier of an existing bootstrap cycle; use the current cycle returned by guidance/state. Applies to: resume, state, record_intake, record_contradiction, confirm_intake, derive_behavior, complete, cancel, guidance, record_answer, record_correspondence, roadmap, confirm_roadmap, record_continuation. Required by: resume, state, record_intake, record_contradiction, confirm_intake, derive_behavior, complete, cancel, record_answer, record_correspondence, roadmap, confirm_roadmap, record_continuation. | |
| project_name | No | Exact registered project name associated with this bootstrap cycle. Applies to: start. Required by: start. | |
| contradiction | No | Structured bootstrap contradiction between the recorded intent and known authority, with the relevant references. Applies to: record_contradiction. Required by: record_contradiction. Exact required/optional dotted fields and guidance: fow_capabilities(view=operation, operation_tool=fow_bootstrap, operation_name=<selected route>). | |
| milestone_ids | No | Explicit existing milestone IDs in the roadmap or handover selection. Applies to: roadmap, confirm_roadmap. Required by: roadmap, confirm_roadmap. | |
| provider_kind | No | Canonical configured route category to bind/inspect: implementation_graph, bootstrap_behavior, packet_evidence, packet_execution or test_execution. Applies to: bind_implementation_provider, provider_binding_state. Required by: bind_implementation_provider, provider_binding_state. | |
| correspondence | No | Recorded mapping from one current bootstrap answer revision to canonical requirements/goals/milestones and its disposition. Applies to: record_correspondence. Required by: record_correspondence. Exact required/optional dotted fields and guidance: fow_capabilities(view=operation, operation_tool=fow_bootstrap, operation_name=<selected route>). | |
| progress_revision | No | Issued roadmap progress revision associated with the stakeholder's continuation choice. Applies to: record_continuation. Required by: record_continuation. | |
| provider_scope_id | No | Authorized scope identity understood by the configured provider. Applies to: bind_implementation_provider. Required by: bind_implementation_provider. | |
| replacement_reason | No | Required explanation when replacing a different canonical host/provider association; replay of the same receipt does not replace it. Applies to: bind_implementation_provider. | |
| continuation_choice | No | Explicit stakeholder continuation choice: continue the authorized roadmap or review the current result. Applies to: record_continuation. Required by: record_continuation. Canonical values: continue, review. | |
| provider_context_id | No | Context identity understood by an already configured optional provider route. Applies to: bind_implementation_provider. | |
| roadmap_fingerprint | No | Fingerprint of the exact roadmap being confirmed or continued; stale intent/scope requires ordinary revision. Applies to: confirm_roadmap, record_continuation. Required by: confirm_roadmap, record_continuation. | |
| completion_reference | No | Reference to the actual evidence/authority supporting completion of this lifecycle object. Applies to: complete. Required by: complete. | |
| confirmation_reference | No | Reference to the stakeholder's actual confirmation of the recorded intent or roadmap. Applies to: confirm_intake, confirm_roadmap. Required by: confirm_intake, confirm_roadmap. | |
| continuation_reference | No | Reference to the actual stakeholder choice; do not synthesize approval from elapsed time. Applies to: record_continuation. Required by: record_continuation. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With destructiveHint=true and openWorldHint=true already in annotations, the description still adds substantive behavior: it says what gets recorded (intake, correspondence, confirmation, continuation), that complete/cancel closes a cycle, that provider-binding replacement and behavior derivation are explicit opt-in operations, and that approval must never be invented. The one gap is that individual operation-level side effects and the confirmation receipt semantics are deferred to the capabilities lookup.
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?
Purpose is front-loaded and the Prerequisites/Effects blocks are well-structured, so the skeleton is good. But the description re-lists all 19 operation names that are already enumerated in the `operation` schema enum, which is pure duplication and dominates the token budget. The final fow_capabilities pointer is verbose but 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 24-parameter, 19-route multiplexer with an output schema available (so return values need no explanation), the description covers purpose, prerequisites, effects, and the escape hatch for exact per-operation contracts. The residual gap is that the object-typed payloads (intake, contradiction, correspondence, answer) are only reachable via an extra fow_capabilities call, so an agent cannot invoke those routes from this definition alone.
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 and the per-property 'Applies to / Required by' notes already tell the agent which operation consumes which field. The description itself contributes no parameter meaning beyond the operation-route list, which is duplicated in the schema's canonical values. It correctly defers the nested payload shapes to operation help rather than pretending to document 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?
The first sentence names a specific transformation (stakeholder scenarios -> recorded lifecycle intent + explicitly confirmed roadmap) plus the ongoing tracking function, which is far more than a restatement of the name. It is distinguishably a lifecycle-bootstrap multiplexer rather than a sibling like fow_handover or fow_packet_advance. It loses a point only because the phrasing is dense internal jargon that an outside agent must decode.
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?
Prerequisites ('Select the real project/current bootstrap. Start from stakeholder scenarios and record only governing answers.') give real context for when this tool is the right entry point, and the enumerated operation routes imply the sub-workflow. However, there is no explicit when-not-to-use guidance and no routing against the 35 sibling tools (e.g. when to bootstrap vs. fow_goal or fow_campaign_author), so usage is only partially disambiguated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
fow_campaign_advanceADestructive
Perform bounded deterministic progression of an existing verification campaign until the next semantic, evidence or provider boundary requires attention. Implicit advance operation; transition_budget bounds the call. Prerequisites: Use an existing campaign, current scope and the provider/evidence prerequisites of its next boundary. Effects: Runs bounded deterministic lifecycle transitions, may deliver admitted provider work, then returns one semantic/evidence/provider boundary. It does not invent answers or acceptance. Exact help (replace operation_name with the selected route): fow_capabilities({"view":"operation","operation_tool":"fow_campaign_advance","operation_name":"advance"}).
| Name | Required | Description | Default |
|---|---|---|---|
| actor | Yes | Identity of the human or agent recording this action; retain the original identity when replaying its request. | |
| change_id | No | Canonical owning change ID; when address resolution permits omission, the packet/campaign must resolve unambiguously. | |
| project_id | Yes | Canonical lifecycle project ID. Select the existing project explicitly; development Markdown authorities are separate from runtime projects. | |
| request_id | Yes | Caller-owned retry identity. For receipted mutations replay the same actor and contents; changed contents can conflict. Inspect exact operation help for its receipt policy. | |
| campaign_id | No | Identifier of the governed test campaign, as returned by campaign authoring. | |
| transition_budget | No | Maximum deterministic campaign transitions in this call before returning the current boundary. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true, idempotentHint=false and openWorldHint=true, so the safety bar is lower. The description still adds real behavioral context the annotations do not: the progression is deterministic and bounded, it may deliver admitted provider work, it stops at exactly one boundary, and it 'does not invent answers or acceptance'. It stops short of describing the destructive/persistence consequences the annotations imply.
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 purpose is front-loaded in the first sentence, followed by clearly labelled Prerequisites and Effects blocks, so an agent can scan it quickly. 'Implicit advance operation' is near-redundant with the name and the help-dispatcher sentence is dense, but overall the size is proportionate and every remaining sentence carries 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?
An output schema exists, so return values need not be explained, and the description covers prerequisites, bounded effects, and the boundary it stops at. Combined with the annotations it gives an agent enough to call the tool correctly; only the destructive/idempotency implications and sibling routing are unaddressed.
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 six parameters are already documented in the schema, making a baseline of 3 appropriate. The description only elaborates on transition_budget (it bounds the call) and the campaign prerequisite; it adds no format or interaction detail beyond what the schema supplies.
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: bounded deterministic progression of an existing verification campaign until a semantic/evidence/provider boundary. That is far more precise than a restatement of the name. It does not, however, explicitly contrast itself with the similarly named sibling fow_packet_advance or the read-only fow_campaign_inspect, so sibling disambiguation is left to the name.
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 prerequisites ('use an existing campaign, current scope and the provider/evidence prerequisites of its next boundary') and notes the implicit advance operation bounded by transition_budget. But it never says when NOT to use it, nor names an alternative route (e.g. inspecting rather than advancing, or packet-level advance). Usage is implied rather than routed.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
fow_campaign_authorADestructive
Define and revise a verification campaign: scope, cases, obligations, behavioral Oracles, source attestations and explicit materialization or promotion authority. Route with operation: start, edit_scope, add_case, edit_case, remove_case, reorder_cases, decide_obligation, bind_obligation, author_oracle, answer_question, attest_source, authorize_materialization, retry_provider_rejection, authorize_promotion, accept_exception, cancel. Prerequisites: Use an existing governed change and current campaign fingerprint for edits. Effects: Authors cases/obligations/Oracle definitions, attestations and explicit provider materialization/promotion commands. Removal/cancellation/exception changes current authority; source files and provider actions require their declared prerequisites. Exact help (replace operation_name with the selected route): fow_capabilities({"view":"operation","operation_tool":"fow_campaign_author","operation_name":"start"}).
| Name | Required | Description | Default |
|---|---|---|---|
| case | No | Structured campaign case: semantic test intent and its required scope/obligations; inspect exact operation help before authoring. Applies to: start, add_case, edit_case. Required by: add_case, edit_case. Exact required/optional dotted fields and guidance: fow_capabilities(view=operation, operation_tool=fow_campaign_author, operation_name=<selected route>). | |
| actor | Yes | Identity of the human or agent recording this action; retain the original identity when replaying its request. | |
| scope | No | Structured campaign scope selecting change, requirements, goals, packets and explicit environment assumptions. Applies to: start, edit_scope. Required by: start, edit_scope. Exact required/optional dotted fields and guidance: fow_capabilities(view=operation, operation_tool=fow_campaign_author, operation_name=<selected route>). | |
| title | No | Short human-readable title of the authored requirement, finding, packet, run step or campaign. Applies to: start, edit_scope. Required by: start, edit_scope. | |
| answer | No | JSON answer matching the selected Oracle question's declared shape; it may be a scalar, array or object rather than necessarily a mapping. Preserve the declared answer_authority and provenance. Applies to: answer_question. Required by: answer_question. Exact required/optional dotted fields and guidance: fow_capabilities(view=operation, operation_tool=fow_campaign_author, operation_name=<selected route>). | |
| oracle | No | Structured behavioral Oracle definition expressing expected/forbidden behavior and test obligations. Applies to: author_oracle. Required by: author_oracle. Exact required/optional dotted fields and guidance: fow_capabilities(view=operation, operation_tool=fow_campaign_author, operation_name=<selected route>). | |
| case_id | No | Stable identifier of the existing campaign case to edit or remove. Applies to: edit_case, remove_case, bind_obligation, author_oracle, attest_source, authorize_materialization, authorize_promotion. Required by: edit_case, remove_case, bind_obligation, author_oracle, attest_source, authorize_materialization, authorize_promotion. | |
| harness | No | Structured test-harness participant contract and provenance; it declares execution boundaries, not observed success. Applies to: attest_source. Exact required/optional dotted fields and guidance: fow_capabilities(view=operation, operation_tool=fow_campaign_author, operation_name=<selected route>). | |
| decision | No | Canonical campaign-obligation decision for decide_obligation; this is a string selector, not a packet gate object. Applies to: decide_obligation. Required by: decide_obligation. Canonical values: required, out_of_scope, duplicate, investigate, waived. Exact required/optional dotted fields and guidance: fow_capabilities(view=operation, operation_tool=fow_campaign_author, operation_name=<selected route>). | |
| operation | Yes | Operation selector for this multiplexer; use a canonical route listed below. Canonical values: start, edit_scope, add_case, edit_case, remove_case, reorder_cases, decide_obligation, bind_obligation, author_oracle, answer_question, attest_source, authorize_materialization, retry_provider_rejection, authorize_promotion, accept_exception, cancel. | |
| oracle_id | No | Existing behavioral Oracle identity selected for the campaign operation. Applies to: author_oracle, answer_question. Required by: answer_question. | |
| rationale | No | Concrete reasoning supporting this ordinary mutation, decision or selected authority. Applies to: remove_case, decide_obligation, retry_provider_rejection. Required by: remove_case, decide_obligation, retry_provider_rejection. | |
| case_order | No | Complete ordered list of current campaign case IDs for the requested reorder. Applies to: reorder_cases. Required by: reorder_cases. | |
| project_id | Yes | Canonical lifecycle project ID. Select the existing project explicitly; development Markdown authorities are separate from runtime projects. | |
| provenance | No | Declared origin of campaign answers/source evidence; does not confer provider audit or human acceptance. Applies to: answer_question. Required by: answer_question. | |
| request_id | Yes | Caller-owned retry identity. For receipted mutations replay the same actor and contents; changed contents can conflict. Inspect exact operation help for its receipt policy. | |
| campaign_id | No | Identifier of the governed test campaign, as returned by campaign authoring. Applies to: edit_scope, add_case, edit_case, remove_case, reorder_cases, decide_obligation, bind_obligation, author_oracle, answer_question, attest_source, authorize_materialization, retry_provider_rejection, authorize_promotion, accept_exception, cancel. Required by: edit_scope, add_case, edit_case, remove_case, reorder_cases, decide_obligation, bind_obligation, author_oracle, answer_question, attest_source, authorize_materialization, retry_provider_rejection, authorize_promotion, accept_exception, cancel. | |
| evidence_id | No | Existing evidence identity to inspect or associate; use returned IDs rather than inventing evidence. Applies to: authorize_promotion. Required by: authorize_promotion. | |
| question_id | No | Existing open packet-construction or Oracle question identity. Applies to: answer_question. Required by: answer_question. | |
| source_files | No | Oracle source mapping from file paths to source-content strings for attestation/materialization. Future files remain declarations until materialized and verified. Applies to: attest_source. Required by: attest_source. | |
| waiver_scope | No | Explicit campaign/Oracle scope covered by the authorized waiver. Applies to: answer_question. | |
| evidence_gaps | No | Known missing verification/evidence obligations retained by an explicit campaign exception. Applies to: accept_exception. Required by: accept_exception. | |
| obligation_id | No | Stable identity of the campaign verification obligation being decided or bound. Applies to: decide_obligation, bind_obligation. Required by: decide_obligation, bind_obligation. | |
| risk_authority | No | Explicit authority permitting the campaign's remaining risks/evidence gaps. Applies to: accept_exception. Required by: accept_exception. | |
| coverage_intent | No | Explanation of the behavior or risk the selected campaign obligation is intended to cover. Applies to: bind_obligation. Required by: bind_obligation. | |
| answer_authority | No | Declared authority/provenance of the Oracle answer; it does not upgrade host assertions into provider-audited evidence. Applies to: answer_question. Required by: answer_question. Canonical values: grounded_fact, accepted_decision, derived_hypothesis, unknown, waived. | |
| authority_reference | No | Reference to the ordinary authority permitting the selected campaign action. Applies to: attest_source, authorize_materialization, authorize_promotion. Required by: attest_source, authorize_materialization, authorize_promotion. | |
| provider_command_id | No | Issued provider-command identity selected for explicit retry or materialization authority. Applies to: retry_provider_rejection. Required by: retry_provider_rejection. | |
| expected_fingerprint | No | Previously issued campaign authority fingerprint; guards against stale authoring. Applies to: edit_scope, add_case, edit_case, remove_case, reorder_cases. | |
| requested_capability | No | Structured provider capability declaration for campaign source/materialization work; use the exact fields supported by the current provider command contract. Applies to: attest_source, authorize_materialization. Required by: authorize_materialization. | |
| disposition_reference | No | Reference to the authority supporting the recorded disposition. Applies to: accept_exception, cancel. Required by: accept_exception, cancel. | |
| regression_obligation | No | Whether the campaign binding declares a required regression obligation. Applies to: authorize_promotion. | |
| exception_obligation_ids | No | Campaign obligation IDs covered by the requested explicit exception. Applies to: accept_exception. Required by: accept_exception. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true, openWorldHint=true and non-idempotent, so the safety bar is lower; the description still adds real substance by naming the mutation targets and warning that removal/cancellation/exception changes current authority and that source files and provider actions require declared prerequisites. It does not state reversibility or receipt-replay behavior in the description itself (that lives in 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?
Effectively structured: purpose first, then the operation routes, then prerequisites, then effects, then the help escape hatch. The long route enumeration is load-bearing for a multiplexer rather than padding, and no sentence is redundant.
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 16-route multiplexer with 33 parameters, an output schema, and full annotations, the description supplies the routing table, the mutation/authority effects, and a concrete pointer (fow_capabilities with operation_name) for per-route field detail. Nothing needed to select or correctly invoke a route 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 description coverage is 100% across 33 parameters, so the schema already carries per-field meaning and applicability. The description contributes only the routing contract (operation selectors and prerequisites) and then defers exact dotted-field guidance to fow_capabilities, adding little beyond the structured data.
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?
States a specific verb+resource pair ('Define and revise a verification campaign') and enumerates exactly what artifacts are within that scope (scope, cases, obligations, Oracles, attestations, materialization/promotion authority). The focus on authoring clearly separates it from the sibling campaign tools fow_campaign_advance and fow_campaign_inspect.
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 'Route with operation:' list tells the agent exactly which operation selects which sub-action, and the Prerequisites sentence ('use an existing governed change and current campaign fingerprint for edits') sets a gating condition. It never explicitly names an alternative sibling (e.g. use fow_campaign_inspect to read rather than author), so it stops short of full when/when-not routing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
fow_campaign_inspectARead-onlyIdempotent
Inspect one campaign scope, cases, obligations, Oracle contracts, attestations, evidence, residuals or history without progressing it. Route with view: summary, working_sheet, cases, obligations, oracles, constructibility, oracle_ir, attestation, evidence, residuals, history. Prerequisites: Use the campaign ID and optional owning change for scope validation. Effects: Read-only summary, cases, Oracle/evidence/residuals or history page. No provider/model calls, materialization or acceptance. Exact help (replace operation_name with the selected route): fow_capabilities({"view":"operation","operation_tool":"fow_campaign_inspect","operation_name":"summary"}).
| Name | Required | Description | Default |
|---|---|---|---|
| view | No | Read projection selector; canonical view names depend on this tool. Canonical values: summary, working_sheet, cases, obligations, oracles, constructibility, oracle_ir, attestation, evidence, residuals, history. | summary |
| limit | No | Maximum number of records in this read page; existing route-specific bounds still apply. | |
| offset | No | Zero-based position of the first record in this bounded read page. | |
| change_id | No | Canonical owning change ID; when address resolution permits omission, the packet/campaign must resolve unambiguously. | |
| project_id | Yes | Canonical lifecycle project ID. Select the existing project explicitly; development Markdown authorities are separate from runtime projects. | |
| campaign_id | No | Identifier of the governed test campaign, as returned by campaign authoring. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, destructiveHint false, and openWorldHint false. The description adds meaningful non-effects beyond those: it does not progress the campaign and makes no provider/model calls, materialization, or acceptance.
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-loads the purpose, then routes, prerequisites, effects, and an exact-help pointer. It is dense but each line earns its place; the help pointer is useful for view-specific semantics, though the overall block is longer than strictly minimal.
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 six-parameter, multi-view read tool with an output schema, the description covers purpose, routing, prerequisites, effects, and points to exact help for route details. Return values are handled by the output schema, so no critical 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?
Schema description coverage is 100%, so the schema already documents all six parameters including the canonical view values. The description adds slight purpose for campaign_id/change_id via 'scope validation,' but limit/offset and address-resolution behavior remain schema-only, making the baseline 3 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?
States a specific verb ('Inspect') and resource ('one campaign') plus the inspectable aspects. The phrase 'without progressing it' distinguishes it from fow_campaign_advance, so an agent can select it without opening another schema.
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?
Gives clear routing via view values and prerequisites ('Use the campaign ID and optional owning change for scope validation'). It does not explicitly name sibling alternatives such as fow_campaign_advance or fow_packet_inspect, so it stops short of full when/when-not guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
fow_capabilitiesARead-onlyIdempotent
Discover what Flower can do and how to call it: bounded tool summary, progressive workflow recipes, exact operation inputs/examples or the diagnostic catalog. Route with view=summary|recipe|operation|docs|full; recipe needs recipe_name, operation needs operation_tool and operation_name. Prerequisites: No project, database mutation or optional provider is needed. Effects: Read-only progressive discovery; returns exact required/optional fields, accepted selector values, examples and guidance. Does not execute recipes. Exact help (replace operation_name with the selected route): fow_capabilities({"view":"operation","operation_tool":"fow_capabilities","operation_name":"call"}).
| Name | Required | Description | Default |
|---|---|---|---|
| view | No | Progressive discovery: summary for the bounded catalog, recipe for one workflow, operation for one exact contract, docs for the tool reference, full for diagnostics. Canonical values: summary, recipe, operation, docs, full. | summary |
| recipe_name | No | One named progressive workflow recipe, requested with capabilities view=recipe. | |
| operation_name | No | Canonical operation name for exact help, interpreted within operation_tool; simple tools use call. | |
| operation_tool | No | Public fow_* tool identity whose exact operation contract is requested. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover readOnly/idempotent/non-destructive; the description adds genuinely new behavioral context: it 'does not execute recipes' and returns 'exact required/optional fields, accepted selector values, examples and guidance'. This clarifies the tool is pure introspection rather than an action, which the annotations alone would not convey. It stops short of describing pagination or size bounds for the 'full' view.
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 routing sentence, then prerequisites, effects, and a concrete example call. Every element is useful, though the final 'Exact help' sentence is somewhat clunky and partly overlaps the earlier routing statement.
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?
An output schema exists, so return contents need not be described. For a meta-discovery tool the description covers routes, required companion parameters, prerequisites, and side-effect scope, leaving nothing an agent needs before invoking 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%, so baseline would be 3, but the description adds conditional dependency semantics the schema does not express: recipe requires recipe_name, operation requires operation_tool plus operation_name. That routing-to-parameter mapping is real added 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?
States a specific verb and resource: 'Discover what Flower can do and how to call it', with concrete sub-capabilities (bounded tool summary, workflow recipes, exact operation inputs, diagnostic catalog). This is clearly distinguishable from all the action siblings like fow_run, fow_traceability, or fow_goal, which perform work rather than describe it.
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?
Gives explicit routing conditions for each view ('recipe needs recipe_name, operation needs operation_tool and operation_name') and a prerequisite statement ('No project, database mutation or optional provider is needed'). It does not explicitly say when to prefer a concrete sibling over this discovery tool, but the route-to-use mapping is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
fow_changeADestructive
Record a governed change and manage its packet readiness, engineering questions, evidence reconciliation, dependencies and risk dispositions. Author the executable packet plan with fow_packet_author. Route with operation: create_change, get_change, link_change_milestone, set_packet_target_state, evaluate_packet_readiness, start_packet_construction_audit, get_packet_construction_audit, initialize_packet_reconciliation, get_packet_reconciliation, declare_packet_evidence_claim, supersede_packet_evidence_claim, import_packet_evidence_snapshot, collect_packet_evidence_snapshot, reconcile_packet_evidence, disposition_packet_evidence_residual, answer_packet_question, waive_packet_question, block_packet_question, derive_packet_pressure, get_packet_pressure, accept_residual_risk, revise_packet, link_dependency, transition_packet. Prerequisites: Use existing project/change/packet identities and the selected ordinary authority/evidence contract. Effects: Records governed changes, readiness, reconciliation and risk/question dispositions. Some explicit evidence collection/audit routes use configured providers or inference; transitions/supersession can invalidate current authority. Work plans are authored with fow_packet_author. Exact help (replace operation_name with the selected route): fow_capabilities({"view":"operation","operation_tool":"fow_change","operation_name":"create_change"}).
| Name | Required | Description | Default |
|---|---|---|---|
| actor | Yes | Identity of the human or agent recording this action; retain the original identity when replaying its request. | |
| title | No | Short human-readable title of the authored requirement, finding, packet, run step or campaign. Applies to: create_change, revise_packet. Required by: create_change. | |
| claims | No | Provider snapshot claim records, preserving their identities, content and declared provenance. Applies to: import_packet_evidence_snapshot. Required by: import_packet_evidence_snapshot. | |
| intent | No | Engineering statement of the packet's intended observable behavior and authorized scope. Applies to: revise_packet. | |
| profile | No | Named existing policy/profile used for the selected packet-construction audit. Applies to: start_packet_construction_audit, derive_packet_pressure. | balanced |
| summary | No | Declared concise evidence/readiness summary retained with the snapshot or packet target. Applies to: answer_packet_question, block_packet_question. | |
| claim_id | No | Stable ID of the existing packet-evidence claim. Applies to: supersede_packet_evidence_claim. Required by: supersede_packet_evidence_claim. | |
| goal_ids | No | Existing goal graph IDs governing the packet or campaign scope. Applies to: revise_packet. | |
| in_scope | No | Behaviors and implementation boundaries explicitly included in this packet. Applies to: revise_packet. | |
| provider | No | Compatibility alias for provider_id when importing a packet-evidence snapshot. Applies to: import_packet_evidence_snapshot. | |
| surfaces | No | Explicit provider evidence/association surfaces, such as repo; use the exact configured route contract. Applies to: import_packet_evidence_snapshot. | |
| assertion | No | Structured content of the declared packet-evidence claim, retaining its provenance. Applies to: declare_packet_evidence_claim. | |
| change_id | No | Canonical owning change ID; when address resolution permits omission, the packet/campaign must resolve unambiguously. | |
| claim_key | No | Caller-supplied identity of this claim within its reconciliation scope. Applies to: declare_packet_evidence_claim. Required by: declare_packet_evidence_claim. | |
| max_depth | No | Maximum traversal depth for this bounded provider-evidence collection. Applies to: collect_packet_evidence_snapshot. | |
| operation | Yes | Operation selector for this multiplexer; use a canonical route listed below. Canonical values: create_change, get_change, link_change_milestone, set_packet_target_state, evaluate_packet_readiness, start_packet_construction_audit, get_packet_construction_audit, initialize_packet_reconciliation, get_packet_reconciliation, declare_packet_evidence_claim, supersede_packet_evidence_claim, import_packet_evidence_snapshot, collect_packet_evidence_snapshot, reconcile_packet_evidence, disposition_packet_evidence_residual, answer_packet_question, waive_packet_question, block_packet_question, derive_packet_pressure, get_packet_pressure, accept_residual_risk, revise_packet, link_dependency, transition_packet. | |
| packet_id | No | Canonical packet identity returned by authoring; it identifies the bounded implementation work. | |
| predicate | No | Relationship asserted between the evidence claim's subject and object. Applies to: declare_packet_evidence_claim. Required by: declare_packet_evidence_claim. | |
| rationale | No | Concrete reasoning supporting this ordinary mutation, decision or selected authority. Applies to: create_change, supersede_packet_evidence_claim, disposition_packet_evidence_residual, waive_packet_question, block_packet_question, revise_packet. Required by: create_change, supersede_packet_evidence_claim, disposition_packet_evidence_residual. | |
| truncated | No | Whether imported evidence was truncated; partial evidence must not be treated as complete. Applies to: import_packet_evidence_snapshot. | |
| claim_type | No | Canonical evidence-claim category used by packet reconciliation. Applies to: declare_packet_evidence_claim. Required by: declare_packet_evidence_claim. Canonical values: target, symbol_contract, impact, cleanup, test_obligation. | |
| invariants | No | Conditions that must remain true throughout the scoped behavior or change. Applies to: revise_packet. | |
| max_claims | No | Maximum provider-evidence claims requested by this bounded collection. Applies to: collect_packet_evidence_snapshot. | |
| object_ref | No | Object-side identity of the declared subject/predicate/object evidence claim. Applies to: declare_packet_evidence_claim. Required by: declare_packet_evidence_claim. | |
| policy_ref | No | Existing policy reference authorizing the requested waiver or residual disposition. Applies to: disposition_packet_evidence_residual, waive_packet_question. Required by: waive_packet_question. | |
| project_id | Yes | Canonical lifecycle project ID. Select the existing project explicitly; development Markdown authorities are separate from runtime projects. | |
| request_id | No | Caller-owned retry identity. For receipted mutations replay the same actor and contents; changed contents can conflict. Inspect exact operation help for its receipt policy. | |
| diagnostics | No | Declared provider diagnostics attached to imported evidence; preserve errors and partial coverage. Applies to: import_packet_evidence_snapshot. | |
| disposition | No | Explicit classification/action for the selected finding, review, packet question or campaign obligation. Applies to: transition_packet. | |
| fingerprint | No | Source/provider-reported evidence fingerprint retained for reconciliation currentness. Applies to: import_packet_evidence_snapshot. Required by: import_packet_evidence_snapshot. | |
| pressure_id | No | Existing packet-pressure projection identity for explicit residual-risk acceptance. Applies to: get_packet_pressure, accept_residual_risk. Required by: accept_residual_risk. | |
| provider_id | No | Evidence-provider identity recorded in the imported snapshot. Applies to: import_packet_evidence_snapshot. Required by: import_packet_evidence_snapshot. | |
| question_id | No | Existing open packet-construction or Oracle question identity. Applies to: answer_packet_question, waive_packet_question, block_packet_question. Required by: answer_packet_question, waive_packet_question, block_packet_question. | |
| snapshot_id | No | Existing imported packet-evidence snapshot identity to reconcile. Applies to: reconcile_packet_evidence. Required by: reconcile_packet_evidence. | |
| source_refs | No | References to existing sources governing the proposed change. Applies to: create_change. | |
| subject_ref | No | Subject-side identity of the declared evidence claim. Applies to: declare_packet_evidence_claim. Required by: declare_packet_evidence_claim. | |
| completeness | No | Declared completeness of each evidence surface; absent or partial evidence must remain explicit. Applies to: import_packet_evidence_snapshot. Required by: import_packet_evidence_snapshot. | |
| milestone_id | No | Existing milestone identity governing or filtering the requested scope. Applies to: create_change, link_change_milestone, start_packet_construction_audit. Required by: link_change_milestone. | |
| out_of_scope | No | Explicitly excluded behavior and implementation work for this packet. Applies to: revise_packet. | |
| target_state | No | Declared packet target-readiness state checked against the governing target policy. Applies to: set_packet_target_state, revise_packet. Canonical values: draft, needs_targets, needs_authority, refined, execution_ready, stale, blocked. | |
| baseline_refs | No | References to existing baselines governing the proposed change. Applies to: create_change. | |
| claim_dynamic | No | Whether the evidence claim requires current dynamic/provider evidence rather than a static declaration. Applies to: declare_packet_evidence_claim. | |
| evidence_refs | No | References to actual supporting evidence; host-declared provenance remains host-declared. Applies to: declare_packet_evidence_claim, answer_packet_question. | |
| packet_status | No | Requested canonical packet lifecycle status, checked against its ordinary transition guards. Applies to: transition_packet. Required by: transition_packet. Canonical values: planned, scaffolded, partial, idle, implemented, superseded, cancelled. | |
| selection_ref | No | Provider selection reference retained in the imported evidence snapshot. Applies to: import_packet_evidence_snapshot. Required by: import_packet_evidence_snapshot. | |
| target_policy | No | Packet target-selection policy controlling explicit/provider/materialization readiness requirements. Applies to: set_packet_target_state, revise_packet. Canonical values: code_targets_required, documental_only. | |
| answer_summary | No | Explanation resolving the selected packet-construction question. Applies to: answer_packet_question, block_packet_question. | |
| claim_required | No | Whether the declared claim is required for reconciliation closure. Applies to: declare_packet_evidence_claim. | |
| active_provider | No | Accepted compatibility input; the current fow_change handler does not consume it and it has no effect. Set execution ownership through packet authoring/external-work selection. Applies to: set_packet_target_state, revise_packet. | |
| requirement_ids | No | Explicit existing requirement IDs defining the selected scope. Applies to: create_change, revise_packet. Required by: create_change. | |
| source_revision | No | Declared repository/source revision associated with the work or evidence; does not independently prove implementation. Applies to: import_packet_evidence_snapshot. Required by: import_packet_evidence_snapshot. | |
| blocking_reasons | No | Current readiness blockers recorded for this packet target. Applies to: set_packet_target_state, block_packet_question, revise_packet, transition_packet. | |
| candidate_set_id | No | Singular navigation-candidate-set alias, used when candidate_set_ids is absent or empty. Applies to: set_packet_target_state, revise_packet. | |
| contract_version | No | Version identifier of the imported provider-evidence contract. Applies to: import_packet_evidence_snapshot. | packet-evidence-snapshot-v1 |
| waiver_rationale | No | Concrete reason for explicitly waiving the selected packet-construction question under its policy. Applies to: waive_packet_question. | |
| accepted_risk_ref | No | Durable reference identifying the explicitly accepted residual risk. Applies to: accept_residual_risk. Required by: accept_residual_risk. | |
| architecture_refs | No | References to components, interfaces or decisions in one adopted architecture revision; omission preserves selection and [] explicitly clears it. Applies to: revise_packet. | |
| candidate_set_ids | No | Existing navigation candidate sets supplying the packet's target-readiness context. Applies to: set_packet_target_state, revise_packet. | |
| criterion_results | No | Declared results for the packet's completion criteria; completion, verification and acceptance remain distinct. Applies to: transition_packet. | |
| provider_scope_id | No | Authorized scope identity understood by the configured provider. Applies to: import_packet_evidence_snapshot. Required by: import_packet_evidence_snapshot. | |
| claim_contradicted | No | Whether the declared evidence claim is contradicted, as explicitly reported by its source. Applies to: declare_packet_evidence_claim. | |
| target_binding_ids | No | Existing navigation target-binding identities supporting packet readiness. Applies to: set_packet_target_state, revise_packet. | |
| workspace_revision | No | Provider-declared workspace revision associated with the imported evidence snapshot. Applies to: import_packet_evidence_snapshot. | |
| completion_criteria | No | Ordered packet completion statements; these become stable criteria through the validation-authority workflow. Applies to: revise_packet. | |
| context_snapshot_id | No | Singular navigation-context-snapshot alias, used when context_snapshot_ids is absent or empty. Applies to: set_packet_target_state, revise_packet. | |
| navigation_audit_id | No | Singular navigation-audit alias, used when navigation_audit_ids is absent or empty. Applies to: set_packet_target_state, revise_packet. | |
| successor_packet_id | No | Existing successor/remediation packet identity associated with this lifecycle transition. Applies to: transition_packet. | |
| context_snapshot_ids | No | Existing context snapshots supporting current packet target selection. Applies to: set_packet_target_state, revise_packet. | |
| depends_on_packet_id | No | Existing predecessor packet ID to link as a dependency of the selected packet. Applies to: link_dependency. Required by: link_dependency. | |
| navigation_audit_ids | No | Existing navigation audit IDs supporting packet target readiness. Applies to: set_packet_target_state, revise_packet. | |
| provider_snapshot_id | No | Provider-issued identity of the imported evidence snapshot. Applies to: import_packet_evidence_snapshot. Required by: import_packet_evidence_snapshot. | |
| unresolved_questions | No | Known unresolved engineering/behavior questions retained on this packet; closure gates require resolution rather than anticipatory coding. Applies to: revise_packet. | |
| construction_audit_id | No | ID of the existing packet-construction audit containing the question being resolved. Applies to: get_packet_construction_audit, answer_packet_question, waive_packet_question, block_packet_question. Required by: answer_packet_question, waive_packet_question, block_packet_question. | |
| linked_navigation_refs | No | Existing navigation references supporting the packet-question answer. Applies to: answer_packet_question. | |
| reconciliation_item_id | No | Existing residual identity returned by packet-evidence reconciliation. Applies to: disposition_packet_evidence_residual. Required by: disposition_packet_evidence_residual. | |
| reconciliation_profile | No | Named reconciliation policy/profile to apply to the declared evidence scope. Applies to: initialize_packet_reconciliation. | target-impact-v1 |
| reconciliation_scope_id | No | Existing packet-evidence reconciliation scope identity. Applies to: get_packet_reconciliation, declare_packet_evidence_claim, import_packet_evidence_snapshot, collect_packet_evidence_snapshot, reconcile_packet_evidence. Required by: declare_packet_evidence_claim, import_packet_evidence_snapshot, collect_packet_evidence_snapshot, reconcile_packet_evidence. | |
| reconciliation_disposition | No | Explicit decision for the selected packet-evidence reconciliation residual. Applies to: disposition_packet_evidence_residual. Required by: disposition_packet_evidence_residual. Canonical values: resolved, waived, rejected, escalated, superseded. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true, openWorldHint=true, idempotentHint=false and readOnlyHint=false, so the safety posture is known. The description adds real value beyond that: it discloses that some evidence-collection/audit routes use configured providers or inference, and that transitions/supersession can invalidate current authority. The request_id schema note also conveys the retry/receipt policy. This is meaningful behavioral context layered on the 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?
Content is clearly labeled (Route, Prerequisites, Effects, Exact help) and the purpose is front-loaded, which is good structure. However, the 24-route enumeration plus the effects boilerplate is heavy prose for a multiplexer whose schema already lists the same canonical operations, so some text is redundant with structured fields rather than earning 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?
An output schema exists, so return values need not be explained, and the 78-parameter schema is fully documented. The description supplies purpose, routing, prerequisites, effects and a help pointer — sufficient for an agent to know which route to select. Deeper per-route argument semantics are deliberately deferred to fow_capabilities, which is a reasonable division of labor.
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 78 parameters, setting the baseline at 3. The description adds no per-parameter format or syntax detail but instead delegates exact per-operation parameter guidance to fow_capabilities. With the schema carrying the full burden, 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?
States a specific domain (governed change plus packet readiness, engineering questions, evidence reconciliation, dependencies, risk dispositions) and enumerates all 24 routes, so the resource is unambiguous. It also explicitly routes plan authoring to the sibling fow_packet_author, giving clear differentiation. The aggregate 'manage X, Y, Z' framing is broad but the route list grounds it.
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 Prerequisites line (existing project/change/packet identities and the selected ordinary authority/evidence contract) and an Effects line, plus an explicit alternative ('Work plans are authored with fow_packet_author') and a concrete way to get per-route help via fow_capabilities. It does not, however, spell out when to prefer this tool over fow_packet_advance or fow_packet_inspect, leaving some sibling disambiguation implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
fow_create_projectAIdempotent
Register a uniquely identified local lifecycle project before recording its requirements, goals and implementation work. This creates lifecycle authority rather than repository scaffolding. Single operation; call directly without an operation argument. Prerequisites: Choose a unique lifecycle project ID and human-readable name. Effects: Creates canonical local project authority and its audit event. Repeated creation of the same project_id rejects before further effects; request_id is inert. Does not inspect or create repository files. Exact help (replace operation_name with the selected route): fow_capabilities({"view":"operation","operation_tool":"fow_create_project","operation_name":"call"}).
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Human-readable project or milestone name. | |
| actor | Yes | Identity of the human or agent recording this action; retain the original identity when replaying its request. | |
| project_id | Yes | Canonical lifecycle project ID. Select the existing project explicitly; development Markdown authorities are separate from runtime projects. | |
| request_id | No | Accepted compatibility input; current project creation does not consume request_id or issue a request replay receipt. The canonical project_id is unique and identical repeated creation is rejected before adding effects. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare non-readOnly, idempotent, non-destructive and closed-world, and the description adds real depth beyond them: duplicate project_id is rejected before further effects, request_id is inert, an audit event is created, and repository files are neither inspected nor created. This is exactly the behavioral context an agent needs before invoking a state-mutating 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?
Purpose is front-loaded and the remainder is organized into usable Prerequisites/Effects clauses with zero filler sentences. The trailing 'Exact help' boilerplate and some conceptual jargon slightly dilute an otherwise tight passage, keeping it just short of 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?
An output schema exists, so return values need not be explained. Given that, the description covers purpose, prerequisites, side effects, duplicate-rejection behavior and non-file-system scope — everything needed to call 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%, so the baseline is 3; each parameter already has its own description in the schema. The description reinforces project_id uniqueness and request_id inertness, but that duplicates what the schema fields (particularly request_id) already document, so it adds little beyond the structured data.
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?
States a specific verb+resource ('Register a ... local lifecycle project') and immediately scopes it ('lifecycle authority rather than repository scaffolding'), which separates it from repo-file creation and from downstream siblings like fow_register_requirement and fow_goal. An agent can tell what this does and where it sits in the sequence without opening the schema.
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 'Single operation; call directly without an operation argument' and lists prerequisites (pick a unique project_id and human-readable name). It gives clear conditions for use but does not route to a named alternative tool (it only points at fow_capabilities for help), so full when/when-not/alternatives coverage is not reached.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
fow_external_workADestructive
Hand a complete revision-bound packet to an external coding agent, export its executable Markdown plan, derive dependency-ordered TODOs and reconcile declared outcomes. Optional provider execution is a separate explicitly selected route. Route with operation: set_mode, select_executor, negotiate_provider, upgrade_validation, criteria, reconcile_criteria, add_criterion, edit_criterion, remove_criterion, validation, provider_validation, export_plan, todo, report_outcome, reconcile_outcome. Prerequisites: Use an existing packet/plan and issued authority. Select exactly one executor before execution. Effects: Reads derive criteria/readiness/TODO without executing code. Mutations record selection, criterion authority, artifacts and host outcomes; negotiate_provider alone explicitly probes optional provider support. Reporting completion does not verify or accept it. Exact help (replace operation_name with the selected route): fow_capabilities({"view":"operation","operation_tool":"fow_external_work","operation_name":"set_mode"}).
| Name | Required | Description | Default |
|---|---|---|---|
| actor | No | Identity of the human or agent recording this action; retain the original identity when replaying its request. | |
| payload | No | Standalone execution/PVP operation input. Copy issued spec/plan revisions and authority fingerprint where required; TODO/outcome identities and declared verification obligations must match the issued plan, including offline work. Applies to: set_mode, select_executor, negotiate_provider, upgrade_validation, reconcile_criteria, add_criterion, edit_criterion, remove_criterion, validation, provider_validation, export_plan, todo, report_outcome, reconcile_outcome. Required by: set_mode, select_executor, negotiate_provider, upgrade_validation, reconcile_criteria, add_criterion, edit_criterion, remove_criterion, export_plan, report_outcome, reconcile_outcome. Exact required/optional dotted fields and guidance: fow_capabilities(view=operation, operation_tool=fow_external_work, operation_name=<selected route>). | |
| change_id | Yes | Canonical owning change ID; when address resolution permits omission, the packet/campaign must resolve unambiguously. | |
| operation | Yes | Operation selector for this multiplexer; use a canonical route listed below. Canonical values: set_mode, select_executor, negotiate_provider, upgrade_validation, criteria, reconcile_criteria, add_criterion, edit_criterion, remove_criterion, validation, provider_validation, export_plan, todo, report_outcome, reconcile_outcome. | |
| packet_id | Yes | Canonical packet identity returned by authoring; it identifies the bounded implementation work. | |
| project_id | Yes | Canonical lifecycle project ID. Select the existing project explicitly; development Markdown authorities are separate from runtime projects. | |
| request_id | No | Caller-owned retry identity. For receipted mutations replay the same actor and contents; changed contents can conflict. Inspect exact operation help for its receipt policy. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true, openWorldHint=true and non-idempotent, so the description's job is to add context. It does: reads derive criteria/readiness/TODO without executing code; mutations record authority and outputs; negotiate_provider is the only route that probes optional provider support; reporting completion does not verify or accept it. That last point is important behavioral context not covered by 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?
It is front-loaded and organized with Route/Prerequisites/Effects paragraphs, which gives structure. However, the opening sentence is dense, the operation list duplicates the enum in the schema, and the help pointer is lengthy; the text is adequate but not tight.
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?
An output schema exists, so return values need not be explained. For a 7-parameter, 15-operation multiplexer the description covers routing, prerequisites and the key behavioral distinction between read and mutation routes, and points to fow_capabilities for per-operation field details. It is complete enough to call correctly, though per-operation semantics remain behind the capabilities 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 the schema itself already describes actor, payload, change_id, packet_id, project_id, request_id and the operation enum. The description names the operations but adds little about individual parameter semantics beyond pointing to fow_capabilities for exact dotted fields. 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 opens with a broad summary of handing a packet to an external coding agent, exporting plans, deriving TODOs and reconciling outcomes, then lists 15 operations. That is a consistent descriptor for a multiplexer, so the purpose is not misleading, but it does not establish what fow_external_work owns relative to siblings like fow_packet_advance or fow_run. Its identity is only distinguishable by the operation 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?
It states prerequisites (existing packet/plan and issued authority; exactly one executor selected before execution) and separates read operations from mutations. It does not tell the agent when to choose a sibling tool instead, but within this tool the read/mutation split and executor rule are clear routing guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
fow_generate_artifactsA
Render and retain project lifecycle documents using an existing artifact profile in a durable local job. The host publishes or saves returned artifacts separately. Single operation; call directly without an operation argument. Prerequisites: Select an existing configured artifact profile and project. Effects: Schedules local rendering and stores immutable artifact generations from ledger/profile data. No model/provider or repository publication is performed. Exact help (replace operation_name with the selected route): fow_capabilities({"view":"operation","operation_tool":"fow_generate_artifacts","operation_name":"call"}).
| Name | Required | Description | Default |
|---|---|---|---|
| actor | Yes | Identity of the human or agent recording this action; retain the original identity when replaying its request. | |
| profile_id | Yes | Configured artifact-generation profile identity; selects rendering policy, not a model endpoint. | |
| project_id | Yes | Canonical lifecycle project ID. Select the existing project explicitly; development Markdown authorities are separate from runtime projects. | |
| request_id | No | Caller-owned retry identity. For receipted mutations replay the same actor and contents; changed contents can conflict. Inspect exact operation help for its receipt policy. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Goes well beyond the annotations: it discloses the durable local job, that stored generations are immutable, and that no model/provider call or repository publication occurs — the latter being important given openWorldHint=false. The request_id retry semantics are also surfaced. It stops short of stating auth/permission requirements or expected duration.
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 first sentence front-loads verb, resource, and mechanism, and the following lines are clearly segmented into Single operation / Prerequisites / Effects. Slightly verbose, and the long help pointer sentence is heavy, but nothing is redundant with structured fields.
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?
An output schema exists, so return values need not be explained, and the description covers prerequisites, effects, non-effects, and retry behavior for a mutation with idempotentHint=false. The main gap is the missing pointer to fow_get_artifacts as the retrieval counterpart.
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 four parameters are already documented (actor, profile_id, project_id, request_id) with meaningful semantics like 'selects rendering policy, not a model endpoint'. The description adds little parameter-level meaning beyond echoing that an existing profile and project must be selected, so the 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?
States a specific verb and resource: 'Render and retain project lifecycle documents using an existing artifact profile in a durable local job.' It also delimits scope by noting the host publishes/saves artifacts separately, so the agent can tell rendering from publishing. It does not name the read-side sibling (fow_get_artifacts), so sibling differentiation is implicit rather than explicit.
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?
'Single operation; call directly without an operation argument' plus an explicit Prerequisites line gives clear invocation context. However, it never states when NOT to use it or which sibling to reach for instead (e.g., fow_get_artifacts for retrieval), so the when-vs-alternatives guidance is absent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
fow_get_artifactsARead-onlyIdempotent
Retrieve retained artifact generations and optionally their document contents, filtered by generation or artifact kind. Single operation; call directly without an operation argument. Prerequisites: Select an existing project; generation_id optionally filters to one retained generation. Effects: Read-only stored metadata and optional content from all retained generations when generation_id is omitted. The coding host saves returned content using its own file tools. Exact help (replace operation_name with the selected route): fow_capabilities({"view":"operation","operation_tool":"fow_get_artifacts","operation_name":"call"}).
| Name | Required | Description | Default |
|---|---|---|---|
| project_id | Yes | Canonical lifecycle project ID. Select the existing project explicitly; development Markdown authorities are separate from runtime projects. | |
| artifact_kind | No | Optional artifact-type filter within the selected generation; omission returns all retained kinds. | |
| generation_id | No | Stored immutable artifact-generation ID; omit it to read all retained generations for this project, subject to artifact_kind filtering. | |
| include_content | No | Whether to include stored artifact body text as well as metadata. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly/idempotent/non-destructive/closed-world, and the description adds real value beyond them: breadth of the read when generation_id is omitted (all retained generations), and the important operational note that the coding host writes returned content to disk using its own file tools rather than this tool persisting anything. No indication of pagination or result-size 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?
Front-loads the purpose, then uses short labeled lines (Single operation / Prerequisites / Effects) that are easy to scan. The trailing templated capabilities-help sentence is boilerplate filler that slightly dilutes an otherwise tight definition.
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 an output schema present, return values need not be described, and the description covers prerequisites, filtering scope, and content handling adequately. Minor omissions remain around pagination or volume expectations for large generation sets.
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 project_id, generation_id, artifact_kind and include_content with semantics comparable to the description. The description repeats the filtering behavior without adding syntax or format detail beyond it, so the 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?
States a specific verb+resource ('Retrieve retained artifact generations and optionally their document contents') with the filtering axes named. It is clearly distinguishable from the write-side sibling fow_generate_artifacts and from the other fow_* 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 says it is a single operation with no operation argument, and lists the prerequisite (select an existing project) plus how generation_id narrows scope. It lacks an explicit 'when not to use / use X instead' pointer back to fow_generate_artifacts for creating artifacts.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
fow_get_jobARead-onlyIdempotent
Retrieve the status, result or failure of one previously scheduled durable job without starting or retrying it. Single operation; call directly without an operation argument. Prerequisites: Use the durable job ID returned when work was scheduled. Effects: Read-only job status/result/error; polling does not start or retry execution. Exact help (replace operation_name with the selected route): fow_capabilities({"view":"operation","operation_tool":"fow_get_job","operation_name":"call"}).
| Name | Required | Description | Default |
|---|---|---|---|
| job_id | Yes | Durable job ID returned by the operation that scheduled the work. | |
| project_id | Yes | Canonical lifecycle project ID. Select the existing project explicitly; development Markdown authorities are separate from runtime projects. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, so the safety profile is covered. The description adds meaningful behavioral context beyond that: polling does not start or retry execution, which is the exact misunderstanding an agent could have for a job-status 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-loads the core purpose and then labels prerequisites and effects clearly. The trailing fow_capabilities help pointer is useful but adds bulk; still, every sentence carries operational content and none is 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?
With an output schema present, return values need not be spelled out, and the description supplies prerequisites, read-only effects, and a help route. It is complete enough for correct invocation, with the only gap being no explicit tie-break against fow_list_jobs.
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 both job_id and project_id are already documented in the schema, including where the job ID comes from. The description restates the job-ID provenance but adds no format or constraint 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?
States a specific verb and resource ('Retrieve the status, result or failure of one previously scheduled durable job') and adds a scope boundary ('without starting or retrying it') that distinguishes it from scheduling or list-style siblings like fow_list_jobs. An agent can identify the tool's role without opening the schema.
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?
Gives the prerequisite (use the durable job ID returned when work was scheduled) and clarifies it is a single operation requiring no operation argument. It does not explicitly contrast with the sibling fow_list_jobs, so an agent must infer the one-job-vs-many-jobs split.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
fow_get_requirementARead-onlyIdempotent
Retrieve one existing requirement, its current canonical state and retained revision history. Single operation; call directly without an operation argument. Prerequisites: Use an existing canonical requirement ID within its project. Effects: Read-only requirement state and immutable revision history; no model/provider calls. Exact help (replace operation_name with the selected route): fow_capabilities({"view":"operation","operation_tool":"fow_get_requirement","operation_name":"call"}).
| Name | Required | Description | Default |
|---|---|---|---|
| project_id | Yes | Canonical lifecycle project ID. Select the existing project explicitly; development Markdown authorities are separate from runtime projects. | |
| requirement_id | Yes | Existing canonical requirement identity, as returned by registration/import. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, non-destructive and closed-world, so safety is covered structurally. The description still adds real value beyond them by disclosing the effects ('no model/provider calls', immutable revision history) and the need for an existing canonical ID — cost, side-effect and precondition context the annotations cannot express.
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 key claim (what is retrieved) is front-loaded, and the Prerequisites/Effects labeling makes it scannable. The trailing 'Exact help (replace operation_name with the selected route)' boilerplate is a bit of templated filler, keeping it out of the top band.
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?
A read-only retrieval tool with an output schema, full annotation coverage and 100% parameter description coverage needs little more than this. The description supplies the operation model, prerequisites, side-effect profile and help routing, leaving no gap an agent must close before calling 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% and both parameters are documented there in detail (canonical lifecycle project ID, requirement identity as returned by registration/import). The description's phrase 'existing canonical requirement ID within its project' only lightly reinforces that, without adding format, syntax or constraint detail beyond the schema — 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?
States a specific verb (Retrieve) and resource (one existing requirement), and explicitly scopes what is returned: current canonical state plus retained revision history. The resource is unique among siblings, so an agent can distinguish it from fow_get_artifacts, fow_get_job, and the mutate-oriented fow_revise_requirement without opening the schema.
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?
Gives invocation guidance ('Single operation; call directly without an operation argument') and a precondition ('Use an existing canonical requirement ID within its project'), which is more than nothing. However, it never states when to prefer this over siblings such as fow_traceability or fow_revise_requirement, and there are no explicit when-not-to-use conditions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
fow_goalA
Describe intended software behavior as use cases, ordered sequences and behavioral expectations, then link and inspect those goal nodes or derive requirement candidates. Route with operation: view, add_use_case, add_sequence, add_behavioral_expectation, link, derive_requirement_candidates. Prerequisites: Use an existing project and canonical graph-node identities for links. Effects: view reads the graph; authoring appends use cases/sequences/expectations/links. Candidate derivation uses the recorded goal graph without inference; candidates do not silently become requirements. Exact help (replace operation_name with the selected route): fow_capabilities({"view":"operation","operation_tool":"fow_goal","operation_name":"view"}).
| Name | Required | Description | Default |
|---|---|---|---|
| view | No | Goal-graph projection selected by operation=view; use the canonical views listed in exact operation help. Applies to: view. Canonical values: summary, nodes, edges, candidates. | summary |
| actor | No | Identity of the human or agent recording this action; retain the original identity when replaying its request. | |
| limit | No | Maximum number of records in this read page; existing route-specific bounds still apply. Applies to: view. | |
| title | No | Short human-readable title of the authored requirement, finding, packet, run step or campaign. Applies to: add_use_case, add_sequence, add_behavioral_expectation. Required by: add_use_case, add_sequence, add_behavioral_expectation. | |
| offset | No | Zero-based position of the first record in this bounded read page. Applies to: view. | |
| category | No | Requirement or behavioral-expectation category recognized by the current lifecycle policy. Applies to: add_behavioral_expectation. Required by: add_behavioral_expectation. Canonical values: functional, non_functional. | |
| relation | No | Canonical directed relationship between the selected source and target goal nodes. Applies to: link. Required by: link. | |
| objective | No | Observable objective of the use case or implementation run. Applies to: add_use_case. Required by: add_use_case. | |
| operation | Yes | Operation selector for this multiplexer; use a canonical route listed below. Canonical values: view, add_use_case, add_sequence, add_behavioral_expectation, link, derive_requirement_candidates. | |
| statement | No | Precise requirement or behavioral expectation describing an observable obligation. Applies to: add_behavioral_expectation. Required by: add_behavioral_expectation. | |
| invariants | No | Conditions that must remain true throughout the scoped behavior or change. Applies to: add_use_case. | |
| project_id | Yes | Canonical lifecycle project ID. Select the existing project explicitly; development Markdown authorities are separate from runtime projects. | |
| request_id | No | Caller-owned retry identity. For receipted mutations replay the same actor and contents; changed contents can conflict. Inspect exact operation help for its receipt policy. | |
| detail_level | No | Read projection detail level; standard is bounded routine context, audit includes the available audit detail. Applies to: view. Canonical values: standard, audit. | standard |
| normal_steps | No | Ordered normal use-case/sequence actions describing the intended successful behavior. Applies to: add_sequence. Required by: add_sequence. | |
| participants | No | Named actors/components participating in the use case or sequence. Applies to: add_sequence. Required by: add_sequence. | |
| failure_steps | No | Ordered steps describing how the use case behaves when its normal operation fails. Applies to: add_sequence. | |
| preconditions | No | Conditions assumed before the use case starts. Applies to: add_use_case. | |
| source_anchor | No | Optional structured source anchor containing source_path, integer line_start and line_end, and optional label; this goal-authoring input is a mapping, distinct from requirement/finding string references. Applies to: add_use_case, add_sequence, add_behavioral_expectation. | |
| postconditions | No | Conditions that should hold after the use case completes. Applies to: add_use_case. | |
| source_goal_id | No | Existing source goal node for the directed goal relationship. Applies to: link. Required by: link. | |
| target_goal_id | No | Existing target goal node for the directed goal relationship. Applies to: link. Required by: link. | |
| use_case_actor | No | Stakeholder/system role performing the use case, distinct from the actor recording this mutation. Applies to: add_use_case. Required by: add_use_case. | |
| alternate_steps | No | Ordered alternative use-case steps, distinct from the normal and failure paths. Applies to: add_sequence. | |
| expected_effects | No | Observable effects expected from the authored use-case or sequence steps. Applies to: add_sequence. Required by: add_sequence. | |
| observable_outcome | No | Result the stakeholder should be able to observe when the use case succeeds. Applies to: add_use_case, add_behavioral_expectation. Required by: add_use_case, add_behavioral_expectation. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare it is not read-only, not idempotent, and non-destructive, and the description adds useful specifics beyond that: 'view reads the graph; authoring appends ... candidates do not silently become requirements.' This clarifies the mutation/read split and the non-promoting behavior of derivation, going beyond the annotation flags.
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 the core purpose, then routing, prerequisites, and effects in labeled blocks. Reasonably tight for a 26-parameter multiplexer, though the help-invocation sentence is somewhat boilerplate.
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?
An output schema exists so return values need not be explained. The description covers routing, prerequisites, and effects for a complex multiplexer; the main omission is discriminating this tool from sibling authoring 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?
Schema description coverage is 100%, so the schema already documents all 26 parameters thoroughly. The description adds only the operation routing values, which the schema also lists. 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 states a specific domain (goal graph) and enumerates the authoring capabilities (use cases, sequences, behavioral expectations, links, derivation). It is clear what the tool does, though it is a multiplexer whose breadth is better conveyed by the operation enumeration than a single crisp verb+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?
It explicitly names the routing operation values and provides prerequisites (existing project, canonical graph-node identities). It doesn't compare against siblings like fow_architecture or fow_register_requirement, but the routing guidance is concrete.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
fow_ground_intentA
Run the configured internal intention-grounding workflow to compare selected goals with implementation evidence. For an external host assignment use fow_semantic. Single operation; call directly without an operation argument. Prerequisites: Requires configured internal inference and the implementation/source provider; host mode uses fow_semantic. Effects: Schedules bounded grounding and records declared audit evidence from actual optional integrations. Missing prerequisites block the job; grounding is not acceptance. Exact help (replace operation_name with the selected route): fow_capabilities({"view":"operation","operation_tool":"fow_ground_intent","operation_name":"call"}).
| Name | Required | Description | Default |
|---|---|---|---|
| actor | Yes | Identity of the human or agent recording this action; retain the original identity when replaying its request. | |
| project_id | Yes | Canonical lifecycle project ID. Select the existing project explicitly; development Markdown authorities are separate from runtime projects. | |
| request_id | No | Caller-owned retry identity. For receipted mutations replay the same actor and contents; changed contents can conflict. Inspect exact operation help for its receipt policy. | |
| goal_node_ids | Yes | Existing use-case/sequence/expectation node IDs selected for intention grounding or correspondence. | |
| source_revision | No | Declared repository/source revision associated with the work or evidence; does not independently prove implementation. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint=false, openWorldHint=true, idempotentHint=false, destructiveHint=false, so the safety profile is already carried. The description goes beyond that by disclosing async behavior ('Schedules bounded grounding'), that audit evidence is recorded from optional integrations, and the important caveat that 'grounding is not acceptance.' It does not spell out receipt/idempotency semantics beyond pointing at the help route.
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 content is front-loaded with the purpose, then prerequisites, then effects, which is a sensible order and each block earns its place. It is slightly redundant ('host mode uses fow_semantic' repeats the earlier external-host routing sentence) and the trailing self-referential help pointer adds length, but nothing is padded.
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?
This is a non-idempotent, open-world mutation that schedules a job, and the description covers prerequisites, blocking behavior, side effects (audit evidence), and the semantic limit of the result. Because an output schema exists, it need not describe return values. The main residual gap is that it does not describe how to observe the scheduled job's progress.
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 all five parameters carry their own descriptions (actor, project_id, request_id, goal_node_ids, source_revision), so the schema does the heavy lifting. The description adds no parameter-level syntax or format detail, which is the expected baseline when coverage is complete.
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 names a specific verb and resource ('Run the configured internal intention-grounding workflow to compare selected goals with implementation evidence'), which is far more precise than the bare tool name. It immediately distinguishes itself from the closest sibling by stating 'For an external host assignment use fow_semantic.' An agent can separate fow_ground_intent from fow_semantic without opening either schema.
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 routing guidance: use this tool for internal intention grounding, use fow_semantic for an external host assignment. Prerequisites are stated concretely ('Requires configured internal inference and the implementation/source provider') along with the consequence of missing them ('Missing prerequisites block the job'). Both when-to-use and when-not-to-use are covered.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
fow_handoverA
Read coherent project progress and lifecycle context or retain a durable handover snapshot that another agent can inspect and resume. Route with operation: create_handover, get_handover, resume_context, ledger_projection, project_state_snapshot, project_progress. Prerequisites: Select current project scope or a retained handover ID. Effects: Read projections are inert; create_handover stores a coherent durable snapshot. It does not execute, accept or rewrite historical work. Exact help (replace operation_name with the selected route): fow_capabilities({"view":"operation","operation_tool":"fow_handover","operation_name":"create_handover"}).
| Name | Required | Description | Default |
|---|---|---|---|
| actor | No | Identity of the human or agent recording this action; retain the original identity when replaying its request. | |
| limit | No | Maximum number of records in this read page; existing route-specific bounds still apply. Applies to: project_state_snapshot. | |
| run_id | No | Existing implementation-run identity returned by create_run. Applies to: create_handover, resume_context. Required by: create_handover. | |
| change_id | No | Canonical owning change ID; when address resolution permits omission, the packet/campaign must resolve unambiguously. | |
| focus_ref | No | Existing lifecycle-object reference selected by focus_kind. Applies to: project_state_snapshot. | |
| operation | Yes | Operation selector for this multiplexer; use a canonical route listed below. Canonical values: create_handover, get_handover, resume_context, ledger_projection, project_state_snapshot, project_progress. | |
| packet_id | No | Canonical packet identity returned by authoring; it identifies the bounded implementation work. | |
| focus_kind | No | Type of lifecycle object anchoring the requested handover projection. Applies to: project_state_snapshot. Canonical values: project, milestone, use_case, sequence, packet, gate. | project |
| project_id | Yes | Canonical lifecycle project ID. Select the existing project explicitly; development Markdown authorities are separate from runtime projects. | |
| request_id | No | Caller-owned retry identity. For receipted mutations replay the same actor and contents; changed contents can conflict. Inspect exact operation help for its receipt policy. | |
| handover_id | No | Identity of an existing durable handover snapshot to inspect or resume. Applies to: get_handover, resume_context. Required by: get_handover. | |
| milestone_ids | No | Explicit existing milestone IDs in the roadmap or handover selection. Applies to: project_progress. Required by: project_progress. | |
| profile_version | No | Requested existing handover projection contract/profile version. Applies to: create_handover. | handover-context-v1 |
| projection_kind | No | Kind of coherent lifecycle projection to retain in the handover. Applies to: ledger_projection. | lifecycle |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnly=false and destructive=false but say nothing about scope of mutation. The description fills that gap well: read projections are inert, create_handover stores a coherent durable snapshot, and it explicitly does not execute, accept, or rewrite historical work. It does not address retry/receipt semantics beyond deferring to operation help, which keeps it short of a 5.
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 around the read/write split, then routing, prerequisites, effects, and a help pointer in that order. Dense but every line carries information; the fow_capabilities boilerplate is slightly long but justified for a six-route multiplexer.
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 an output schema present, return values need no explanation, and the description covers scope split, routing, prerequisites, and non-destructiveness for what is a 6-route, 14-parameter multiplexer. The per-parameter route mapping lives in the schema's "Applies to" annotations, so the description is nearly complete; only route-to-sibling boundary guidance 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 description coverage is 100% across 14 parameters, each already annotated with which route it applies to and which are required, so the schema carries the burden and baseline 3 applies. The description adds only the aggregate prerequisite (project scope or handover ID retained) and route names, without new format or constraint detail.
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 first sentence names a specific resource and two concrete modes: reading lifecycle/progress context versus retaining a durable handover snapshot another agent can resume. The six operation routes are listed, so the tool's dual read/write scope is clear. It stops short of distinguishing itself from nearby siblings like fow_packet_inspect or fow_campaign_inspect, which also deal with progress state.
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?
"Route with operation: ..." plus "Prerequisites: Select current project scope or a retained handover ID" gives real selection context, and the fow_capabilities pointer offers per-route help. However, no guidance is given on when to pick ledger_projection versus project_state_snapshot versus project_progress, nor when a sibling tool would be the better entry point. Usage is implied by route names rather than explained.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
fow_import_srsA
Import an eligible local Markdown SRS as the initial canonical requirement baseline, preserving validated source provenance. Existing baseline changes use fow_revise_srs_baseline. Single operation; call directly without an operation argument. Prerequisites: Supply a structurally/semantically eligible initial local SRS under the selected profile. Effects: Validates source provenance and atomically imports the initial canonical baseline. Existing baseline replacement uses revise_srs_baseline; import is not stakeholder acceptance. Exact help (replace operation_name with the selected route): fow_capabilities({"view":"operation","operation_tool":"fow_import_srs","operation_name":"call"}).
| Name | Required | Description | Default |
|---|---|---|---|
| actor | Yes | Identity of the human or agent recording this action; retain the original identity when replaying its request. | |
| project_id | Yes | Canonical lifecycle project ID. Select the existing project explicitly; development Markdown authorities are separate from runtime projects. | |
| request_id | No | Caller-owned retry identity. For receipted mutations replay the same actor and contents; changed contents can conflict. Inspect exact operation help for its receipt policy. | |
| source_path | Yes | UTF-8 .md/.markdown SRS file on the Flower SERVER filesystem, not automatically the coding client's disk. The expanded/resolved path must stay within the configured import root when one is set; source/profile/currentness checks apply. | |
| standard_profile | Yes | Supported SRS Markdown validation profile; use the same profile when preparing, validating and importing a source. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations supplied, the description carries the load and does reasonably well: it discloses provenance validation, atomic import semantics, the eligibility prerequisite, and the non-implication of stakeholder acceptance, and points to the operation help for receipt policy. It still doesn't cover permissions/auth required to import a canonical baseline or whether an import can be undone.
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 statement of purpose followed by clearly labelled Prerequisites/Effects lines — efficient structure. The final 'exact help' sentence is boilerplate phrased generically for a route-based tool and reads as marginal noise on a single-operation tool.
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, effects, sibling routing, and invocation mode, but with no output schema the description never says what the agent receives back (baseline identifier, receipt, revision record). For a baseline-mutating operation that gap is a modest but real incompleteness.
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 five parameters carry schema descriptions (source_path explains the server-filesystem constraint and import root; request_id explains retry identity), so the schema does the heavy lifting. The description only adds that the source must be eligible under the selected profile, which is confirmatory rather than new. 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?
States a specific verb and resource ('Import ... Markdown SRS as the initial canonical requirement baseline') and scopes it to the *initial* baseline, explicitly naming fow_revise_srs_baseline as the tool for existing baseline changes. An agent can distinguish this from its lifecycle siblings without opening any schema.
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?
Gives an explicit alternative and the condition selecting it ('Existing baseline changes use fow_revise_srs_baseline'), plus stated prerequisites (eligible local SRS under the selected profile) and a scope exclusion ('import is not stakeholder acceptance'). It also tells the agent to call directly without an operation argument.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
fow_interactionBDestructive
Connect this conversation to its durable lifecycle project, discover available work and select one bounded work surface using the issued choices and frame. Route with operation: status, discover, open, select_project, switch_project, clear_project, select, switch, clear, frame, resolve, goal_hook. Prerequisites: Supply the host's stable interaction_session_ref and explicit selection intent. Effects: Persists conversation context, lenses and continuations. Optional configured discovery providers may be consulted; selecting a surface does not authorize its work. Exact help (replace operation_name with the selected route): fow_capabilities({"view":"operation","operation_tool":"fow_interaction","operation_name":"status"}).
| Name | Required | Description | Default |
|---|---|---|---|
| area | No | Integer lifecycle-area choice issued by the current discovery/frame. Use its displayed number; do not supply an area name or invent an index. Applies to: select, switch. Required by: select, switch. | |
| actor | No | Identity of the human or agent recording this action; retain the original identity when replaying its request. | orchestrator |
| limit | No | Maximum number of records in this read page; existing route-specific bounds still apply. Applies to: discover. | |
| query | No | Bounded search text used by interaction discovery within the selected work surface. Applies to: discover. | |
| trigger | No | Declared interaction-continuation trigger used to select the next bounded attention surface. Applies to: goal_hook. Required by: goal_hook. Canonical values: goal_started, goal_resumed, lens_changed, bounded_work_completed, asynchronous_wake, breath_resumed, context_reconstructed, structural_no_progress. | |
| frame_ref | No | Issued interaction frame reference used to continue the same bounded selection/page. Applies to: resolve. Required by: resolve. | |
| operation | No | Operation selector for this multiplexer; use a canonical route listed below. Canonical values: status, discover, open, select_project, switch_project, clear_project, select, switch, clear, frame, resolve, goal_hook. | status |
| selection | No | Integer work-item choice issued by the current interaction frame. Retain its frame_ref and use the displayed number. Applies to: resolve. Required by: resolve. | |
| project_id | No | Canonical lifecycle project ID. Select the existing project explicitly; development Markdown authorities are separate from runtime projects. | |
| request_id | No | Caller-owned retry identity. For receipted mutations replay the same actor and contents; changed contents can conflict. Inspect exact operation help for its receipt policy. | |
| page_action | No | Requested interaction-page navigation action using the issued frame, not a new project selection. Applies to: discover. Canonical values: more, refine, stop. | refine |
| trigger_ref | No | Reference to the event/evidence that caused the declared interaction trigger. Applies to: goal_hook. | |
| breath_available | No | Host-declared availability for the interaction continuation boundary; does not authorize work or accept results. Applies to: goal_hook. | |
| project_selection | No | Integer project choice issued by project discovery. Use the displayed number for the current interaction session; project_id is the separate explicit identity input. Applies to: select_project, switch_project. | |
| interaction_session_ref | Yes | Host-provided stable interaction-session identity; retain it across calls within the same conversation. | |
| previous_anchor_fingerprint | No | Previously issued interaction anchor fingerprint used to detect continuation drift. Applies to: goal_hook. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false, destructiveHint=true and openWorldHint=true, so mutation risk and external reach are known. The description adds genuine context beyond that in the Effects line ('Persists conversation context, lenses and continuations', external providers 'may be consulted', and 'selecting a surface does not authorize its work'), but it never maps destructive behavior to specific routes (clear, clear_project) or states auth/permission needs, so it only partially fills the 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 text is front-loaded with purpose and then cleanly sectioned into Route, Prerequisites, Effects, and an 'Exact help' pointer, making it easy to scan. It is fairly dense with neologisms and repeats the route list already present in the operation enum, but every section is functionally 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?
For a 12-route multiplexer this is thin: the description lists operation names but never explains what distinguishes select from switch from frame from resolve, which is exactly what an agent needs to choose a route. Output values need not be explained since an output schema exists, and the pointer to fow_capabilities partially mitigates the gap, but it forces a second call to become actionable.
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 16 parameters thoroughly, including which routes each applies to. The description adds only the prerequisite that interaction_session_ref and selection intent must be supplied, so the baseline 3 for a fully-documented schema 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 names a concrete set of verbs (connect, discover, select) and a resource (the lifecycle project/work surface) and enumerates the 12 routes, which helps an agent see the multiplexer's scope. However, it is wrapped in invented jargon ('durable lifecycle project', 'bounded work surface', 'issued choices and frame') and never distinguishes this tool from siblings like fow_what_next, fow_goal, or fow_capabilities, so an agent cannot easily tell when this is the right entry point.
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 a real prerequisite ('Supply the host's stable interaction_session_ref and explicit selection intent') and tells the agent to pick a route via the operation selector, plus points to fow_capabilities for exact per-operation help. But it offers no when-to-use vs when-not-to-use guidance and names no alternative sibling tool, leaving route selection to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
fow_list_jobsARead-onlyIdempotent
List the durable jobs already recorded for one lifecycle project without scheduling additional work. Single operation; call directly without an operation argument. Prerequisites: Select an existing project. Effects: Read-only durable job inventory; does not schedule, retry or cancel jobs. Exact help (replace operation_name with the selected route): fow_capabilities({"view":"operation","operation_tool":"fow_list_jobs","operation_name":"call"}).
| Name | Required | Description | Default |
|---|---|---|---|
| project_id | Yes | Canonical lifecycle project ID. Select the existing project explicitly; development Markdown authorities are separate from runtime projects. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare read-only, idempotent, non-destructive behavior. The description adds useful context beyond that: it is a durable job inventory and does not schedule, retry, or cancel jobs.
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 purpose first, then invocation, prerequisites, and effects. The trailing exact-help call is useful but slightly less essential, keeping it from a full 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?
Given rich annotations, full parameter schema coverage, and an output schema, the description supplies everything an agent needs: purpose, invocation style, prerequisite, and side-effect boundaries. Return values are appropriately left to the 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 the single project_id parameter thoroughly. The description only adds that the project must be selected explicitly, which is already implied by the schema description; 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?
States a specific verb and resource: 'List the durable jobs already recorded for one lifecycle project.' It adds scope and an exclusion ('without scheduling additional work'), but does not explicitly differentiate itself from the related fow_get_job 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?
Gives clear invocation guidance ('call directly without an operation argument') and a prerequisite ('Select an existing project'). It also implies when not to use it by saying it does not schedule work, though it names no sibling alternative explicitly.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
fow_packet_advanceADestructive
Move an existing packet through its ordinary lifecycle gates and admitted provider delivery, or only synchronize authoring deltas without starting execution. Semantic decisions answer the exact current gate. Route ordinary progression with mode=advance (default) or sync_only. Gate responses use decision.operation: accept_work_plan, reject_work_plan, accept_residual_risk, retry_provider_rejection, record_workspace_review, resolve_reconciliation_residual. Prerequisites: Inspect the current packet gate and retain issued revision/fingerprint identities. Effects: advance may synchronize provider deltas, persist transitions and reach START when admitted. mode=sync_only delivers deltas without START and rejects gate decisions. Explicit provider routes require compatible configured support; failures preserve truthful recovery. Exact help (replace operation_name with the selected route): fow_capabilities({"view":"operation","operation_tool":"fow_packet_advance","operation_name":"advance"}).
| Name | Required | Description | Default |
|---|---|---|---|
| mode | No | Packet advancement policy: advance evaluates ordinary progression; sync_only delivers pending deltas without START. Applies to: advance. Canonical values: advance, sync_only. | advance |
| actor | Yes | Identity of the human or agent recording this action; retain the original identity when replaying its request. | |
| decision | No | Gate response object routed by decision.operation. Omit it for ordinary advance; obtain the current gate and its required decision fields before replying. sync_only rejects semantic decisions. Applies to: accept_work_plan, reject_work_plan, accept_residual_risk, retry_provider_rejection, record_workspace_review, resolve_reconciliation_residual. Required by: accept_work_plan, reject_work_plan, accept_residual_risk, retry_provider_rejection, record_workspace_review, resolve_reconciliation_residual. Exact required/optional dotted fields and guidance: fow_capabilities(view=operation, operation_tool=fow_packet_advance, operation_name=<selected route>). | |
| change_id | No | Canonical owning change ID; when address resolution permits omission, the packet/campaign must resolve unambiguously. | |
| packet_id | Yes | Canonical packet identity returned by authoring; it identifies the bounded implementation work. | |
| project_id | Yes | Canonical lifecycle project ID. Select the existing project explicitly; development Markdown authorities are separate from runtime projects. | |
| request_id | Yes | Caller-owned retry identity. For receipted mutations replay the same actor and contents; changed contents can conflict. Inspect exact operation help for its receipt policy. | |
| expected_plan_revision | No | Plan revision issued with the work or gate being acted on; do not replace stale issued authority to legitimize old work. | |
| expected_spec_revision | No | Packet specification revision issued with the work or gate being acted on; mismatch rejects stale mutation. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true, idempotentHint=false and openWorldHint=true; the description adds real behavioral context beyond them — what advance persists and that it can reach START when admitted, that sync_only delivers deltas without START and rejects gate decisions, that explicit provider routes require compatible configured support, and that failures preserve truthful recovery. It stops short of detailing what state is destroyed or the retry/conflict mechanics, which the schema partially carries.
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?
Purpose is front-loaded, followed by routing, prerequisites, effects, and a precise help pointer, so each block is scannable. It is dense with domain jargon and the 'Semantic decisions answer the exact current gate' line is terse to the point of opacity, but no sentence is pure 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?
For a 9-parameter, gated mutation tool with an output schema available, the description covers prerequisites, effects, mode routing, and failure behavior adequately. It relies on the fow_capabilities pointer for exact per-route required fields, which is a reasonable division of labor but leaves the agent to make a follow-up call.
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, but the description goes further by explaining mode semantics, how decision.operation routes each gate response, and the need to retain issued revision/fingerprint identities (expected_plan_revision/expected_spec_revision). It adds meaning beyond the schema rather than restating 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?
States a concrete verb+resource ('Move an existing packet through its ordinary lifecycle gates') and splits it into the two operating modes (advance vs sync_only), so the agent knows this is a lifecycle-progression tool rather than authoring or inspection. It does not explicitly name siblings such as fow_packet_inspect or fow_packet_author, so it falls short of full 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?
Gives clear routing criteria ('Route ordinary progression with mode=advance (default) or sync_only'), states the prerequisite to inspect the current gate first, and enumerates the gate decision routes via decision.operation. There is no explicit 'do not use this when X, use tool Y' exclusion, but the context for correct usage is well covered.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
fow_packet_authorADestructive
Define the bounded implementation work in a packet: complete instructions, stable plan units, dependencies, producer/consumer contracts and checks. Resolve engineering questions through ordinary authoring before execution. Route with operation: start_packet, revise_packet, replace_plan, resolve_questions, answer_gate, add_unit, revise_unit, remove_unit, rebind_unit, set_dependencies. Prerequisites: Use current specification/plan revisions and ordinary packet authority; investigate and close semantic gaps before dispatch. Effects: Creates/revises packets and complete ordered units/contracts/dependencies. Removal/replacement changes current plan authority; provider-target deltas may be queued, without executing coding work. Exact help (replace operation_name with the selected route): fow_capabilities({"view":"operation","operation_tool":"fow_packet_author","operation_name":"start_packet"}).
| Name | Required | Description | Default |
|---|---|---|---|
| unit | No | Complete bounded implementation-unit declaration, including instructions, targets, producer/consumer contracts and verification obligations as required by plan authority. Applies to: add_unit. Exact required/optional dotted fields and guidance: fow_capabilities(view=operation, operation_tool=fow_packet_author, operation_name=<selected route>). | |
| actor | Yes | Identity of the human or agent recording this action; retain the original identity when replaying its request. | |
| title | No | Short human-readable title of the authored requirement, finding, packet, run step or campaign. Applies to: start_packet, revise_packet. Required by: start_packet. | |
| intent | No | Engineering statement of the packet's intended observable behavior and authorized scope. Applies to: start_packet, revise_packet. Required by: start_packet. | |
| answers | No | Structured resolutions of the packet's currently open engineering questions, using their issued identities. Applies to: replace_plan, resolve_questions. Required by: resolve_questions. Exact required/optional dotted fields and guidance: fow_capabilities(view=operation, operation_tool=fow_packet_author, operation_name=<selected route>). | |
| purpose | No | Canonical packet purpose, including ordinary implementation or governed semantic remediation. Applies to: start_packet. Required by: start_packet. Canonical values: implementation, remediation. | implementation |
| goal_ids | No | Existing goal graph IDs governing the packet or campaign scope. Applies to: start_packet, revise_packet. | |
| in_scope | No | Behaviors and implementation boundaries explicitly included in this packet. Applies to: start_packet, revise_packet. | |
| response | No | Structured answer to the issued packet gate; use its current fingerprint and exact response contract. Applies to: answer_gate. Required by: answer_gate. Exact required/optional dotted fields and guidance: fow_capabilities(view=operation, operation_tool=fow_packet_author, operation_name=<selected route>). | |
| change_id | No | Canonical owning change ID; when address resolution permits omission, the packet/campaign must resolve unambiguously. | |
| operation | No | Operation selector for this multiplexer; use a canonical route listed below. Canonical values: start_packet, revise_packet, replace_plan, resolve_questions, answer_gate, add_unit, revise_unit, remove_unit, rebind_unit, set_dependencies. | add_unit |
| packet_id | No | Canonical packet identity returned by authoring; it identifies the bounded implementation work. | |
| rationale | No | Concrete reasoning supporting this ordinary mutation, decision or selected authority. Applies to: start_packet, revise_packet. | |
| work_plan | No | Complete ordered implementation plan with stable unit identities, dependencies, instructions and checks; accepted mutations give it authority. Applies to: replace_plan. Required by: replace_plan. Exact required/optional dotted fields and guidance: fow_capabilities(view=operation, operation_tool=fow_packet_author, operation_name=<selected route>). | |
| depends_on | No | Existing plan-unit identities this unit must consume before becoming executable. Applies to: set_dependencies. Required by: set_dependencies. | |
| invariants | No | Conditions that must remain true throughout the scoped behavior or change. Applies to: start_packet, revise_packet. | |
| project_id | Yes | Canonical lifecycle project ID. Select the existing project explicitly; development Markdown authorities are separate from runtime projects. | |
| request_id | Yes | Caller-owned retry identity. For receipted mutations replay the same actor and contents; changed contents can conflict. Inspect exact operation help for its receipt policy. | |
| unit_patch | No | Explicit patch to the identified existing plan unit; omitted fields preserve existing values under the ordinary revision rules. Applies to: revise_unit, rebind_unit. Required by: revise_unit, rebind_unit. Exact required/optional dotted fields and guidance: fow_capabilities(view=operation, operation_tool=fow_packet_author, operation_name=<selected route>). | |
| finding_ids | No | Existing assurance finding IDs that the corrective packet is intended to address. Applies to: start_packet. | |
| milestone_id | No | Existing milestone identity governing or filtering the requested scope. Applies to: start_packet. | |
| out_of_scope | No | Explicitly excluded behavior and implementation work for this packet. Applies to: start_packet, revise_packet. | |
| target_policy | No | Packet target-selection policy controlling explicit/provider/materialization readiness requirements. Applies to: start_packet. Canonical values: code_targets_required, documental_only. | code_targets_required |
| active_provider | No | Selected implementation-provider identity for provider-owned packet execution. Applies to: start_packet. | |
| client_unit_key | No | Stable caller-owned unit identity used to reconcile authoring retries and locate the intended plan unit. Applies to: add_unit, revise_unit, remove_unit, rebind_unit, set_dependencies. Required by: revise_unit, remove_unit, rebind_unit, set_dependencies. | |
| requirement_ids | No | Explicit existing requirement IDs defining the selected scope. Applies to: start_packet, revise_packet. | |
| source_revision | No | Declared repository/source revision associated with the work or evidence; does not independently prove implementation. Applies to: start_packet. | |
| gate_fingerprint | No | Fingerprint of the exact issued packet gate being answered; prevents responding to a different current gate. Applies to: answer_gate. Required by: answer_gate. | |
| target_selection | No | Structured existing navigation/plan-unit target selection; inspect its current identities before binding. Applies to: add_unit. | |
| architecture_refs | No | References to components, interfaces or decisions in one adopted architecture revision; omission preserves selection and [] explicitly clears it. Applies to: start_packet, revise_packet. | |
| completion_criteria | No | Ordered packet completion statements; these become stable criteria through the validation-authority workflow. Applies to: start_packet, revise_packet. Required by: start_packet. | |
| unresolved_questions | No | Known unresolved engineering/behavior questions retained on this packet; closure gates require resolution rather than anticipatory coding. Applies to: start_packet, revise_packet. | |
| predecessor_packet_id | No | Existing packet being superseded or corrected by this new packet. Applies to: start_packet. | |
| required_campaign_ids | No | Existing campaigns whose successful verification remains required by this corrective packet/finding. Applies to: start_packet. | |
| expected_plan_revision | No | Plan revision issued with the work or gate being acted on; do not replace stale issued authority to legitimize old work. Applies to: revise_packet, replace_plan, resolve_questions, answer_gate, add_unit, revise_unit, remove_unit, rebind_unit, set_dependencies. Required by: revise_unit, remove_unit, rebind_unit, set_dependencies. | |
| expected_spec_revision | No | Packet specification revision issued with the work or gate being acted on; mismatch rejects stale mutation. Applies to: revise_packet, replace_plan, resolve_questions, answer_gate, add_unit, revise_unit, remove_unit, rebind_unit, set_dependencies. | |
| required_regression_evidence | No | Declared regression evidence obligations that must remain visible until actually satisfied. Applies to: start_packet. | |
| predecessor_dependency_policy | No | Declared dependency treatment when creating a successor/remediation packet. Applies to: start_packet. Canonical values: materialized, context_only. | materialized |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true, readOnlyHint=false, openWorldHint=true, so the safety profile is covered. The description meaningfully adds: removal/replacement changes current plan authority, provider-target deltas may be queued, and — importantly — no coding work is actually executed. That is real context beyond the structured hints.
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 labeled lines (purpose, routing, prerequisites, effects, help) front-load the definition and are scannable. Given a 38-parameter multiplexer, the density is justified, though the help-pointer sentence and some phrasing are slightly redundant with the schema's own capability 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?
With an output schema present, return values need not be described, and the description still covers effects, prerequisites, routing, and where to get per-operation detail. For a tool of this complexity it is nearly complete; only the when-versus-siblings dimension is left implicit.
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% across 38 parameters, so the schema already documents each field's meaning and applicable operations. The description adds only the operation-route enumeration and a pointer to fow_capabilities for exact dotted-field help, which does not meaningfully exceed the schema's own content. 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?
States a specific verb and resource — defining bounded implementation work in a packet — and enumerates what that entails (instructions, stable plan units, dependencies, producer/consumer contracts, checks). The operation list makes the tool's surface très concrete. It doesn't explicitly name a sibling such as fow_packet_advance or fow_packet_inspect to disambiguate, so it falls short of a 5.
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?
"Route with operation: ..." tells how to select a mode, and the Prerequisites line gives a precondition (use current spec/plan revisions, close semantic gaps before dispatch). However, nothing says when to choose this authoring tool over fow_packet_advance or fow_packet_inspect, so guidance is implied rather than explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
fow_packet_inspectARead-onlyIdempotent
Inspect a packet scope, executable units, current gates, requirements, working sheet or retained history without advancing or executing it. Route with view: summary, units, gates, working_sheet, history, requirements. Prerequisites: Use the packet ID and owning change when needed for unambiguous address resolution. Effects: Read-only bounded packet authority/units/gates/history. Provider capability projection is local binding inspection; no provider RPC or coding execution. Exact help (replace operation_name with the selected route): fow_capabilities({"view":"operation","operation_tool":"fow_packet_inspect","operation_name":"summary"}).
| Name | Required | Description | Default |
|---|---|---|---|
| view | No | Read projection selector; canonical view names depend on this tool. Canonical values: summary, units, gates, working_sheet, history, requirements. | summary |
| limit | No | Maximum number of records in this read page; existing route-specific bounds still apply. | |
| offset | No | Zero-based position of the first record in this bounded read page. | |
| change_id | No | Canonical owning change ID; when address resolution permits omission, the packet/campaign must resolve unambiguously. | |
| packet_id | Yes | Canonical packet identity returned by authoring; it identifies the bounded implementation work. | |
| project_id | Yes | Canonical lifecycle project ID. Select the existing project explicitly; development Markdown authorities are separate from runtime projects. | |
| detail_level | No | Read projection detail level; standard is bounded routine context, audit includes the available audit detail. Canonical values: standard, audit. | standard |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, so the safety profile is covered. The description nonetheless adds value beyond them: 'no provider RPC or coding execution,' the fact that provider capability projection is local binding inspection, and that the packet authority is bounded – all behavioral context an agent could not derive from the annotations alone.
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-loads the core purpose in the first sentence and then layers route, prerequisites, and effects in clearly delineated blocks. The trailing 'Exact help' JSON template is slightly clunky but is a concrete pointer rather than filler, so the overall 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?
For a 7-parameter read tool with an output schema present, the description covers purpose, routing, prerequisites, and effects without needing to explain return values. Nothing an agent needs in order to invoke it correctly 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 description coverage is 100%, so every parameter is already documented, and the tool has no enums. The description restates the view routes (summary, units, gates, working_sheet, history, requirements) and the packet/change address prerequisite, but adds no format, default, or interaction detail beyond the schema, which is the expected 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?
States a specific verb (inspect) and resource (packet scope: units, gates, requirements, working sheet, history) and immediately bounds it with 'without advancing or executing it,' which cleanly separates it from the fow_packet_advance sibling. An agent can tell what it does and what it does not do without opening the schema.
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 'without advancing or executing it' clause plus the route list tells the agent when this is the right call versus the advance/mutation path, and it names a prerequisite (packet ID and owning change for unambiguous resolution). It stops short of explicitly naming fow_packet_advance as the alternative, so it is clear context rather than a full when/when-not routing table.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
fow_promote_milestoneA
Create planned milestone scope from canonical requirements, dependencies and entry/exit/risk policies. Actual result acceptance uses fow_accept_milestone. Single operation; call directly without an operation argument. Prerequisites: Supply canonical requirements, dependency closure and planning entry/exit/risk policies. Effects: Records planned milestone scope. Nonempty acceptance_evidence is rejected; promotion does not accept the result. Exact help (replace operation_name with the selected route): fow_capabilities({"view":"operation","operation_tool":"fow_promote_milestone","operation_name":"call"}).
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Human-readable project or milestone name. | |
| actor | Yes | Identity of the human or agent recording this action; retain the original identity when replaying its request. | |
| project_id | Yes | Canonical lifecycle project ID. Select the existing project explicitly; development Markdown authorities are separate from runtime projects. | |
| request_id | No | Caller-owned retry identity. For receipted mutations replay the same actor and contents; changed contents can conflict. Inspect exact operation help for its receipt policy. | |
| exit_policy | Yes | Declared exit/acceptance conditions for the milestone's planned scope. | |
| entry_policy | Yes | Declared entry conditions for the milestone's planned scope. | |
| requirement_ids | Yes | Explicit existing requirement IDs defining the selected scope. | |
| risk_disposition | Yes | Declared treatment of milestone planning risks. | |
| acceptance_evidence | No | Reserved compatibility input; milestone promotion plans scope and rejects nonempty acceptance evidence. Use fow_accept_milestone for actual governed acceptance. | |
| dependency_closure_ids | Yes | Requirement IDs included in the milestone's explicit dependency closure. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint=false and destructiveHint=false; the description goes further by disclosing the observable effect ('Records planned milestone scope') and a hard failure condition (nonempty acceptance_evidence is rejected). It does not discuss retry/idempotency behavior despite idempotentHint=false, though the request_id parameter description in the schema partly covers that.
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 the alternative route, then labeled Prerequisites/Effects lines that scan quickly. The trailing 'Exact help' boilerplate with the operation_name substitution instruction is lower-value and slightly bloats an otherwise tight definition.
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 10-parameter governed mutation with an output schema, the description covers purpose, prerequisites, effect, rejection rule, and the sibling alternative, so an agent has enough to invoke it correctly. Minor gaps remain around failure/retry semantics, which the request_id schema description only partly addresses.
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 genuine meaning beyond the schema for the two highest-risk inputs: acceptance_evidence is a 'reserved compatibility input' that must stay empty, and the requirement/dependency/policy inputs are framed as prerequisites the caller must supply. That is useful routing information, though no syntax or format detail is 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?
States a specific verb and resource ('Create planned milestone scope') and immediately names the contrasting sibling ('Actual result acceptance uses fow_accept_milestone'), so the agent can separate scope planning from acceptance without opening either schema. The scope is further bounded by the inputs it draws from (requirements, dependencies, entry/exit/risk policies).
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?
Gives explicit when-to-use ('Create planned milestone scope...'), when-not (rejects nonempty acceptance_evidence; promotion does not accept the result), and the alternative route (fow_accept_milestone). It also answers the invocation-shape question directly: 'Single operation; call directly without an operation argument.'
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
fow_record_verificationA
Record evidence actually obtained for a requirement, including verification method, outcome, reference and declared metadata. This records a result rather than running a test. Single operation; call directly without an operation argument. Prerequisites: Use an existing requirement and evidence actually obtained by the declared verification method. Effects: Appends declared evidence/provenance. It does not execute tests, audit a provider or grant acceptance. Exact help (replace operation_name with the selected route): fow_capabilities({"view":"operation","operation_tool":"fow_record_verification","operation_name":"call"}).
| Name | Required | Description | Default |
|---|---|---|---|
| actor | Yes | Identity of the human or agent recording this action; retain the original identity when replaying its request. | |
| outcome | Yes | Declared verification result, preserving failed or unexecuted obligations as such. Canonical values: passed, failed, partial. | |
| metadata | No | Declared verification metadata, such as provenance and execution details; not independent proof of the result. | |
| reference | Yes | Locator/reference of actual verification evidence; evidence provenance remains explicitly declared. | |
| project_id | Yes | Canonical lifecycle project ID. Select the existing project explicitly; development Markdown authorities are separate from runtime projects. | |
| request_id | No | Caller-owned retry identity. For receipted mutations replay the same actor and contents; changed contents can conflict. Inspect exact operation help for its receipt policy. | |
| requirement_id | Yes | Existing canonical requirement identity, as returned by registration/import. | |
| verification_kind | Yes | Canonical verification category identifying how the declared requirement evidence was obtained. Canonical values: tested_deterministically, tested_live. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations mark this as a non-read-only, non-idempotent, non-destructive mutation; the description is consistent and goes further by saying it 'appends declared evidence/provenance' and explicitly disclaims test execution, provider auditing, and acceptance granting. Retry/receipt behavior is only gestured at ('inspect exact operation help'), leaving idempotency semantics thin given idempotentHint=false.
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 purpose followed by labeled Prerequisites/Effects blocks, which is easy for an agent to scan. The trailing 'Exact help' pointer with a literal fow_capabilities call is useful but adds length; overall every block 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?
An output schema exists, so return values need no explanation, and the description covers purpose, prerequisites, effects, and single-operation invocation. Given 8 parameters and a retry/receipt surface implied by request_id, the reliance on external operation help for receipt policy is the only real 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% across all 8 parameters, so the schema already carries the semantics. The description echoes the key inputs (verification method, outcome, reference, declared metadata) and reinforces that evidence must be 'actually obtained', but adds no format, enum, or constraint detail beyond the structured fields. 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?
States a specific verb and resource (record evidence obtained for a requirement) plus the concrete payload it captures (method, outcome, reference, metadata). The sentence 'This records a result rather than running a test' actively distinguishes it from execution-oriented siblings such as fow_run or fow_assurance, so an agent can route without opening the schema.
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 prerequisites (an existing requirement and evidence actually obtained by the declared verification method) and boundary conditions (does not execute tests, audit a provider, or grant acceptance). It also routes to fow_capabilities for exact operation help. It stops short of naming the sibling tool to use instead when the goal is actually running a test, which would make the when-not guidance complete.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
fow_register_requirementA
Record one observable software requirement and its source in the selected lifecycle project. Use the returned requirement ID for goals, milestone scope and verification. Single operation; call directly without an operation argument. Prerequisites: Use an existing project and an observable requirement statement. Effects: Appends canonical requirement authority with declared source anchor and receipt; does not implement or accept it. Exact help (replace operation_name with the selected route): fow_capabilities({"view":"operation","operation_tool":"fow_register_requirement","operation_name":"call"}).
| Name | Required | Description | Default |
|---|---|---|---|
| actor | Yes | Identity of the human or agent recording this action; retain the original identity when replaying its request. | |
| title | Yes | Short human-readable title of the authored requirement, finding, packet, run step or campaign. | |
| category | Yes | Requirement or behavioral-expectation category recognized by the current lifecycle policy. | |
| rationale | Yes | Concrete reasoning supporting this ordinary mutation, decision or selected authority. | |
| statement | Yes | Precise requirement or behavioral expectation describing an observable obligation. | |
| project_id | Yes | Canonical lifecycle project ID. Select the existing project explicitly; development Markdown authorities are separate from runtime projects. | |
| request_id | No | Caller-owned retry identity. For receipted mutations replay the same actor and contents; changed contents can conflict. Inspect exact operation help for its receipt policy. | |
| source_anchor | No | String source locator/reference (path, section, entity or revision as applicable) linking authority to its originating material; this public input is not a structured object. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations cover the safety profile (non-readOnly, non-destructive, non-idempotent), and the description adds real behavior beyond that: it appends 'canonical requirement authority with declared source anchor and receipt' and clarifies it does not implement or accept the requirement. This is meaningful context layered on top of the 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?
Front-loads the core action in the first sentence, then organizes Prerequisites and Effects as labeled lines, closing with a precise help pointer. Every sentence carries information; nothing is redundant.
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 an output schema present, return-value explanation is unnecessary, and the description correctly points the agent at the returned requirement ID. Prerequisites, effects, and single-operation guidance are all present. Minor gap: no explicit pairing to the nearest siblings (get/revise requirement).
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 8 parameters (project_id, statement, rationale, actor, request_id, source_anchor, etc.). The description only alludes to source_anchor and project implicitly, adding no syntax or format 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?
States a specific verb and resource: 'Record one observable software requirement and its source in the selected lifecycle project.' It is distinguishable from fow_revise_requirement by the 'record' framing, though it never names that sibling explicitly to draw the boundary.
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?
Gives concrete usage context: 'Use the returned requirement ID for goals, milestone scope and verification' plus an explicit Prerequisites line ('existing project and an observable requirement statement') and a negative scope ('does not implement or accept it'). No sibling alternatives (e.g. revise/import) are named, so it stops 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.
fow_revise_requirementADestructive
Change the statement or classification of an existing requirement by appending a canonical revision. Keep intent changes explicit so downstream evidence can be reconciled. Single operation; call directly without an operation argument. Prerequisites: Investigate the existing requirement and authorize any actual change of intent first. Effects: Appends an immutable revision; downstream currentness/closure may change. Existing evidence is not rewritten or made current. Exact help (replace operation_name with the selected route): fow_capabilities({"view":"operation","operation_tool":"fow_revise_requirement","operation_name":"call"}).
| Name | Required | Description | Default |
|---|---|---|---|
| actor | Yes | Identity of the human or agent recording this action; retain the original identity when replaying its request. | |
| title | Yes | Short human-readable title of the authored requirement, finding, packet, run step or campaign. | |
| category | Yes | Requirement or behavioral-expectation category recognized by the current lifecycle policy. | |
| rationale | Yes | Concrete reasoning supporting this ordinary mutation, decision or selected authority. | |
| statement | Yes | Precise requirement or behavioral expectation describing an observable obligation. | |
| project_id | Yes | Canonical lifecycle project ID. Select the existing project explicitly; development Markdown authorities are separate from runtime projects. | |
| request_id | No | Caller-owned retry identity. For receipted mutations replay the same actor and contents; changed contents can conflict. Inspect exact operation help for its receipt policy. | |
| source_anchor | No | String source locator/reference (path, section, entity or revision as applicable) linking authority to its originating material; this public input is not a structured object. | |
| requirement_id | Yes | Existing canonical requirement identity, as returned by registration/import. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true and idempotentHint=false; the description adds valuable context beyond that: the revision is immutable, existing evidence is not rewritten or made current, and downstream currentness/closure may change. This is exactly the kind of non-obvious consequence disclosure the annotations cannot convey, though it omits explicit permission/authorization error 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?
Front-loaded with the core action, then cleanly labeled Prerequisites and Effects. Every sentence carries content, though the trailing 'Exact help' template line is somewhat boilerplate-heavy for a description whose sibling fow_capabilities already exists.
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 destructive, non-idempotent mutation with an output schema present, the description covers prerequisites, the append-only semantics, and downstream effects. The receipt/retry story is delegated to the schema's request_id and the help route, which is reasonable given the output schema exists.
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 each of the 9 parameters carries its own description (actor, title, category, rationale, statement, requirement_id, project_id, request_id, source_anchor), so the schema does the heavy lifting. The prose mentions statement and classification but adds no syntax or format detail beyond the schema, so a baseline-plus score 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?
States a specific verb and resource ('Change the statement or classification of an existing requirement') plus the mechanism ('by appending a canonical revision'). Combined with the prerequisite/effects framing, an agent can distinguish this from register_requirement (new) and set_requirement_lifecycle (state) without opening the schema.
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?
Gives clear invocation context ('Single operation; call directly without an operation argument') and explicit prerequisites ('Investigate the existing requirement and authorize any actual change of intent first'). It does not name a sibling alternative to route to when the change is a lifecycle transition rather than a revision, which keeps it 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.
fow_revise_srs_baselineADestructive
Apply a source-proven revision to the current SRS baseline, classifying changes and retaining approval requirements and immutable history. Single operation; call directly without an operation argument. Prerequisites: Use the exact current previous_baseline_id, changed local source and any required governed approval. Effects: Classifies source-proven changes and appends a baseline revision; impacted authority/evidence may require reconciliation. Does not silently accept drift. Exact help (replace operation_name with the selected route): fow_capabilities({"view":"operation","operation_tool":"fow_revise_srs_baseline","operation_name":"call"}).
| Name | Required | Description | Default |
|---|---|---|---|
| actor | Yes | Identity of the human or agent recording this action; retain the original identity when replaying its request. | |
| project_id | Yes | Canonical lifecycle project ID. Select the existing project explicitly; development Markdown authorities are separate from runtime projects. | |
| request_id | No | Caller-owned retry identity. For receipted mutations replay the same actor and contents; changed contents can conflict. Inspect exact operation help for its receipt policy. | |
| source_path | Yes | UTF-8 .md/.markdown SRS file on the Flower SERVER filesystem, not automatically the coding client's disk. The expanded/resolved path must stay within the configured import root when one is set; source/profile/currentness checks apply. | |
| standard_profile | Yes | Supported SRS Markdown validation profile; use the same profile when preparing, validating and importing a source. | |
| previous_baseline_id | Yes | Exact current SRS baseline ID that this source-proven revision is intended to replace. | |
| governed_approval_reference | No | Reference to explicit governed approval required for this lifecycle transition or baseline change. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true, idempotentHint=false and openWorldHint=true, so the safety profile is covered. The description adds real value on top: it is an append ('appends a baseline revision') that retains immutable history and approval requirements, warns that authority/evidence 'may require reconciliation', and states 'Does not silently accept drift' — behavior an agent would not otherwise know.
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 the core action in sentence one, then layered Prerequisites/Effects before the help escape hatch. Slight redundancy ('classifying changes' appears in both the opening and the Effects block), and the verbose fow_capabilities call line costs space, but nothing is truly wasted.
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 destructive, open-world mutation this covers prerequisites, effects, history/approval retention, and reconciliation risk, and an output schema exists so return values need not be described. The only gap is the absence of any explicit pointer to how it differs from fow_import_srs or fow_revise_requirement, which matters given the dense sibling set.
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 seven parameters thoroughly, and this is the baseline of 3. The description reinforces a few of them (previous_baseline_id, changed source, governed approval) but adds no syntax, format, or constraint detail beyond what the fields already spell out.
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?
States a specific verb (apply/revise) and resource (the current SRS baseline), and the qualifier 'source-proven' cleanly separates it from a raw import. It does not, however, name the nearest siblings (fow_import_srs for first-time import, fow_revise_requirement for single requirements), so the agent must infer the boundary from the resource noun alone.
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?
'Single operation; call directly without an operation argument' plus an explicit Prerequisites clause (exact current previous_baseline_id, changed local source, required governed approval) tell the agent when the tool is callable and what must be true first. It stops short of naming an alternative or a when-not condition, so it is clear context without exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
fow_runADestructive
Track who performs the implementation work: record a run, ordered dependent steps and their started/completed/blocked/cancelled states. The coding agent performs those actions outside Flower. Route with operation: create_run, get_run, add_step, link_step_dependency, start_step, complete_step, block_step, cancel_step, complete_run, cancel_run, task_view. Prerequisites: Use a governed change/packet and existing run/step IDs where requested. Effects: Records implementation-run steps, dependencies and execution outcomes; cancellation changes live authority. Flower does not execute the declared step actions. Exact help (replace operation_name with the selected route): fow_capabilities({"view":"operation","operation_tool":"fow_run","operation_name":"create_run"}).
| Name | Required | Description | Default |
|---|---|---|---|
| actor | Yes | Identity of the human or agent recording this action; retain the original identity when replaying its request. | |
| title | No | Short human-readable title of the authored requirement, finding, packet, run step or campaign. Applies to: add_step. Required by: add_step. | |
| action | No | Bounded instruction describing what this implementation-run step will do. Applies to: add_step. Required by: add_step. | |
| reason | No | Explicit reason for the transition, cancellation or continuation action. Applies to: cancel_step, cancel_run. Required by: cancel_step, cancel_run. | |
| run_id | No | Existing implementation-run identity returned by create_run. Applies to: get_run, add_step, link_step_dependency, start_step, complete_step, block_step, cancel_step, complete_run, cancel_run, task_view. Required by: get_run, add_step, link_step_dependency, start_step, complete_step, block_step, cancel_step, complete_run, cancel_run, task_view. | |
| step_id | No | Existing implementation-run step identity. Applies to: link_step_dependency, start_step, complete_step, block_step, cancel_step. Required by: link_step_dependency, start_step, complete_step, block_step, cancel_step. | |
| change_id | No | Canonical owning change ID; when address resolution permits omission, the packet/campaign must resolve unambiguously. | |
| objective | No | Observable objective of the use case or implementation run. Applies to: create_run. Required by: create_run. | |
| operation | Yes | Operation selector for this multiplexer; use a canonical route listed below. Canonical values: create_run, get_run, add_step, link_step_dependency, start_step, complete_step, block_step, cancel_step, complete_run, cancel_run, task_view. | |
| packet_id | No | Canonical packet identity returned by authoring; it identifies the bounded implementation work. | |
| project_id | Yes | Canonical lifecycle project ID. Select the existing project explicitly; development Markdown authorities are separate from runtime projects. | |
| request_id | No | Caller-owned retry identity. For receipted mutations replay the same actor and contents; changed contents can conflict. Inspect exact operation help for its receipt policy. | |
| source_ref | No | Declared source-authority reference attached to the implementation run. Applies to: create_run. | |
| target_refs | No | Explicit implementation/source targets for this bounded run step. Applies to: add_step. | |
| external_ref | No | Declared external execution/reference identity attached to the implementation run. Applies to: create_run. | |
| evidence_refs | No | References to actual supporting evidence; host-declared provenance remains host-declared. Applies to: add_step, complete_step. Required by: complete_step. | |
| step_required | No | Whether completion of this implementation-run step is required for the run to complete. Applies to: add_step. | |
| blocking_reason | No | Concrete reason the implementation-run step cannot advance. Applies to: block_step. Required by: block_step. | |
| orchestrator_ref | No | Identity/reference of the orchestrator responsible for this implementation run. Applies to: create_run. | |
| depends_on_step_id | No | Existing predecessor run-step ID that must complete before the selected step can start. Applies to: link_step_dependency. Required by: link_step_dependency. | |
| completion_reference | No | Reference to the actual evidence/authority supporting completion of this lifecycle object. Applies to: complete_run. Required by: complete_run. | |
| next_expected_action | No | Concrete next action required to unblock or continue this implementation-run step. Applies to: block_step. Required by: block_step. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already flag destructiveHint=true, readOnlyHint=false, idempotentHint=false, but the description adds genuine context beyond them: that the coding agent acts outside Flower, that cancellation changes live authority, and that Flower never executes declared step actions. These are meaningful behavioral disclosures 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?
Front-loads purpose, then routing, prerequisites, effects, and a help pointer in a compact block. Slightly redundant, repeating the non-execution point twice ('performs those actions outside Flower' and 'Flower does not execute the declared step actions').
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?
Because an output schema exists, return values need not be described; the description covers routing, prerequisites, and effects for a complex 22-parameter multiplexer. It reasonably defers exact per-operation detail to fow_capabilities, though that leaves some ambiguity resolvable only by a follow-up call.
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 every parameter is already documented with its per-operation applicability and requiredness. The description adds only the conceptual grouping of operations, so the 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?
States a specific verb and resource ('Track who performs the implementation work: record a run, ordered dependent steps...') and enumerates the eleven canonical routes, so an agent can distinguish it from sibling multiplexers like fow_packet_advance or fow_campaign_advance without opening schemas.
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?
Gives a clear operational context (route via 'operation', prerequisites of a governed change/packet and existing IDs) and points to fow_capabilities for exact per-operation help. It stops short of explicitly naming when to prefer this tool over adjacent siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
fow_semanticA
Prepare bounded semantic assignments for an external host or configured internal model, validate their submitted results and separately adopt their audit evidence. Supported roles are SRS semantic validation and intention grounding. Route with operation: inventory, prepare, inspect, submit, adopt, execute_internal. Prerequisites: Use inventory, then prepare a supported role in host or internal mode; internal needs configured inference. Effects: prepare persists a prompt/authority snapshot; submit validates executor results; adopt records declared provenance. execute_internal explicitly invokes inference. SRS preparation/inspection reads the selected source file. Observed-behavior drafting is unsupported. Exact help (replace operation_name with the selected route): fow_capabilities({"view":"operation","operation_tool":"fow_semantic","operation_name":"inventory"}).
| Name | Required | Description | Default |
|---|---|---|---|
| role | No | Bounded semantic role, currently srs_semantic_validation or intention_grounding; inventory discloses unsupported roles. Applies to: prepare. Required by: prepare. Canonical values: srs_semantic_validation, intention_grounding. | |
| actor | No | Identity of the human or agent recording this action; retain the original identity when replaying its request. | |
| result | No | Executor-authored semantic result matching the prepared assignment schema. submit validates; adopt is a separate authority mutation. Applies to: submit. Required by: submit. Exact required/optional dotted fields and guidance: fow_capabilities(view=operation, operation_tool=fow_semantic, operation_name=<selected route>). | |
| operation | Yes | Operation selector for this multiplexer; use a canonical route listed below. Canonical values: inventory, prepare, inspect, submit, adopt, execute_internal. | |
| project_id | Yes | Canonical lifecycle project ID. Select the existing project explicitly; development Markdown authorities are separate from runtime projects. | |
| request_id | No | Caller-owned retry identity. For receipted mutations replay the same actor and contents; changed contents can conflict. Inspect exact operation help for its receipt policy. | |
| source_path | No | UTF-8 .md/.markdown SRS file on the Flower SERVER filesystem, not automatically the coding client's disk. The expanded/resolved path must stay within the configured import root when one is set; source/profile/currentness checks apply. Applies to: prepare. | |
| executor_ref | No | Identity/reference of the executor that produced the submitted semantic result. Applies to: submit. Required by: submit. | |
| assignment_id | No | Identifier returned when the bounded semantic assignment was prepared. Applies to: inspect, submit, adopt, execute_internal. Required by: inspect, submit, adopt, execute_internal. | |
| goal_node_ids | No | Existing use-case/sequence/expectation node IDs selected for intention grounding or correspondence. Applies to: prepare. | |
| host_evidence | No | Exact flower-host-grounding-evidence-v1 receipt for host grounding, with its declared source/provenance. Applies to: prepare. Exact required/optional dotted fields and guidance: fow_capabilities(view=operation, operation_tool=fow_semantic, operation_name=<selected route>). | |
| execution_mode | No | Semantic executor route: host prepares a durable external assignment; internal explicitly uses configured inference. Applies to: prepare. Required by: prepare. Canonical values: host, internal. | |
| source_revision | No | Declared grounding/source revision. The assignment also retains a prepared authority snapshot; submitting a different revision does not make stale evidence current. Applies to: prepare, submit. | |
| standard_profile | No | Supported SRS Markdown validation profile; use the same profile when preparing, validating and importing a source. Applies to: prepare. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare non-readonly/non-idempotent/openWorld, so the safety profile is already carried. The description goes beyond them with per-route effects (prepare persists a prompt/authority snapshot, submit validates, adopt records declared provenance, execute_internal invokes inference) and a server-side file-read note, which is genuinely additive 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?
Structure is front-loaded: a one-line purpose sentence, then routing, prerequisites, effects, and a help pointer, each earning its place. For a six-route multiplexer it is dense but not wasteful; the trailing capabilities-help pointer is functional rather than 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?
With an output schema present, return values need not be explained, and the description covers routing, prerequisites, per-route effects, and unsupported cases. Given the six-operation complexity it is largely complete, though it leaves the actual per-route field requirements to the referenced fow_capabilities help rather than stating them inline.
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 the schema already documents roles, execution modes, source path containment, and receipt/idempotency semantics at param level. The description adds little param-specific meaning beyond repeating the operation routes, so the 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 concrete verbs and resources across the multiplexed operations (prepare bounded semantic assignments, validate submitted results, adopt audit evidence) and names the two supported roles. It is clear what the tool does, but it does not explicitly differentiate itself from siblings like fow_validate_srs or fow_ground_intent, whose names overlap with the roles it claims.
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 an explicit prerequisite sequence ('Use inventory, then prepare a supported role in host or internal mode; internal needs configured inference') and routes via the operation selector, plus an explicit exclusion ('Observed-behavior drafting is unsupported'). It stops short of telling the agent when to choose this tool over a sibling, so it is clear context without full alternative routing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
fow_set_requirement_lifecycleADestructive
Move an existing requirement to a policy-permitted lifecycle state with its reason and any required approval reference. Single operation; call directly without an operation argument. Prerequisites: Use an existing requirement and the approval reference required by its transition policy. Effects: Mutates lifecycle state under ordinary guards; retirement/rejection can invalidate active authority. Does not infer human approval. Exact help (replace operation_name with the selected route): fow_capabilities({"view":"operation","operation_tool":"fow_set_requirement_lifecycle","operation_name":"call"}).
| Name | Required | Description | Default |
|---|---|---|---|
| actor | Yes | Identity of the human or agent recording this action; retain the original identity when replaying its request. | |
| reason | Yes | Explicit reason for the transition, cancellation or continuation action. | |
| project_id | Yes | Canonical lifecycle project ID. Select the existing project explicitly; development Markdown authorities are separate from runtime projects. | |
| request_id | No | Caller-owned retry identity. For receipted mutations replay the same actor and contents; changed contents can conflict. Inspect exact operation help for its receipt policy. | |
| requirement_id | Yes | Existing canonical requirement identity, as returned by registration/import. | |
| lifecycle_status | Yes | Requested canonical requirement lifecycle state, subject to normal transition/approval policy. Canonical values: planned, implemented, partial, removed. | |
| governed_approval_reference | No | Reference to explicit governed approval required for this lifecycle transition or baseline change. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare destructive=true and idempotent=false, and the description meaningfully extends them: ordinary guards apply, retirement/rejection can invalidate active authority, and human approval is not inferred by the tool. That tells the agent the blast radius of a state change, which the annotations alone do not.
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 one-line purpose followed by labeled Prerequisites and Effects blocks that are easy to scan. The trailing capabilities-help pointer is useful but slightly boilerplate-y, keeping it short of a flawless 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?
For a destructive, non-idempotent mutation with 7 parameters and an output schema, the description covers prerequisites, mutation effects, approval expectations, and even points to exact operation help for receipt/retry policy. Nothing an agent needs before calling 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 description coverage is 100%, so the schema already documents actor identity, reason, project vs. requirement IDs, request_id replay semantics, and the canonical lifecycle_status values. The description only restates that a reason and a policy-required approval reference accompany the move, adding negligible syntax or format detail 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?
States a specific verb+resource: moving an existing requirement to a policy-permitted lifecycle state, with reason and approval reference. It also clarifies the invocation shape ('single operation; call directly without an operation argument'), which separates it from multi-route siblings. It stops short of naming the nearest neighbor (fow_revise_requirement), so the boundary is inferable rather than explicit.
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?
Gives a clear usage context plus prerequisites ('use an existing requirement and the approval reference required by its transition policy') and a call-directly instruction. No alternatives or when-not-to-use conditions are named, so it is clear context without exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
fow_traceabilityARead-onlyIdempotent
Inspect how current requirements, milestone scope and recorded verification evidence correspond. Read bounded pages or retrieve one original evidence body with audit detail. Single operation; call directly without an operation argument. Prerequisites: Select a project and optionally a milestone or exact evidence ID. Effects: Read-only bounded traceability/evidence with pagination; no provider/model execution or authority mutation. Exact help (replace operation_name with the selected route): fow_capabilities({"view":"operation","operation_tool":"fow_traceability","operation_name":"call"}).
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum number of records in this read page; existing route-specific bounds still apply. | |
| offset | No | Zero-based position of the first record in this bounded read page. | |
| project_id | Yes | Canonical lifecycle project ID. Select the existing project explicitly; development Markdown authorities are separate from runtime projects. | |
| evidence_id | No | Existing evidence identity to inspect or associate; use returned IDs rather than inventing evidence. | |
| detail_level | No | Read projection detail level; standard is bounded routine context, audit includes the available audit detail. Canonical values: standard, audit. | standard |
| milestone_id | No | Existing milestone identity governing or filtering the requested scope. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive and closed-world behavior, so the bar is lower. The description still adds real value beyond them: bounded paged reads, no provider/model execution, and no authority mutation — useful scoping for an inspection tool. It does not note rate limits or auth specifics, but nothing is contradicted.
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?
Content is front-loaded and organized under Prerequisites/Effects labels, which helps scanning. The trailing 'Exact help' pointer to fow_capabilities is a useful affordance but adds boilerplate length, keeping it short of maximally tight.
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 rich annotations, full schema coverage and an output schema, the description does not need to explain return values and correctly avoids doing so. It covers prerequisites, effects and pagination adequately; only the relationship to sibling inspection tools remains unstated.
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 would be 3. The description goes slightly beyond the schema by conveying that milestone and evidence ID are alternative optional selectors and that audit detail is a distinct projection, which the raw schema does not spell out as relationships. It still doesn't clarify limit/offset semantics, so it is not a full 5.
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 ('Inspect') and a concrete resource set (requirements, milestone scope, recorded verification evidence and how they correspond). It is clearly traceability-oriented, but it never names a sibling tool it must be distinguished from, so the agent must infer the boundary with tools like fow_get_requirement or fow_audit_phase.
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 operating context ('Single operation; call directly without an operation argument') and prerequisites ('Select a project and optionally a milestone or exact evidence ID'), which tells the agent the entry conditions and the two read modes. It does not, however, state when to prefer this over the neighboring requirement/evidence tools, so the exclusions are only implicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
fow_validate_srsA
Check a local Markdown software-requirements document structurally against a supported profile in a durable job. Semantic assignment validation is exposed separately by fow_semantic. Single operation; call directly without an operation argument. Prerequisites: Supply a readable local Markdown SRS and supported standard_profile. Effects: Schedules durable structural validation and reads the source. Semantic checks use fow_semantic; validation alone does not import or accept a baseline. Exact help (replace operation_name with the selected route): fow_capabilities({"view":"operation","operation_tool":"fow_validate_srs","operation_name":"call"}).
| Name | Required | Description | Default |
|---|---|---|---|
| actor | Yes | Identity of the human or agent recording this action; retain the original identity when replaying its request. | |
| project_id | Yes | Canonical lifecycle project ID. Select the existing project explicitly; development Markdown authorities are separate from runtime projects. | |
| request_id | No | Caller-owned retry identity. For receipted mutations replay the same actor and contents; changed contents can conflict. Inspect exact operation help for its receipt policy. | |
| source_path | Yes | UTF-8 .md/.markdown SRS file on the Flower SERVER filesystem, not automatically the coding client's disk. The expanded/resolved path must stay within the configured import root when one is set; source/profile/currentness checks apply. | |
| standard_profile | Yes | Supported SRS Markdown validation profile; use the same profile when preparing, validating and importing a source. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish the profile (not read-only, not destructive, not idempotent, open world), so the bar is lower. The description still adds real context: a durable job is scheduled, the source is read, and no baseline import/acceptance occurs. It does not spell out receipt/retry policy, deferring that to the operation help, which keeps it at a 4 rather than 5.
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 the core action in the first clause, then organized under compact labeled lines (Prerequisites, Effects) with no filler. The help-pointer line is a deliberate routing aid rather than 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?
With an output schema present, return values need no explanation, and the description covers scope, prerequisites, and non-effects for a mutation-class tool. It stops short of saying how the resulting durable job is polled (fow_get_job), leaving a small gap an agent must infer from siblings.
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 five parameters are already documented in the schema, including the server-side source_path constraint and the actor identity. The description only restates 'readable local Markdown SRS and supported standard_profile' and the profile-consistency advice, adding little beyond the schema — the 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?
States a specific verb and resource — structural validation of a local Markdown SRS against a supported profile — and explicitly bounds the scope by naming the sibling that handles the other half ('Semantic assignment validation is exposed separately by fow_semantic'). An agent can distinguish this from fow_import_srs and fow_semantic without opening any schema.
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?
Gives prerequisites (readable local Markdown SRS plus supported standard_profile), an explicit when-not (semantic checks belong to fow_semantic; this does not import or accept a baseline), and disambiguates invocation ('Single operation; call directly without an operation argument'). It also routes to fow_capabilities for exact help.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
fow_what_nextARead-onlyIdempotent
Find the next bounded lifecycle action from current packet gates, dependencies, requirements and evidence. Reading this projection does not execute the suggested work. Single operation; call directly without an operation argument. Prerequisites: Select existing project/scope and optional milestone, then follow returned bounded pages. Effects: Read-only next-work projection from current authority/dependencies; no code execution or provider probes. Exact help (replace operation_name with the selected route): fow_capabilities({"view":"operation","operation_tool":"fow_what_next","operation_name":"call"}).
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum number of records in this read page; existing route-specific bounds still apply. | |
| offset | No | Zero-based position of the first record in this bounded read page. | |
| scope_id | No | Named audit/work scope selecting the relevant requirement phase or work projection. | project-default |
| project_id | Yes | Canonical lifecycle project ID. Select the existing project explicitly; development Markdown authorities are separate from runtime projects. | |
| detail_level | No | Read projection detail level; standard is bounded routine context, audit includes the available audit detail. Canonical values: standard, audit. | standard |
| milestone_id | No | Existing milestone identity governing or filtering the requested scope. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly/idempotent/non-destructive/no-open-world, but the description adds real context: no code execution and no provider probes, plus that output arrives as bounded pages to be followed. It stops short of describing limits on the projection itself.
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-loads the purpose, then cleanly separates Prerequisites and Effects, so an agent can scan the constraints it needs. The trailing 'Exact help' pointer is somewhat meta boilerplate but is compact and self-contained.
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 an output schema present, return shape need not be explained, and the description covers prerequisites, read-only effects and pagination behavior for a 6-parameter tool. The main residual gap is explicit guidance on which sibling to call when the agent intends to act on the suggested work.
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 limit, offset, scope_id, project_id, detail_level and milestone_id are all documented in the schema. The description only loosely gestures at project/scope/milestone selection and adds no format or syntax detail beyond that, matching the baseline for fully-covered schemas.
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?
States a specific verb and resource: it finds 'the next bounded lifecycle action' derived from gates, dependencies, requirements and evidence. It also implicitly separates itself from execution siblings by asserting that reading the projection does not execute work, though it never names those 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 concrete prerequisite ('select existing project/scope and optional milestone, then follow returned bounded pages') and notes it is a single direct operation with no operation argument. The contrast with execution tools is implied rather than stated, so the when-not condition is left to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
37 tool updates
v0.5.1- Changed
fow_accept_milestone5 fields changed- added
Input schema / properties / acceptance_evidence / descriptionAdded value: +"Declared evidence supporting human/governed milestone acceptance; not a completion claim by the coding agent." - added
Input schema / properties / actor / descriptionAdded value: +"Identity of the human or agent recording this action; retain the original identity when replaying its request." - added
Input schema / properties / milestone_id / descriptionAdded value: +"Existing milestone identity governing or filtering the requested scope." - added
Input schema / properties / project_id / descriptionAdded value: +"Canonical lifecycle project ID. Select the existing project explicitly; development Markdown authorities are separate from runtime projects." - added
Input schema / properties / request_id / descriptionAdded value: +"Caller-owned retry identity. For receipted mutations replay the same actor and contents; changed contents can conflict. Inspect exact operation help for its receipt policy."
- Changed
fow_architecture7 fields changed- added
Input schema / properties / actor / descriptionAdded value: +"Identity of the human or agent recording this action; retain the original identity when replaying its request." - added
Input schema / properties / operation / descriptionAdded value: +"Operation selector for this multiplexer; use a canonical route listed below. Canonical values: inspect, propose, adopt." - added
Input schema / properties / operation / examplesAdded value: +[ + "inspect" +] - added
Input schema / properties / payload / descriptionAdded value: +"Architecture operation input: inspect selects revision/kind/page; propose supplies expected_revision and a complete definition; adopt selects expected_revision/revision and rationale. Proposals become authority only through adopt. Required by: propose, adopt. Exact required/optional dotted fields and guidance: fow_capabilities(view=operation, operation_tool=fow_architecture, operation_name=<selected route>)." - added
Input schema / properties / payload / examplesAdded value: +[ + { + "kind": "all", + "limit": 20, + "offset": 0, + "revision": 0 + } +] - added
Input schema / properties / project_id / descriptionAdded value: +"Canonical lifecycle project ID. Select the existing project explicitly; development Markdown authorities are separate from runtime projects." - added
Input schema / properties / request_id / descriptionAdded value: +"Caller-owned retry identity. For receipted mutations replay the same actor and contents; changed contents can conflict. Inspect exact operation help for its receipt policy."
- Changed
fow_assurance25 fields changed- added
Input schema / properties / acceptance_reference / descriptionAdded value: +"Reference to the explicit authority accepting the governed change. Applies to: request_change_acceptance. Required by: request_change_acceptance." - added
Input schema / properties / actor / descriptionAdded value: +"Identity of the human or agent recording this action; retain the original identity when replaying its request." - added
Input schema / properties / assessment / descriptionAdded value: +"Engineer-authored reassessment against current intent/finding fingerprints, classification, rationale and technical evidence. Applies to: reassess_intent. Required by: reassess_intent. Exact required/optional dotted fields and guidance: fow_capabilities(view=operation, operation_tool=fow_assurance, operation_name=<selected route>)." - added
Input schema / properties / change_id / descriptionAdded value: +"Canonical owning change ID; when address resolution permits omission, the packet/campaign must resolve unambiguously." - added
Input schema / properties / disposition / descriptionAdded value: +"Explicit classification/action for the selected finding, review, packet question or campaign obligation. Applies to: set_finding_disposition. Required by: set_finding_disposition. Canonical values: open, confirmed, resolved, accepted_exception, deferred, superseded, cancelled." - added
Input schema / properties / disposition_reference / descriptionAdded value: +"Reference to the authority supporting the recorded disposition. Applies to: set_finding_disposition." - added
Input schema / properties / evidence_refs / descriptionAdded value: +"References to actual supporting evidence; host-declared provenance remains host-declared. Applies to: set_finding_disposition." - added
Input schema / properties / expected_correction / descriptionAdded value: +"Bounded corrective behavior required to resolve the finding within the current intent. Applies to: record_finding, link_fixing_packet. Required by: record_finding, link_fixing_packet." - added
Input schema / properties / finding_id / descriptionAdded value: +"Stable identity of the existing assurance finding. Applies to: get_finding, reassess_intent, set_finding_disposition, link_fixing_packet. Required by: get_finding, reassess_intent, set_finding_disposition, link_fixing_packet." - added
Input schema / properties / finding_kind / descriptionAdded value: +"Semantic category of the assurance finding. Applies to: record_finding. Canonical values: semantic, engineering, informational, unspecified." - added
Input schema / properties / implementation_ref / descriptionAdded value: +"Reference to the implementation location or artifact involved in the finding. Applies to: record_finding." - added
Input schema / properties / operation / descriptionAdded value: +"Operation selector for this multiplexer; use a canonical route listed below. Canonical values: record_finding, get_finding, reassess_intent, set_finding_disposition, link_fixing_packet, request_change_acceptance." - added
Input schema / properties / operation / examplesAdded value: +[ + "record_finding" +] - added
Input schema / properties / packet_id / descriptionAdded value: +"Canonical packet identity returned by authoring; it identifies the bounded implementation work." - added
Input schema / properties / project_id / descriptionAdded value: +"Canonical lifecycle project ID. Select the existing project explicitly; development Markdown authorities are separate from runtime projects." - added
Input schema / properties / rationale / descriptionAdded value: +"Concrete reasoning supporting this ordinary mutation, decision or selected authority. Applies to: record_finding, set_finding_disposition. Required by: record_finding, set_finding_disposition." - added
Input schema / properties / request_id / descriptionAdded value: +"Caller-owned retry identity. For receipted mutations replay the same actor and contents; changed contents can conflict. Inspect exact operation help for its receipt policy." - added
Input schema / properties / required_campaign_ids / descriptionAdded value: +"Existing campaigns whose successful verification remains required by this corrective packet/finding. Applies to: link_fixing_packet." - added
Input schema / properties / required_regression_evidence / descriptionAdded value: +"Declared regression evidence obligations that must remain visible until actually satisfied. Applies to: link_fixing_packet." - added
Input schema / properties / scope_kind / descriptionAdded value: +"Kind of lifecycle/source object affected by the assurance finding. Applies to: record_finding. Required by: record_finding." - added
Input schema / properties / scope_ref / descriptionAdded value: +"Existing object/reference identifying the finding's selected scope. Applies to: record_finding. Required by: record_finding." - added
Input schema / properties / severity / descriptionAdded value: +"Canonical assurance finding severity, expressing impact without implying acceptance. Applies to: record_finding. Required by: record_finding. Canonical values: info, low, medium, high, critical." - added
Input schema / properties / source_anchor / descriptionAdded value: +"String source locator/reference (path, section, entity or revision as applicable) linking authority to its originating material; this public input is not a structured object. Applies to: record_finding." - added
Input schema / properties / supersedes_finding_id / descriptionAdded value: +"Existing finding explicitly superseded by this new finding; history remains retained. Applies to: set_finding_disposition." - added
Input schema / properties / title / descriptionAdded value: +"Short human-readable title of the authored requirement, finding, packet, run step or campaign. Applies to: record_finding. Required by: record_finding."
- Changed
fow_audit_phase5 fields changed- added
Input schema / properties / actor / descriptionAdded value: +"Identity of the human or agent recording this action; retain the original identity when replaying its request." - added
Input schema / properties / project_id / descriptionAdded value: +"Canonical lifecycle project ID. Select the existing project explicitly; development Markdown authorities are separate from runtime projects." - added
Input schema / properties / request_id / descriptionAdded value: +"Caller-owned retry identity. For receipted mutations replay the same actor and contents; changed contents can conflict. Inspect exact operation help for its receipt policy." - added
Input schema / properties / requirement_ids / descriptionAdded value: +"Explicit existing requirement IDs defining the selected scope." - added
Input schema / properties / scope_id / descriptionAdded value: +"Named audit/work scope selecting the relevant requirement phase or work projection."
- Changed
fow_bindings11 fields changed- added
Input schema / properties / actor / descriptionAdded value: +"Identity of the human or agent recording this action; retain the original identity when replaying its request." - added
Input schema / properties / association_kind / descriptionAdded value: +"Association category to export: host or implementation_provider; these are independent bindings. Applies to: export. Required by: export." - added
Input schema / properties / association_receipt / descriptionAdded value: +"Versioned flow.project-association.v1 JSON receipt. Contains associations only; URLs, credentials, commands and unknown fields are rejected. Applies to: import. Required by: import. Exact required/optional dotted fields and guidance: fow_capabilities(view=operation, operation_tool=fow_bindings, operation_name=<selected route>)." - added
Input schema / properties / association_receipt / examplesAdded value: +[ + { + "association": { + "host_id": "coding-agent", + "kind": "host", + "repository_locator": "./repository" + }, + "contract": "flow.project-association.v1", + "project_id": "example-project-id" + } +] - added
Input schema / properties / host_id / descriptionAdded value: +"Stable coding-host identity for the host association; independent from optional provider bindings. Applies to: export." - added
Input schema / properties / operation / descriptionAdded value: +"Operation selector for this multiplexer; use a canonical route listed below. Canonical values: inspect, export, import." - added
Input schema / properties / operation / examplesAdded value: +[ + "inspect" +] - added
Input schema / properties / project_id / descriptionAdded value: +"Canonical lifecycle project ID. Select the existing project explicitly; development Markdown authorities are separate from runtime projects." - added
Input schema / properties / provider_kind / descriptionAdded value: +"Configured route category selecting the implementation_provider association to export; not the provider's transport URL or executable command. Applies to: export." - added
Input schema / properties / replacement_reason / descriptionAdded value: +"Required explanation when replacing a different canonical host/provider association; replay of the same receipt does not replace it. Applies to: import." - added
Input schema / properties / request_id / descriptionAdded value: +"Caller-owned retry identity. For receipted mutations replay the same actor and contents; changed contents can conflict. Inspect exact operation help for its receipt policy."
- Changed
fow_bootstrap27 fields changed- added
Input schema / properties / actor / descriptionAdded value: +"Identity of the human or agent recording this action; retain the original identity when replaying its request." - added
Input schema / properties / answer / descriptionAdded value: +"Structured answer to the selected bootstrap or Oracle question; obtain its exact shape from operation help. Applies to: record_answer. Required by: record_answer. Exact required/optional dotted fields and guidance: fow_capabilities(view=operation, operation_tool=fow_bootstrap, operation_name=<selected route>)." - added
Input schema / properties / answer / examplesAdded value: +[ + { + "answer": "Return the integer successor through the declared API.", + "answer_key": "successor-scenario", + "kind": "intent", + "question": "What should the software do?", + "source_reference": "stakeholder:scenario-1" + } +] - added
Input schema / properties / bootstrap_id / descriptionAdded value: +"Identifier of an existing bootstrap cycle; use the current cycle returned by guidance/state. Applies to: resume, state, record_intake, record_contradiction, confirm_intake, derive_behavior, complete, cancel, guidance, record_answer, record_correspondence, roadmap, confirm_roadmap, record_continuation. Required by: resume, state, record_intake, record_contradiction, confirm_intake, derive_behavior, complete, cancel, record_answer, record_correspondence, roadmap, confirm_roadmap, record_continuation." - added
Input schema / properties / completion_reference / descriptionAdded value: +"Reference to the actual evidence/authority supporting completion of this lifecycle object. Applies to: complete. Required by: complete." - added
Input schema / properties / confirmation_reference / descriptionAdded value: +"Reference to the stakeholder's actual confirmation of the recorded intent or roadmap. Applies to: confirm_intake, confirm_roadmap. Required by: confirm_intake, confirm_roadmap." - added
Input schema / properties / continuation_choice / descriptionAdded value: +"Explicit stakeholder continuation choice: continue the authorized roadmap or review the current result. Applies to: record_continuation. Required by: record_continuation. Canonical values: continue, review." - added
Input schema / properties / continuation_reference / descriptionAdded value: +"Reference to the actual stakeholder choice; do not synthesize approval from elapsed time. Applies to: record_continuation. Required by: record_continuation." - added
Input schema / properties / contradiction / descriptionAdded value: +"Structured bootstrap contradiction between the recorded intent and known authority, with the relevant references. Applies to: record_contradiction. Required by: record_contradiction. Exact required/optional dotted fields and guidance: fow_capabilities(view=operation, operation_tool=fow_bootstrap, operation_name=<selected route>)." - added
Input schema / properties / correspondence / descriptionAdded value: +"Recorded mapping from one current bootstrap answer revision to canonical requirements/goals/milestones and its disposition. Applies to: record_correspondence. Required by: record_correspondence. Exact required/optional dotted fields and guidance: fow_capabilities(view=operation, operation_tool=fow_bootstrap, operation_name=<selected route>)." - added
Input schema / properties / correspondence / examplesAdded value: +[ + { + "answer_key": "successor-scenario", + "answer_revision": 1, + "canonical_references": { + "goal_node_ids": [], + "milestone_ids": [], + "requirement_ids": [ + "current-requirement-id" + ] + }, + "disposition": "consistent", + "rationale": "The current canonical requirement expresses the recorded scenario." + } +] - added
Input schema / properties / intake / descriptionAdded value: +"Structured bootstrap intake capturing scenario, constraints and existing-system context. Applies to: record_intake. Required by: record_intake. Exact required/optional dotted fields and guidance: fow_capabilities(view=operation, operation_tool=fow_bootstrap, operation_name=<selected route>)." - added
Input schema / properties / milestone_ids / descriptionAdded value: +"Explicit existing milestone IDs in the roadmap or handover selection. Applies to: roadmap, confirm_roadmap. Required by: roadmap, confirm_roadmap." - added
Input schema / properties / operation / descriptionAdded value: +"Operation selector for this multiplexer; use a canonical route listed below. Canonical values: bind_implementation_provider, provider_binding_state, list_provider_bindings, start, resume, state, record_intake, record_contradiction, confirm_intake, derive_behavior, complete, cancel, guidance, record_answer, record_correspondence, roadmap, confirm_roadmap, record_continuation." - added
Input schema / properties / operation / examplesAdded value: +[ + "bind_implementation_provider" +] - added
Input schema / properties / path / descriptionAdded value: +"Bootstrap workflow: import existing requirements, inspect existing code, create requirements or use guided engineering. Use a canonical path listed below. Applies to: start. Required by: start. Canonical values: requirements_import, code_import, requirements_creation, guided_engineering." - added
Input schema / properties / progress_revision / descriptionAdded value: +"Issued roadmap progress revision associated with the stakeholder's continuation choice. Applies to: record_continuation. Required by: record_continuation." - added
Input schema / properties / project_id / descriptionAdded value: +"Canonical lifecycle project ID. Select the existing project explicitly; development Markdown authorities are separate from runtime projects." - added
Input schema / properties / project_name / descriptionAdded value: +"Exact registered project name associated with this bootstrap cycle. Applies to: start. Required by: start." - added
Input schema / properties / provider_context_id / descriptionAdded value: +"Context identity understood by an already configured optional provider route. Applies to: bind_implementation_provider." - added
Input schema / properties / provider_kind / descriptionAdded value: +"Canonical configured route category to bind/inspect: implementation_graph, bootstrap_behavior, packet_evidence, packet_execution or test_execution. Applies to: bind_implementation_provider, provider_binding_state. Required by: bind_implementation_provider, provider_binding_state." - added
Input schema / properties / provider_scope_id / descriptionAdded value: +"Authorized scope identity understood by the configured provider. Applies to: bind_implementation_provider. Required by: bind_implementation_provider." - added
Input schema / properties / reason / descriptionAdded value: +"Explicit reason for the transition, cancellation or continuation action. Applies to: cancel, record_continuation. Required by: cancel, record_continuation." - added
Input schema / properties / replacement_reason / descriptionAdded value: +"Required explanation when replacing a different canonical host/provider association; replay of the same receipt does not replace it. Applies to: bind_implementation_provider." - added
Input schema / properties / request_id / descriptionAdded value: +"Caller-owned retry identity. For receipted mutations replay the same actor and contents; changed contents can conflict. Inspect exact operation help for its receipt policy." - added
Input schema / properties / roadmap_fingerprint / descriptionAdded value: +"Fingerprint of the exact roadmap being confirmed or continued; stale intent/scope requires ordinary revision. Applies to: confirm_roadmap, record_continuation. Required by: confirm_roadmap, record_continuation." - added
Input schema / properties / surfaces / descriptionAdded value: +"Explicit provider evidence/association surfaces, such as repo; use the exact configured route contract. Applies to: bind_implementation_provider."
- Changed
fow_campaign_advance6 fields changed- added
Input schema / properties / actor / descriptionAdded value: +"Identity of the human or agent recording this action; retain the original identity when replaying its request." - added
Input schema / properties / campaign_id / descriptionAdded value: +"Identifier of the governed test campaign, as returned by campaign authoring." - added
Input schema / properties / change_id / descriptionAdded value: +"Canonical owning change ID; when address resolution permits omission, the packet/campaign must resolve unambiguously." - added
Input schema / properties / project_id / descriptionAdded value: +"Canonical lifecycle project ID. Select the existing project explicitly; development Markdown authorities are separate from runtime projects." - added
Input schema / properties / request_id / descriptionAdded value: +"Caller-owned retry identity. For receipted mutations replay the same actor and contents; changed contents can conflict. Inspect exact operation help for its receipt policy." - added
Input schema / properties / transition_budget / descriptionAdded value: +"Maximum deterministic campaign transitions in this call before returning the current boundary."
- Changed
fow_campaign_author35 fields changed- added
Input schema / properties / actor / descriptionAdded value: +"Identity of the human or agent recording this action; retain the original identity when replaying its request." - added
Input schema / properties / answer / descriptionAdded value: +"JSON answer matching the selected Oracle question's declared shape; it may be a scalar, array or object rather than necessarily a mapping. Preserve the declared answer_authority and provenance. Applies to: answer_question. Required by: answer_question. Exact required/optional dotted fields and guidance: fow_capabilities(view=operation, operation_tool=fow_campaign_author, operation_name=<selected route>)." - added
Input schema / properties / answer_authority / descriptionAdded value: +"Declared authority/provenance of the Oracle answer; it does not upgrade host assertions into provider-audited evidence. Applies to: answer_question. Required by: answer_question. Canonical values: grounded_fact, accepted_decision, derived_hypothesis, unknown, waived." - added
Input schema / properties / authority_reference / descriptionAdded value: +"Reference to the ordinary authority permitting the selected campaign action. Applies to: attest_source, authorize_materialization, authorize_promotion. Required by: attest_source, authorize_materialization, authorize_promotion." - added
Input schema / properties / campaign_id / descriptionAdded value: +"Identifier of the governed test campaign, as returned by campaign authoring. Applies to: edit_scope, add_case, edit_case, remove_case, reorder_cases, decide_obligation, bind_obligation, author_oracle, answer_question, attest_source, authorize_materialization, retry_provider_rejection, authorize_promotion, accept_exception, cancel. Required by: edit_scope, add_case, edit_case, remove_case, reorder_cases, decide_obligation, bind_obligation, author_oracle, answer_question, attest_source, authorize_materialization, retry_provider_rejection, authorize_promotion, accept_exception, cancel." - added
Input schema / properties / case / descriptionAdded value: +"Structured campaign case: semantic test intent and its required scope/obligations; inspect exact operation help before authoring. Applies to: start, add_case, edit_case. Required by: add_case, edit_case. Exact required/optional dotted fields and guidance: fow_capabilities(view=operation, operation_tool=fow_campaign_author, operation_name=<selected route>)." - added
Input schema / properties / case_id / descriptionAdded value: +"Stable identifier of the existing campaign case to edit or remove. Applies to: edit_case, remove_case, bind_obligation, author_oracle, attest_source, authorize_materialization, authorize_promotion. Required by: edit_case, remove_case, bind_obligation, author_oracle, attest_source, authorize_materialization, authorize_promotion." - added
Input schema / properties / case_order / descriptionAdded value: +"Complete ordered list of current campaign case IDs for the requested reorder. Applies to: reorder_cases. Required by: reorder_cases." - added
Input schema / properties / coverage_intent / descriptionAdded value: +"Explanation of the behavior or risk the selected campaign obligation is intended to cover. Applies to: bind_obligation. Required by: bind_obligation." - added
Input schema / properties / decision / descriptionAdded value: +"Canonical campaign-obligation decision for decide_obligation; this is a string selector, not a packet gate object. Applies to: decide_obligation. Required by: decide_obligation. Canonical values: required, out_of_scope, duplicate, investigate, waived. Exact required/optional dotted fields and guidance: fow_capabilities(view=operation, operation_tool=fow_campaign_author, operation_name=<selected route>)." - added
Input schema / properties / decision / examplesAdded value: +[ + "required" +] - added
Input schema / properties / disposition_reference / descriptionAdded value: +"Reference to the authority supporting the recorded disposition. Applies to: accept_exception, cancel. Required by: accept_exception, cancel." - added
Input schema / properties / evidence_gaps / descriptionAdded value: +"Known missing verification/evidence obligations retained by an explicit campaign exception. Applies to: accept_exception. Required by: accept_exception." - added
Input schema / properties / evidence_id / descriptionAdded value: +"Existing evidence identity to inspect or associate; use returned IDs rather than inventing evidence. Applies to: authorize_promotion. Required by: authorize_promotion." - added
Input schema / properties / exception_obligation_ids / descriptionAdded value: +"Campaign obligation IDs covered by the requested explicit exception. Applies to: accept_exception. Required by: accept_exception." - added
Input schema / properties / expected_fingerprint / descriptionAdded value: +"Previously issued campaign authority fingerprint; guards against stale authoring. Applies to: edit_scope, add_case, edit_case, remove_case, reorder_cases." - added
Input schema / properties / harness / descriptionAdded value: +"Structured test-harness participant contract and provenance; it declares execution boundaries, not observed success. Applies to: attest_source. Exact required/optional dotted fields and guidance: fow_capabilities(view=operation, operation_tool=fow_campaign_author, operation_name=<selected route>)." - added
Input schema / properties / obligation_id / descriptionAdded value: +"Stable identity of the campaign verification obligation being decided or bound. Applies to: decide_obligation, bind_obligation. Required by: decide_obligation, bind_obligation." - added
Input schema / properties / operation / descriptionAdded value: +"Operation selector for this multiplexer; use a canonical route listed below. Canonical values: start, edit_scope, add_case, edit_case, remove_case, reorder_cases, decide_obligation, bind_obligation, author_oracle, answer_question, attest_source, authorize_materialization, retry_provider_rejection, authorize_promotion, accept_exception, cancel." - added
Input schema / properties / operation / examplesAdded value: +[ + "start" +] - added
Input schema / properties / oracle / descriptionAdded value: +"Structured behavioral Oracle definition expressing expected/forbidden behavior and test obligations. Applies to: author_oracle. Required by: author_oracle. Exact required/optional dotted fields and guidance: fow_capabilities(view=operation, operation_tool=fow_campaign_author, operation_name=<selected route>)." - added
Input schema / properties / oracle_id / descriptionAdded value: +"Existing behavioral Oracle identity selected for the campaign operation. Applies to: author_oracle, answer_question. Required by: answer_question." - added
Input schema / properties / project_id / descriptionAdded value: +"Canonical lifecycle project ID. Select the existing project explicitly; development Markdown authorities are separate from runtime projects." - added
Input schema / properties / provenance / descriptionAdded value: +"Declared origin of campaign answers/source evidence; does not confer provider audit or human acceptance. Applies to: answer_question. Required by: answer_question." - added
Input schema / properties / provider_command_id / descriptionAdded value: +"Issued provider-command identity selected for explicit retry or materialization authority. Applies to: retry_provider_rejection. Required by: retry_provider_rejection." - added
Input schema / properties / question_id / descriptionAdded value: +"Existing open packet-construction or Oracle question identity. Applies to: answer_question. Required by: answer_question." - added
Input schema / properties / rationale / descriptionAdded value: +"Concrete reasoning supporting this ordinary mutation, decision or selected authority. Applies to: remove_case, decide_obligation, retry_provider_rejection. Required by: remove_case, decide_obligation, retry_provider_rejection." - added
Input schema / properties / regression_obligation / descriptionAdded value: +"Whether the campaign binding declares a required regression obligation. Applies to: authorize_promotion." - added
Input schema / properties / request_id / descriptionAdded value: +"Caller-owned retry identity. For receipted mutations replay the same actor and contents; changed contents can conflict. Inspect exact operation help for its receipt policy." - added
Input schema / properties / requested_capability / descriptionAdded value: +"Structured provider capability declaration for campaign source/materialization work; use the exact fields supported by the current provider command contract. Applies to: attest_source, authorize_materialization. Required by: authorize_materialization." - added
Input schema / properties / risk_authority / descriptionAdded value: +"Explicit authority permitting the campaign's remaining risks/evidence gaps. Applies to: accept_exception. Required by: accept_exception." - added
Input schema / properties / scope / descriptionAdded value: +"Structured campaign scope selecting change, requirements, goals, packets and explicit environment assumptions. Applies to: start, edit_scope. Required by: start, edit_scope. Exact required/optional dotted fields and guidance: fow_capabilities(view=operation, operation_tool=fow_campaign_author, operation_name=<selected route>)." - added
Input schema / properties / source_files / descriptionAdded value: +"Oracle source mapping from file paths to source-content strings for attestation/materialization. Future files remain declarations until materialized and verified. Applies to: attest_source. Required by: attest_source." - added
Input schema / properties / title / descriptionAdded value: +"Short human-readable title of the authored requirement, finding, packet, run step or campaign. Applies to: start, edit_scope. Required by: start, edit_scope." - added
Input schema / properties / waiver_scope / descriptionAdded value: +"Explicit campaign/Oracle scope covered by the authorized waiver. Applies to: answer_question."
- Changed
fow_campaign_inspect7 fields changed- added
Input schema / properties / campaign_id / descriptionAdded value: +"Identifier of the governed test campaign, as returned by campaign authoring." - added
Input schema / properties / change_id / descriptionAdded value: +"Canonical owning change ID; when address resolution permits omission, the packet/campaign must resolve unambiguously." - added
Input schema / properties / limit / descriptionAdded value: +"Maximum number of records in this read page; existing route-specific bounds still apply." - added
Input schema / properties / offset / descriptionAdded value: +"Zero-based position of the first record in this bounded read page." - added
Input schema / properties / project_id / descriptionAdded value: +"Canonical lifecycle project ID. Select the existing project explicitly; development Markdown authorities are separate from runtime projects." - added
Input schema / properties / view / descriptionAdded value: +"Read projection selector; canonical view names depend on this tool. Canonical values: summary, working_sheet, cases, obligations, oracles, constructibility, oracle_ir, attestation, evidence, residuals, history." - added
Input schema / properties / view / examplesAdded value: +[ + "summary" +]
- Changed
fow_capabilities5 fields changed- added
Input schema / properties / operation_name / descriptionAdded value: +"Canonical operation name for exact help, interpreted within operation_tool; simple tools use call." - added
Input schema / properties / operation_tool / descriptionAdded value: +"Public fow_* tool identity whose exact operation contract is requested." - added
Input schema / properties / recipe_name / descriptionAdded value: +"One named progressive workflow recipe, requested with capabilities view=recipe." - added
Input schema / properties / view / descriptionAdded value: +"Progressive discovery: summary for the bounded catalog, recipe for one workflow, operation for one exact contract, docs for the tool reference, full for diagnostics. Canonical values: summary, recipe, operation, docs, full." - added
Input schema / properties / view / examplesAdded value: +[ + "summary" +]
- Changed
fow_change79 fields changed- added
Input schema / properties / accepted_risk_ref / descriptionAdded value: +"Durable reference identifying the explicitly accepted residual risk. Applies to: accept_residual_risk. Required by: accept_residual_risk." - added
Input schema / properties / active_provider / descriptionAdded value: +"Accepted compatibility input; the current fow_change handler does not consume it and it has no effect. Set execution ownership through packet authoring/external-work selection. Applies to: set_packet_target_state, revise_packet." - added
Input schema / properties / actor / descriptionAdded value: +"Identity of the human or agent recording this action; retain the original identity when replaying its request." - added
Input schema / properties / answer_summary / descriptionAdded value: +"Explanation resolving the selected packet-construction question. Applies to: answer_packet_question, block_packet_question." - added
Input schema / properties / architecture_refs / descriptionAdded value: +"References to components, interfaces or decisions in one adopted architecture revision; omission preserves selection and [] explicitly clears it. Applies to: revise_packet." - added
Input schema / properties / assertion / descriptionAdded value: +"Structured content of the declared packet-evidence claim, retaining its provenance. Applies to: declare_packet_evidence_claim." - added
Input schema / properties / baseline_refs / descriptionAdded value: +"References to existing baselines governing the proposed change. Applies to: create_change." - added
Input schema / properties / blocking_reasons / descriptionAdded value: +"Current readiness blockers recorded for this packet target. Applies to: set_packet_target_state, block_packet_question, revise_packet, transition_packet." - added
Input schema / properties / candidate_set_id / descriptionAdded value: +"Singular navigation-candidate-set alias, used when candidate_set_ids is absent or empty. Applies to: set_packet_target_state, revise_packet." - added
Input schema / properties / candidate_set_ids / descriptionAdded value: +"Existing navigation candidate sets supplying the packet's target-readiness context. Applies to: set_packet_target_state, revise_packet." - added
Input schema / properties / change_id / descriptionAdded value: +"Canonical owning change ID; when address resolution permits omission, the packet/campaign must resolve unambiguously." - added
Input schema / properties / claim_contradicted / descriptionAdded value: +"Whether the declared evidence claim is contradicted, as explicitly reported by its source. Applies to: declare_packet_evidence_claim." - added
Input schema / properties / claim_dynamic / descriptionAdded value: +"Whether the evidence claim requires current dynamic/provider evidence rather than a static declaration. Applies to: declare_packet_evidence_claim." - added
Input schema / properties / claim_id / descriptionAdded value: +"Stable ID of the existing packet-evidence claim. Applies to: supersede_packet_evidence_claim. Required by: supersede_packet_evidence_claim." - added
Input schema / properties / claim_key / descriptionAdded value: +"Caller-supplied identity of this claim within its reconciliation scope. Applies to: declare_packet_evidence_claim. Required by: declare_packet_evidence_claim." - added
Input schema / properties / claim_required / descriptionAdded value: +"Whether the declared claim is required for reconciliation closure. Applies to: declare_packet_evidence_claim." - added
Input schema / properties / claim_type / descriptionAdded value: +"Canonical evidence-claim category used by packet reconciliation. Applies to: declare_packet_evidence_claim. Required by: declare_packet_evidence_claim. Canonical values: target, symbol_contract, impact, cleanup, test_obligation." - added
Input schema / properties / claims / descriptionAdded value: +"Provider snapshot claim records, preserving their identities, content and declared provenance. Applies to: import_packet_evidence_snapshot. Required by: import_packet_evidence_snapshot." - added
Input schema / properties / completeness / descriptionAdded value: +"Declared completeness of each evidence surface; absent or partial evidence must remain explicit. Applies to: import_packet_evidence_snapshot. Required by: import_packet_evidence_snapshot." - added
Input schema / properties / completion_criteria / descriptionAdded value: +"Ordered packet completion statements; these become stable criteria through the validation-authority workflow. Applies to: revise_packet." - added
Input schema / properties / construction_audit_id / descriptionAdded value: +"ID of the existing packet-construction audit containing the question being resolved. Applies to: get_packet_construction_audit, answer_packet_question, waive_packet_question, block_packet_question. Required by: answer_packet_question, waive_packet_question, block_packet_question." - added
Input schema / properties / context_snapshot_id / descriptionAdded value: +"Singular navigation-context-snapshot alias, used when context_snapshot_ids is absent or empty. Applies to: set_packet_target_state, revise_packet." - added
Input schema / properties / context_snapshot_ids / descriptionAdded value: +"Existing context snapshots supporting current packet target selection. Applies to: set_packet_target_state, revise_packet." - added
Input schema / properties / contract_version / descriptionAdded value: +"Version identifier of the imported provider-evidence contract. Applies to: import_packet_evidence_snapshot." - added
Input schema / properties / criterion_results / descriptionAdded value: +"Declared results for the packet's completion criteria; completion, verification and acceptance remain distinct. Applies to: transition_packet." - added
Input schema / properties / depends_on_packet_id / descriptionAdded value: +"Existing predecessor packet ID to link as a dependency of the selected packet. Applies to: link_dependency. Required by: link_dependency." - added
Input schema / properties / diagnostics / descriptionAdded value: +"Declared provider diagnostics attached to imported evidence; preserve errors and partial coverage. Applies to: import_packet_evidence_snapshot." - added
Input schema / properties / disposition / descriptionAdded value: +"Explicit classification/action for the selected finding, review, packet question or campaign obligation. Applies to: transition_packet." - added
Input schema / properties / evidence_refs / descriptionAdded value: +"References to actual supporting evidence; host-declared provenance remains host-declared. Applies to: declare_packet_evidence_claim, answer_packet_question." - added
Input schema / properties / fingerprint / descriptionAdded value: +"Source/provider-reported evidence fingerprint retained for reconciliation currentness. Applies to: import_packet_evidence_snapshot. Required by: import_packet_evidence_snapshot." - added
Input schema / properties / goal_ids / descriptionAdded value: +"Existing goal graph IDs governing the packet or campaign scope. Applies to: revise_packet." - added
Input schema / properties / in_scope / descriptionAdded value: +"Behaviors and implementation boundaries explicitly included in this packet. Applies to: revise_packet." - added
Input schema / properties / intent / descriptionAdded value: +"Engineering statement of the packet's intended observable behavior and authorized scope. Applies to: revise_packet." - added
Input schema / properties / invariants / descriptionAdded value: +"Conditions that must remain true throughout the scoped behavior or change. Applies to: revise_packet." - added
Input schema / properties / linked_navigation_refs / descriptionAdded value: +"Existing navigation references supporting the packet-question answer. Applies to: answer_packet_question." - added
Input schema / properties / max_claims / descriptionAdded value: +"Maximum provider-evidence claims requested by this bounded collection. Applies to: collect_packet_evidence_snapshot." - added
Input schema / properties / max_depth / descriptionAdded value: +"Maximum traversal depth for this bounded provider-evidence collection. Applies to: collect_packet_evidence_snapshot." - added
Input schema / properties / milestone_id / descriptionAdded value: +"Existing milestone identity governing or filtering the requested scope. Applies to: create_change, link_change_milestone, start_packet_construction_audit. Required by: link_change_milestone." - added
Input schema / properties / navigation_audit_id / descriptionAdded value: +"Singular navigation-audit alias, used when navigation_audit_ids is absent or empty. Applies to: set_packet_target_state, revise_packet." - added
Input schema / properties / navigation_audit_ids / descriptionAdded value: +"Existing navigation audit IDs supporting packet target readiness. Applies to: set_packet_target_state, revise_packet." - added
Input schema / properties / object_ref / descriptionAdded value: +"Object-side identity of the declared subject/predicate/object evidence claim. Applies to: declare_packet_evidence_claim. Required by: declare_packet_evidence_claim." - added
Input schema / properties / operation / descriptionAdded value: +"Operation selector for this multiplexer; use a canonical route listed below. Canonical values: create_change, get_change, link_change_milestone, set_packet_target_state, evaluate_packet_readiness, start_packet_construction_audit, get_packet_construction_audit, initialize_packet_reconciliation, get_packet_reconciliation, declare_packet_evidence_claim, supersede_packet_evidence_claim, import_packet_evidence_snapshot, collect_packet_evidence_snapshot, reconcile_packet_evidence, disposition_packet_evidence_residual, answer_packet_question, waive_packet_question, block_packet_question, derive_packet_pressure, get_packet_pressure, accept_residual_risk, revise_packet, link_dependency, transition_packet." - added
Input schema / properties / operation / examplesAdded value: +[ + "create_change" +] - added
Input schema / properties / out_of_scope / descriptionAdded value: +"Explicitly excluded behavior and implementation work for this packet. Applies to: revise_packet." - added
Input schema / properties / packet_id / descriptionAdded value: +"Canonical packet identity returned by authoring; it identifies the bounded implementation work." - added
Input schema / properties / packet_status / descriptionAdded value: +"Requested canonical packet lifecycle status, checked against its ordinary transition guards. Applies to: transition_packet. Required by: transition_packet. Canonical values: planned, scaffolded, partial, idle, implemented, superseded, cancelled." - added
Input schema / properties / policy_ref / descriptionAdded value: +"Existing policy reference authorizing the requested waiver or residual disposition. Applies to: disposition_packet_evidence_residual, waive_packet_question. Required by: waive_packet_question." - added
Input schema / properties / predicate / descriptionAdded value: +"Relationship asserted between the evidence claim's subject and object. Applies to: declare_packet_evidence_claim. Required by: declare_packet_evidence_claim." - added
Input schema / properties / pressure_id / descriptionAdded value: +"Existing packet-pressure projection identity for explicit residual-risk acceptance. Applies to: get_packet_pressure, accept_residual_risk. Required by: accept_residual_risk." - added
Input schema / properties / profile / descriptionAdded value: +"Named existing policy/profile used for the selected packet-construction audit. Applies to: start_packet_construction_audit, derive_packet_pressure." - added
Input schema / properties / project_id / descriptionAdded value: +"Canonical lifecycle project ID. Select the existing project explicitly; development Markdown authorities are separate from runtime projects." - added
Input schema / properties / provider / descriptionAdded value: +"Compatibility alias for provider_id when importing a packet-evidence snapshot. Applies to: import_packet_evidence_snapshot." - added
Input schema / properties / provider_id / descriptionAdded value: +"Evidence-provider identity recorded in the imported snapshot. Applies to: import_packet_evidence_snapshot. Required by: import_packet_evidence_snapshot." - added
Input schema / properties / provider_scope_id / descriptionAdded value: +"Authorized scope identity understood by the configured provider. Applies to: import_packet_evidence_snapshot. Required by: import_packet_evidence_snapshot." - added
Input schema / properties / provider_snapshot_id / descriptionAdded value: +"Provider-issued identity of the imported evidence snapshot. Applies to: import_packet_evidence_snapshot. Required by: import_packet_evidence_snapshot." - added
Input schema / properties / question_id / descriptionAdded value: +"Existing open packet-construction or Oracle question identity. Applies to: answer_packet_question, waive_packet_question, block_packet_question. Required by: answer_packet_question, waive_packet_question, block_packet_question." - added
Input schema / properties / rationale / descriptionAdded value: +"Concrete reasoning supporting this ordinary mutation, decision or selected authority. Applies to: create_change, supersede_packet_evidence_claim, disposition_packet_evidence_residual, waive_packet_question, block_packet_question, revise_packet. Required by: create_change, supersede_packet_evidence_claim, disposition_packet_evidence_residual." - added
Input schema / properties / reconciliation_disposition / descriptionAdded value: +"Explicit decision for the selected packet-evidence reconciliation residual. Applies to: disposition_packet_evidence_residual. Required by: disposition_packet_evidence_residual. Canonical values: resolved, waived, rejected, escalated, superseded." - added
Input schema / properties / reconciliation_item_id / descriptionAdded value: +"Existing residual identity returned by packet-evidence reconciliation. Applies to: disposition_packet_evidence_residual. Required by: disposition_packet_evidence_residual." - added
Input schema / properties / reconciliation_profile / descriptionAdded value: +"Named reconciliation policy/profile to apply to the declared evidence scope. Applies to: initialize_packet_reconciliation." - added
Input schema / properties / reconciliation_scope_id / descriptionAdded value: +"Existing packet-evidence reconciliation scope identity. Applies to: get_packet_reconciliation, declare_packet_evidence_claim, import_packet_evidence_snapshot, collect_packet_evidence_snapshot, reconcile_packet_evidence. Required by: declare_packet_evidence_claim, import_packet_evidence_snapshot, collect_packet_evidence_snapshot, reconcile_packet_evidence." - added
Input schema / properties / request_id / descriptionAdded value: +"Caller-owned retry identity. For receipted mutations replay the same actor and contents; changed contents can conflict. Inspect exact operation help for its receipt policy." - added
Input schema / properties / requirement_ids / descriptionAdded value: +"Explicit existing requirement IDs defining the selected scope. Applies to: create_change, revise_packet. Required by: create_change." - added
Input schema / properties / selection_ref / descriptionAdded value: +"Provider selection reference retained in the imported evidence snapshot. Applies to: import_packet_evidence_snapshot. Required by: import_packet_evidence_snapshot." - added
Input schema / properties / snapshot_id / descriptionAdded value: +"Existing imported packet-evidence snapshot identity to reconcile. Applies to: reconcile_packet_evidence. Required by: reconcile_packet_evidence." - added
Input schema / properties / source_refs / descriptionAdded value: +"References to existing sources governing the proposed change. Applies to: create_change." - added
Input schema / properties / source_revision / descriptionAdded value: +"Declared repository/source revision associated with the work or evidence; does not independently prove implementation. Applies to: import_packet_evidence_snapshot. Required by: import_packet_evidence_snapshot." - added
Input schema / properties / subject_ref / descriptionAdded value: +"Subject-side identity of the declared evidence claim. Applies to: declare_packet_evidence_claim. Required by: declare_packet_evidence_claim." - added
Input schema / properties / successor_packet_id / descriptionAdded value: +"Existing successor/remediation packet identity associated with this lifecycle transition. Applies to: transition_packet." - added
Input schema / properties / summary / descriptionAdded value: +"Declared concise evidence/readiness summary retained with the snapshot or packet target. Applies to: answer_packet_question, block_packet_question." - added
Input schema / properties / surfaces / descriptionAdded value: +"Explicit provider evidence/association surfaces, such as repo; use the exact configured route contract. Applies to: import_packet_evidence_snapshot." - added
Input schema / properties / target_binding_ids / descriptionAdded value: +"Existing navigation target-binding identities supporting packet readiness. Applies to: set_packet_target_state, revise_packet." - added
Input schema / properties / target_policy / descriptionAdded value: +"Packet target-selection policy controlling explicit/provider/materialization readiness requirements. Applies to: set_packet_target_state, revise_packet. Canonical values: code_targets_required, documental_only." - added
Input schema / properties / target_state / descriptionAdded value: +"Declared packet target-readiness state checked against the governing target policy. Applies to: set_packet_target_state, revise_packet. Canonical values: draft, needs_targets, needs_authority, refined, execution_ready, stale, blocked." - added
Input schema / properties / title / descriptionAdded value: +"Short human-readable title of the authored requirement, finding, packet, run step or campaign. Applies to: create_change, revise_packet. Required by: create_change." - added
Input schema / properties / truncated / descriptionAdded value: +"Whether imported evidence was truncated; partial evidence must not be treated as complete. Applies to: import_packet_evidence_snapshot." - added
Input schema / properties / unresolved_questions / descriptionAdded value: +"Known unresolved engineering/behavior questions retained on this packet; closure gates require resolution rather than anticipatory coding. Applies to: revise_packet." - added
Input schema / properties / waiver_rationale / descriptionAdded value: +"Concrete reason for explicitly waiving the selected packet-construction question under its policy. Applies to: waive_packet_question." - added
Input schema / properties / workspace_revision / descriptionAdded value: +"Provider-declared workspace revision associated with the imported evidence snapshot. Applies to: import_packet_evidence_snapshot."
- Changed
fow_create_project4 fields changed- added
Input schema / properties / actor / descriptionAdded value: +"Identity of the human or agent recording this action; retain the original identity when replaying its request." - added
Input schema / properties / name / descriptionAdded value: +"Human-readable project or milestone name." - added
Input schema / properties / project_id / descriptionAdded value: +"Canonical lifecycle project ID. Select the existing project explicitly; development Markdown authorities are separate from runtime projects." - added
Input schema / properties / request_id / descriptionAdded value: +"Accepted compatibility input; current project creation does not consume request_id or issue a request replay receipt. The canonical project_id is unique and identical repeated creation is rejected before adding effects."
- Changed
fow_external_work9 fields changed- added
Input schema / properties / actor / descriptionAdded value: +"Identity of the human or agent recording this action; retain the original identity when replaying its request." - added
Input schema / properties / change_id / descriptionAdded value: +"Canonical owning change ID; when address resolution permits omission, the packet/campaign must resolve unambiguously." - added
Input schema / properties / operation / descriptionAdded value: +"Operation selector for this multiplexer; use a canonical route listed below. Canonical values: set_mode, select_executor, negotiate_provider, upgrade_validation, criteria, reconcile_criteria, add_criterion, edit_criterion, remove_criterion, validation, provider_validation, export_plan, todo, report_outcome, reconcile_outcome." - added
Input schema / properties / operation / examplesAdded value: +[ + "set_mode" +] - added
Input schema / properties / packet_id / descriptionAdded value: +"Canonical packet identity returned by authoring; it identifies the bounded implementation work." - added
Input schema / properties / payload / descriptionAdded value: +"Standalone execution/PVP operation input. Copy issued spec/plan revisions and authority fingerprint where required; TODO/outcome identities and declared verification obligations must match the issued plan, including offline work. Applies to: set_mode, select_executor, negotiate_provider, upgrade_validation, reconcile_criteria, add_criterion, edit_criterion, remove_criterion, validation, provider_validation, export_plan, todo, report_outcome, reconcile_outcome. Required by: set_mode, select_executor, negotiate_provider, upgrade_validation, reconcile_criteria, add_criterion, edit_criterion, remove_criterion, export_plan, report_outcome, reconcile_outcome. Exact required/optional dotted fields and guidance: fow_capabilities(view=operation, operation_tool=fow_external_work, operation_name=<selected route>)." - added
Input schema / properties / payload / examplesAdded value: +[ + { + "expected_plan_revision": 1, + "expected_spec_revision": 1, + "mode": "external_agent" + } +] - added
Input schema / properties / project_id / descriptionAdded value: +"Canonical lifecycle project ID. Select the existing project explicitly; development Markdown authorities are separate from runtime projects." - added
Input schema / properties / request_id / descriptionAdded value: +"Caller-owned retry identity. For receipted mutations replay the same actor and contents; changed contents can conflict. Inspect exact operation help for its receipt policy."
- Changed
fow_generate_artifacts4 fields changed- added
Input schema / properties / actor / descriptionAdded value: +"Identity of the human or agent recording this action; retain the original identity when replaying its request." - added
Input schema / properties / profile_id / descriptionAdded value: +"Configured artifact-generation profile identity; selects rendering policy, not a model endpoint." - added
Input schema / properties / project_id / descriptionAdded value: +"Canonical lifecycle project ID. Select the existing project explicitly; development Markdown authorities are separate from runtime projects." - added
Input schema / properties / request_id / descriptionAdded value: +"Caller-owned retry identity. For receipted mutations replay the same actor and contents; changed contents can conflict. Inspect exact operation help for its receipt policy."
- Changed
fow_get_artifacts4 fields changed- added
Input schema / properties / artifact_kind / descriptionAdded value: +"Optional artifact-type filter within the selected generation; omission returns all retained kinds." - added
Input schema / properties / generation_id / descriptionAdded value: +"Stored immutable artifact-generation ID; omit it to read all retained generations for this project, subject to artifact_kind filtering." - added
Input schema / properties / include_content / descriptionAdded value: +"Whether to include stored artifact body text as well as metadata." - added
Input schema / properties / project_id / descriptionAdded value: +"Canonical lifecycle project ID. Select the existing project explicitly; development Markdown authorities are separate from runtime projects."
- Changed
fow_get_job2 fields changed- added
Input schema / properties / job_id / descriptionAdded value: +"Durable job ID returned by the operation that scheduled the work." - added
Input schema / properties / project_id / descriptionAdded value: +"Canonical lifecycle project ID. Select the existing project explicitly; development Markdown authorities are separate from runtime projects."
- Changed
fow_get_requirement2 fields changed- added
Input schema / properties / project_id / descriptionAdded value: +"Canonical lifecycle project ID. Select the existing project explicitly; development Markdown authorities are separate from runtime projects." - added
Input schema / properties / requirement_id / descriptionAdded value: +"Existing canonical requirement identity, as returned by registration/import."
- Changed
fow_goal28 fields changed- added
Input schema / properties / actor / descriptionAdded value: +"Identity of the human or agent recording this action; retain the original identity when replaying its request." - added
Input schema / properties / alternate_steps / descriptionAdded value: +"Ordered alternative use-case steps, distinct from the normal and failure paths. Applies to: add_sequence." - added
Input schema / properties / category / descriptionAdded value: +"Requirement or behavioral-expectation category recognized by the current lifecycle policy. Applies to: add_behavioral_expectation. Required by: add_behavioral_expectation. Canonical values: functional, non_functional." - added
Input schema / properties / detail_level / descriptionAdded value: +"Read projection detail level; standard is bounded routine context, audit includes the available audit detail. Applies to: view. Canonical values: standard, audit." - added
Input schema / properties / expected_effects / descriptionAdded value: +"Observable effects expected from the authored use-case or sequence steps. Applies to: add_sequence. Required by: add_sequence." - added
Input schema / properties / failure_steps / descriptionAdded value: +"Ordered steps describing how the use case behaves when its normal operation fails. Applies to: add_sequence." - added
Input schema / properties / invariants / descriptionAdded value: +"Conditions that must remain true throughout the scoped behavior or change. Applies to: add_use_case." - added
Input schema / properties / limit / descriptionAdded value: +"Maximum number of records in this read page; existing route-specific bounds still apply. Applies to: view." - added
Input schema / properties / normal_steps / descriptionAdded value: +"Ordered normal use-case/sequence actions describing the intended successful behavior. Applies to: add_sequence. Required by: add_sequence." - added
Input schema / properties / objective / descriptionAdded value: +"Observable objective of the use case or implementation run. Applies to: add_use_case. Required by: add_use_case." - added
Input schema / properties / observable_outcome / descriptionAdded value: +"Result the stakeholder should be able to observe when the use case succeeds. Applies to: add_use_case, add_behavioral_expectation. Required by: add_use_case, add_behavioral_expectation." - added
Input schema / properties / offset / descriptionAdded value: +"Zero-based position of the first record in this bounded read page. Applies to: view." - added
Input schema / properties / operation / descriptionAdded value: +"Operation selector for this multiplexer; use a canonical route listed below. Canonical values: view, add_use_case, add_sequence, add_behavioral_expectation, link, derive_requirement_candidates." - added
Input schema / properties / operation / examplesAdded value: +[ + "view" +] - added
Input schema / properties / participants / descriptionAdded value: +"Named actors/components participating in the use case or sequence. Applies to: add_sequence. Required by: add_sequence." - added
Input schema / properties / postconditions / descriptionAdded value: +"Conditions that should hold after the use case completes. Applies to: add_use_case." - added
Input schema / properties / preconditions / descriptionAdded value: +"Conditions assumed before the use case starts. Applies to: add_use_case." - added
Input schema / properties / project_id / descriptionAdded value: +"Canonical lifecycle project ID. Select the existing project explicitly; development Markdown authorities are separate from runtime projects." - added
Input schema / properties / relation / descriptionAdded value: +"Canonical directed relationship between the selected source and target goal nodes. Applies to: link. Required by: link." - added
Input schema / properties / request_id / descriptionAdded value: +"Caller-owned retry identity. For receipted mutations replay the same actor and contents; changed contents can conflict. Inspect exact operation help for its receipt policy." - added
Input schema / properties / source_anchor / descriptionAdded value: +"Optional structured source anchor containing source_path, integer line_start and line_end, and optional label; this goal-authoring input is a mapping, distinct from requirement/finding string references. Applies to: add_use_case, add_sequence, add_behavioral_expectation." - added
Input schema / properties / source_goal_id / descriptionAdded value: +"Existing source goal node for the directed goal relationship. Applies to: link. Required by: link." - added
Input schema / properties / statement / descriptionAdded value: +"Precise requirement or behavioral expectation describing an observable obligation. Applies to: add_behavioral_expectation. Required by: add_behavioral_expectation." - added
Input schema / properties / target_goal_id / descriptionAdded value: +"Existing target goal node for the directed goal relationship. Applies to: link. Required by: link." - added
Input schema / properties / title / descriptionAdded value: +"Short human-readable title of the authored requirement, finding, packet, run step or campaign. Applies to: add_use_case, add_sequence, add_behavioral_expectation. Required by: add_use_case, add_sequence, add_behavioral_expectation." - added
Input schema / properties / use_case_actor / descriptionAdded value: +"Stakeholder/system role performing the use case, distinct from the actor recording this mutation. Applies to: add_use_case. Required by: add_use_case." - added
Input schema / properties / view / descriptionAdded value: +"Goal-graph projection selected by operation=view; use the canonical views listed in exact operation help. Applies to: view. Canonical values: summary, nodes, edges, candidates." - added
Input schema / properties / view / examplesAdded value: +[ + "summary" +]
- Changed
fow_ground_intent5 fields changed- added
Input schema / properties / actor / descriptionAdded value: +"Identity of the human or agent recording this action; retain the original identity when replaying its request." - added
Input schema / properties / goal_node_ids / descriptionAdded value: +"Existing use-case/sequence/expectation node IDs selected for intention grounding or correspondence." - added
Input schema / properties / project_id / descriptionAdded value: +"Canonical lifecycle project ID. Select the existing project explicitly; development Markdown authorities are separate from runtime projects." - added
Input schema / properties / request_id / descriptionAdded value: +"Caller-owned retry identity. For receipted mutations replay the same actor and contents; changed contents can conflict. Inspect exact operation help for its receipt policy." - added
Input schema / properties / source_revision / descriptionAdded value: +"Declared repository/source revision associated with the work or evidence; does not independently prove implementation."
- Changed
fow_handover15 fields changed- added
Input schema / properties / actor / descriptionAdded value: +"Identity of the human or agent recording this action; retain the original identity when replaying its request." - added
Input schema / properties / change_id / descriptionAdded value: +"Canonical owning change ID; when address resolution permits omission, the packet/campaign must resolve unambiguously." - added
Input schema / properties / focus_kind / descriptionAdded value: +"Type of lifecycle object anchoring the requested handover projection. Applies to: project_state_snapshot. Canonical values: project, milestone, use_case, sequence, packet, gate." - added
Input schema / properties / focus_ref / descriptionAdded value: +"Existing lifecycle-object reference selected by focus_kind. Applies to: project_state_snapshot." - added
Input schema / properties / handover_id / descriptionAdded value: +"Identity of an existing durable handover snapshot to inspect or resume. Applies to: get_handover, resume_context. Required by: get_handover." - added
Input schema / properties / limit / descriptionAdded value: +"Maximum number of records in this read page; existing route-specific bounds still apply. Applies to: project_state_snapshot." - added
Input schema / properties / milestone_ids / descriptionAdded value: +"Explicit existing milestone IDs in the roadmap or handover selection. Applies to: project_progress. Required by: project_progress." - added
Input schema / properties / operation / descriptionAdded value: +"Operation selector for this multiplexer; use a canonical route listed below. Canonical values: create_handover, get_handover, resume_context, ledger_projection, project_state_snapshot, project_progress." - added
Input schema / properties / operation / examplesAdded value: +[ + "create_handover" +] - added
Input schema / properties / packet_id / descriptionAdded value: +"Canonical packet identity returned by authoring; it identifies the bounded implementation work." - added
Input schema / properties / profile_version / descriptionAdded value: +"Requested existing handover projection contract/profile version. Applies to: create_handover." - added
Input schema / properties / project_id / descriptionAdded value: +"Canonical lifecycle project ID. Select the existing project explicitly; development Markdown authorities are separate from runtime projects." - added
Input schema / properties / projection_kind / descriptionAdded value: +"Kind of coherent lifecycle projection to retain in the handover. Applies to: ledger_projection." - added
Input schema / properties / request_id / descriptionAdded value: +"Caller-owned retry identity. For receipted mutations replay the same actor and contents; changed contents can conflict. Inspect exact operation help for its receipt policy." - added
Input schema / properties / run_id / descriptionAdded value: +"Existing implementation-run identity returned by create_run. Applies to: create_handover, resume_context. Required by: create_handover."
- Changed
fow_import_srs5 fields changed- added
Input schema / properties / actor / descriptionAdded value: +"Identity of the human or agent recording this action; retain the original identity when replaying its request." - added
Input schema / properties / project_id / descriptionAdded value: +"Canonical lifecycle project ID. Select the existing project explicitly; development Markdown authorities are separate from runtime projects." - added
Input schema / properties / request_id / descriptionAdded value: +"Caller-owned retry identity. For receipted mutations replay the same actor and contents; changed contents can conflict. Inspect exact operation help for its receipt policy." - added
Input schema / properties / source_path / descriptionAdded value: +"UTF-8 .md/.markdown SRS file on the Flower SERVER filesystem, not automatically the coding client's disk. The expanded/resolved path must stay within the configured import root when one is set; source/profile/currentness checks apply." - added
Input schema / properties / standard_profile / descriptionAdded value: +"Supported SRS Markdown validation profile; use the same profile when preparing, validating and importing a source."
- Changed
fow_interaction17 fields changed- added
Input schema / properties / actor / descriptionAdded value: +"Identity of the human or agent recording this action; retain the original identity when replaying its request." - added
Input schema / properties / area / descriptionAdded value: +"Integer lifecycle-area choice issued by the current discovery/frame. Use its displayed number; do not supply an area name or invent an index. Applies to: select, switch. Required by: select, switch." - added
Input schema / properties / breath_available / descriptionAdded value: +"Host-declared availability for the interaction continuation boundary; does not authorize work or accept results. Applies to: goal_hook." - added
Input schema / properties / frame_ref / descriptionAdded value: +"Issued interaction frame reference used to continue the same bounded selection/page. Applies to: resolve. Required by: resolve." - added
Input schema / properties / interaction_session_ref / descriptionAdded value: +"Host-provided stable interaction-session identity; retain it across calls within the same conversation." - added
Input schema / properties / limit / descriptionAdded value: +"Maximum number of records in this read page; existing route-specific bounds still apply. Applies to: discover." - added
Input schema / properties / operation / descriptionAdded value: +"Operation selector for this multiplexer; use a canonical route listed below. Canonical values: status, discover, open, select_project, switch_project, clear_project, select, switch, clear, frame, resolve, goal_hook." - added
Input schema / properties / operation / examplesAdded value: +[ + "status" +] - added
Input schema / properties / page_action / descriptionAdded value: +"Requested interaction-page navigation action using the issued frame, not a new project selection. Applies to: discover. Canonical values: more, refine, stop." - added
Input schema / properties / previous_anchor_fingerprint / descriptionAdded value: +"Previously issued interaction anchor fingerprint used to detect continuation drift. Applies to: goal_hook." - added
Input schema / properties / project_id / descriptionAdded value: +"Canonical lifecycle project ID. Select the existing project explicitly; development Markdown authorities are separate from runtime projects." - added
Input schema / properties / project_selection / descriptionAdded value: +"Integer project choice issued by project discovery. Use the displayed number for the current interaction session; project_id is the separate explicit identity input. Applies to: select_project, switch_project." - added
Input schema / properties / query / descriptionAdded value: +"Bounded search text used by interaction discovery within the selected work surface. Applies to: discover." - added
Input schema / properties / request_id / descriptionAdded value: +"Caller-owned retry identity. For receipted mutations replay the same actor and contents; changed contents can conflict. Inspect exact operation help for its receipt policy." - added
Input schema / properties / selection / descriptionAdded value: +"Integer work-item choice issued by the current interaction frame. Retain its frame_ref and use the displayed number. Applies to: resolve. Required by: resolve." - added
Input schema / properties / trigger / descriptionAdded value: +"Declared interaction-continuation trigger used to select the next bounded attention surface. Applies to: goal_hook. Required by: goal_hook. Canonical values: goal_started, goal_resumed, lens_changed, bounded_work_completed, asynchronous_wake, breath_resumed, context_reconstructed, structural_no_progress." - added
Input schema / properties / trigger_ref / descriptionAdded value: +"Reference to the event/evidence that caused the declared interaction trigger. Applies to: goal_hook."
- Changed
fow_list_jobs1 field changed- added
Input schema / properties / project_id / descriptionAdded value: +"Canonical lifecycle project ID. Select the existing project explicitly; development Markdown authorities are separate from runtime projects."
- Changed
fow_packet_advance11 fields changed- added
Input schema / properties / actor / descriptionAdded value: +"Identity of the human or agent recording this action; retain the original identity when replaying its request." - added
Input schema / properties / change_id / descriptionAdded value: +"Canonical owning change ID; when address resolution permits omission, the packet/campaign must resolve unambiguously." - added
Input schema / properties / decision / descriptionAdded value: +"Gate response object routed by decision.operation. Omit it for ordinary advance; obtain the current gate and its required decision fields before replying. sync_only rejects semantic decisions. Applies to: accept_work_plan, reject_work_plan, accept_residual_risk, retry_provider_rejection, record_workspace_review, resolve_reconciliation_residual. Required by: accept_work_plan, reject_work_plan, accept_residual_risk, retry_provider_rejection, record_workspace_review, resolve_reconciliation_residual. Exact required/optional dotted fields and guidance: fow_capabilities(view=operation, operation_tool=fow_packet_advance, operation_name=<selected route>)." - added
Input schema / properties / decision / examplesAdded value: +[ + { + "operation": "accept_work_plan", + "rationale": "example-rationale" + } +] - added
Input schema / properties / expected_plan_revision / descriptionAdded value: +"Plan revision issued with the work or gate being acted on; do not replace stale issued authority to legitimize old work." - added
Input schema / properties / expected_spec_revision / descriptionAdded value: +"Packet specification revision issued with the work or gate being acted on; mismatch rejects stale mutation." - added
Input schema / properties / mode / descriptionAdded value: +"Packet advancement policy: advance evaluates ordinary progression; sync_only delivers pending deltas without START. Applies to: advance. Canonical values: advance, sync_only." - added
Input schema / properties / mode / examplesAdded value: +[ + "advance" +] - added
Input schema / properties / packet_id / descriptionAdded value: +"Canonical packet identity returned by authoring; it identifies the bounded implementation work." - added
Input schema / properties / project_id / descriptionAdded value: +"Canonical lifecycle project ID. Select the existing project explicitly; development Markdown authorities are separate from runtime projects." - added
Input schema / properties / request_id / descriptionAdded value: +"Caller-owned retry identity. For receipted mutations replay the same actor and contents; changed contents can conflict. Inspect exact operation help for its receipt policy."
- Changed
fow_packet_author40 fields changed- added
Input schema / properties / active_provider / descriptionAdded value: +"Selected implementation-provider identity for provider-owned packet execution. Applies to: start_packet." - added
Input schema / properties / actor / descriptionAdded value: +"Identity of the human or agent recording this action; retain the original identity when replaying its request." - added
Input schema / properties / answers / descriptionAdded value: +"Structured resolutions of the packet's currently open engineering questions, using their issued identities. Applies to: replace_plan, resolve_questions. Required by: resolve_questions. Exact required/optional dotted fields and guidance: fow_capabilities(view=operation, operation_tool=fow_packet_author, operation_name=<selected route>)." - added
Input schema / properties / architecture_refs / descriptionAdded value: +"References to components, interfaces or decisions in one adopted architecture revision; omission preserves selection and [] explicitly clears it. Applies to: start_packet, revise_packet." - added
Input schema / properties / change_id / descriptionAdded value: +"Canonical owning change ID; when address resolution permits omission, the packet/campaign must resolve unambiguously." - added
Input schema / properties / client_unit_key / descriptionAdded value: +"Stable caller-owned unit identity used to reconcile authoring retries and locate the intended plan unit. Applies to: add_unit, revise_unit, remove_unit, rebind_unit, set_dependencies. Required by: revise_unit, remove_unit, rebind_unit, set_dependencies." - added
Input schema / properties / completion_criteria / descriptionAdded value: +"Ordered packet completion statements; these become stable criteria through the validation-authority workflow. Applies to: start_packet, revise_packet. Required by: start_packet." - added
Input schema / properties / depends_on / descriptionAdded value: +"Existing plan-unit identities this unit must consume before becoming executable. Applies to: set_dependencies. Required by: set_dependencies." - added
Input schema / properties / expected_plan_revision / descriptionAdded value: +"Plan revision issued with the work or gate being acted on; do not replace stale issued authority to legitimize old work. Applies to: revise_packet, replace_plan, resolve_questions, answer_gate, add_unit, revise_unit, remove_unit, rebind_unit, set_dependencies. Required by: revise_unit, remove_unit, rebind_unit, set_dependencies." - added
Input schema / properties / expected_spec_revision / descriptionAdded value: +"Packet specification revision issued with the work or gate being acted on; mismatch rejects stale mutation. Applies to: revise_packet, replace_plan, resolve_questions, answer_gate, add_unit, revise_unit, remove_unit, rebind_unit, set_dependencies." - added
Input schema / properties / finding_ids / descriptionAdded value: +"Existing assurance finding IDs that the corrective packet is intended to address. Applies to: start_packet." - added
Input schema / properties / gate_fingerprint / descriptionAdded value: +"Fingerprint of the exact issued packet gate being answered; prevents responding to a different current gate. Applies to: answer_gate. Required by: answer_gate." - added
Input schema / properties / goal_ids / descriptionAdded value: +"Existing goal graph IDs governing the packet or campaign scope. Applies to: start_packet, revise_packet." - added
Input schema / properties / in_scope / descriptionAdded value: +"Behaviors and implementation boundaries explicitly included in this packet. Applies to: start_packet, revise_packet." - added
Input schema / properties / intent / descriptionAdded value: +"Engineering statement of the packet's intended observable behavior and authorized scope. Applies to: start_packet, revise_packet. Required by: start_packet." - added
Input schema / properties / invariants / descriptionAdded value: +"Conditions that must remain true throughout the scoped behavior or change. Applies to: start_packet, revise_packet." - added
Input schema / properties / milestone_id / descriptionAdded value: +"Existing milestone identity governing or filtering the requested scope. Applies to: start_packet." - added
Input schema / properties / operation / descriptionAdded value: +"Operation selector for this multiplexer; use a canonical route listed below. Canonical values: start_packet, revise_packet, replace_plan, resolve_questions, answer_gate, add_unit, revise_unit, remove_unit, rebind_unit, set_dependencies." - added
Input schema / properties / operation / examplesAdded value: +[ + "start_packet" +] - added
Input schema / properties / out_of_scope / descriptionAdded value: +"Explicitly excluded behavior and implementation work for this packet. Applies to: start_packet, revise_packet." - added
Input schema / properties / packet_id / descriptionAdded value: +"Canonical packet identity returned by authoring; it identifies the bounded implementation work." - added
Input schema / properties / predecessor_dependency_policy / descriptionAdded value: +"Declared dependency treatment when creating a successor/remediation packet. Applies to: start_packet. Canonical values: materialized, context_only." - added
Input schema / properties / predecessor_packet_id / descriptionAdded value: +"Existing packet being superseded or corrected by this new packet. Applies to: start_packet." - added
Input schema / properties / project_id / descriptionAdded value: +"Canonical lifecycle project ID. Select the existing project explicitly; development Markdown authorities are separate from runtime projects." - added
Input schema / properties / purpose / descriptionAdded value: +"Canonical packet purpose, including ordinary implementation or governed semantic remediation. Applies to: start_packet. Required by: start_packet. Canonical values: implementation, remediation." - added
Input schema / properties / rationale / descriptionAdded value: +"Concrete reasoning supporting this ordinary mutation, decision or selected authority. Applies to: start_packet, revise_packet." - added
Input schema / properties / request_id / descriptionAdded value: +"Caller-owned retry identity. For receipted mutations replay the same actor and contents; changed contents can conflict. Inspect exact operation help for its receipt policy." - added
Input schema / properties / required_campaign_ids / descriptionAdded value: +"Existing campaigns whose successful verification remains required by this corrective packet/finding. Applies to: start_packet." - added
Input schema / properties / required_regression_evidence / descriptionAdded value: +"Declared regression evidence obligations that must remain visible until actually satisfied. Applies to: start_packet." - added
Input schema / properties / requirement_ids / descriptionAdded value: +"Explicit existing requirement IDs defining the selected scope. Applies to: start_packet, revise_packet." - added
Input schema / properties / response / descriptionAdded value: +"Structured answer to the issued packet gate; use its current fingerprint and exact response contract. Applies to: answer_gate. Required by: answer_gate. Exact required/optional dotted fields and guidance: fow_capabilities(view=operation, operation_tool=fow_packet_author, operation_name=<selected route>)." - added
Input schema / properties / source_revision / descriptionAdded value: +"Declared repository/source revision associated with the work or evidence; does not independently prove implementation. Applies to: start_packet." - added
Input schema / properties / target_policy / descriptionAdded value: +"Packet target-selection policy controlling explicit/provider/materialization readiness requirements. Applies to: start_packet. Canonical values: code_targets_required, documental_only." - added
Input schema / properties / target_selection / descriptionAdded value: +"Structured existing navigation/plan-unit target selection; inspect its current identities before binding. Applies to: add_unit." - added
Input schema / properties / title / descriptionAdded value: +"Short human-readable title of the authored requirement, finding, packet, run step or campaign. Applies to: start_packet, revise_packet. Required by: start_packet." - added
Input schema / properties / unit / descriptionAdded value: +"Complete bounded implementation-unit declaration, including instructions, targets, producer/consumer contracts and verification obligations as required by plan authority. Applies to: add_unit. Exact required/optional dotted fields and guidance: fow_capabilities(view=operation, operation_tool=fow_packet_author, operation_name=<selected route>)." - added
Input schema / properties / unit / examplesAdded value: +[ + { + "client_unit_key": "supporting-module", + "file_path": "src/supporting_module.py", + "instructions": [ + "Create the bounded supporting module.", + "Export the contract required by its declared consumers." + ], + "operation_kind": "new_file", + "unit_checks": [ + "The required public contract is exported." + ] + } +] - added
Input schema / properties / unit_patch / descriptionAdded value: +"Explicit patch to the identified existing plan unit; omitted fields preserve existing values under the ordinary revision rules. Applies to: revise_unit, rebind_unit. Required by: revise_unit, rebind_unit. Exact required/optional dotted fields and guidance: fow_capabilities(view=operation, operation_tool=fow_packet_author, operation_name=<selected route>)." - added
Input schema / properties / unresolved_questions / descriptionAdded value: +"Known unresolved engineering/behavior questions retained on this packet; closure gates require resolution rather than anticipatory coding. Applies to: start_packet, revise_packet." - added
Input schema / properties / work_plan / descriptionAdded value: +"Complete ordered implementation plan with stable unit identities, dependencies, instructions and checks; accepted mutations give it authority. Applies to: replace_plan. Required by: replace_plan. Exact required/optional dotted fields and guidance: fow_capabilities(view=operation, operation_tool=fow_packet_author, operation_name=<selected route>)."
- Changed
fow_packet_inspect8 fields changed- added
Input schema / properties / change_id / descriptionAdded value: +"Canonical owning change ID; when address resolution permits omission, the packet/campaign must resolve unambiguously." - added
Input schema / properties / detail_level / descriptionAdded value: +"Read projection detail level; standard is bounded routine context, audit includes the available audit detail. Canonical values: standard, audit." - added
Input schema / properties / limit / descriptionAdded value: +"Maximum number of records in this read page; existing route-specific bounds still apply." - added
Input schema / properties / offset / descriptionAdded value: +"Zero-based position of the first record in this bounded read page." - added
Input schema / properties / packet_id / descriptionAdded value: +"Canonical packet identity returned by authoring; it identifies the bounded implementation work." - added
Input schema / properties / project_id / descriptionAdded value: +"Canonical lifecycle project ID. Select the existing project explicitly; development Markdown authorities are separate from runtime projects." - added
Input schema / properties / view / descriptionAdded value: +"Read projection selector; canonical view names depend on this tool. Canonical values: summary, units, gates, working_sheet, history, requirements." - added
Input schema / properties / view / examplesAdded value: +[ + "summary" +]
- Changed
fow_promote_milestone10 fields changed- added
Input schema / properties / acceptance_evidence / descriptionAdded value: +"Reserved compatibility input; milestone promotion plans scope and rejects nonempty acceptance evidence. Use fow_accept_milestone for actual governed acceptance." - added
Input schema / properties / actor / descriptionAdded value: +"Identity of the human or agent recording this action; retain the original identity when replaying its request." - added
Input schema / properties / dependency_closure_ids / descriptionAdded value: +"Requirement IDs included in the milestone's explicit dependency closure." - added
Input schema / properties / entry_policy / descriptionAdded value: +"Declared entry conditions for the milestone's planned scope." - added
Input schema / properties / exit_policy / descriptionAdded value: +"Declared exit/acceptance conditions for the milestone's planned scope." - added
Input schema / properties / name / descriptionAdded value: +"Human-readable project or milestone name." - added
Input schema / properties / project_id / descriptionAdded value: +"Canonical lifecycle project ID. Select the existing project explicitly; development Markdown authorities are separate from runtime projects." - added
Input schema / properties / request_id / descriptionAdded value: +"Caller-owned retry identity. For receipted mutations replay the same actor and contents; changed contents can conflict. Inspect exact operation help for its receipt policy." - added
Input schema / properties / requirement_ids / descriptionAdded value: +"Explicit existing requirement IDs defining the selected scope." - added
Input schema / properties / risk_disposition / descriptionAdded value: +"Declared treatment of milestone planning risks."
- Changed
fow_record_verification8 fields changed- added
Input schema / properties / actor / descriptionAdded value: +"Identity of the human or agent recording this action; retain the original identity when replaying its request." - added
Input schema / properties / metadata / descriptionAdded value: +"Declared verification metadata, such as provenance and execution details; not independent proof of the result." - added
Input schema / properties / outcome / descriptionAdded value: +"Declared verification result, preserving failed or unexecuted obligations as such. Canonical values: passed, failed, partial." - added
Input schema / properties / project_id / descriptionAdded value: +"Canonical lifecycle project ID. Select the existing project explicitly; development Markdown authorities are separate from runtime projects." - added
Input schema / properties / reference / descriptionAdded value: +"Locator/reference of actual verification evidence; evidence provenance remains explicitly declared." - added
Input schema / properties / request_id / descriptionAdded value: +"Caller-owned retry identity. For receipted mutations replay the same actor and contents; changed contents can conflict. Inspect exact operation help for its receipt policy." - added
Input schema / properties / requirement_id / descriptionAdded value: +"Existing canonical requirement identity, as returned by registration/import." - added
Input schema / properties / verification_kind / descriptionAdded value: +"Canonical verification category identifying how the declared requirement evidence was obtained. Canonical values: tested_deterministically, tested_live."
- Changed
fow_register_requirement8 fields changed- added
Input schema / properties / actor / descriptionAdded value: +"Identity of the human or agent recording this action; retain the original identity when replaying its request." - added
Input schema / properties / category / descriptionAdded value: +"Requirement or behavioral-expectation category recognized by the current lifecycle policy." - added
Input schema / properties / project_id / descriptionAdded value: +"Canonical lifecycle project ID. Select the existing project explicitly; development Markdown authorities are separate from runtime projects." - added
Input schema / properties / rationale / descriptionAdded value: +"Concrete reasoning supporting this ordinary mutation, decision or selected authority." - added
Input schema / properties / request_id / descriptionAdded value: +"Caller-owned retry identity. For receipted mutations replay the same actor and contents; changed contents can conflict. Inspect exact operation help for its receipt policy." - added
Input schema / properties / source_anchor / descriptionAdded value: +"String source locator/reference (path, section, entity or revision as applicable) linking authority to its originating material; this public input is not a structured object." - added
Input schema / properties / statement / descriptionAdded value: +"Precise requirement or behavioral expectation describing an observable obligation." - added
Input schema / properties / title / descriptionAdded value: +"Short human-readable title of the authored requirement, finding, packet, run step or campaign."
- Changed
fow_revise_requirement9 fields changed- added
Input schema / properties / actor / descriptionAdded value: +"Identity of the human or agent recording this action; retain the original identity when replaying its request." - added
Input schema / properties / category / descriptionAdded value: +"Requirement or behavioral-expectation category recognized by the current lifecycle policy." - added
Input schema / properties / project_id / descriptionAdded value: +"Canonical lifecycle project ID. Select the existing project explicitly; development Markdown authorities are separate from runtime projects." - added
Input schema / properties / rationale / descriptionAdded value: +"Concrete reasoning supporting this ordinary mutation, decision or selected authority." - added
Input schema / properties / request_id / descriptionAdded value: +"Caller-owned retry identity. For receipted mutations replay the same actor and contents; changed contents can conflict. Inspect exact operation help for its receipt policy." - added
Input schema / properties / requirement_id / descriptionAdded value: +"Existing canonical requirement identity, as returned by registration/import." - added
Input schema / properties / source_anchor / descriptionAdded value: +"String source locator/reference (path, section, entity or revision as applicable) linking authority to its originating material; this public input is not a structured object." - added
Input schema / properties / statement / descriptionAdded value: +"Precise requirement or behavioral expectation describing an observable obligation." - added
Input schema / properties / title / descriptionAdded value: +"Short human-readable title of the authored requirement, finding, packet, run step or campaign."
- Changed
fow_revise_srs_baseline7 fields changed- added
Input schema / properties / actor / descriptionAdded value: +"Identity of the human or agent recording this action; retain the original identity when replaying its request." - added
Input schema / properties / governed_approval_reference / descriptionAdded value: +"Reference to explicit governed approval required for this lifecycle transition or baseline change." - added
Input schema / properties / previous_baseline_id / descriptionAdded value: +"Exact current SRS baseline ID that this source-proven revision is intended to replace." - added
Input schema / properties / project_id / descriptionAdded value: +"Canonical lifecycle project ID. Select the existing project explicitly; development Markdown authorities are separate from runtime projects." - added
Input schema / properties / request_id / descriptionAdded value: +"Caller-owned retry identity. For receipted mutations replay the same actor and contents; changed contents can conflict. Inspect exact operation help for its receipt policy." - added
Input schema / properties / source_path / descriptionAdded value: +"UTF-8 .md/.markdown SRS file on the Flower SERVER filesystem, not automatically the coding client's disk. The expanded/resolved path must stay within the configured import root when one is set; source/profile/currentness checks apply." - added
Input schema / properties / standard_profile / descriptionAdded value: +"Supported SRS Markdown validation profile; use the same profile when preparing, validating and importing a source."
- Changed
fow_run23 fields changed- added
Input schema / properties / action / descriptionAdded value: +"Bounded instruction describing what this implementation-run step will do. Applies to: add_step. Required by: add_step." - added
Input schema / properties / actor / descriptionAdded value: +"Identity of the human or agent recording this action; retain the original identity when replaying its request." - added
Input schema / properties / blocking_reason / descriptionAdded value: +"Concrete reason the implementation-run step cannot advance. Applies to: block_step. Required by: block_step." - added
Input schema / properties / change_id / descriptionAdded value: +"Canonical owning change ID; when address resolution permits omission, the packet/campaign must resolve unambiguously." - added
Input schema / properties / completion_reference / descriptionAdded value: +"Reference to the actual evidence/authority supporting completion of this lifecycle object. Applies to: complete_run. Required by: complete_run." - added
Input schema / properties / depends_on_step_id / descriptionAdded value: +"Existing predecessor run-step ID that must complete before the selected step can start. Applies to: link_step_dependency. Required by: link_step_dependency." - added
Input schema / properties / evidence_refs / descriptionAdded value: +"References to actual supporting evidence; host-declared provenance remains host-declared. Applies to: add_step, complete_step. Required by: complete_step." - added
Input schema / properties / external_ref / descriptionAdded value: +"Declared external execution/reference identity attached to the implementation run. Applies to: create_run." - added
Input schema / properties / next_expected_action / descriptionAdded value: +"Concrete next action required to unblock or continue this implementation-run step. Applies to: block_step. Required by: block_step." - added
Input schema / properties / objective / descriptionAdded value: +"Observable objective of the use case or implementation run. Applies to: create_run. Required by: create_run." - added
Input schema / properties / operation / descriptionAdded value: +"Operation selector for this multiplexer; use a canonical route listed below. Canonical values: create_run, get_run, add_step, link_step_dependency, start_step, complete_step, block_step, cancel_step, complete_run, cancel_run, task_view." - added
Input schema / properties / operation / examplesAdded value: +[ + "create_run" +] - added
Input schema / properties / orchestrator_ref / descriptionAdded value: +"Identity/reference of the orchestrator responsible for this implementation run. Applies to: create_run." - added
Input schema / properties / packet_id / descriptionAdded value: +"Canonical packet identity returned by authoring; it identifies the bounded implementation work." - added
Input schema / properties / project_id / descriptionAdded value: +"Canonical lifecycle project ID. Select the existing project explicitly; development Markdown authorities are separate from runtime projects." - added
Input schema / properties / reason / descriptionAdded value: +"Explicit reason for the transition, cancellation or continuation action. Applies to: cancel_step, cancel_run. Required by: cancel_step, cancel_run." - added
Input schema / properties / request_id / descriptionAdded value: +"Caller-owned retry identity. For receipted mutations replay the same actor and contents; changed contents can conflict. Inspect exact operation help for its receipt policy." - added
Input schema / properties / run_id / descriptionAdded value: +"Existing implementation-run identity returned by create_run. Applies to: get_run, add_step, link_step_dependency, start_step, complete_step, block_step, cancel_step, complete_run, cancel_run, task_view. Required by: get_run, add_step, link_step_dependency, start_step, complete_step, block_step, cancel_step, complete_run, cancel_run, task_view." - added
Input schema / properties / source_ref / descriptionAdded value: +"Declared source-authority reference attached to the implementation run. Applies to: create_run." - added
Input schema / properties / step_id / descriptionAdded value: +"Existing implementation-run step identity. Applies to: link_step_dependency, start_step, complete_step, block_step, cancel_step. Required by: link_step_dependency, start_step, complete_step, block_step, cancel_step." - added
Input schema / properties / step_required / descriptionAdded value: +"Whether completion of this implementation-run step is required for the run to complete. Applies to: add_step." - added
Input schema / properties / target_refs / descriptionAdded value: +"Explicit implementation/source targets for this bounded run step. Applies to: add_step." - added
Input schema / properties / title / descriptionAdded value: +"Short human-readable title of the authored requirement, finding, packet, run step or campaign. Applies to: add_step. Required by: add_step."
- Changed
fow_semantic16 fields changed- added
Input schema / properties / actor / descriptionAdded value: +"Identity of the human or agent recording this action; retain the original identity when replaying its request." - added
Input schema / properties / assignment_id / descriptionAdded value: +"Identifier returned when the bounded semantic assignment was prepared. Applies to: inspect, submit, adopt, execute_internal. Required by: inspect, submit, adopt, execute_internal." - added
Input schema / properties / execution_mode / descriptionAdded value: +"Semantic executor route: host prepares a durable external assignment; internal explicitly uses configured inference. Applies to: prepare. Required by: prepare. Canonical values: host, internal." - added
Input schema / properties / executor_ref / descriptionAdded value: +"Identity/reference of the executor that produced the submitted semantic result. Applies to: submit. Required by: submit." - added
Input schema / properties / goal_node_ids / descriptionAdded value: +"Existing use-case/sequence/expectation node IDs selected for intention grounding or correspondence. Applies to: prepare." - added
Input schema / properties / host_evidence / descriptionAdded value: +"Exact flower-host-grounding-evidence-v1 receipt for host grounding, with its declared source/provenance. Applies to: prepare. Exact required/optional dotted fields and guidance: fow_capabilities(view=operation, operation_tool=fow_semantic, operation_name=<selected route>)." - added
Input schema / properties / operation / descriptionAdded value: +"Operation selector for this multiplexer; use a canonical route listed below. Canonical values: inventory, prepare, inspect, submit, adopt, execute_internal." - added
Input schema / properties / operation / examplesAdded value: +[ + "inventory" +] - added
Input schema / properties / project_id / descriptionAdded value: +"Canonical lifecycle project ID. Select the existing project explicitly; development Markdown authorities are separate from runtime projects." - added
Input schema / properties / request_id / descriptionAdded value: +"Caller-owned retry identity. For receipted mutations replay the same actor and contents; changed contents can conflict. Inspect exact operation help for its receipt policy." - added
Input schema / properties / result / descriptionAdded value: +"Executor-authored semantic result matching the prepared assignment schema. submit validates; adopt is a separate authority mutation. Applies to: submit. Required by: submit. Exact required/optional dotted fields and guidance: fow_capabilities(view=operation, operation_tool=fow_semantic, operation_name=<selected route>)." - added
Input schema / properties / result / examplesAdded value: +[ + { + "findings": [] + } +] - added
Input schema / properties / role / descriptionAdded value: +"Bounded semantic role, currently srs_semantic_validation or intention_grounding; inventory discloses unsupported roles. Applies to: prepare. Required by: prepare. Canonical values: srs_semantic_validation, intention_grounding." - added
Input schema / properties / source_path / descriptionAdded value: +"UTF-8 .md/.markdown SRS file on the Flower SERVER filesystem, not automatically the coding client's disk. The expanded/resolved path must stay within the configured import root when one is set; source/profile/currentness checks apply. Applies to: prepare." - added
Input schema / properties / source_revision / descriptionAdded value: +"Declared grounding/source revision. The assignment also retains a prepared authority snapshot; submitting a different revision does not make stale evidence current. Applies to: prepare, submit." - added
Input schema / properties / standard_profile / descriptionAdded value: +"Supported SRS Markdown validation profile; use the same profile when preparing, validating and importing a source. Applies to: prepare."
- Changed
fow_set_requirement_lifecycle7 fields changed- added
Input schema / properties / actor / descriptionAdded value: +"Identity of the human or agent recording this action; retain the original identity when replaying its request." - added
Input schema / properties / governed_approval_reference / descriptionAdded value: +"Reference to explicit governed approval required for this lifecycle transition or baseline change." - added
Input schema / properties / lifecycle_status / descriptionAdded value: +"Requested canonical requirement lifecycle state, subject to normal transition/approval policy. Canonical values: planned, implemented, partial, removed." - added
Input schema / properties / project_id / descriptionAdded value: +"Canonical lifecycle project ID. Select the existing project explicitly; development Markdown authorities are separate from runtime projects." - added
Input schema / properties / reason / descriptionAdded value: +"Explicit reason for the transition, cancellation or continuation action." - added
Input schema / properties / request_id / descriptionAdded value: +"Caller-owned retry identity. For receipted mutations replay the same actor and contents; changed contents can conflict. Inspect exact operation help for its receipt policy." - added
Input schema / properties / requirement_id / descriptionAdded value: +"Existing canonical requirement identity, as returned by registration/import."
- Changed
fow_traceability6 fields changed- added
Input schema / properties / detail_level / descriptionAdded value: +"Read projection detail level; standard is bounded routine context, audit includes the available audit detail. Canonical values: standard, audit." - added
Input schema / properties / evidence_id / descriptionAdded value: +"Existing evidence identity to inspect or associate; use returned IDs rather than inventing evidence." - added
Input schema / properties / limit / descriptionAdded value: +"Maximum number of records in this read page; existing route-specific bounds still apply." - added
Input schema / properties / milestone_id / descriptionAdded value: +"Existing milestone identity governing or filtering the requested scope." - added
Input schema / properties / offset / descriptionAdded value: +"Zero-based position of the first record in this bounded read page." - added
Input schema / properties / project_id / descriptionAdded value: +"Canonical lifecycle project ID. Select the existing project explicitly; development Markdown authorities are separate from runtime projects."
- Changed
fow_validate_srs5 fields changed- added
Input schema / properties / actor / descriptionAdded value: +"Identity of the human or agent recording this action; retain the original identity when replaying its request." - added
Input schema / properties / project_id / descriptionAdded value: +"Canonical lifecycle project ID. Select the existing project explicitly; development Markdown authorities are separate from runtime projects." - added
Input schema / properties / request_id / descriptionAdded value: +"Caller-owned retry identity. For receipted mutations replay the same actor and contents; changed contents can conflict. Inspect exact operation help for its receipt policy." - added
Input schema / properties / source_path / descriptionAdded value: +"UTF-8 .md/.markdown SRS file on the Flower SERVER filesystem, not automatically the coding client's disk. The expanded/resolved path must stay within the configured import root when one is set; source/profile/currentness checks apply." - added
Input schema / properties / standard_profile / descriptionAdded value: +"Supported SRS Markdown validation profile; use the same profile when preparing, validating and importing a source."
- Changed
fow_what_next6 fields changed- added
Input schema / properties / detail_level / descriptionAdded value: +"Read projection detail level; standard is bounded routine context, audit includes the available audit detail. Canonical values: standard, audit." - added
Input schema / properties / limit / descriptionAdded value: +"Maximum number of records in this read page; existing route-specific bounds still apply." - added
Input schema / properties / milestone_id / descriptionAdded value: +"Existing milestone identity governing or filtering the requested scope." - added
Input schema / properties / offset / descriptionAdded value: +"Zero-based position of the first record in this bounded read page." - added
Input schema / properties / project_id / descriptionAdded value: +"Canonical lifecycle project ID. Select the existing project explicitly; development Markdown authorities are separate from runtime projects." - added
Input schema / properties / scope_id / descriptionAdded value: +"Named audit/work scope selecting the relevant requirement phase or work projection."
37 tool updates
v0.1.0- First observed
fow_accept_milestone - First observed
fow_architecture - First observed
fow_assurance - First observed
fow_audit_phase - First observed
fow_bindings - First observed
fow_bootstrap - First observed
fow_campaign_advance - First observed
fow_campaign_author - First observed
fow_campaign_inspect - First observed
fow_capabilities - First observed
fow_change - First observed
fow_create_project - First observed
fow_external_work - First observed
fow_generate_artifacts - First observed
fow_get_artifacts - First observed
fow_get_job - First observed
fow_get_requirement - First observed
fow_goal - First observed
fow_ground_intent - First observed
fow_handover - First observed
fow_import_srs - First observed
fow_interaction - First observed
fow_list_jobs - First observed
fow_packet_advance - First observed
fow_packet_author - First observed
fow_packet_inspect - First observed
fow_promote_milestone - First observed
fow_record_verification - First observed
fow_register_requirement - First observed
fow_revise_requirement - First observed
fow_revise_srs_baseline - First observed
fow_run - First observed
fow_semantic - First observed
fow_set_requirement_lifecycle - First observed
fow_traceability - First observed
fow_validate_srs - First observed
fow_what_next
TDQS
Scored across 37 tools
Most tools target a distinct lifecycle concern, and descriptions include explicit cross-references that steer agents away from overlaps (e.g. fow_ground_intent vs fow_semantic, fow_external_work vs fow_packet_advance). However, the dense cluster of packet/change/run/campaign/external-work tools has subtle boundaries that an agent could still misselect, so it is not perfectly unambiguous.
All tools share a consistent fow_ prefix and snake_case, with single-operation tools using a clear verb_noun pattern (fow_create_project, fow_get_requirement, fow_revise_requirement) and multi-operation routers named by domain (fow_change, fow_assurance, fow_packet_author). The deliberate router-vs-verb distinction is readable and mostly consistent, with only minor deviation.
At 37 tools the surface is heavy and exceeds the comfortable range, which raises cognitive load for an agent. That said, the domain (a full software lifecycle governance engine) is genuinely vast and many tools are multi-operation dispatchers that consolidate dozens of underlying actions, so the count is defensible rather than inflated.
The surface covers an unusually full lifecycle: project creation, requirement CRUD and lifecycle, verification evidence, traceability, goals, SRS validate/import/revise, milestone promotion/acceptance, audits, artifact generation, job retrieval, bootstrap, assurance, run tracking, handover, packet authoring, and verification campaigns. CRUD and lifecycle coverage across these domains appears complete with no obvious dead ends.
Maintenance
Related MCP Connectors
One shared project for a team's coding agents: decisions, a task board and handoffs.
Project memory for coding agents: requirements, decisions, code graph and delivery telemetry.
Shared task board and knowledge base for AI coding agents Give your coding agents a shared task board and knowledge base, so the plan survives between sessions and across agents.
Cross-agent artifact workspace with provenance across Claude Code, Codex, Cursor, LangGraph.
Related MCP Servers
- AlicenseNot gradedqualityCmaintenanceEnables coding agents to store, recall, and manage persistent memory across sessions through MCP tools, with reviewable handoffs and SQLite-backed local storage.1MIT
- AlicenseAqualityCmaintenanceEnables coding agents to persist notes, decisions, requirements, and learnings per project in SQLite and retrieve them across sessions via search and status tools.3MIT
- FlicenseAqualityBmaintenanceEnables coding agents to track and coordinate project work through a shared SQLite ledger, including task plans, session ancestry, claims, work locations, blockers, and commits via MCP tools.9-
- AlicenseNot gradedqualityCmaintenanceEnables coding agents to persist and resume shared working state—tasks, progress, decisions, commands, tests, checkpoints, and handoffs—backed by SQLite while keeping Git authoritative for files and repository state.MIT