@runfusion/fusion 0.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +166 -0
- package/dist/bin.js +141453 -0
- package/dist/client/assets/addon-fit-C7jRorKK.js +1 -0
- package/dist/client/assets/addon-web-links-CkJwd4cQ.js +1 -0
- package/dist/client/assets/addon-webgl-BjvOw43o.js +58 -0
- package/dist/client/assets/index-Dr0THfBG.css +1 -0
- package/dist/client/assets/index-bkmXzXw5.js +1241 -0
- package/dist/client/assets/vendor-react-K0fH_qHe.js +49 -0
- package/dist/client/assets/vendor-xterm-DzcZoU0P.js +9 -0
- package/dist/client/assets/vendor-xterm-LZoznX6r.css +32 -0
- package/dist/client/icons/icon-192.png +0 -0
- package/dist/client/icons/icon-512.png +0 -0
- package/dist/client/index.html +90 -0
- package/dist/client/logo.svg +6 -0
- package/dist/client/manifest.json +23 -0
- package/dist/client/sw.js +90 -0
- package/dist/client/theme-data.css +3764 -0
- package/dist/extension.js +79879 -0
- package/package.json +86 -0
- package/skill/fusion/SKILL.md +103 -0
- package/skill/fusion/references/best-practices.md +91 -0
- package/skill/fusion/references/cli-commands.md +117 -0
- package/skill/fusion/references/extension-tools.md +296 -0
- package/skill/fusion/references/fusion-capabilities.md +121 -0
- package/skill/fusion/references/skill-patterns.md +38 -0
- package/skill/fusion/references/task-structure.md +158 -0
- package/skill/fusion/workflows/dashboard-cli.md +92 -0
- package/skill/fusion/workflows/specifications.md +124 -0
- package/skill/fusion/workflows/task-lifecycle.md +116 -0
- package/skill/fusion/workflows/task-management.md +90 -0
package/package.json
ADDED
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@runfusion/fusion",
|
|
3
|
+
"version": "0.0.1",
|
|
4
|
+
"license": "MIT",
|
|
5
|
+
"description": "Fusion CLI: HTTP API server, daemon, dashboard launcher, and task tooling for the Fusion AI coding agent.",
|
|
6
|
+
"homepage": "https://github.com/Runfusion/Fusion#readme",
|
|
7
|
+
"bugs": {
|
|
8
|
+
"url": "https://github.com/Runfusion/Fusion/issues"
|
|
9
|
+
},
|
|
10
|
+
"type": "module",
|
|
11
|
+
"keywords": [
|
|
12
|
+
"pi-package"
|
|
13
|
+
],
|
|
14
|
+
"bin": {
|
|
15
|
+
"fn": "./dist/bin.js"
|
|
16
|
+
},
|
|
17
|
+
"pi": {
|
|
18
|
+
"extensions": [
|
|
19
|
+
"./dist/extension.js"
|
|
20
|
+
],
|
|
21
|
+
"skills": [
|
|
22
|
+
"./skill"
|
|
23
|
+
],
|
|
24
|
+
"image": "https://raw.githubusercontent.com/Runfusion/Fusion/main/demo/screenshot.png"
|
|
25
|
+
},
|
|
26
|
+
"publishConfig": {
|
|
27
|
+
"access": "public"
|
|
28
|
+
},
|
|
29
|
+
"files": [
|
|
30
|
+
"dist/**/*.js",
|
|
31
|
+
"dist/**/*.d.ts",
|
|
32
|
+
"dist/**/*.d.ts.map",
|
|
33
|
+
"dist/**/*.js.map",
|
|
34
|
+
"dist/client/**",
|
|
35
|
+
"skill/**",
|
|
36
|
+
"README.md"
|
|
37
|
+
],
|
|
38
|
+
"scripts": {
|
|
39
|
+
"dev": "tsx src/bin.ts",
|
|
40
|
+
"build": "tsup",
|
|
41
|
+
"build:exe": "bun run build.ts",
|
|
42
|
+
"build:exe:all": "bun run build.ts --all",
|
|
43
|
+
"typecheck": "tsc --noEmit",
|
|
44
|
+
"test": "vitest run --silent=passed-only --reporter=dot"
|
|
45
|
+
},
|
|
46
|
+
"dependencies": {
|
|
47
|
+
"@mariozechner/pi-ai": "^0.62.0",
|
|
48
|
+
"@mariozechner/pi-coding-agent": "^0.62.0",
|
|
49
|
+
"express": "^5.1.0",
|
|
50
|
+
"ioredis": "^5.6.0",
|
|
51
|
+
"multer": "^2.1.1"
|
|
52
|
+
},
|
|
53
|
+
"peerDependencies": {
|
|
54
|
+
"@mariozechner/pi-ai": "*",
|
|
55
|
+
"@mariozechner/pi-coding-agent": "*",
|
|
56
|
+
"@sinclair/typebox": "*"
|
|
57
|
+
},
|
|
58
|
+
"peerDependenciesMeta": {
|
|
59
|
+
"@mariozechner/pi-ai": {
|
|
60
|
+
"optional": true
|
|
61
|
+
},
|
|
62
|
+
"@mariozechner/pi-coding-agent": {
|
|
63
|
+
"optional": true
|
|
64
|
+
},
|
|
65
|
+
"@sinclair/typebox": {
|
|
66
|
+
"optional": true
|
|
67
|
+
}
|
|
68
|
+
},
|
|
69
|
+
"devDependencies": {
|
|
70
|
+
"@fusion/core": "workspace:*",
|
|
71
|
+
"@fusion/dashboard": "workspace:*",
|
|
72
|
+
"@fusion/engine": "workspace:*",
|
|
73
|
+
"@sinclair/typebox": "^0.34.0",
|
|
74
|
+
"@types/node": "^22.0.0",
|
|
75
|
+
"@vitest/coverage-v8": "^3.1.0",
|
|
76
|
+
"tsup": "^8.5.1",
|
|
77
|
+
"tsx": "^4.19.0",
|
|
78
|
+
"typescript": "^5.7.0",
|
|
79
|
+
"vitest": "^3.1.0",
|
|
80
|
+
"yaml": "^2.8.3"
|
|
81
|
+
},
|
|
82
|
+
"repository": {
|
|
83
|
+
"type": "git",
|
|
84
|
+
"url": "https://github.com/Runfusion/Fusion"
|
|
85
|
+
}
|
|
86
|
+
}
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: fusion
|
|
3
|
+
description: AI-orchestrated task board (Fusion/kb) interface. Use when working with the Fusion task management system, creating or managing tasks, understanding task workflows, organizing work into missions, or interfacing with the kb dashboard. Triggers on "create a task", "list tasks", "show board", "plan a mission", "check task status", "import issues", or any Fusion/kb interaction.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
<essential_principles>
|
|
7
|
+
|
|
8
|
+
Fusion (kb) is an AI-orchestrated task board. You throw in rough ideas; AI specifies, executes, reviews, and delivers them.
|
|
9
|
+
|
|
10
|
+
**Task lifecycle:** Triage → Todo → In Progress → In Review → Done → Archived
|
|
11
|
+
|
|
12
|
+
- **Triage** — AI auto-generates a full specification (PROMPT.md) with steps, file scope, and acceptance criteria
|
|
13
|
+
- **Todo** — Scheduler resolves dependencies and queues for execution
|
|
14
|
+
- **In Progress** — Executor agent works in a git worktree: plan → review → execute → review per step
|
|
15
|
+
- **In Review** — Completed work ready for merge (auto-merge or PR-based)
|
|
16
|
+
- **Done** — Merged to main branch
|
|
17
|
+
- **Archived** — Removed from active board view
|
|
18
|
+
|
|
19
|
+
**Missions** provide hierarchical planning above tasks:
|
|
20
|
+
Mission → Milestone → Slice → Feature → Task
|
|
21
|
+
|
|
22
|
+
**Available tools:** Fusion registers tools via the pi extension (prefixed `fn_*`). No CLI commands or Bash needed — use the registered tools directly.
|
|
23
|
+
|
|
24
|
+
**Tool categories:**
|
|
25
|
+
- **Task tools** — `fn_task_create`, `fn_task_update`, `fn_task_list`, `fn_task_show`, `fn_task_attach`, `fn_task_pause`, `fn_task_unpause`, `fn_task_retry`, `fn_task_duplicate`, `fn_task_refine`, `fn_task_archive`, `fn_task_unarchive`, `fn_task_delete`, `fn_task_plan`
|
|
26
|
+
- **GitHub tools** — `fn_task_import_github`, `fn_task_import_github_issue`, `fn_task_browse_github_issues`
|
|
27
|
+
- **Mission tools** — `fn_mission_create`, `fn_mission_list`, `fn_mission_show`, `fn_mission_delete`, `fn_milestone_add`, `fn_slice_add`, `fn_feature_add`, `fn_slice_activate`, `fn_feature_link_task`
|
|
28
|
+
- **Agent tools** — `fn_agent_stop`, `fn_agent_start`
|
|
29
|
+
- **Skills tools** — `fn_skills_search`, `fn_skills_install`
|
|
30
|
+
- **Dashboard** — Use `/fn` command to start/stop the dashboard
|
|
31
|
+
|
|
32
|
+
</essential_principles>
|
|
33
|
+
|
|
34
|
+
<routing>
|
|
35
|
+
|
|
36
|
+
Based on the user's request, route to the appropriate workflow:
|
|
37
|
+
|
|
38
|
+
**Task operations:**
|
|
39
|
+
- Create, list, show, manage tasks → workflows/task-management.md
|
|
40
|
+
- Understand task columns, lifecycle, statuses → workflows/task-lifecycle.md
|
|
41
|
+
|
|
42
|
+
**Planning and specifications:**
|
|
43
|
+
- Plan complex work, break down ideas → workflows/specifications.md
|
|
44
|
+
- Organize into missions, milestones, slices → workflows/specifications.md
|
|
45
|
+
|
|
46
|
+
**Dashboard and CLI:**
|
|
47
|
+
- Start dashboard, use CLI commands, settings → workflows/dashboard-cli.md
|
|
48
|
+
|
|
49
|
+
**If the intent is simple and clear** (e.g., "create a task to fix the login bug"), execute directly using the appropriate `fn_*` tool without loading a workflow file. Only load workflows for guidance on complex operations or when the user needs help understanding Fusion concepts.
|
|
50
|
+
|
|
51
|
+
</routing>
|
|
52
|
+
|
|
53
|
+
<quick_reference>
|
|
54
|
+
|
|
55
|
+
**Create a task:**
|
|
56
|
+
Use `fn_task_create` with a descriptive message. Include the problem AND desired outcome.
|
|
57
|
+
|
|
58
|
+
**List tasks:**
|
|
59
|
+
Use `fn_task_list` to see all tasks grouped by column. Use `column` param to filter.
|
|
60
|
+
|
|
61
|
+
**Show task details:**
|
|
62
|
+
Use `fn_task_show` with the task ID (e.g., KB-001) to see steps, progress, and log.
|
|
63
|
+
|
|
64
|
+
**Plan complex work:**
|
|
65
|
+
Use `fn_task_plan` for AI-guided planning that interviews you before creating the task.
|
|
66
|
+
|
|
67
|
+
**Import GitHub issues:**
|
|
68
|
+
Use `fn_task_browse_github_issues` to preview, then `fn_task_import_github_issue` for specific issues.
|
|
69
|
+
|
|
70
|
+
**Start dashboard:**
|
|
71
|
+
Use `/fn` command. `/fn stop` to stop. `/fn status` to check.
|
|
72
|
+
|
|
73
|
+
**Mission planning:**
|
|
74
|
+
Use `fn_mission_create` for high-level objectives, then add milestones, slices, and features.
|
|
75
|
+
|
|
76
|
+
</quick_reference>
|
|
77
|
+
|
|
78
|
+
<known_limitations>
|
|
79
|
+
|
|
80
|
+
These operations are **not available** via pi extension tools and require the dashboard or CLI:
|
|
81
|
+
|
|
82
|
+
- **Moving tasks between columns** — No tool for column moves (handled by the AI engine)
|
|
83
|
+
- **Workflow steps** — Creating/managing workflow step definitions requires the dashboard
|
|
84
|
+
- **Settings** — Changing settings requires the dashboard or `fn settings set` CLI command
|
|
85
|
+
- **Steering comments** — Adding steering comments to guide task execution requires CLI (`fn task steer`)
|
|
86
|
+
- **Merge operations** — Merging completed tasks requires CLI (`fn task merge`) or auto-merge
|
|
87
|
+
|
|
88
|
+
For these operations, guide the user to the dashboard (`/fn`) or CLI commands documented in workflows/dashboard-cli.md.
|
|
89
|
+
|
|
90
|
+
</known_limitations>
|
|
91
|
+
|
|
92
|
+
<reference_index>
|
|
93
|
+
|
|
94
|
+
| Reference | When to Use |
|
|
95
|
+
|-----------|-------------|
|
|
96
|
+
| references/cli-commands.md | Full CLI command reference |
|
|
97
|
+
| references/task-structure.md | Task file structure and storage |
|
|
98
|
+
| references/extension-tools.md | All pi extension tools with parameters |
|
|
99
|
+
| references/best-practices.md | Tips for effective Fusion usage |
|
|
100
|
+
| references/fusion-capabilities.md | Complete feature catalog |
|
|
101
|
+
| references/skill-patterns.md | Patterns used in this skill's design |
|
|
102
|
+
|
|
103
|
+
</reference_index>
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
# Best Practices for Working with Fusion
|
|
2
|
+
|
|
3
|
+
## Writing Task Descriptions
|
|
4
|
+
|
|
5
|
+
**Do:**
|
|
6
|
+
- State the problem AND desired outcome
|
|
7
|
+
- Include specific file paths, technologies, or patterns to use
|
|
8
|
+
- Mention what's out of scope to prevent scope creep
|
|
9
|
+
- Reference related tasks by ID if there are dependencies
|
|
10
|
+
- Include "current behavior" vs "expected behavior" for bugs
|
|
11
|
+
|
|
12
|
+
**Don't:**
|
|
13
|
+
- Write one-liner descriptions like "fix the bug"
|
|
14
|
+
- Include implementation details the AI should figure out
|
|
15
|
+
- Create tasks that are too large (break into smaller tasks or use missions)
|
|
16
|
+
- Duplicate existing tasks — check `fn_task_list` first
|
|
17
|
+
|
|
18
|
+
## Task Size Guidelines
|
|
19
|
+
|
|
20
|
+
| Size | Scope | Examples |
|
|
21
|
+
|------|-------|---------|
|
|
22
|
+
| S | Single file change, simple fix | Fix typo, update config, add CSS rule |
|
|
23
|
+
| M | 2-5 files, moderate complexity | Add form validation, create API endpoint |
|
|
24
|
+
| L | 5+ files, significant feature | New page/component, refactor module, add auth |
|
|
25
|
+
|
|
26
|
+
For work larger than L, use missions to break it into phases.
|
|
27
|
+
|
|
28
|
+
## When to Use Each Tool
|
|
29
|
+
|
|
30
|
+
| Scenario | Tool |
|
|
31
|
+
|----------|------|
|
|
32
|
+
| Quick task with clear scope | `fn_task_create` |
|
|
33
|
+
| Vague idea needing refinement | `fn_task_plan` |
|
|
34
|
+
| Large project with phases | `fn_mission_create` + hierarchy |
|
|
35
|
+
| Task failed, needs retry | `fn_task_retry` |
|
|
36
|
+
| Task needs manual intervention | `fn_task_pause` |
|
|
37
|
+
| Completed task needs follow-up | `fn_task_refine` |
|
|
38
|
+
| Clean up done tasks | `fn_task_archive` |
|
|
39
|
+
| Import external work | `fn_task_import_github*` |
|
|
40
|
+
|
|
41
|
+
## Dependency Management
|
|
42
|
+
|
|
43
|
+
- Declare dependencies at creation time using the `depends` parameter
|
|
44
|
+
- Dependencies must be valid task IDs that exist
|
|
45
|
+
- Tasks wait in todo until all dependencies are in done or archived
|
|
46
|
+
- Circular dependencies are rejected
|
|
47
|
+
- Use missions for complex dependency graphs across many tasks
|
|
48
|
+
|
|
49
|
+
## Working with the AI Engine
|
|
50
|
+
|
|
51
|
+
- **Don't fight the automation** — let triage, scheduler, and executor do their jobs
|
|
52
|
+
- **Pause if needed** — use `fn_task_pause` when you want manual control
|
|
53
|
+
- **Steer don't micromanage** — use steering comments (via CLI `fn task steer`) to guide the AI without rewriting the spec
|
|
54
|
+
- **Check progress** — use `fn_task_show` to monitor step completion
|
|
55
|
+
- **Let it fail and retry** — if a task fails, check the log, then `fn_task_retry`
|
|
56
|
+
|
|
57
|
+
## Mission Planning Tips
|
|
58
|
+
|
|
59
|
+
1. **Start with the mission** — define the high-level goal first
|
|
60
|
+
2. **Milestones are phases** — order them chronologically (what comes first?)
|
|
61
|
+
3. **Slices are parallel tracks** — within a milestone, what can be done independently?
|
|
62
|
+
4. **Features are deliverables** — each feature should map to one task
|
|
63
|
+
5. **Activate slices sequentially** — only activate what's ready for implementation
|
|
64
|
+
6. **Use auto-advance** — enable on the mission to automatically progress through slices
|
|
65
|
+
|
|
66
|
+
## Common Patterns
|
|
67
|
+
|
|
68
|
+
**Bug fix flow:**
|
|
69
|
+
1. `fn_task_create` with bug description (current vs expected behavior)
|
|
70
|
+
2. Wait for triage to generate specification
|
|
71
|
+
3. Monitor with `fn_task_show` until done
|
|
72
|
+
|
|
73
|
+
**Feature development flow:**
|
|
74
|
+
1. `fn_task_plan` to refine requirements
|
|
75
|
+
2. Check the task in triage → todo → in-progress
|
|
76
|
+
3. Review in `fn_task_show` when in-review
|
|
77
|
+
4. Task auto-merges to main
|
|
78
|
+
|
|
79
|
+
**Large project flow:**
|
|
80
|
+
1. `fn_mission_create` with project overview
|
|
81
|
+
2. Add milestones for each phase
|
|
82
|
+
3. Add slices and features for the first milestone
|
|
83
|
+
4. Activate first slice, create and link tasks
|
|
84
|
+
5. As tasks complete, features auto-complete
|
|
85
|
+
6. Activate next slice (or use auto-advance)
|
|
86
|
+
|
|
87
|
+
**GitHub issue triage flow:**
|
|
88
|
+
1. `fn_task_browse_github_issues` to see what's open
|
|
89
|
+
2. `fn_task_import_github_issue` for high-priority issues
|
|
90
|
+
3. Tasks enter triage and get AI-specified
|
|
91
|
+
4. Monitor board as AI works through them
|
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
# Fusion CLI Commands Reference
|
|
2
|
+
|
|
3
|
+
The Fusion CLI is invoked with `fn` (short for fusion).
|
|
4
|
+
|
|
5
|
+
## Dashboard
|
|
6
|
+
|
|
7
|
+
```bash
|
|
8
|
+
fn dashboard # Start web UI + AI engine (port 4040)
|
|
9
|
+
fn dashboard --port 8080 # Custom port
|
|
10
|
+
fn dashboard --interactive # Interactive port selection
|
|
11
|
+
fn dashboard --paused # Start with automation paused
|
|
12
|
+
fn dashboard --dev # Web UI only (no AI engine)
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
## Task Management
|
|
16
|
+
|
|
17
|
+
```bash
|
|
18
|
+
fn task create "description" # Create task → triage
|
|
19
|
+
fn task create "desc" --attach file.png # Create with attachment
|
|
20
|
+
fn task create "desc" --depends KB-001 # Create with dependency
|
|
21
|
+
fn task plan "description" # AI-guided planning mode
|
|
22
|
+
fn task list # List all tasks by column
|
|
23
|
+
fn task show KB-001 # Show task details + steps + log
|
|
24
|
+
fn task move KB-001 todo # Move task to column
|
|
25
|
+
fn task merge KB-001 # Merge in-review task to main
|
|
26
|
+
fn task duplicate KB-001 # Copy task to triage
|
|
27
|
+
fn task refine KB-001 --feedback "..." # Create follow-up task
|
|
28
|
+
fn task archive KB-001 # Move done → archived
|
|
29
|
+
fn task unarchive KB-001 # Move archived → done
|
|
30
|
+
fn task delete KB-001 [--force] # Permanently delete
|
|
31
|
+
fn task retry KB-001 # Retry failed task → todo
|
|
32
|
+
fn task comment KB-001 "text" # Add general comment
|
|
33
|
+
fn task comments KB-001 # List task comments
|
|
34
|
+
fn task steer KB-001 "guidance" # Add steering comment for AI
|
|
35
|
+
fn task pause KB-001 # Pause automation
|
|
36
|
+
fn task unpause KB-001 # Resume automation
|
|
37
|
+
fn task logs KB-001 # View agent execution logs
|
|
38
|
+
fn task logs KB-001 --follow # Stream logs in real-time
|
|
39
|
+
fn task logs KB-001 --limit 50 # Limit log lines
|
|
40
|
+
fn task logs KB-001 --type tool # Filter by log type
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
## Mission Management
|
|
44
|
+
|
|
45
|
+
```bash
|
|
46
|
+
fn mission create "Title" "Description" # Create a new mission
|
|
47
|
+
fn mission list # List all missions
|
|
48
|
+
fn mission show M-001 # Show mission hierarchy
|
|
49
|
+
fn mission delete M-001 [--force] # Delete mission (cascades)
|
|
50
|
+
fn mission activate-slice SL-001 # Manually activate a slice
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
## GitHub Integration
|
|
54
|
+
|
|
55
|
+
```bash
|
|
56
|
+
fn task import owner/repo # Import all open issues
|
|
57
|
+
fn task import owner/repo --interactive # Select issues interactively
|
|
58
|
+
fn task import owner/repo --limit 10 # Limit import count
|
|
59
|
+
fn task import owner/repo --labels bug # Filter by labels
|
|
60
|
+
fn task pr-create KB-001 # Create GitHub PR
|
|
61
|
+
fn task pr-create KB-001 --title "Fix" # PR with custom title
|
|
62
|
+
fn task pr-create KB-001 --base main # PR targeting specific base
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
## Git Operations
|
|
66
|
+
|
|
67
|
+
```bash
|
|
68
|
+
fn git status # Branch, commit, dirty state
|
|
69
|
+
fn git fetch [remote] # Fetch from remote
|
|
70
|
+
fn git pull [--yes] # Pull current branch
|
|
71
|
+
fn git push [--yes] # Push current branch
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
## Settings
|
|
75
|
+
|
|
76
|
+
```bash
|
|
77
|
+
fn settings # Show all settings
|
|
78
|
+
fn settings set maxConcurrent 4 # Update a setting
|
|
79
|
+
fn settings set autoMerge false # Disable auto-merge
|
|
80
|
+
fn settings set prCompletionMode pr-first # Use PR workflow
|
|
81
|
+
```
|
|
82
|
+
|
|
83
|
+
## Backups
|
|
84
|
+
|
|
85
|
+
```bash
|
|
86
|
+
fn backup --create # Create backup now
|
|
87
|
+
fn backup --list # List backups with sizes
|
|
88
|
+
fn backup --restore <file> # Restore from backup
|
|
89
|
+
fn backup --cleanup # Remove old backups
|
|
90
|
+
```
|
|
91
|
+
|
|
92
|
+
## Multi-Project
|
|
93
|
+
|
|
94
|
+
```bash
|
|
95
|
+
fn project list # List registered projects
|
|
96
|
+
fn project add my-app /path/to/app # Register project
|
|
97
|
+
fn project remove my-app [--force] # Unregister project
|
|
98
|
+
fn project show my-app # Show project details
|
|
99
|
+
fn project set-default my-app # Set default project
|
|
100
|
+
fn project detect # Detect current project
|
|
101
|
+
|
|
102
|
+
# Use --project flag with any command
|
|
103
|
+
fn task list --project my-app
|
|
104
|
+
fn task create "desc" --project api
|
|
105
|
+
fn settings --project my-app
|
|
106
|
+
```
|
|
107
|
+
|
|
108
|
+
## Columns (valid values for `fn task move`)
|
|
109
|
+
|
|
110
|
+
| Column | Description |
|
|
111
|
+
|--------|-------------|
|
|
112
|
+
| `triage` | Awaiting specification |
|
|
113
|
+
| `todo` | Specified, waiting for execution |
|
|
114
|
+
| `in-progress` | Being executed by AI |
|
|
115
|
+
| `in-review` | Ready for merge |
|
|
116
|
+
| `done` | Merged to main |
|
|
117
|
+
| `archived` | Removed from active view |
|
|
@@ -0,0 +1,296 @@
|
|
|
1
|
+
# Fusion Pi Extension Tools
|
|
2
|
+
|
|
3
|
+
All tools are registered via the pi extension. They are available in any pi agent session when the Fusion extension is installed.
|
|
4
|
+
|
|
5
|
+
## Task Tools
|
|
6
|
+
|
|
7
|
+
### fn_task_create
|
|
8
|
+
|
|
9
|
+
Create a new task on the Fusion board. Enters triage for AI specification.
|
|
10
|
+
|
|
11
|
+
| Parameter | Type | Required | Description |
|
|
12
|
+
|-----------|------|----------|-------------|
|
|
13
|
+
| `description` | string | ✓ | What needs to be done — be descriptive |
|
|
14
|
+
| `depends` | string[] | — | Task IDs this depends on (e.g., ["FN-001"]) |
|
|
15
|
+
|
|
16
|
+
Returns: task ID, column, dependencies, path
|
|
17
|
+
|
|
18
|
+
### fn_task_update
|
|
19
|
+
|
|
20
|
+
Update fields on an existing task (title, description, dependencies).
|
|
21
|
+
|
|
22
|
+
| Parameter | Type | Required | Description |
|
|
23
|
+
|-----------|------|----------|-------------|
|
|
24
|
+
| `id` | string | ✓ | Task ID (e.g., FN-001) |
|
|
25
|
+
| `title` | string | — | New task title |
|
|
26
|
+
| `description` | string | — | New task description |
|
|
27
|
+
| `depends` | string[] | — | New dependency list — replaces existing |
|
|
28
|
+
|
|
29
|
+
Returns: task ID, list of updated fields
|
|
30
|
+
|
|
31
|
+
### fn_task_list
|
|
32
|
+
|
|
33
|
+
List all tasks grouped by column.
|
|
34
|
+
|
|
35
|
+
| Parameter | Type | Required | Description |
|
|
36
|
+
|-----------|------|----------|-------------|
|
|
37
|
+
| `column` | string | — | Filter to specific column |
|
|
38
|
+
| `limit` | number | — | Max tasks per column (default: 10) |
|
|
39
|
+
|
|
40
|
+
Returns: formatted task list grouped by column
|
|
41
|
+
|
|
42
|
+
### fn_task_show
|
|
43
|
+
|
|
44
|
+
Show full task details including steps, progress, prompt preview, and log.
|
|
45
|
+
|
|
46
|
+
| Parameter | Type | Required | Description |
|
|
47
|
+
|-----------|------|----------|-------------|
|
|
48
|
+
| `id` | string | ✓ | Task ID (e.g., FN-001) |
|
|
49
|
+
|
|
50
|
+
Returns: task details with steps, prompt preview (500 chars), last 5 log entries
|
|
51
|
+
|
|
52
|
+
### fn_task_attach
|
|
53
|
+
|
|
54
|
+
Attach a file to a task. Copies file to task's attachments directory.
|
|
55
|
+
|
|
56
|
+
| Parameter | Type | Required | Description |
|
|
57
|
+
|-----------|------|----------|-------------|
|
|
58
|
+
| `id` | string | ✓ | Task ID |
|
|
59
|
+
| `path` | string | ✓ | Path to file to attach |
|
|
60
|
+
|
|
61
|
+
Supported formats: png, jpg, jpeg, gif, webp, txt, log, json, yaml, yml, toml, csv, xml
|
|
62
|
+
|
|
63
|
+
### fn_task_pause
|
|
64
|
+
|
|
65
|
+
Pause automation for a task. Scheduler and executor will skip this task.
|
|
66
|
+
|
|
67
|
+
| Parameter | Type | Required | Description |
|
|
68
|
+
|-----------|------|----------|-------------|
|
|
69
|
+
| `id` | string | ✓ | Task ID |
|
|
70
|
+
|
|
71
|
+
### fn_task_unpause
|
|
72
|
+
|
|
73
|
+
Resume automation for a paused task.
|
|
74
|
+
|
|
75
|
+
| Parameter | Type | Required | Description |
|
|
76
|
+
|-----------|------|----------|-------------|
|
|
77
|
+
| `id` | string | ✓ | Task ID |
|
|
78
|
+
|
|
79
|
+
### fn_task_retry
|
|
80
|
+
|
|
81
|
+
Retry a failed task. Clears error state, moves to todo for re-execution.
|
|
82
|
+
|
|
83
|
+
| Parameter | Type | Required | Description |
|
|
84
|
+
|-----------|------|----------|-------------|
|
|
85
|
+
| `id` | string | ✓ | Task ID (must be in failed state) |
|
|
86
|
+
|
|
87
|
+
### fn_task_duplicate
|
|
88
|
+
|
|
89
|
+
Duplicate a task. Creates a fresh copy in triage with same title and description.
|
|
90
|
+
|
|
91
|
+
| Parameter | Type | Required | Description |
|
|
92
|
+
|-----------|------|----------|-------------|
|
|
93
|
+
| `id` | string | ✓ | Source task ID to duplicate |
|
|
94
|
+
|
|
95
|
+
### fn_task_refine
|
|
96
|
+
|
|
97
|
+
Create a follow-up task for a completed task. New task depends on the original.
|
|
98
|
+
|
|
99
|
+
| Parameter | Type | Required | Description |
|
|
100
|
+
|-----------|------|----------|-------------|
|
|
101
|
+
| `id` | string | ✓ | Task ID (must be done or in-review) |
|
|
102
|
+
| `feedback` | string | ✓ | What needs to be refined (1-2000 chars) |
|
|
103
|
+
|
|
104
|
+
### fn_task_archive
|
|
105
|
+
|
|
106
|
+
Archive a done task. Moves from done → archived.
|
|
107
|
+
|
|
108
|
+
| Parameter | Type | Required | Description |
|
|
109
|
+
|-----------|------|----------|-------------|
|
|
110
|
+
| `id` | string | ✓ | Task ID (must be in done column) |
|
|
111
|
+
|
|
112
|
+
### fn_task_unarchive
|
|
113
|
+
|
|
114
|
+
Restore an archived task. Moves from archived → done.
|
|
115
|
+
|
|
116
|
+
| Parameter | Type | Required | Description |
|
|
117
|
+
|-----------|------|----------|-------------|
|
|
118
|
+
| `id` | string | ✓ | Task ID (must be in archived column) |
|
|
119
|
+
|
|
120
|
+
### fn_task_delete
|
|
121
|
+
|
|
122
|
+
Permanently delete a task. Cannot be undone.
|
|
123
|
+
|
|
124
|
+
| Parameter | Type | Required | Description |
|
|
125
|
+
|-----------|------|----------|-------------|
|
|
126
|
+
| `id` | string | ✓ | Task ID |
|
|
127
|
+
|
|
128
|
+
### fn_task_plan
|
|
129
|
+
|
|
130
|
+
Create a task via AI-guided planning mode. Non-interactive when called from extension.
|
|
131
|
+
|
|
132
|
+
| Parameter | Type | Required | Description |
|
|
133
|
+
|-----------|------|----------|-------------|
|
|
134
|
+
| `description` | string | — | Initial plan description |
|
|
135
|
+
|
|
136
|
+
## GitHub Tools
|
|
137
|
+
|
|
138
|
+
### fn_task_import_github
|
|
139
|
+
|
|
140
|
+
Batch import GitHub issues as Fusion tasks.
|
|
141
|
+
|
|
142
|
+
| Parameter | Type | Required | Description |
|
|
143
|
+
|-----------|------|----------|-------------|
|
|
144
|
+
| `ownerRepo` | string | ✓ | Repository (e.g., "owner/repo") |
|
|
145
|
+
| `limit` | number | — | Max issues (default: 30, max: 100) |
|
|
146
|
+
| `labels` | string[] | — | Label names to filter by |
|
|
147
|
+
|
|
148
|
+
### fn_task_import_github_issue
|
|
149
|
+
|
|
150
|
+
Import a single GitHub issue by number.
|
|
151
|
+
|
|
152
|
+
| Parameter | Type | Required | Description |
|
|
153
|
+
|-----------|------|----------|-------------|
|
|
154
|
+
| `owner` | string | ✓ | Repository owner |
|
|
155
|
+
| `repo` | string | ✓ | Repository name |
|
|
156
|
+
| `issueNumber` | number | ✓ | GitHub issue number |
|
|
157
|
+
|
|
158
|
+
### fn_task_browse_github_issues
|
|
159
|
+
|
|
160
|
+
Browse open issues from a repository before importing.
|
|
161
|
+
|
|
162
|
+
| Parameter | Type | Required | Description |
|
|
163
|
+
|-----------|------|----------|-------------|
|
|
164
|
+
| `owner` | string | ✓ | Repository owner |
|
|
165
|
+
| `repo` | string | ✓ | Repository name |
|
|
166
|
+
| `limit` | number | — | Max issues (default: 30, max: 100) |
|
|
167
|
+
| `labels` | string[] | — | Label names to filter by |
|
|
168
|
+
|
|
169
|
+
## Mission Tools
|
|
170
|
+
|
|
171
|
+
### fn_mission_create
|
|
172
|
+
|
|
173
|
+
Create a new mission — a high-level objective spanning multiple milestones.
|
|
174
|
+
|
|
175
|
+
| Parameter | Type | Required | Description |
|
|
176
|
+
|-----------|------|----------|-------------|
|
|
177
|
+
| `title` | string | ✓ | Mission title |
|
|
178
|
+
| `description` | string | — | Detailed objectives and context |
|
|
179
|
+
| `autoAdvance` | boolean | — | Auto-activate next slice on completion |
|
|
180
|
+
|
|
181
|
+
### fn_mission_list
|
|
182
|
+
|
|
183
|
+
List all missions with current status. No parameters.
|
|
184
|
+
|
|
185
|
+
### fn_mission_show
|
|
186
|
+
|
|
187
|
+
Show mission details with full hierarchy.
|
|
188
|
+
|
|
189
|
+
| Parameter | Type | Required | Description |
|
|
190
|
+
|-----------|------|----------|-------------|
|
|
191
|
+
| `id` | string | ✓ | Mission ID (e.g., M-001) |
|
|
192
|
+
|
|
193
|
+
### fn_mission_delete
|
|
194
|
+
|
|
195
|
+
Delete a mission and all children. Tasks are NOT deleted.
|
|
196
|
+
|
|
197
|
+
| Parameter | Type | Required | Description |
|
|
198
|
+
|-----------|------|----------|-------------|
|
|
199
|
+
| `id` | string | ✓ | Mission ID |
|
|
200
|
+
|
|
201
|
+
### fn_milestone_add
|
|
202
|
+
|
|
203
|
+
Add a milestone to a mission.
|
|
204
|
+
|
|
205
|
+
| Parameter | Type | Required | Description |
|
|
206
|
+
|-----------|------|----------|-------------|
|
|
207
|
+
| `missionId` | string | ✓ | Parent mission ID |
|
|
208
|
+
| `title` | string | ✓ | Milestone title |
|
|
209
|
+
| `description` | string | — | Milestone description |
|
|
210
|
+
|
|
211
|
+
### fn_slice_add
|
|
212
|
+
|
|
213
|
+
Add a slice to a milestone.
|
|
214
|
+
|
|
215
|
+
| Parameter | Type | Required | Description |
|
|
216
|
+
|-----------|------|----------|-------------|
|
|
217
|
+
| `milestoneId` | string | ✓ | Parent milestone ID |
|
|
218
|
+
| `title` | string | ✓ | Slice title |
|
|
219
|
+
| `description` | string | — | Slice description |
|
|
220
|
+
|
|
221
|
+
### fn_feature_add
|
|
222
|
+
|
|
223
|
+
Add a feature to a slice.
|
|
224
|
+
|
|
225
|
+
| Parameter | Type | Required | Description |
|
|
226
|
+
|-----------|------|----------|-------------|
|
|
227
|
+
| `sliceId` | string | ✓ | Parent slice ID |
|
|
228
|
+
| `title` | string | ✓ | Feature title |
|
|
229
|
+
| `description` | string | — | Feature description |
|
|
230
|
+
| `acceptanceCriteria` | string | — | Acceptance criteria |
|
|
231
|
+
|
|
232
|
+
### fn_slice_activate
|
|
233
|
+
|
|
234
|
+
Activate a pending slice for implementation.
|
|
235
|
+
|
|
236
|
+
| Parameter | Type | Required | Description |
|
|
237
|
+
|-----------|------|----------|-------------|
|
|
238
|
+
| `id` | string | ✓ | Slice ID (must be pending) |
|
|
239
|
+
|
|
240
|
+
### fn_feature_link_task
|
|
241
|
+
|
|
242
|
+
Link a feature to a kb task. Updates feature status to triaged.
|
|
243
|
+
|
|
244
|
+
| Parameter | Type | Required | Description |
|
|
245
|
+
|-----------|------|----------|-------------|
|
|
246
|
+
| `featureId` | string | ✓ | Feature ID (e.g., F-001) |
|
|
247
|
+
| `taskId` | string | ✓ | Task ID (e.g., FN-001) |
|
|
248
|
+
|
|
249
|
+
### fn_agent_stop
|
|
250
|
+
|
|
251
|
+
Stop (pause) a running agent. Transitions the agent from running/active to paused state.
|
|
252
|
+
|
|
253
|
+
| Parameter | Type | Required | Description |
|
|
254
|
+
|-----------|------|----------|-------------|
|
|
255
|
+
| `id` | string | ✓ | Agent ID to stop (e.g., agent-abc123) |
|
|
256
|
+
|
|
257
|
+
### fn_agent_start
|
|
258
|
+
|
|
259
|
+
Start (resume) a stopped agent. Transitions the agent from paused to active state.
|
|
260
|
+
|
|
261
|
+
| Parameter | Type | Required | Description |
|
|
262
|
+
|-----------|------|----------|-------------|
|
|
263
|
+
| `id` | string | ✓ | Agent ID to start (e.g., agent-abc123) |
|
|
264
|
+
|
|
265
|
+
## Skills Tools
|
|
266
|
+
|
|
267
|
+
### fn_skills_search
|
|
268
|
+
|
|
269
|
+
Search the skills.sh directory for agent skills. Returns matching skills with names, sources, install counts, and install commands.
|
|
270
|
+
|
|
271
|
+
| Parameter | Type | Required | Description |
|
|
272
|
+
|-----------|------|----------|-------------|
|
|
273
|
+
| `query` | string | ✓ | Search query — framework, technology, or capability (e.g., "react", "firebase", "testing", "docker") |
|
|
274
|
+
| `limit` | number | — | Max results (default: 10, max: 50) |
|
|
275
|
+
|
|
276
|
+
### fn_skills_install
|
|
277
|
+
|
|
278
|
+
Install an agent skill from skills.sh into the current project. Downloads skill files into the project's skill directories.
|
|
279
|
+
|
|
280
|
+
| Parameter | Type | Required | Description |
|
|
281
|
+
|-----------|------|----------|-------------|
|
|
282
|
+
| `source` | string | ✓ | GitHub source in owner/repo format (e.g., "firebase/agent-skills") |
|
|
283
|
+
| `skill` | string | — | Specific skill name to install. Omit to install all skills from the source. |
|
|
284
|
+
|
|
285
|
+
## Dashboard Command
|
|
286
|
+
|
|
287
|
+
### /fn
|
|
288
|
+
|
|
289
|
+
Start or stop the Fusion dashboard from within a pi session.
|
|
290
|
+
|
|
291
|
+
| Command | Description |
|
|
292
|
+
|---------|-------------|
|
|
293
|
+
| `/fn` | Start dashboard on port 4040 |
|
|
294
|
+
| `/fn 8080` | Start on custom port |
|
|
295
|
+
| `/fn stop` | Stop dashboard |
|
|
296
|
+
| `/fn status` | Check if running |
|