109 lines
8.0 KiB
Markdown
109 lines
8.0 KiB
Markdown
# Standup Prompt
|
|
|
|
> **Format note (2026-05-13):** Mattermost requires a visible blank line before section headers like `Today:` and `Blockers:` for proper rendering. Always emit two newline characters between the previous bullet/list item and the next section header; never place `Today:` immediately after a list item.
|
|
|
|
Use `workspaces/fidelity/project-knowledge/01-current/current-work.md`, `workspaces/fidelity/project-knowledge/01-current/work-items.md`, the detailed files referenced from that active-work summary, `workspaces/fidelity/project-knowledge/03-context/project.md`, `workspaces/fidelity/project-knowledge/03-context/workstreams/index.md`, `workspaces/fidelity/project-knowledge/03-context/process/communication.md`, `workspaces/fidelity/project-knowledge/04-people/manager.md`, the previous workday communication context, today's daily note if present, and the latest available communication context.
|
|
|
|
Generate a standup update for the active project profile.
|
|
|
|
## Required refresh
|
|
|
|
- At the start of the day, fetch or read refreshed Mattermost evidence before drafting. Prefer the local proxy mirror through `scripts/mattermost-proxy/read-context.py` when it exists; use configured sync output only when a fresh API pull is required.
|
|
- Fetch focused standup evidence with `python3 scripts/mattermost-proxy/read-context.py --mode standup --today YYYY-MM-DD`; this reads previous-workday and today records from date-bucketed mirror files and should filter through the active profile's configured `AIW_MATTERMOST_CONTEXT_CHANNELS` when available. Do not read broad `latest.md` for standups unless the focused date-bucketed view is unavailable and you explicitly label the fallback as broad/noisy.
|
|
- If Mattermost refresh fails, say so internally and use only saved workspace memory with clear caution; do not invent fresher context.
|
|
- Do not skip communication refresh for standup just to reduce latency, because stale standups cost more time to correct later.
|
|
|
|
## Temporal grounding
|
|
|
|
- Use the injected `Temporal Context` block as the source of truth for today's date, weekday, calendar yesterday, and default previous workday.
|
|
- Resolve relative terms before drafting: `today` means the injected `today`; `yesterday` means the injected `calendar_yesterday`; `previous workday` means the injected `default_previous_workday` unless refreshed Mattermost evidence found a later prior day with activity.
|
|
- For a Tuesday report, the previous-work section normally describes Monday's work.
|
|
- Do not infer dates from model memory, conversation history, or file modification times when the injected temporal context is available.
|
|
- If a requested report date conflicts with the injected current date, state the exact date being used before drafting.
|
|
|
|
## Output contract
|
|
|
|
- Use the greeting required by the active profile or command. If no greeting is specified, omit the greeting and start with the previous-work section.
|
|
- Return the greeting, a previous-work section, and `Today:` with a visible blank line before `Today:`
|
|
- Include `Blockers:` only when there is a real blocker to report; omit the entire section when there are no blockers
|
|
- Use `Yesterday:` only when the previous-work section truly refers to yesterday; otherwise use a truthful label such as `Last workday:` or the weekday/date when clearer
|
|
- Return Markdown that is ready to copy/paste directly into the configured team communication tool
|
|
- Use one top-level bullet per work item
|
|
- Use indented sub-bullets only when they improve clarity
|
|
- Prefer one concise sub-bullet when nearby events are part of the same continuous context
|
|
- Keep sub-bullets in chronological order within each work item
|
|
- Keep the whole standup concise and ready to send
|
|
|
|
## Selection rules
|
|
|
|
- Use the most recent context only
|
|
- `Yesterday` must describe work that actually happened on the previous workday, not older status changes that still appear in current memory
|
|
- On Mondays, use Friday's work context unless a later prior day has Mattermost activity
|
|
- If the previous calendar day has no work activity or is OOO/weekend, use the latest prior day with Mattermost activity
|
|
- Treat the previous workday communication context as the primary source for the previous-work section
|
|
- When the previous-workday evidence is itself a standup, do not promote that standup's nested `Yesterday` lines as work performed on the previous workday. Use same-day follow-up evidence, same-day daily logs, or explicit user-provided context for what actually happened on that date.
|
|
- If a latest daily log exists, use its `Work Done` and same-day findings as the primary source for `Yesterday`; use current memory only to disambiguate, not to backfill unrelated older events
|
|
- Do not reuse older investigation context from `current-work.md` as `Yesterday` unless the latest daily log or previous-workday communication confirms it happened on that workday
|
|
- Prefer updates directly tied to active work items over side questions, context refreshes, or manager-only reminders
|
|
- Exclude items that are not directly tied to a story unless they are true blockers
|
|
- Do not mention stories assigned to a future sprint unless they are a real blocker for today's work
|
|
- Do not include `Today` items that are known not to be worked on today
|
|
|
|
## Story handling rules
|
|
|
|
- Mention work item IDs and approved titles when they are available and clearly tied to the reported work
|
|
- Prefer including story titles whenever a reported update maps clearly to a Jira item
|
|
- Prefer story-based reporting when the work maps clearly to a Jira item
|
|
- If documentation, root-cause analysis, or implementation analysis directly supports a story, group that work under the related story instead of listing it separately
|
|
- When one work item has multiple concrete updates, keep them under one top-level `ID - Title` bullet
|
|
- When pairing a work item ID with a title, prefer `ID - Title` or `ID Title`; do not use commas between them
|
|
|
|
## Writing rules
|
|
|
|
- Write in natural US English that can be forwarded externally without rewriting
|
|
- Write the standup as the workspace user's progress report
|
|
- Be specific, concise, and evidence-backed
|
|
- Avoid vague phrases and generic progress language
|
|
- Mention debugging findings only if they materially changed understanding
|
|
- Clarify auth-dependent behavior when relevant
|
|
- Separate external issues from regressions when that distinction matters
|
|
- For standups that may also be sent outside the immediate team, prefer plain outcome language over internal implementation jargon; avoid unexplained terms like `fallback`
|
|
- If a release or propagation step is waiting on approvals or pipeline work, make the parallel work explicit instead of sounding like the day is blocked on waiting alone
|
|
- Do not mention manager or stakeholder names except in the configured greeting or when the user explicitly asks
|
|
- Do not mention internal evidence sources or communication tools unless the user explicitly asks
|
|
|
|
## Compression rules
|
|
|
|
- Combine closely related events into one sentence when they share the same context and timeline
|
|
- Split into multiple sub-bullets only when separation improves accuracy or readability
|
|
- Prefer direct chronological phrasing such as `Started by...`, `Then...`, `Later...` when that keeps one bullet accurate and concise
|
|
|
|
## Anti-patterns to avoid
|
|
|
|
- Do not report a work item as worked yesterday just because it is now `Done`
|
|
- Do not pull old closure events from durable memory into a new standup unless they happened on the previous workday
|
|
- Do not mention next-sprint work in `Today` when today's plan is already known and different
|
|
- Do not turn context notes into fake progress lines
|
|
|
|
Format:
|
|
|
|
<optional configured greeting>
|
|
|
|
Yesterday:
|
|
- ITEM-#### - Title
|
|
- Update 1
|
|
- Update 2
|
|
|
|
|
|
Today:
|
|
- ITEM-#### - Title
|
|
- Next action 1
|
|
- Next action 2
|
|
|
|
Blockers:
|
|
- ...
|
|
|
|
If there are no blockers, omit `Blockers:` entirely.
|
|
|
|
**Mattermost rendering note:** use a visible blank line (two newline characters) before `Today:` and before `Blockers:` so Mattermost renders the section headers as proper headings rather than inline text. Before returning the final answer, visually verify there is an empty line immediately above `Today:`.
|