feat: Add support for Jira-linked work management and enhance standup generation context

This commit is contained in:
2026-04-09 15:18:51 -06:00
parent 22198a6c6f
commit d40d82bacd
12 changed files with 65 additions and 4 deletions

View File

@@ -18,6 +18,7 @@ Behavior rules:
- Promote information carefully: - Promote information carefully:
- daily facts go to `ai/logs/YYYY-MM-DD.md` - daily facts go to `ai/logs/YYYY-MM-DD.md`
- current priorities go to `ai/state/current.md` - current priorities go to `ai/state/current.md`
- active Jira-linked work goes to `ai/state/work-items.md`
- durable project knowledge goes to `ai/context/project.md` - durable project knowledge goes to `ai/context/project.md`
- confirmed team or manager communication preferences go to `ai/context/people/jeff.md` - confirmed team or manager communication preferences go to `ai/context/people/jeff.md`
- confirmed decisions go to `ai/context/decisions/` - confirmed decisions go to `ai/context/decisions/`

View File

@@ -22,6 +22,7 @@ Then:
- automatically promote explicit, project-relevant, high-confidence facts - automatically promote explicit, project-relevant, high-confidence facts
- default destination is `ai/logs/$(date +%F).md` - default destination is `ai/logs/$(date +%F).md`
- update `ai/state/current.md` only for facts that materially change the current work window - update `ai/state/current.md` only for facts that materially change the current work window
- update `ai/state/work-items.md` for explicit Jira IDs, approved titles, points, scope, and status notes
- do not write tooling noise, sync status, or generic chat chatter into project memory - do not write tooling noise, sync status, or generic chat chatter into project memory
- if a fact is ambiguous, skip it rather than asking the user what to do - if a fact is ambiguous, skip it rather than asking the user what to do

View File

@@ -9,6 +9,7 @@ Read:
@ai/AGENTS.md @ai/AGENTS.md
@ai/context/project.md @ai/context/project.md
@ai/state/current.md @ai/state/current.md
@ai/state/work-items.md
@knowledge/workspace-model.md @knowledge/workspace-model.md
@knowledge/communication-rules.md @knowledge/communication-rules.md
@knowledge/memory-promotion-rules.md @knowledge/memory-promotion-rules.md
@@ -32,6 +33,7 @@ Instructions:
- Update the smallest correct set of files among: - Update the smallest correct set of files among:
- `ai/logs/$(date +%F).md` - `ai/logs/$(date +%F).md`
- `ai/state/current.md` - `ai/state/current.md`
- `ai/state/work-items.md`
- `ai/context/project.md` - `ai/context/project.md`
- `ai/context/decisions/*.md` - `ai/context/decisions/*.md`
- Prefer concrete project updates over broad summaries - Prefer concrete project updates over broad summaries

View File

@@ -4,21 +4,31 @@ description: Draft a standup from the latest Fidelity workspace context
Generate a standup update using the latest workspace state. Generate a standup update using the latest workspace state.
First, refresh Mattermost context before drafting:
!`if [ -n "$FIDELITY_MATTERMOST_SYNC_CMD" ]; then bash -lc "$FIDELITY_MATTERMOST_SYNC_CMD" >/dev/null 2>&1 || true; elif [ -f scripts/mattermost/sync.sh ]; then bash scripts/mattermost/sync.sh >/dev/null 2>&1 || true; fi`
Read: Read:
@prompts/standup.md @prompts/standup.md
@ai/AGENTS.md @ai/AGENTS.md
@ai/context/project.md @ai/context/project.md
@ai/state/current.md @ai/state/current.md
@ai/state/work-items.md
@knowledge/communication-rules.md @knowledge/communication-rules.md
@knowledge/agent-memory-rules.md
Yesterday's log, if present:
!`y=$(date -v-1d +%F 2>/dev/null || python3 - <<'PY'\nfrom datetime import datetime, timedelta\nprint((datetime.now().astimezone() - timedelta(days=1)).strftime('%Y-%m-%d'))\nPY\n); if [ -f "ai/logs/$y.md" ]; then echo "$y"; cat "ai/logs/$y.md"; else echo "No log exists for yesterday."; fi`
Today's log, if present: Today's log, if present:
!`if [ -f ai/logs/$(date +%F).md ]; then cat ai/logs/$(date +%F).md; else echo "No log exists for today yet."; fi` !`if [ -f ai/logs/$(date +%F).md ]; then cat ai/logs/$(date +%F).md; else echo "No log exists for today yet."; fi`
If no log exists for today, also inspect the most recent previous log: Latest Mattermost context, preferring inbox and falling back to generated JSONL:
!`latest=$(ls -1 ai/logs 2>/dev/null | sort | tail -n 1); if [ -n "$latest" ]; then echo "$latest"; cat "ai/logs/$latest"; else echo "No logs available."; fi` !`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`
Return a standup that is: Return a standup that is:

