FN-5899: add mission-goal linking commands and tools
Add mission↔goal linkage support across the API, CLI, and pi-extension surfaces. - add mission goal list/link/unlink REST endpoints and dashboard route coverage - add `fn mission goals`, `fn mission link-goal`, and `fn mission unlink-goal` CLI commands with tests - add `fn_mission_list_goals`, `fn_mission_link_goal`, and `fn_mission_unlink_goal` extension tools plus skill/docs updates - add a changeset for the published CLI package release Files changed: .changeset/FN-5899-mission-goal-tooling.md | 5 + docs/cli-reference.md | 11 +- docs/missions.md | 27 ++++ packages/cli/skill/fusion/SKILL.md | 2 +- packages/cli/skill/fusion/references/extension-tools.md | 26 ++++ packages/cli/skill/fusion/references/fusion-capabilities.md | 3 + packages/cli/src/__tests__/bin.test.ts | 21 +++ packages/cli/src/__tests__/extension-mission-goal-tools.test.ts | 140 +++++++++++++++++ packages/cli/src/bin.ts | 32 +++- packages/cli/src/commands/__tests__/mission.test.ts | 99 +++++++++++- packages/cli/src/commands/mission.ts | 102 +++++++++++++- packages/cli/src/extension.ts | 170 +++++++++++++++++++++ packages/dashboard/src/__tests__/mission-goal-links-routes.test.ts | 151 ++++++++++++++++++ packages/dashboard/src/mission-routes.ts | 153 ++++++++++++++++++- 14 files changed, 930 insertions(+), 12 deletions(-) Fusion-Task-Id: FN-5899 Fusion-Task-Lineage: c63b0f4b-c77e-4229-ade4-537a4dda0f5f
This commit is contained in:
@@ -650,14 +650,23 @@ Mission hierarchy operations.
|
||||
fn mission create "Platform hardening" "Security and reliability initiative" --base-branch develop
|
||||
fn mission list
|
||||
fn mission show mission_123
|
||||
fn mission goals mission_123
|
||||
fn mission link-goal mission_123 G-001
|
||||
fn mission unlink-goal mission_123 G-001
|
||||
fn mission delete mission_123 --force
|
||||
fn mission activate-slice slice_456
|
||||
```
|
||||
|
||||
Subcommands: `create`, `list|ls`, `show|info`, `delete`, `activate-slice`.
|
||||
Subcommands: `create`, `list|ls`, `show|info`, `goals`, `link-goal`, `unlink-goal`, `delete`, `activate-slice`.
|
||||
|
||||
`fn mission create` supports `--base-branch <branch>` to set a mission-level default integration branch used by mission feature/slice triage when no explicit branch override is provided.
|
||||
|
||||
Mission ↔ goal linkage commands operate on the persisted `mission_goals` relation:
|
||||
|
||||
- `fn mission goals <mission-id>` lists the linked goals for a mission.
|
||||
- `fn mission link-goal <mission-id> <goal-id>` idempotently adds a goal link.
|
||||
- `fn mission unlink-goal <mission-id> <goal-id>` idempotently removes a goal link.
|
||||
|
||||
---
|
||||
|
||||
## `fn goals`
|
||||
|
||||
@@ -92,10 +92,34 @@ Mission, milestone, slice, and feature read-only text surfaces in Mission Manage
|
||||
fn mission create "Reliability initiative" "Reduce execution failures and improve recovery"
|
||||
fn mission list
|
||||
fn mission show mission_123
|
||||
fn mission goals mission_123
|
||||
fn mission link-goal mission_123 G-001
|
||||
fn mission unlink-goal mission_123 G-001
|
||||
fn mission activate-slice slice_456
|
||||
fn mission delete mission_123 --force
|
||||
```
|
||||
|
||||
## Mission ↔ Goal operator surfaces
|
||||
|
||||
Fusion surfaces the persisted mission↔goal linkage through REST, CLI, and pi-extension tools.
|
||||
|
||||
### REST endpoints
|
||||
|
||||
| Endpoint | Purpose |
|
||||
|---|---|
|
||||
| `GET /api/missions/:missionId/goals` | List linked goals for a mission. Returns `{ goals }`. |
|
||||
| `PUT /api/missions/:missionId/goals` | Replace the full linked-goal set with body `{ goalIds: string[] }`. Duplicate ids are deduplicated before reconciliation. |
|
||||
| `POST /api/missions/:missionId/goals/:goalId` | Idempotently link one goal to a mission. |
|
||||
| `DELETE /api/missions/:missionId/goals/:goalId` | Idempotently unlink one goal from a mission. |
|
||||
|
||||
All four endpoints validate mission/goal identifier formats and return `404` for missing mission/goal rows.
|
||||
|
||||
### CLI
|
||||
|
||||
- `fn mission goals <mission-id>` — list linked goals for a mission.
|
||||
- `fn mission link-goal <mission-id> <goal-id>` — idempotently link a goal.
|
||||
- `fn mission unlink-goal <mission-id> <goal-id>` — idempotently unlink a goal.
|
||||
|
||||
## Mission Planning Tools (pi extension)
|
||||
|
||||
The canonical per-parameter tool reference lives in `packages/cli/skill/fusion/references/extension-tools.md`; this section is a user-facing summary of the mission-planning tool surface.
|
||||
@@ -105,6 +129,9 @@ The canonical per-parameter tool reference lives in `packages/cli/skill/fusion/r
|
||||
| `fn_mission_create` | Create a mission with title/description, optional `baseBranch`, and optional auto-advance behavior. |
|
||||
| `fn_mission_list` | List missions and their current status. |
|
||||
| `fn_mission_show` | Show mission details with milestone/slice/feature hierarchy, including milestone/feature acceptance criteria and slice verification when present. |
|
||||
| `fn_mission_list_goals` | List the goals linked to a mission. |
|
||||
| `fn_mission_link_goal` | Idempotently link a goal to a mission. |
|
||||
| `fn_mission_unlink_goal` | Idempotently unlink a goal from a mission. |
|
||||
| `fn_mission_delete` | Delete a mission and its hierarchy. |
|
||||
| `fn_mission_update` | Update mission title/description using partial patches. |
|
||||
| `fn_milestone_add` | Add a milestone to a mission. |
|
||||
|
||||
Reference in New Issue
Block a user