- Add generated engine-tools reference and refresh extension/capabilities docs from source definitions - Enhance sync-fusion-skill-tools script to verify and maintain skill documentation consistency - Expand skill-sync tests and enforce sync:fusion-skill:check in the workspace test pipeline - Add FN-2569 changeset documenting the published @runfusion/fusion patch update
12 KiB
Fusion Pi Extension Tools
All tools are registered via the pi extension. They are available in any pi agent session when the Fusion extension is installed.
Naming contract: all externally exposed Fusion extension tools are
fn_*(for examplefn_task_create). Engine runtime sessions also inject additionalfn_*tools (for examplefn_review_step,fn_spawn_agent,fn_task_document_write) that are separate from this extension surface and documented inengine-tools.md.
Task Tools
fn_task_create
Create a new task on the Fusion task board. The task enters the triage column where the AI triage agent will specify it into a full prompt with steps, file scope, and acceptance criteria.
| Parameter | Type | Required | Description |
|---|---|---|---|
description |
string | ✓ | What needs to be done — be descriptive |
depends |
array | — | Task IDs this depends on (e.g. ['FN-001', 'FN-002']) |
agentId |
string | — | Agent ID to assign this task to (e.g. 'agent-abc123') |
fn_task_update
Update fields on an existing task. Supports modifying the title, description, dependencies, and assigned agent after task creation.
| Parameter | Type | Required | Description |
|---|---|---|---|
id |
string | ✓ | Task ID (e.g. FN-001) |
title |
string | — | New task title |
description |
string | — | New task description |
depends |
array | — | New dependency list — replaces existing dependencies (e.g. ['FN-001', 'FN-002']) |
agentId |
union | — | Agent ID to assign this task to, or null to clear (e.g. 'agent-abc123') |
fn_task_list
List all tasks on the Fusion board, grouped by column.
| Parameter | Type | Required | Description |
|---|---|---|---|
column |
string(enum) | — | Filter to a specific column |
limit |
number | — | Max tasks to show per column (default: 10) |
fn_task_show
Show full details for a task including steps, progress, and log entries.
| Parameter | Type | Required | Description |
|---|---|---|---|
id |
string | ✓ | Task ID (e.g. FN-001) |
fn_task_attach
Attach a file to a task. Supports images (png, jpg, gif, webp) and text files (txt, log, json, yaml, yml, toml, csv, xml).
| Parameter | Type | Required | Description |
|---|---|---|---|
id |
string | ✓ | Task ID (e.g. FN-001) |
path |
string | ✓ | Path to the file to attach |
fn_task_pause
Pause a task — stops all automated agent and scheduler interaction for this task.
| Parameter | Type | Required | Description |
|---|---|---|---|
id |
string | ✓ | Task ID (e.g. FN-001) |
fn_task_unpause
Unpause a task — resumes automated agent and scheduler interaction.
| Parameter | Type | Required | Description |
|---|---|---|---|
id |
string | ✓ | Task ID (e.g. FN-001) |
fn_task_retry
Retry a failed task — clears the error state and moves it back to the todo column for re-execution.
| Parameter | Type | Required | Description |
|---|---|---|---|
id |
string | ✓ | Task ID to retry (e.g. FN-001). Must be in 'failed' state. |
fn_task_duplicate
Duplicate an existing task, creating a fresh copy in triage. Copies the title and description but resets all execution state. The AI triage agent will re-specify the new task.
| Parameter | Type | Required | Description |
|---|---|---|---|
id |
string | ✓ | Source task ID to duplicate (e.g. FN-001) |
fn_task_refine
Request a refinement of a completed or in-review task. Creates a new follow-up task in triage that references the original task as a dependency. Use this when a done or in-review task needs additional work, improvements, or follow-up changes.
| Parameter | Type | Required | Description |
|---|---|---|---|
id |
string | ✓ | Task ID to refine (e.g. FN-001). Must be in 'done' or 'in-review' column. |
feedback |
string | ✓ | Description of what needs to be refined or improved |
fn_task_archive
Archive a done task (move from done → archived). Archived tasks are preserved for historical reference but moved out of the main board view.
| Parameter | Type | Required | Description |
|---|---|---|---|
id |
string | ✓ | Task ID to archive (e.g. FN-001). Must be in 'done' column. |
fn_task_unarchive
Unarchive an archived task (move from archived → done). Restores the task to the done column.
| Parameter | Type | Required | Description |
|---|---|---|---|
id |
string | ✓ | Task ID to unarchive (e.g. FN-001). Must be in 'archived' column. |
fn_task_delete
Permanently delete a task from the Fusion board. Tasks are deleted immediately and cannot be recovered.
| Parameter | Type | Required | Description |
|---|---|---|---|
id |
string | ✓ | Task ID to delete (e.g. FN-001) |
fn_task_plan
Create a task via AI-guided planning mode — interactive conversation to refine your idea into a well-specified task.
| Parameter | Type | Required | Description |
|---|---|---|---|
description |
string | — | Initial plan description (optional) — the AI will ask clarifying questions if not provided |
GitHub Tools
fn_task_import_github
Import GitHub issues as Fusion tasks. Fetches open issues from a repository and creates tasks in the triage column. Each task includes the issue title and body with a link to the source issue.
| Parameter | Type | Required | Description |
|---|---|---|---|
ownerRepo |
string | ✓ | Repository in owner/repo format (e.g., 'dustinbyrne/fusion') |
limit |
number | — | Max issues to import (default: 30, max: 100) |
labels |
array | — | Label names to filter by |
fn_task_import_github_issue
Import a specific GitHub issue as a Fusion task. Fetches the issue by number and creates a single task in the triage column with the issue title and body.
| Parameter | Type | Required | Description |
|---|---|---|---|
owner |
string | ✓ | Repository owner (e.g., 'dustinbyrne') |
repo |
string | ✓ | Repository name (e.g., 'fusion') |
issueNumber |
number | ✓ | GitHub issue number to import |
fn_task_browse_github_issues
List open GitHub issues from a repository to browse before importing. Returns issue numbers, titles, and URLs for selection. Use with fn_task_import_github_issue to import specific issues by number.
| Parameter | Type | Required | Description |
|---|---|---|---|
owner |
string | ✓ | Repository owner (e.g., 'dustinbyrne') |
repo |
string | ✓ | Repository name (e.g., 'fusion') |
limit |
number | — | Max issues to show (default: 30, max: 100) |
labels |
array | — | Label names to filter by |
Mission Tools
fn_mission_create
Create a new mission — a high-level objective that can span multiple milestones. Missions contain milestones that break down work into phases.
| Parameter | Type | Required | Description |
|---|---|---|---|
title |
string | ✓ | Mission title — brief but descriptive |
description |
string | — | Detailed mission objectives and context |
autoAdvance |
boolean | — | Automatically activate the next pending slice when the current slice completes |
fn_mission_list
List all missions with their current status.
No parameters.
fn_mission_show
Show mission details with full hierarchy: milestones → slices → features.
| Parameter | Type | Required | Description |
|---|---|---|---|
id |
string | ✓ | Mission ID (e.g., M-001) |
fn_mission_delete
Delete a mission and all its milestones, slices, and features. Cannot be undone.
| Parameter | Type | Required | Description |
|---|---|---|---|
id |
string | ✓ | Mission ID to delete (e.g., M-001) |
fn_milestone_add
Add a milestone to a mission. Milestones represent phases of work.
| Parameter | Type | Required | Description |
|---|---|---|---|
missionId |
string | ✓ | Parent mission ID (e.g., M-001) |
title |
string | ✓ | Milestone title |
description |
string | — | Milestone description |
fn_slice_add
Add a slice to a milestone. Slices are work units that can be activated for implementation.
| Parameter | Type | Required | Description |
|---|---|---|---|
milestoneId |
string | ✓ | Parent milestone ID (e.g., MS-001) |
title |
string | ✓ | Slice title |
description |
string | — | Slice description |
fn_feature_add
Add a feature to a slice. Features are deliverables that can be linked to tasks.
| Parameter | Type | Required | Description |
|---|---|---|---|
sliceId |
string | ✓ | Parent slice ID (e.g., SL-001) |
title |
string | ✓ | Feature title |
description |
string | — | Feature description |
acceptanceCriteria |
string | — | Acceptance criteria for completing the feature |
fn_slice_activate
Activate a pending slice for implementation. Sets status to 'active' and enables task linking for its features.
| Parameter | Type | Required | Description |
|---|---|---|---|
id |
string | ✓ | Slice ID to activate (e.g., SL-001) |
fn_feature_link_task
Link a feature to a fn task for implementation. Updates the feature status to 'triaged' and associates it with the task.
| Parameter | Type | Required | Description |
|---|---|---|---|
featureId |
string | ✓ | Feature ID to link (e.g., F-001) |
taskId |
string | ✓ | Task ID to link to (e.g., FN-001) |
Agent Tools
fn_agent_stop
Stop a running agent — pauses its execution. Transitions the agent from running/active to paused state.
| Parameter | Type | Required | Description |
|---|---|---|---|
id |
string | ✓ | Agent ID to stop (e.g., agent-abc123) |
fn_agent_start
Start a stopped agent — resumes its execution. Transitions the agent from paused to active state.
| Parameter | Type | Required | Description |
|---|---|---|---|
id |
string | ✓ | Agent ID to start (e.g., agent-abc123) |
Skills Tools
fn_skills_search
Search the skills.sh directory for agent skills. Returns matching skills with names, sources (owner/repo), install counts, and install commands. Use fn_skills_install to install a selected skill.
| Parameter | Type | Required | Description |
|---|---|---|---|
query |
string | ✓ | Search query — framework name, technology, or capability (e.g., 'react', 'firebase', 'testing', 'docker') |
limit |
number | — | Max results to return (default: 10, max: 50) |
fn_skills_install
Install an agent skill from skills.sh into the current project. Downloads skill files into the project's skill directories (.fusion/skills/, legacy .pi/skills/, .agents/skills/). The skill becomes available to AI agents in subsequent sessions.
| Parameter | Type | Required | Description |
|---|---|---|---|
source |
string | ✓ | GitHub source in owner/repo format (e.g., 'firebase/agent-skills') |
skill |
string | — | Specific skill name to install (e.g., 'firebase-basics'). Omit to install all skills from the source. |
Dashboard Command
/fn
Start or stop the Fusion dashboard from within a pi session.
| Command | Description |
|---|---|
/fn |
Start dashboard on port 4040 |
/fn 8080 |
Start on custom port |
/fn stop |
Stop dashboard |
/fn status |
Check if running |