View File

@@ -11,6 +11,7 @@ Read:
@ai/context/project.md @ai/context/project.md
@ai/context/people/jeff.md @ai/context/people/jeff.md
@ai/state/current.md @ai/state/current.md
@ai/state/work-items.md
@knowledge/workspace-model.md @knowledge/workspace-model.md
@knowledge/communication-rules.md @knowledge/communication-rules.md
@knowledge/agent-memory-rules.md @knowledge/agent-memory-rules.md
@@ -29,6 +30,7 @@ Instructions:
- Decide whether the new information belongs in: - Decide whether the new information belongs in:
- today's log - today's log
- `ai/state/current.md` - `ai/state/current.md`
- `ai/state/work-items.md`
- `ai/context/project.md` - `ai/context/project.md`
- `ai/context/people/jeff.md` - `ai/context/people/jeff.md`
- `ai/context/decisions/` - `ai/context/decisions/`

View File

@@ -17,6 +17,7 @@ The detailed operating rules live in:
- `ai/context/project.md` - `ai/context/project.md`
- `ai/context/people/jeff.md` - `ai/context/people/jeff.md`
- `ai/state/current.md` - `ai/state/current.md`
- `ai/state/work-items.md`
- `knowledge/workspace-model.md` - `knowledge/workspace-model.md`
- `knowledge/communication-rules.md` - `knowledge/communication-rules.md`
@@ -33,6 +34,7 @@ These are also loaded through `opencode.json`.
- `mattermost-sync` should automatically promote high-confidence project facts without asking what to promote. - `mattermost-sync` should automatically promote high-confidence project facts without asking what to promote.
- Prefer `ai/logs/` as the default destination for new Mattermost-derived facts. - Prefer `ai/logs/` as the default destination for new Mattermost-derived facts.
- Promote to `ai/state/current.md` only when the fact materially changes active work over the next few days. - Promote to `ai/state/current.md` only when the fact materially changes active work over the next few days.
- Keep explicit Jira IDs and approved titles in `ai/state/work-items.md` when they are useful for future standups or manager updates.
- Promote to `ai/context/project.md` only when the fact changes durable project understanding. - Promote to `ai/context/project.md` only when the fact changes durable project understanding.
- Never promote tooling chatter, sync status, or generic conversation noise. - Never promote tooling chatter, sync status, or generic conversation noise.
- Direct user prompts are also memory sources. Do not limit memory updates to explicit sync commands. - Direct user prompts are also memory sources. Do not limit memory updates to explicit sync commands.

View File

@@ -70,6 +70,7 @@ When drafting messages for Jeff:
- Auto-promote direct user-provided project facts when they are clearly project-relevant, explicit, and useful for future sessions - Auto-promote direct user-provided project facts when they are clearly project-relevant, explicit, and useful for future sessions
- Default promotion target is today's log - Default promotion target is today's log
- Promote to `ai/state/current.md` only when the fact changes the active work window - Promote to `ai/state/current.md` only when the fact changes the active work window
- Maintain `ai/state/work-items.md` with explicit Jira IDs, approved titles, and currently relevant scope/status notes
- Promote to `ai/context/project.md` only when the fact is durable beyond the current work window - Promote to `ai/context/project.md` only when the fact is durable beyond the current work window
- Update existing memory when the new information is a correction, clarification, or refinement of something already stored - Update existing memory when the new information is a correction, clarification, or refinement of something already stored
- Prefer updating stable project context over appending generic operational summaries - Prefer updating stable project context over appending generic operational summaries

