List buffered observations from .agent-user.observations.jsonl with numbered options to inspect or accept individually.
Scanned 6/5/2026
Install via CLI
openskills install event4u-app/agent-config---
model_tier: high
name: agents:user-review
pack: meta
tier: 2
cluster: agents
sub: user
skills: [agents]
description: List buffered observations from .agent-user.observations.jsonl with numbered options to inspect or accept individually.
suggestion:
eligible: true
trigger_description: "review user observations, see what the agent learned about me, list buffered persona updates"
trigger_context: "user wants to see what the agent has buffered about their preferences before applying changes"
workspaces:
- agent-config-maintainer
packs:
- meta
---
# /agents user review
List the buffered observations in `.agent-user.observations.jsonl`
and let the user choose which to inspect or accept.
Use when:
- You want to see what the agent has learned about your preferences.
- You suspect `.agent-user.md` is out of date and want a curated
diff before editing.
- You want to dismiss observations the agent collected.
Read-only by itself — actual changes go through
[`/agents user accept`](accept.md) or
[`/agents user update`](update.md).
## Steps
### 1. Locate buffer
```bash
ls .agent-user.observations.jsonl 2>/dev/null
```
| State | Action |
|---|---|
| Missing or empty | Print "No buffered observations. The agent has not learned anything new." and stop |
| Present | Proceed |
### 2. Parse + group
Read every line as JSON. Drop malformed lines silently (one-line
warning at the end with the count). Group by `field`:
```
.agent-user.observations.jsonl — {n} observations across {k} fields
1. style.pace ({n}× since {oldest_ts})
latest suggest: "rapid" — evidence: user said 'mach kürzer' 3× this session
2. identity.nickname ({n}× since {oldest_ts})
latest suggest: "Matze" — evidence: user signed last 3 messages "— Matze"
3. language ({n}× since {oldest_ts})
latest suggest: "de" — evidence: last 12 messages in German, .agent-user.md says "en"
```
Sort by frequency (most observations first), then by recency.
### 3. Ask
```
> 1. Accept the most-frequent suggestion ({field} → {value})
> 2. Inspect a specific field
> 3. Clear the buffer (discard all)
> 4. Cancel
```
| Choice | Action |
|---|---|
| 1 | Hand off to [`/agents user accept`](accept.md) with the chosen field |
| 2 | Print every observation for that field with evidence + ts, then re-ask |
| 3 | Truncate `.agent-user.observations.jsonl` to zero bytes; print confirmation |
| 4 | Stop without changes |
One question per turn. Wait for the user's number.
### 4. Privacy-floor verify
Before printing any observation's `evidence` text, scan it for the
[exclusions list](../../../../docs/contracts/agent-user-schema.md#explicit-exclusions).
Match → replace the offending substring with `[redacted]` in the
rendered output.
The buffer writer is expected to redact on write, but treat this as
defense in depth — the user must never see leaked third-party PII or
credentials from a downstream agent's bad write.
### 5. Stop
Do NOT commit. Do NOT auto-chain past one user-selected action per
turn.
## Rules
- Read-only on `.agent-user.md`. Only `accept` writes to the persona
file.
- Buffer is the only mutable artefact (truncate via option 3).
- Mirror the user's language for prompts per
[`language-and-tone`](../../../../.agent-src/rules/language-and-tone.md).
## See also
- Schema + buffer contract: [`agent-user-schema § Observation buffer`](../../../../docs/contracts/agent-user-schema.md#observation-buffer).
- Parent: [`/agents user`](../user.md).
- Sibling: [`/agents user accept`](accept.md), [`/agents user update`](update.md).
No comments yet. Be the first to comment!