Microcopy states
Fictional worked example. Illustrates the skill’s reasoning and output; no real customer results or measured improvement.
The supplied brief
{
"example_type": "Fictional worked example",
"skill": "afterbuild-microcopy-states",
"product": "ListDock",
"workflow": "Import contacts from CSV",
"confirmed_behavior": [
"Rows receive stable import IDs",
"Backend can report status by import ID",
"Invalid rows can be downloaded"
],
"example_result": {
"saved": 42,
"rejected": 3
},
"note": "Fictional counts illustrate state-specific copy, not actual customer outcomes"
}One message for every failure
Oops! Something went wrong.
The same banner appears for a malformed row, a timeout after rows were saved and a complete service outage. Users cannot tell whether retrying will duplicate their contacts.
Make the outcome legible
PARTIAL · confirmed response
42 contacts imported. 3 need attention.
Download the rejected rows, fix their email addresses and import those rows again.
UNKNOWN · network timeout
We could not confirm your import.
Some rows may already be saved. Check this import before starting another one.
Counts are fictional example response data. Status checking requires the existing import ID and backend endpoint.
A message contract for the developer
- No contacts yet
- Import your first contact list · Choose a CSV with an email column.
- No filtered results
- No contacts match these filters · Clear filters. Keep the saved contact list intact.
- Processing
- Importing contacts · You can leave this page and check this import later. Use this only if the job persists independently.
- Confirmed failure before writes
- This file could not be read. No contacts were imported. Export it as a UTF-8 CSV and try again.
- Cancel request
- Stop this import? Contacts already saved will stay in your list. Show only when cancellation truly stops remaining work.
Recovery depends on confirmed state · no blanket retry