feat: Add Fidelity workspace agent and context management commands

- Introduced a primary agent for the Fidelity AI Workspace to maintain context and support daily engineering tasks.
- Created commands for loading workspace context, drafting updates for Jeff, and logging daily notes.
- Implemented translation and standup generation commands to enhance communication clarity.
- Developed a compaction plugin to preserve essential workspace context during sessions.
- Established a structured approach for managing project knowledge, communication rules, and decision-making processes.
- Updated README and project structure to reflect new workflows and usage guidelines.
This commit is contained in:
2026-04-09 14:19:26 -06:00
parent 1028e6ecd6
commit e92c07b8b1
33 changed files with 1071 additions and 114 deletions

94
ai/AGENTS.md Normal file
View File

@@ -0,0 +1,94 @@
# AGENTS.md
## Role
Senior iOS engineer supporting Fidelity from a companion AI workspace.
This workspace is used to maintain context, organize communication, and draft accurate updates while the main implementation work happens on a different machine.
---
## Primary Responsibilities
- Keep project context current
- Convert Mattermost communication into structured notes
- Draft standups and manager updates
- Improve technical messages before sending them to Jeff
- Translate rough notes into concise US English without changing meaning
---
## Fidelity Context
- REST migration is replacing GraphQL over time
- REST is behind a feature flag
- GraphQL remains fallback
- XFlow is backend-driven
- Discourse and AO issues are often incomplete or ambiguous
---
## Communication Style
Always structure technical updates as:
1. Context
2. Observation
3. Action
When drafting messages for Jeff:
- be concise
- be specific
- avoid vague comparisons
- make status and scope explicit
---
## Rules
- Do not imply code changes were made from this workspace unless explicitly stated
- Treat this repository as a context and communication layer, not the product codebase
- Always clarify authenticated vs non-authenticated behavior
- Do not assume REST is default
- Separate external issues from regressions
- State reproducibility clearly
- If the user provides rough Spanish notes, translate them into natural US English
- Preserve technical meaning when polishing communication
---
## Context Maintenance
- Treat workspace files as persistent memory, not just reference notes
- Before answering prompts about current work, verify `ai/state/current.md` and the latest relevant log in `ai/logs/`
- When the user shares relevant new information, update today's log if the information belongs to the daily record
- When the user corrects or changes stable context, update the canonical file directly:
- `ai/state/current.md` for current focus or active concerns
- `ai/context/project.md` for durable project knowledge
- `ai/context/people/jeff.md` for communication preferences
- `ai/context/decisions/*.md` for confirmed decisions
- Prefer updating stale context over leaving conflicting statements in different files
- If context is still uncertain, record it in the daily log rather than promoting it to a stable context file
---
## Default Turn Behavior
For day-to-day prompts in this workspace:
1. Verify the latest relevant context.
2. Decide whether the prompt introduces new durable information.
3. Update the workspace when needed.
4. Then answer using the refreshed context.
---
## Output
Outputs should be:
- clear
- concise
- actionable
- manager-ready

View File

@@ -0,0 +1,38 @@
# Discourse Issues Handling
## Context
External reports from AO testing or Discourse may:
- already exist in main
- be partially reproducible
- depend on authentication
- reflect backend behavior rather than a new regression
---
## Decision
Treat incoming reports as external issues until scope is confirmed.
---
## Validation Rules
Always confirm:
- reproducibility
- environment
- auth state
- entry point
- whether the issue exists in main
---
## Communication Rule
Do not say a report is a regression until comparison has been validated.
Preferred framing:
"Investigating external report. Scope, auth state, and reproducibility still being confirmed."

View File

@@ -0,0 +1,30 @@
# REST vs GraphQL
## Decision
Deprecate GraphQL and migrate to REST progressively.
---
## Constraints
- REST is behind a feature flag
- GraphQL remains fallback
- Behavior parity matters during migration
---
## Communication Rule
When reporting findings:
- state whether REST was confirmed enabled
- avoid implying REST is the default path
- call out when behavior may still come from GraphQL fallback
---
## Follow-up
- Remove Apollo when migration is safe
- Retire GraphQL-specific tests only after parity is confirmed

40
ai/context/people/jeff.md Normal file
View File

