c-ashud-asga-collector-dbahu-nqwi-af

Interface writing policy

Approved October 22, 2026. This policy changes display wording, not stored contact content, API names or database fields. Use it for all new interface copy, including server errors and accessibility labels.

Write for someone who does not know how Collector works internally. Use short sentences, familiar words and specific actions. Preserve clear labels such as Contacts, Save, Cancel and Delete. Keep user-entered names, notes, contact details and imported text exactly as saved.

Internal/earlier concept Interface wording
Identify Find someone
Improve Review details
Quick add / automatic entry Describe the person
Fully manual entry Fill in the details
Memory cues Things to remember
Unreviewed summary Unreviewed summary
Source notes Your original notes
Potential matches / candidates People who might match
Merge Combine contacts
Undo merge Undo combining
Duplicate review These might be the same person
Profile expansion See all details
Missing saved information No detail saved
Smart/manual group Use saved details to choose members / Choose members yourself
Enrichment / processing policy AI help / permission and spending limit

“Review details” is explained as “Check suggestions and add details to help you remember people.” Summaries appear immediately, labeled “Unreviewed summary” and “Made automatically from your notes.” They link directly to original notes. This wording does not introduce an approval step for displaying summaries. Photo details must still be checked before becoming reliable search/question facts.

Keep these separate: No supplies negative evidence; I’m not sure records uncertainty; Skip this question records a deliberate skip; No detail saved suppresses that question for the current search without changing a contact. Uncertainty, skipping and no saved detail do not lower anyone’s match score. Each can be undone with the same restore control. Broadening groups retains the whole search state.

Combining contacts always requires the explicit Combine contacts action, even when emails match. Explain what remains saved, how Undo combining works, and when later edits require review. Do not promise that a combination or deletion can always be reversed without consequences.

Errors should explain what could not be done and what the user can actually do next. If a response was lost, do not claim the save failed: ask the user to check what was saved before retrying. Do not show raw database, browser, SDK, schema, worker or provider messages. Known processing codes receive readable explanations; unknown codes get a safe next step. Diagnostic codes remain in the existing server/job data, and network errors retain their Error cause for debugging without printing contact content or secrets.

Technical names are justified only when useful to a choice: file extensions, image size limits, USD, and export options such as CSV UTF-8 or vCard 3.0/4.0. Explain them where needed. Do not display raw IDs, JSON metadata, internal field names, status codes or model configuration details. Original imported text remains available because it is the user’s source content.

Reuse lib/ui/text.ts for repeated labels/statuses and lib/ui/errors.ts for safe error explanations. Tests must follow the visible wording while retaining assertions about saved enum values, privacy, review states, original notes, budgets and reversal behavior. Check narrow layouts and keyboard/screen-reader names when labels grow.

The requested docs/COLLECTOR_MASTER.md was not found in the repository or its handoff copy. Current requirements were read from root PRODUCT_SPEC.md, AGENTS.md, and docs/MILESTONES.md, TECHNICAL_DESIGN.md and ACCEPTANCE_TESTS.md; no missing master document was invented.

Approved owner-profile / quiz wording update

Use My profile, Account settings, Prev., Skip, Start over, Earlier questions, Broaden search, and Could this be the person?. The large blue rectangles show YES/NO or two/three actual categories. Skip replaces earlier separate visible uncertainty/unrecorded controls; their internal meanings remain distinct and none become No. Never describe a remaining candidate as a confirmed identity. Record-level Comparison details explain that an unlisted detail stays unknown unless the corresponding list is explicitly marked complete. Private to your account explains the owner profile; it is never a searchable contact.