dcode:improve-copy — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited dcode:improve-copy (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
Improve UI microcopy using proven UX writing frameworks.
For designers who think: "This button says 'Submit'... there has to be something better."
Focus on the outcome the user is hiring the product to achieve.
Lead with value, then the action.
Start with the verb, be direct.
Structure: [What happened] [Why] [What to do]
Structure: "No [items] yet. [Action] to [benefit]."
Structure: "[Consequence]. [Question]?"
Tell users what's happening, or build anticipation.
Calibrate tone on these spectrums:
| Dimension | Range |
|---|---|
| Formal ↔ Casual | "Please submit your request" ↔ "Send it over" |
| Serious ↔ Playful | "Error occurred" ↔ "Oops, something broke" |
| Respectful ↔ Irreverent | "We appreciate your patience" ↔ "Hang tight" |
| Matter-of-fact ↔ Enthusiastic | "File uploaded" ↔ "Your file is ready to go!" |
Match your product's personality. Banking apps stay serious; creative tools can be playful.
Same voice, different tone based on situation:
| Context | Tone | Example |
|---|---|---|
| Onboarding | Warm, encouraging | "Welcome! Let's get you set up." |
| Success | Celebratory but brief | "Done! Your changes are live." |
| Error | Calm, helpful | "Couldn't save. Check your connection." |
| Destructive action | Serious, clear | "This will permanently delete your data." |
| Empty state | Encouraging | "Nothing here yet—let's fix that." |
Quality checklist for any copy:
| Principle | Question to ask |
|---|---|
| Clear | Would a new user understand this? |
| Concise | Can I say this in fewer words? |
| Conversational | Does this sound like a helpful human? |
| Consistent | Am I using the same terms everywhere? |
User provides copy, get suggestions:
Input: "Submit"
Output: Table of options across frameworksScan a file or current context for copy to improve:
/dcode:copy -audit [file]Step through each item with choices. Default for < 10 items.
Show all suggestions in a table. Use --batch flag or type a during walkthrough.
Check the input:
-audit flag → Audit mode-list → Show frameworks referencePresent improvements across relevant frameworks:
"Submit" improvements:
| Framework | Suggestion | Why |
|-----------|------------|-----|
| jtbd | Get my results | Focuses on outcome |
| action-first | Send request | Clear action |
| contextual | Save changes | Matches actual behavior |
Recommendation: [best option based on context]If context is unclear, ask: "What does this button do?"
#### 3a. Context Detection If no file specified:
#### 3b. Scan for Copy Find UI copy in the file:
Categorize each item by type (button, error, empty, label, etc.)
#### 3c. Choose Walkthrough or Batch
--batch flag → Interactive walkthrough--batch flag → Batch modeFor each copy item:
────────────────────────────────────────
[1/4] Line 23: Button
────────────────────────────────────────
Current: "Submit"
Context: Form submission button
Suggestions:
1. "Get started" (jtbd)
2. "Save changes" (action-first)
3. "Continue" (minimal)
4. Keep as-is
5. Custom...
Choice (1-5, s=skip, a=all, r=apply-to-similar, q=quit):#### Shortcut Keys
| Key | Action |
|---|---|
1-5 | Pick suggestion |
s | Skip this item |
a | Show all remaining as table (exit walkthrough) |
r | Apply this choice to all remaining items of same type |
q | Quit audit |
e | Enter custom text |
? | Show help |
↵ | Accept first suggestion |
#### Apply-to-Similar Pattern When user picks a suggestion and types r:
Apply "jtbd" style to all remaining buttons? (y/n)
> y
✓ Applied to 3 buttons:
- Line 45: "Submit" → "Complete purchase"
- Line 67: "Send" → "Send message"
- Line 89: "OK" → "Got it"
Moving to error messages...Show all items in a table:
Copy audit for CheckoutForm.tsx:
| Line | Type | Current | Suggestion |
|------|------|---------|------------|
| 23 | button | "Submit" | "Complete purchase" |
| 31 | error | "Invalid" | "Card number looks wrong" |
| 45 | empty | "No items" | "Your cart is empty" |
| 52 | button | "Cancel" | Keep as-is |
Apply all? (y/n/review-each)After walkthrough or batch review:
────────────────────────────────────────
Audit complete
────────────────────────────────────────
Changes:
✓ Line 23: "Submit" → "Complete purchase"
✓ Line 31: "Invalid" → "Card number looks wrong"
· Line 45: skipped
✓ Line 52: "Cancel" → kept as-is
Apply to file? (y/n/preview)If preview:
If y:
| Flag | Behavior |
|---|---|
--batch | Skip walkthrough, show table |
--dry-run | Preview only, no prompts to apply |
--apply | Auto-apply first suggestion (use with caution) |
--framework X | Only suggest using framework X |
Improve a single piece of copy:
/dcode:copy "Click here to learn more"List available frameworks:
/dcode:copy -listAudit current file interactively:
/dcode:copy -auditAudit specific file in batch mode:
/dcode:copy -audit src/components/LoginForm.tsx --batchGet JTBD suggestions only:
/dcode:copy "Submit" --framework jtbd~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.