Standup Context
Intro
A standup update is a brief, structured record of session progress — written
for the team record and for any downstream skill (like morning-briefing)
that reconstructs what happened. It lives in context/logs/ as a
session.standup LogEntry. It is NOT a flat context/STANDUPS.md file.
Overview
The four fields
Every standup has exactly four fields:
- done — what was completed since the last standup. Past tense, specific. "Merged BACK-042 auth refactor" not "worked on auth."
- doing — what is currently in progress. These are the items that will appear in the next standup's "done" if work continues.
- next — what comes immediately after the current work. One or two items. Gives the team visibility on direction.
- blockers — anything preventing progress. Empty list if none. Be specific: "waiting for Alice to review PR #88" not "blocked on review."
Writing the LogEntry
---
apiVersion: processkit.projectious.work/v1
kind: LogEntry
metadata:
id: LOG-<next-id>
created: <ISO 8601 UTC>
spec:
event_type: session.standup
timestamp: <ISO 8601 UTC>
actor: <ACTOR-id or agent name>
summary: "Standup — <YYYY-MM-DD>"
details:
session_date: "<YYYY-MM-DD>"
done:
- "<completed item 1>"
- "<completed item 2>"
doing:
- "<in-progress item>"
next:
- "<next item>"
blockers: []
---
Save to context/logs/LOG-<id>-standup-<date>.md.
Sourcing the content
Before writing, query:
workitem-management— filter forstate: done(completed today) andstate: in_progress(currently doing)- Recent
session.handoverorsession.standupentries — for what the previous session left as "next" - Git log —
git log --oneline --since="24 hours ago"for a mechanical account of commits since the last standup
Cross-check: if a WorkItem is marked done but no commit references it,
note it — might be a missing commit or a premature state transition.
Trigger phrases
The agent should write a standup when it hears:
- "write a standup" / "standup update"
- "what did I do today" / "summarize today's work"
- "write a status update for the team"
- "daily update"
- "end of day summary"
This skill also provides the /standup-context-write slash command for direct invocation — see commands/standup-context-write.md.
Gotchas
- Writing done in present tense. "Working on BACK-042" belongs in doing, not done. Done means the work is finished. "Completed BACK-042 auth refactor and merged to main" is done.
- One-liner entries with no specifics. "Worked on auth" is not a standup item — it gives the team nothing. Reference the WorkItem ID, the PR number, or the specific outcome: "Merged auth refactor (BACK-042, PR #88); all tests green."
- Leaving blockers vague. "Blocked on review" tells the team nothing actionable. Name the reviewer, the PR, and how long it has been waiting: "PR #88 waiting on Alice — submitted 2026-04-07, no response yet."
- Conflating doing and next. Doing is what is actively in progress right now. Next is what comes after. The distinction matters: doing items might finish today; next items haven't started.
- Writing a standup without querying WorkItem state. Memory-based standups miss items and include outdated ones. Always check the actual WorkItem state before writing.
- Writing a standup for a period longer than one session without flagging it. If the last standup was three days ago, the "done" list is actually three days of work. Flag this in the summary line so the team knows the cadence was missed.
- Including personal context in the team standup. Blockers like
"dentist appointment" or "waiting to hear back about contract" belong in
a
session.handover, not a standup. Standups are project-facing records.
Full reference
Standup vs. session handover
| standup-context | session-handover | |
|---|---|---|
| When | Regular cadence (daily or per session) | Before shutdown / container restart |
| Audience | The team / project record | The next session (same person or agent) |
| Focus | Accountability — what was done | Continuity — what to pick up next |
| LogEntry type | session.standup |
session.handover |
Reading recent standups
To reconstruct what has happened since the last session:
query_events(event_type="session.standup", since="<date>", order="asc")
morning-briefing uses this query to populate its "what happened" section
when no recent session.handover exists.
Output format for sharing
When the user wants to copy a standup to Slack or email, format it as:
**Yesterday / last session:**
- <done item 1>
- <done item 2>
**Today:**
- <doing item>
- <next item>
**Blockers:**
- <blocker> (or: none)