16
ai/state/work-items.md Normal file
View File

@@ -0,0 +1,16 @@
# Active Work Items
Use this file to keep current Jira-linked work visible across sessions.
Update it only with explicit, project-relevant information that is useful for future standups, status updates, or debugging context.
## Current
- `PDIAP-15765` - AO DOB field error not showing investigation
Current note: issue was moved back to In Progress temporarily and should move to Done after the new sprint starts.
- `PDIAP-15836` - Modernize dismissal delegate lifecycle sequencing for pure SwiftUI environment
Current note: story created, sized at 8 points, and aligned with epic `26Q2 - Updating XFlowSDK to Decouple and Fix ApexKit Dependencies (Split Part 2)`.
- `PDIAP-15838`
Current note: REST deprecation work item approved at 8 points to remove Apollo, GraphQL-specific networking code, related tests and mocks, and transport feature flags so REST remains.

View File

@@ -78,6 +78,17 @@ Use when the fact changes the active work window, including:
- current blockers or debugging constraints - current blockers or debugging constraints
- manager direction that changes the next few days of work - manager direction that changes the next few days of work
### `ai/state/work-items.md`
Use for current Jira-linked work that should remain easy to reference across sessions, especially:
- Jira IDs
- approved or explicit titles
- currently relevant status notes
- current points or scope notes
This file should help standups and manager updates mention work items precisely.
### `ai/context/project.md` ### `ai/context/project.md`
Use for durable project knowledge that should survive beyond the current work window. Use for durable project knowledge that should survive beyond the current work window.

View File

@@ -41,6 +41,18 @@ Use current state only for facts that materially affect active work over the nex
Do not copy every daily update into current state. Do not copy every daily update into current state.
### Promote to `ai/state/work-items.md`
Use this file for:
- explicit Jira IDs
- approved or explicit story titles
- current story points
- current scope notes
- active status notes that still matter for future updates
If a Jira item is likely to appear again in standups or Jeff updates, it belongs here.
### Promote to `ai/context/project.md` ### Promote to `ai/context/project.md`
Use project context only for durable project knowledge that should survive beyond the current work window, such as: Use project context only for durable project knowledge that should survive beyond the current work window, such as:

View File

@@ -44,6 +44,7 @@
"./ai/context/project.md", "./ai/context/project.md",
"./ai/context/people/jeff.md", "./ai/context/people/jeff.md",
"./ai/state/current.md", "./ai/state/current.md",
"./ai/state/work-items.md",
"./ai/context/decisions/rest-vs-graphql.md", "./ai/context/decisions/rest-vs-graphql.md",
"./ai/context/decisions/discourse-handling.md", "./ai/context/decisions/discourse-handling.md",
"./ai/AGENTS.md", "./ai/AGENTS.md",

View File

@@ -1,15 +1,17 @@
# Standup Prompt # Standup Prompt
Use the latest files in `ai/state/current.md`, `ai/context/project.md`, `ai/context/people/jeff.md`, and today's log. Use `ai/state/current.md`, `ai/state/work-items.md`, `ai/context/project.md`, `ai/context/people/jeff.md`, yesterday's log, today's log if present, and the latest available Mattermost context.
Generate a standup update for an iOS engineer working on Fidelity. Generate a standup update for an iOS engineer working on Fidelity.
Requirements: Requirements:
- Use the most recent context only - Use the most recent context only
- Be specific about what was worked on - Be specific about what was worked on yesterday
- Mention debugging findings only if they materially changed understanding - Mention debugging findings only if they materially changed understanding
- Clarify auth-dependent behavior when relevant - Clarify auth-dependent behavior when relevant
- Mention Jira IDs and approved titles when they are available and clearly tied to the reported work
- Prefer story-based reporting when the work maps clearly to a Jira item
- Avoid vague phrases and generic progress language - Avoid vague phrases and generic progress language
- Keep it concise and ready to send - Keep it concise and ready to send