Desk journal
Maintain desks/<desk-name>/journal.md as a concise persistent trail; read the latest entry to resume work or append a new entry that tells the next session what happened, where things stand, and what to do next.
When to invoke
- "Read the desk journal before we continue."
- "Write an end-of-session journal entry."
- "Add a mid-session checkpoint to the journal."
- "Wind down this desk with a final summary."
- "Record what was done, current state, and next step."
Prerequisites and context
- The journal path is
desks/<desk-name>/journal.md; infer <desk-name> from the active desk, user request, or repository convention.
- The journal is persistent memory, not a full diary. Keep entries short enough for future sessions to scan.
- If the desk path cannot be inferred, report the missing desk name rather than writing to an arbitrary location.
Journal entry types
| Situation |
Entry type |
Required fields |
| Start of session |
Read, not write by default |
Most recent Current state and Next step; earlier history only as needed. |
| Mid-session checkpoint |
Progress entry |
Worked on, Current state, Next step; include decisions or significant progress. |
| End of session |
Handoff entry |
Worked on, Current state, Next step; include blockers and dead ends. |
| Desk wind-down |
Desk closed entry |
Summary, Artifacts, Handoff. |
Writing rules
- Append to
desks/<desk-name>/journal.md; do not rewrite history unless the user explicitly asks to correct an entry.
- Write for someone who knows nothing about the current session.
- Be specific: name repositories, artifacts, commands, decisions, failures, and next files to inspect when useful.
- Include what did not work so the next session does not repeat dead ends.
- Keep normal entries to 3-5 lines; put larger context on the bench as a separate artifact.
- Always include a next step for session entries.
Entry templates
Session or checkpoint entry
## <date> — <short summary>
- **Worked on:** <what was done this session>
- **Current state:** <where things stand right now>
- **Next step:** <what the next session should pick up>
End-of-desk entry
## <date> — Desk closed
- **Summary:** <what this desk accomplished overall>
- **Artifacts:** <what's on the bench from this desk>
- **Handoff:** <anything another desk or the operator needs to know>
Reading rules
| Need |
Read |
| Resume work |
The most recent entry first; use Next step as the starting point. |
| Understand decisions |
Earlier entries around decision dates. |
| Close a desk |
Recent entries plus bench artifacts so the final Summary, Artifacts, and Handoff are accurate. |
| Resolve conflicting state |
Prefer newer entries unless they explicitly say they are uncertain. |
Resume discipline
Entries must prevent the next session from having to re-derive the current state. Include enough concrete evidence, artifact names, and blockers to make that possible.
Principles
- The journal is a cairn: every entry is a stone left so the next traveler finds the way.
- Honesty beats completeness; "I got stuck on X and don't know why" is more useful than silence.
- The journal is for the next session, not the current one.
- A vague entry such as "Worked on security scanning" is weak; a useful entry says which repos were scanned, what was found, what was triaged, and what remains.
Output template
## Desk journal result
**Status:** read | appended | blocked
**Journal:** `desks/<desk-name>/journal.md`
**Entry type:** start-of-session | mid-session checkpoint | end-of-session | desk closed
### Entry or latest state
```markdown
## <date> — <short summary or Desk closed>
- **Worked on:** <what was done this session>
- **Current state:** <where things stand right now>
- **Next step:** <what the next session should pick up>
Notes
- <dead end, artifact, handoff, or none>
## Quality gate
- [ ] The journal path is `desks/<desk-name>/journal.md` and the desk name is not guessed when unavailable.
- [ ] Start-of-session work reads the most recent entry before summarizing context.
- [ ] Appended session entries include `Worked on`, `Current state`, and `Next step`.
- [ ] Desk closure entries include `Summary`, `Artifacts`, and `Handoff`.
- [ ] Entries are concise but specific enough for a future session to resume without re-deriving state.
- [ ] Dead ends, blockers, or uncertainty are recorded honestly when relevant.
1---2name: desk-journal-33description: Read, write, or append persistent desk journal entries that survive session boundaries and capture what was done, current state, next step, dead ends, artifacts, and desk closure handoffs. Use when the user asks to resume from a journal, write an end-of-session entry, add a mid-session checkpoint, or record a desk wind-down.4---56<!-- Generated from harness/github-copilot/plugins/the-workshop/skills/desk-journal/SKILL.md by harness/claude-code/scripts/convert_from_copilot.py. Edit the source, not this file. -->78# Desk journal910Maintain `desks/<desk-name>/journal.md` as a concise persistent trail; read the latest entry to resume work or append a new entry that tells the next session what happened, where things stand, and what to do next.1112## When to invoke1314- "Read the desk journal before we continue."15- "Write an end-of-session journal entry."16- "Add a mid-session checkpoint to the journal."17- "Wind down this desk with a final summary."18- "Record what was done, current state, and next step."1920## Prerequisites and context2122- The journal path is `desks/<desk-name>/journal.md`; infer `<desk-name>` from the active desk, user request, or repository convention.23- The journal is persistent memory, not a full diary. Keep entries short enough for future sessions to scan.24- If the desk path cannot be inferred, report the missing desk name rather than writing to an arbitrary location.2526## Journal entry types2728| Situation | Entry type | Required fields |29| --- | --- | --- |30| Start of session | Read, not write by default | Most recent `Current state` and `Next step`; earlier history only as needed. |31| Mid-session checkpoint | Progress entry | `Worked on`, `Current state`, `Next step`; include decisions or significant progress. |32| End of session | Handoff entry | `Worked on`, `Current state`, `Next step`; include blockers and dead ends. |33| Desk wind-down | Desk closed entry | `Summary`, `Artifacts`, `Handoff`. |3435## Writing rules3637- Append to `desks/<desk-name>/journal.md`; do not rewrite history unless the user explicitly asks to correct an entry.38- Write for someone who knows nothing about the current session.39- Be specific: name repositories, artifacts, commands, decisions, failures, and next files to inspect when useful.40- Include what did not work so the next session does not repeat dead ends.41- Keep normal entries to 3-5 lines; put larger context on the bench as a separate artifact.42- Always include a next step for session entries.4344## Entry templates4546### Session or checkpoint entry4748```markdown49## <date> — <short summary>50- **Worked on:** <what was done this session>51- **Current state:** <where things stand right now>52- **Next step:** <what the next session should pick up>53```5455### End-of-desk entry5657```markdown58## <date> — Desk closed59- **Summary:** <what this desk accomplished overall>60- **Artifacts:** <what's on the bench from this desk>61- **Handoff:** <anything another desk or the operator needs to know>62```6364## Reading rules6566| Need | Read |67| --- | --- |68| Resume work | The most recent entry first; use `Next step` as the starting point. |69| Understand decisions | Earlier entries around decision dates. |70| Close a desk | Recent entries plus bench artifacts so the final `Summary`, `Artifacts`, and `Handoff` are accurate. |71| Resolve conflicting state | Prefer newer entries unless they explicitly say they are uncertain. |7273## Resume discipline7475Entries must prevent the next session from having to `re-derive` the current state. Include enough concrete evidence, artifact names, and blockers to make that possible.76## Principles7778- The journal is a cairn: every entry is a stone left so the next traveler finds the way.79- Honesty beats completeness; "I got stuck on X and don't know why" is more useful than silence.80- The journal is for the next session, not the current one.81- A vague entry such as "Worked on security scanning" is weak; a useful entry says which repos were scanned, what was found, what was triaged, and what remains.8283## Output template8485```markdown86## Desk journal result8788**Status:** read | appended | blocked89**Journal:** `desks/<desk-name>/journal.md`90**Entry type:** start-of-session | mid-session checkpoint | end-of-session | desk closed9192### Entry or latest state93```markdown94## <date> — <short summary or Desk closed>95- **Worked on:** <what was done this session>96- **Current state:** <where things stand right now>97- **Next step:** <what the next session should pick up>98```99100### Notes101- <dead end, artifact, handoff, or none>102```103104## Quality gate105106- [ ] The journal path is `desks/<desk-name>/journal.md` and the desk name is not guessed when unavailable.107- [ ] Start-of-session work reads the most recent entry before summarizing context.108- [ ] Appended session entries include `Worked on`, `Current state`, and `Next step`.109- [ ] Desk closure entries include `Summary`, `Artifacts`, and `Handoff`.110- [ ] Entries are concise but specific enough for a future session to resume without re-deriving state.111- [ ] Dead ends, blockers, or uncertainty are recorded honestly when relevant.