---
summary: 'Manual Trimmy test plan using peekaboo clipboard'
read_when:
  - 'verifying Trimmy clipboard trimming behavior'
  - 'running manual clipboard regression tests'
---

# Trimmy Manual Test Plan (with Peekaboo clipboard tool)

Goal: Validate Trimmy’s clipboard flattening via Peekaboo without `peekaboo run`. Use the `peekaboo clipboard` tool for all clipboard interactions.

## Prereqs
- Peekaboo CLI built at `Apps/CLI/.build/release/peekaboo`.
- Trimmy running with Accessibility permission.
- Peekaboo granted Screen Recording + Accessibility.
- Target app for paste checks: TextEdit.
- Locate Trimmy menubar index: `peekaboo menubar list --json-output | jq '.items[] | select(.title|contains("Trimmy")) | .index'`

## Manual Steps
1) Auto-Trim ON (baseline)  
   - `peekaboo clipboard --action set --text "ls \\\n | wc -l\n"`  
   - Wait ~0.3s; `peekaboo clipboard --action get` → expect `ls | wc -l`.

2) Auto-Trim OFF path  
   - `peekaboo menubar click --index <idx>` → `peekaboo click "Auto-Trim"` (toggle off).  
   - Reseat text as above; wait; `get` should stay multi-line.  
   - Toggle Auto-Trim back on.

3) Aggressiveness Low vs High  
   - Open Settings → Aggressiveness tab: menubar click → “Settings…” → “Aggressiveness”.  
   - Low: `peekaboo click "Low (safer)"`; seed `echo "hi"\nprint status\n`; expect unchanged.  
   - High: `peekaboo click "High (more eager)"`; reseed; expect single-line `echo "hi" print status`.

4) Box-drawing stripping  
   - Ensure “Remove box drawing chars” enabled (General tab).  
   - Seed `│ ls -la \\\n│ | grep foo\n`; expect `ls -la | grep foo`.

5) Keep blank lines  
   - Enable “Keep blank lines”.  
   - Seed `echo one\n\necho two\n`; expect blank line preserved.

6) Prompt stripping  
   - Seed `$ brew install foo\n$ brew update\n`; expect `brew install foo brew update`.

7) Safety valve (>10 lines)  
   - Seed 12-line blob (e.g., `yes line | head -n 12 | paste -sd '\n'` piping into clipboard set).  
   - Expect no flattening.

8) Paste Trimmed vs Original  
   - Frontmost TextEdit: `open -a TextEdit`.  
   - Seed multi-line command.  
   - Menubar click → “Paste Trimmed to TextEdit”; verify via `osascript -e 'tell app "TextEdit" to get text of document 1'`.  
   - Menubar click → “Paste Original …”; verify untrimmed text and clipboard restored (`peekaboo clipboard --action get` matches original).

9) Clipboard slots  
   - `peekaboo clipboard --action save --slot original`  
   - `peekaboo clipboard --action set --text "temp"`  
   - `peekaboo clipboard --action restore --slot original`; `get` should match saved content.

## Debug Log Template
Append per-run notes here:
```
[YYYY-MM-DD HH:MM] Step: <name>
Commands:
  peekaboo clipboard --action set --text "..."
Observed:
  clipboard get -> "<value>"
  UI state: Auto-Trim <on/off>, Aggressiveness <Low/Normal/High>
Result: PASS/FAIL
Notes: <details>
```

### Latest menubar scan (2025-11-22)
- Built CLI: `Apps/CLI/.build/release/peekaboo` (includes raw-debug flag + CGS bridges).
- Command: `peekaboo menubar list --json-output --include-raw-debug --log-level debug`.
- Output (post-filtering): 23 items. Trimmy now appears once (title “Trimmy”, source `ax-app`, raw_title “Cut”), CGS items remain Control Center/Notification Center only.
- Implication: We surfaced Trimmy via AX status sweep, but CGS still can’t see it. Need to improve title fidelity (use identifier/help) and confirm we’re not just picking a menu child. Continue hit-test/AX correlation.
