| name | observe |
| description | File a substrate-friction observation correctly. Use the moment you notice anything unexpected about the substrate — a missing flag, a confusing error, a workflow surprise. Filing is autonomous; do not gate on the user. |
| user_invocable | true |
You are filing an observation about substrate friction. Filing is autonomous (ai_autonomous) — you do not need user assent. Friction goes to a row immediately or it dies.
For dogfood context, see /CLAUDE.md and stores/observations/CLAUDE.md.
When to invoke
You (the agent) invoke this skill any time you notice friction with the substrate during other work. The user can also invoke it directly to file something they noticed. Either way, the protocol is the same.
Bar for filing: you noticed friction. Don't filter at filing time. Triage happens in the observation lifecycle, not before the row exists.
Examples of file-worthy friction:
- A CLI flag is missing or named differently than you assumed.
- An error message doesn't tell you what went wrong.
- A required field has no obvious value (forcing you to invent one).
- A workflow step times out, hangs, or returns wrong data.
- A schema constraint rejects something that should plausibly be allowed.
- You found yourself reaching for
git mv, set_var, or any other "I'll just bypass" shortcut.
- The substrate's own docs (CLAUDE.md, schema, READMEs) misled you.
The shape of an observation
You need at minimum:
- summary (one line, ≤80 chars)