journallisted
Install: claude install-skill vanducng/skills
# Journal
## What this skill is — and isn't
| Skill | Question it answers | Output |
|---|---|---|
| `vd:ship` | "Land the branch." | Merged target, PR URL |
| `vd:cook` | "Execute the plan." | Code, tests, plan status |
| **`vd:journal`** | **"What just happened, why, and what should future-me know?"** | **One markdown file in `.work/journals/` (migrated) or `plans/journals/` (legacy)** |
Journal **records**. It does not redesign, retest, or roll back. If writing the entry surfaces a real bug — stop, kick to `vd:fix` or `vd:cook`, then come back to journal once the fact pattern stabilises.
## Modes
| Mode | Voice | Use when |
|---|---|---|
| _(default)_ **retro** | Calm, structured. What shipped, what was tricky, what's next. | After `vd:ship`, `vd:cook`, end of session. |
| `--incident` | Brutal-honest, 2am-developer voice. Root cause without euphemism. | A failure happened — outage, data loss, broken migration, repeated test failure, security finding. |
| `--quick` | 3–5 lines, no formal structure. | Drive-by note — small fix, minor decision, surprising bit of context. Pairs with either voice. |
## Hard rules
1. **Specificity beats vibe.** Every entry names at least one concrete artifact: commit SHA, PR #, file path, error string, metric. "We had perf issues" is not a journal entry.
2. **Decision, not narration.** If a choice was made, name the alternatives that lost and why. Otherwise the future reader can't reverse-engineer the call.
3. **Brutal in `--incident`, n