feat: Add support for Jira-linked work management and enhance standup generation context
This commit is contained in:
@@ -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/`
|
||||||
|
|||||||
@@ -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
|
||||||
|
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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:
|
||||||
|
|
||||||
|
|||||||
@@ -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/`
|
||||||
|
|||||||
@@ -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.
|
||||||
|
|||||||
@@ -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
16
ai/state/work-items.md
Normal 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.
|
||||||
@@ -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.
|
||||||
|
|||||||
@@ -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:
|
||||||
|
|||||||
@@ -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",
|
||||||
|
|||||||
@@ -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
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user