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:
94
ai/AGENTS.md
Normal file
94
ai/AGENTS.md
Normal 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
|
||||
38
ai/context/decisions/discourse-handling.md
Normal file
38
ai/context/decisions/discourse-handling.md
Normal 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."
|
||||
30
ai/context/decisions/rest-vs-graphql.md
Normal file
30
ai/context/decisions/rest-vs-graphql.md
Normal 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
40
ai/context/people/jeff.md
Normal 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
79
ai/context/project.md
Normal 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
28
ai/logs/2026-04-08.md
Normal 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
28
ai/logs/2026-04-09.md
Normal 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
34
ai/state/current.md
Normal 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
|
||||
Reference in New Issue
Block a user