@@ -0,0 +1,40 @@
# Jeff
## Role
Direct supervisor.
---
## Communication Requirements
- Native US English
- Prefers clear, concise updates
- Needs accurate scope, not vague reassurance
- Should be informed of meaningful progress from this machine through Mattermost
---
## What Good Updates Include
1. Context
2. Observation
3. Action
Good updates usually clarify:
- what issue or task is being discussed
- whether the behavior is reproducible
- whether auth state matters
- whether this looks like an external issue or a regression
- what the next step is
---
## AI Usage
AI should help:
- translate rough Spanish notes into natural US English
- tighten wording before sending
- remove ambiguity without changing technical meaning

79
ai/context/project.md Normal file
View File

@@ -0,0 +1,79 @@
# Project Context - Fidelity
## Overview
This workspace supports daily iOS engineering work for Fidelity.
The product work happens outside this repository, usually from another machine. This repository exists to preserve context, track communication, and help AI generate accurate output for standups, Mattermost messages, Jira notes, and supervisor updates.
---
## Fidelity Ecosystem
- Fid4 is the main consumer iOS app
- XFlowSDK powers backend-driven UI flows
- XFlowViewMaker is an adapter layer under evaluation for removal
- FTFrameworks contains feature modules such as FTAccountOpen and FTTransfer
---
## Current Priorities
### REST migration
- REST is behind a feature flag
- GraphQL is still the default fallback
- REST should never be assumed active unless confirmed
- Migration must preserve behavior while Apollo is deprecated safely
### Discourse and AO issues
- External reports are often incomplete
- Many reported issues are not confirmed regressions
- Some issues reproduce only with authenticated users
### Flow debugging
- XFlow behavior changes based on backend configuration
- Entry point affects what the user sees
- Authentication state affects reproducibility
### Testing complexity
- Around 15 entry points have been identified at code level
- Not all entry points are reachable from visible UI
- Validation often requires exploratory testing
---
## How This Workspace Is Used
This machine is used to:
- maintain current project context
- record findings from work performed elsewhere
- capture Mattermost communication that changes understanding
- prepare polished updates for Jeff
- generate standups with better context coverage
This means logs must capture both technical findings and communication context.
---
## Communication Expectations
All important updates should clarify:
- whether the flow is authenticated or non-authenticated
- whether the issue is reproducible
- whether the report is external behavior or regression
- whether behavior is present in main
- what action is needed next
Avoid phrases that hide scope, such as:
- "same behavior"
- "looks fixed"
- "working as expected"
Use explicit framing instead.

28
ai/logs/2026-04-08.md Normal file
View File

@@ -0,0 +1,28 @@
# 2026-04-08
## Work Done
- Investigated a Youth account flow issue reported externally
- Compared the observed behavior against prior flow behavior
- Captured notes to explain the issue clearly before sharing updates
---
## Findings
- Reproduction required an authenticated user
- Behavior appeared consistent with previously observed flow behavior
- The report did not yet prove a regression
---
## Communication
- Prepared a clearer explanation for follow-up through Mattermost
- Framed the issue as an external report pending scope confirmation
---
## Next Step
- Confirm whether any additional action is needed before closing the issue

28
ai/logs/2026-04-09.md Normal file
View File

@@ -0,0 +1,28 @@
# 2026-04-09
## Work Done
- Refined manager-facing communication about a reported behavior difference
- Reframed ambiguous language before documenting the outcome in Jira
- Updated context to reflect auth-dependent behavior
---
## Findings
- The reported behavior depended on authenticated context
- The original external report was incomplete
- The comparison needed more precise wording to avoid implying regression
---
## Communication
- Prepared clearer wording for Jeff
- Focused on context, observation, and action instead of vague comparison language
---
## Next Step
- Keep using explicit issue framing for future Mattermost and Jira updates

34
ai/state/current.md Normal file
View File

@@ -0,0 +1,34 @@
# Current Work
## Focus
- Keep Fidelity context current from daily work performed on another machine
- Track REST migration findings
- Debug Discourse and AO issues
- Prepare better updates for Jeff through Mattermost
---
## Active Concerns
- Authenticated vs non-authenticated behavior
- Reproducibility across entry points
- Backend-driven inconsistencies in XFlow
- Distinguishing external issues from true regressions
- Preserving accurate context when summarizing work from another machine
---
## Communication Priorities
- Standups should reflect the latest technical state, not generic progress
- Manager updates should be short, precise, and natural in English
- Mattermost messages should make scope and next action explicit
---
## Notes
- REST remains behind a feature flag
- Validate against main before calling something a regression
- This workspace is the context source for communication, not the source of product code changes