Files
fidelity-ai-workspace/.agents/workflows/standup.md

5.2 KiB
Raw Blame History

description
description
Draft a standup from the latest Fidelity workspace context

Generate a standup update using the latest workspace state.

First, refresh Mattermost context before drafting:

!`python3 - <<'PY' import os import subprocess from pathlib import Path

cmd = os.environ.get("AIW_MATTERMOST_SYNC_CMD") or os.environ.get("FIDELITY_MATTERMOST_SYNC_CMD") if cmd: result = subprocess.run(["bash", "-lc", cmd], capture_output=True, text=True) elif Path("scripts/mattermost/sync.sh").is_file(): result = subprocess.run(["bash", "scripts/mattermost/sync.sh"], capture_output=True, text=True) else: print("No Mattermost sync command configured.") raise SystemExit(0)

if result.returncode != 0: print("MATTERMOST_SYNC_FAILED") if result.stdout: print(result.stdout.strip()) if result.stderr: print(result.stderr.strip()) else: if result.stdout.strip(): print(result.stdout.strip()) PY`

Read:

@prompts/standup.md @project-knowledge/00-start/start-here.md @project-knowledge/01-current/current-work.md @project-knowledge/01-current/work-items.md @project-knowledge/03-context/project.md @project-knowledge/03-context/workstreams/index.md @project-knowledge/03-context/workstreams/flow-page-references.md @project-knowledge/03-context/process/communication.md @project-knowledge/03-context/process/jira-story-rules.md @project-knowledge/04-people/manager.md

Previous workday Mattermost context, if present:

!bash scripts/mattermost/sync.sh --previous-workday --today "$(date +%F)"

Today's log, if present:

!if [ -f project-knowledge/06-daily/$(date +%F).md ]; then cat project-knowledge/06-daily/$(date +%F).md; else echo "No daily note exists for today yet."; fi

Latest Mattermost context, preferring inbox and falling back to generated JSONL:

!if [ -s ai/inbox/mattermost-latest.md ]; then cat ai/inbox/mattermost-latest.md; elif [ -s scripts/mattermost/generated/mattermost_context.jsonl ]; then cat scripts/mattermost/generated/mattermost_context.jsonl; else echo "No Mattermost context available."; fi

Detailed active work item files, if available:

!`python3 - <<'PY' import re from pathlib import Path

summary = Path("project-knowledge/01-current/work-items.md") if not summary.is_file(): print("No work item files available.") raise SystemExit(0)

text = summary.read_text() paths = re.findall(r"Detail: (project-knowledge/02-work-items/[^]+)`", text) if not paths: print("No work item files available.") raise SystemExit(0)

for rel in paths: path = Path(rel) if not path.is_file(): continue print(f"\n### {rel}") print(path.read_text()) PY`

Before drafting:

  • use status-reporting when available
  • update workspace memory if the refreshed context introduced clear high-confidence project facts
  • prefer existing memory when the latest context is ambiguous
  • treat the previous workday Mattermost context as the source for the Yesterday section, even when the previous calendar day was a weekend, holiday, or OOO day
  • mention Jira IDs and approved titles when they map cleanly to previous-work context
  • prioritize story-based updates over side questions, memory refreshes, or manager-only context
  • if documentation or root cause updates directly support a story, roll them into that story's update instead of listing them separately
  • exclude items that are not directly tied to a story unless they are true blockers
  • when one Jira item has multiple concrete updates, group them under one top-level JIRA-ID - Title bullet with indented markdown sub-bullets instead of repeating the same Jira line
  • use project-knowledge/03-context/workstreams/flow-page-references.md to preserve real flow/page identifiers when shorthand appears in logs or messages
  • for standups that will also be sent to Teams, prefer plain language over internal implementation jargon; avoid unexplained terms like fallback
  • if work is in release-process waiting state, show the parallel story work explicitly instead of implying idle waiting
  • if Mattermost sync failed, acknowledge that internally and rely on the latest saved workspace context instead of inventing fresher communication
  • prefer only the detailed work-item files referenced by project-knowledge/01-current/work-items.md; do not mine unrelated or completed ticket files unless they are explicitly active in current memory

Return a standup that is:

  • specific
  • concise
  • grounded in the latest context
  • safe to send without overstating certainty
  • written in natural US English that can be sent externally without rewriting
  • written as David's progress report
  • free of any mention of Mattermost, since it is internal-only communication
  • starts with exactly Hi @jeff, heres my daily scrum update: for the active Fidelity profile
  • does not mention Jeff again after the greeting unless explicitly needed
  • uses bullet points for each item
  • groups multiple updates for the same Jira item as indented sub-bullets
  • uses JIRA-ID - Title or JIRA-ID Title formatting instead of comma-separated ID/title formatting
  • preserves chronological order within each Jira item's sub-bullets
  • omits future-sprint stories from Today unless they are real blockers
  • is ready to copy/paste into Mattermost as Markdown