FN-5762: add mission hierarchy delete tools with linked-task guards
Add mission delete tooling across core, dashboard routes, and CLI extension surfaces. - Add `fn_feature_delete`, `fn_slice_delete`, and `fn_milestone_delete` tools to the CLI extension with `force` override support. - Enforce live-task linkage guards for feature/slice/milestone deletes in mission store logic and expose conflict behavior through mission routes. - Extend coverage and docs for delete behavior, allowlist/gating metadata, and published Fusion skill/tool references. Files changed: .changeset/fn-5762-feature-delete.md | 7 + docs/missions.md | 15 +++ packages/cli/skill/fusion/SKILL.md | 2 +- .../cli/skill/fusion/references/extension-tools.md | 27 ++++ .../skill/fusion/references/fusion-capabilities.md | 3 + packages/cli/src/__tests__/extension.test.ts | 34 +++++ packages/cli/src/extension.ts | 106 +++++++++++++++ packages/core/src/__tests__/mission-store.test.ts | 146 ++++++++++++++++++++- packages/core/src/mission-store.ts | 98 ++++++++++++-- .../dashboard/src/__tests__/mission-e2e.test.ts | 62 +++++++-- packages/dashboard/src/mission-routes.ts | 42 +++++- .../workflow-step-readonly-allowlist.test.ts | 3 + packages/engine/src/gating-classifications.ts | 3 + 13 files changed, 514 insertions(+), 34 deletions(-) Fusion-Task-Id: FN-5762 Fusion-Task-Lineage: 9c6eceff-dcb4-4a2b-90c6-59cb0228ca6d
This commit is contained in:
@@ -82,9 +82,12 @@ The canonical per-parameter tool reference lives in `packages/cli/skill/fusion/r
|
||||
| `fn_milestone_update` | Update milestone fields using partial patches. |
|
||||
| `fn_slice_add` | Add a slice to a milestone. |
|
||||
| `fn_slice_activate` | Activate a pending slice for implementation. |
|
||||
| `fn_slice_delete` | Delete a slice (with linked-task guard and optional `force`). |
|
||||
| `fn_feature_add` | Add a feature to a slice with optional acceptance criteria. |
|
||||
| `fn_feature_delete` | Delete a feature (with linked-task guard and optional `force`). |
|
||||
| `fn_feature_update` | Update feature fields using partial patches. |
|
||||
| `fn_feature_link_task` | Link a feature to a task for implementation. |
|
||||
| `fn_milestone_delete` | Delete a milestone (with linked-task guard and optional `force`). |
|
||||
|
||||
### fn_mission_update
|
||||
|
||||
@@ -124,6 +127,18 @@ Updates an existing feature's `title`, `description`, or `acceptanceCriteria`. P
|
||||
|
||||
Use this to edit existing features without delete-and-re-add cycles.
|
||||
|
||||
## Mission delete policy (hard delete with linked-task guard)
|
||||
|
||||
Mission hierarchy records (`missions`, `milestones`, `slices`, `mission_features`) use hard deletes with FK cascades and do not have `deletedAt` soft-delete columns.
|
||||
|
||||
To keep behavior consistent, Fusion uses **hard delete with guard** for feature/slice/milestone deletes:
|
||||
|
||||
- Delete is rejected when the target (or any cascading child feature) is linked to a **live** task (`deletedAt IS NULL` and not archived).
|
||||
- Callers can pass `force: true` to override the guard. Force clears the mission linkage before deletion, then proceeds with the same hard delete.
|
||||
- Linked tasks are preserved; only mission hierarchy rows are removed.
|
||||
|
||||
This intentionally differs from task soft-delete behavior described in `docs/soft-delete-verification-matrix.md` and avoids a mission-table soft-delete migration.
|
||||
|
||||
## Mission Interview and Planning Workflow
|
||||
|
||||
The dashboard supports mission planning workflows where you can:
|
||||
|
||||
Reference in New Issue
Block a user