{"record":{"id":"ed93eccbb255ef8f","repo":"paperclipai/paperclip","slug":"refusing-to-delete-without-yes-ed93ec","errorCode":null,"errorMessage":"Refusing to delete without --yes","messagePattern":"Refusing to delete without --yes","errorType":"exception","errorClass":"Error","httpStatus":null,"severity":"warning","filePath":"cli/src/commands/client/issue.ts","lineNumber":249,"sourceCode":"        try {\n          const ctx = resolveCommandContext(opts);\n          const row = await ctx.api.get<Issue>(apiPath`/api/issues/${idOrIdentifier}`);\n          printOutput(row, { json: ctx.json });\n        } catch (err) {\n          handleCommandError(err);\n        }\n      }),\n  );\n\n  addCommonClientOptions(\n    issue\n      .command(\"delete\")\n      .description(\"Delete an issue\")\n      .argument(\"<issueId>\", \"Issue ID\")\n      .option(\"--yes\", \"Confirm deletion\")\n      .action(async (issueId: string, opts: IssueDeleteOptions) => {\n        try {\n          if (!opts.yes) throw new Error(\"Refusing to delete without --yes\");\n          const ctx = resolveCommandContext(opts);\n          const deleted = await ctx.api.delete<Issue>(apiPath`/api/issues/${issueId}`);\n          printOutput(deleted, { json: ctx.json });\n        } catch (err) {\n          handleCommandError(err);\n        }\n      }),\n  );\n\n  addCommonClientOptions(\n    issue\n      .command(\"heartbeat-context\")\n      .description(\"Get heartbeat context for an issue\")\n      .argument(\"<issueId>\", \"Issue ID\")\n      .action(async (issueId: string, opts: BaseClientOptions) => {\n        try {\n          const ctx = resolveCommandContext(opts);\n          const context = await ctx.api.get(apiPath`/api/issues/${issueId}/heartbeat-context`);","sourceCodeStart":231,"sourceCodeEnd":267,"githubUrl":"https://github.com/paperclipai/paperclip/blob/67001ec6eb96ae601aa27bc91d9b2415d665334a/cli/src/commands/client/issue.ts#L231-L267","documentation":"The issue delete subcommand refuses to proceed without --yes, mirroring the goal delete guard. Issues are central control-plane entities, so deletion requires explicit confirmation.","triggerScenarios":"Running `paperclipai issue delete <issueId>` without --yes.","commonSituations":"Forgot the confirmation flag; running an unfamiliar destructive command.","solutions":["Append --yes: `paperclipai issue delete <issueId> --yes`.","Double-check the issue id before confirming."],"exampleFix":"// before\npaperclipai issue delete issue_456\n// after\npaperclipai issue delete issue_456 --yes","handlingStrategy":"validation","validationCode":"if (!opts.yes) throw new Error('Refusing to delete without --yes');","typeGuard":null,"tryCatchPattern":null,"preventionTips":["Always pass --yes when scripting issue deletion.","Soft-archive issues instead of deleting when in doubt."],"tags":["cli","issue","confirmation","destructive"],"backgroundTag":null,"analyzedSha":"67001ec6eb96ae601aa27bc91d9b2415d665334a","analyzedAt":"2026-08-12T12:05:45.408Z","schemaVersion":2},"datasetVersion":"2026-08-12T18:17:37.767Z"}