Skip to content

forgeplan_delete

Permanently removes an artifact from the workspace — both the LanceDB row and the markdown file on disk. This is destructive and unrecoverable (without an export backup), so agents should strongly prefer lifecycle transitions (supersede, deprecate) over deletion. Only call forgeplan_delete when the user explicitly asks to remove a typo, a test artifact, or a duplicate.

Category: Editing Artifacts

  • User explicitly says “delete NOTE-099, I created it by mistake”.
  • Cleaning up a test artifact from forge-smoke runs.
  • Removing an orphan created during an interrupted decompose flow.

Agents should NEVER call this to “retire” an active decision — use forgeplan_supersede or forgeplan_deprecate so history is preserved.

NameTypeRequiredDescription
idstringyesArtifact ID to delete.

Schema source: crates/forgeplan-mcp/src/server.rs::DeleteParams

A confirmation object with the removed ID and the path of the markdown file that was unlinked. If the artifact had inbound links from other artifacts, the MCP server may refuse the delete and return an error listing the dependents so the agent can resolve them first.

Example response shape:

{
"ok": true,
"deleted": "NOTE-099",
"removed_path": ".forgeplan/notes/note-099-test.md"
}
{ "id": "NOTE-099" }

With typical agent context:

User says “that PROB-099 was a mistake, nuke it”. Agent confirms with the user, then deletes.

{ "id": "PROB-099" }

forgeplan_list or forgeplan_get to confirm the target → explicit user confirmation → forgeplan_deleteforgeplan_health to verify nothing broke. For reversible retirement the flow is forgeplan_deprecate (active → deprecated) instead.