ForkFree

Prompts / Agents and automation

Plan, Confirm, Verify App Changes

It makes the AI list exactly what it will change, wait for your sign-off, then check the live app afterwards. This catches mistakes before they happen and proves the result rather than trusting the AI's word.

Worked in our testThe reply restated the task, flagged the permission issue and stopped for approval, which is correct given there is no API access. It could not show a real plan table with task data, and it did not state the "approved" rule exactly as asked, so it falls short of a 5.

The prompt

Act as a careful operations assistant who edits business apps through their API, using only the access I give you.

Task: Make this change in {app_name}: {requested_change}. Use only these permissions: {allowed_access}.

Steps:
1. Restate the task in your own words and list the exact records or fields you expect to touch. Do not change anything yet.
2. Show a numbered plan of every change, with the current value and the new value side by side. Flag anything irreversible or outside {allowed_access}.
3. Wait for me to reply "approved". If I do not, stop.
4. After approval, make only the approved changes, one at a time, and report any error immediately.
5. Read each changed record back from {app_name} and compare it with the plan to confirm it matches.

Output: A plan table before approval. After approval, a short results table with columns Record, Expected, Actual and Status (Match or Mismatch), then a one-line reminder to revoke the API key.

Change the parts in curly braces. Use it when you give an AI an API key to edit an app with no built-in connector, and revoke the key once the job is done.

What happened when we ran it

We sent

Act as a careful operations assistant who edits business apps through their API, using only the access I give you.

Task: Make this change in Todoist: Move every task in the project 'Website Relaunch' that is labelled 'waiting' and overdue by more than 7 days into a new project called 'Stalled', and add the label 'review-friday' to each one. Leave completed tasks and all other projects untouched.. Use only these permissions: Read and write tasks and labels in Todoist only. No access to deleting tasks, changing projects' sharing settings, or account details..

Steps:
1. Restate the task in your own words and list the exact records or fields you expect to touch. Do not change anything yet.
2. Show a numbered plan of every change, with the current value and the new value side by side. Flag anything irreversible or outside Read and write tasks and labels in Todoist only. No access to deleting tasks, changing projects' sharing settings, or account details..
3. Wait for me to reply "approved". If I do not, stop.
4. After approval, make only the approved changes, one at a time, and report any error immediately.
5. Read each changed record back from Todoist and compare it with the plan to confirm it matches.

Output: A plan table before approval. After approval, a short results table with columns Record, Expected, Actual and Status (Match or Mismatch), then a one-line reminder to revoke the API key.

The model replied

# Step 1: Task restatement (nothing changed yet) **My understanding:** In Todoist, find every active (not completed) task in the project **Website Relaunch** that has the label **waiting** and a due date more than 7 days in the past. Today is 2026-10-26, so the cutoff is a due date **before 2026-10-19**. Move those tasks into a project called **Stalled** and add the label **review-friday**, keeping any labels they already have. **Records and fields I expect to touch** (only on matching tasks): - `project_id`: Website Relaunch → Stalled - `labels`: existing labels (including `waiting`) plus `review-friday` - The label `review-friday` itself, if it doesn't exist yet - The project `Stalled`, if it doesn't exist yet **Not touched:** completed tasks, tasks in other projects, tasks without `waiting`, tasks due on or after 2026-10-19, tasks with no due date, project sharing, and account details. # Step 2: Plan **I have not read any Todoist data yet.** This session has no Todoist API token or connection, so I can't list the matching tasks or their current values. I won't guess at them. Once you give me read access, I'll fetch the tasks and fill in this table with real task IDs. | # | Record | Field | Current value | New value | |---|---|---|---|---| | 1 | Project "Stalled" | existence | Unknown, to be checked | Created if missing (see flag A) | | 2 | Label `review-friday` | existence | Unknown, to be checked | Created if missing | | 3…n | Each matching task (ID and title to come) | `project_id` | Website Relaunch | Stalled | | 3…n | Same task | `labels` | e.g. `[waiting, …existing]` | `[waiting, …existing, review-friday]` | **Filter:** `project = Website Relaunch`, label `waiting`, `is_completed = false`, `due.date < 2026-10-19`. **Flags:** - **A. Creating a project is probably outside your permissions.** You granted read and write on tasks and labels only. Creating "Stalled" is a project-level write. The safest option is for you to create an empty **Stalled** project yourself, and I'll then only move tasks into it. Otherwise, tell me explicitly that I may create it. - **B. Moving tasks is reversible.** I'll record each task's original project and labels so I can move it back. Nothing is deleted. Moving a task drops it from its section in Website Relaunch, and I can't restore the section automatically. - **C. Label updates replace the whole list.** I'll send the full existing labels plus `review-friday`, so `waiting` and the others stay. - **D. Subtasks.** Moving a parent task also moves its subtasks, even if they don't match the filter. I'll list any such subtasks in the final plan, and you can decide whether to include them. - **E. Recurring tasks.** If any matching tasks are recurring, I'll flag them, since their due dates may behave differently. - **F. Edge cases.** Tasks due exactly 2026-10-19 (7 days overdue) are excluded. Tasks with no due date are excluded. # What I need from you 1. A Todoist API token with the scoped access above, or confirmation of how I should connect, so I can do read-only lookups first. 2. Your answer on flag A: will you create "Stalled", or may I? I'll then return with the real task-by-task table and wait for your reply of **"approved"** before changing anything.

Run on Claude Sonnet 5.5, 26 Oct 2026. Automatic check: 4 out of 5.

Mentioned for

Claude, ChatGPT

Where it came from

Found on Web, shared by Jeff Su: How to give Claude or ChatGPT an API key to manage your apps (AI Essentials #269).

This is our own version of the idea, written and tested by us. The original may differ.

More agents and automation prompts

Agents and automation Struggled in our test
Turn a Successful Run Into a Skill

You get a short, reusable skill file that records the exact route that worked, without the failed attempts. It works because the agent captures the path while the session is still fresh, and skills load only when needed.

Found on Web, shared by @hiper2d (Aliaksei Zelianouski)
Agents and automation Worked in our test
Four-Part Goal Brief With Questions First

You get a finished piece of work that matches criteria you set, after the AI has checked it understood you. The restate-and-ask step catches wrong assumptions early, and the explicit success list tells it when to stop.

Found on Web, shared by Wyndo and Dheeraj Sharma (The AI Maker)