Skip to content
MyDSHMy DSH Field Notes
中文
Independently maintained; not affiliated with DeepSeek. No association with mydsh.dev or other MyDSH sites.

All categories/Code and debugging

Writing code and tests · Level Advanced · Coding Scripting Tools

Scripts: even one-offs should be re-runnable

A batch script failed halfway and I do not want to reprocess.

Prompt

Three defaults: define the input-output contract, then the error branches, then the happy path. An implementation without error handling is not finished.

Task: A batch script failed halfway and I do not want to reprocess.

[Before you start, do three things]
1. Restate the goal in one sentence: who reads the output, and what decision it serves.
2. If I have not given you the following, ask me. Do not assume:
   - items and total
   - can it fail midway
   - must originals be kept
3. Say how you plan to do it (at most 5 steps) and wait for my go-ahead.

[Go through each of these]
- keep a processed list and skip on rerun
- support a dry run that prints the plan
- preserve state on failure; never delete originals
- report counts: succeeded, skipped, failed with reasons

[Process]
1. State the contract: inputs, outputs, errors, side effects
2. List every error branch and boundary first
3. Then the happy path, one responsibility per function
4. Test key paths: one normal, two failure cases
5. State when this code would fail

[Output]
Contract, errors, happy path, tests, failure conditions.

[Do not]
- Never ignore an error return
- Never swallow exceptions
- No magic numbers; name them
- Do not log-and-continue instead of returning an error

What to state before it starts

Leave these unsaid and the model fills them with an assumption. Most 'wrong answers' start here.

  • items and total
  • can it fail midway
  • must originals be kept

Go through each of these

Where this kind of work most often goes wrong. Already in the prompt, so you do not have to remember it.

  • keep a processed list and skip on rerun
  • support a dry run that prints the plan
  • preserve state on failure; never delete originals
  • report counts: succeeded, skipped, failed with reasons