diff --git a/.gitignore b/.gitignore index cd553c8..b89a921 100644 --- a/.gitignore +++ b/.gitignore @@ -17,3 +17,13 @@ scripts/mattermost/.env scripts/mattermost/.venv/ scripts/mattermost/generated/* !scripts/mattermost/generated/.gitkeep + +# Obsidian local runtime state +.obsidian/workspace*.json +.obsidian/workspace-mobile*.json +.obsidian/hotkeys.json +.obsidian/community-plugins.json +.obsidian/plugins/ +.obsidian/snippets/ +.obsidian/cache/ +.trash/ diff --git a/.obsidian/app.json b/.obsidian/app.json new file mode 100644 index 0000000..316d890 --- /dev/null +++ b/.obsidian/app.json @@ -0,0 +1,22 @@ +{ + "attachmentFolderPath": "knowledge/assets", + "newFileLocation": "current", + "userIgnoreFilters": [ + ".git/", + ".opencode/node_modules/", + ".opencode/package-lock.json", + ".opencode/package.json", + "ai/inbox/", + "archives/", + "**/archives/", + "scripts/**/.venv/", + "scripts/**/generated/", + "**/.venv/", + "**/generated/", + "scripts/mattermost/.venv/", + "scripts/mattermost/generated/", + "scripts/slack/generated/", + "**/__pycache__/", + "**/*.pyc" + ] +} \ No newline at end of file diff --git a/.obsidian/appearance.json b/.obsidian/appearance.json new file mode 100644 index 0000000..9e26dfe --- /dev/null +++ b/.obsidian/appearance.json @@ -0,0 +1 @@ +{} \ No newline at end of file diff --git a/.obsidian/core-plugins.json b/.obsidian/core-plugins.json new file mode 100644 index 0000000..639b90d --- /dev/null +++ b/.obsidian/core-plugins.json @@ -0,0 +1,33 @@ +{ + "file-explorer": true, + "global-search": true, + "switcher": true, + "graph": true, + "backlink": true, + "canvas": true, + "outgoing-link": true, + "tag-pane": true, + "footnotes": false, + "properties": true, + "page-preview": true, + "daily-notes": true, + "templates": true, + "note-composer": true, + "command-palette": true, + "slash-command": false, + "editor-status": true, + "bookmarks": true, + "markdown-importer": false, + "zk-prefixer": false, + "random-note": false, + "outline": true, + "word-count": true, + "slides": false, + "audio-recorder": false, + "workspaces": false, + "file-recovery": true, + "publish": false, + "sync": true, + "bases": true, + "webviewer": false +} \ No newline at end of file diff --git a/.obsidian/graph.json b/.obsidian/graph.json new file mode 100644 index 0000000..17f5818 --- /dev/null +++ b/.obsidian/graph.json @@ -0,0 +1,51 @@ +{ + "collapse-filter": true, + "search": "-path:.git -path:.opencode/node_modules -path:ai/inbox -path:archives -path:scripts/mattermost/generated -path:scripts/slack/generated -path:scripts/mattermost/.venv -path:scripts/slack/.venv -path:generated -path:.venv", + "showTags": true, + "showAttachments": false, + "hideUnresolved": false, + "showOrphans": true, + "collapse-color-groups": true, + "colorGroups": [ + { + "query": "tag:#onboarding", + "color": { + "a": 1, + "rgb": 14701138 + } + }, + { + "query": "tag:#map", + "color": { + "a": 1, + "rgb": 6732650 + } + }, + { + "query": "path:ai/work-items", + "color": { + "a": 1, + "rgb": 16753920 + } + }, + { + "query": "path:ai/context/people", + "color": { + "a": 1, + "rgb": 10053324 + } + } + ], + "collapse-display": true, + "showArrow": false, + "textFadeMultiplier": 0, + "nodeSizeMultiplier": 1, + "lineSizeMultiplier": 1, + "collapse-forces": true, + "centerStrength": 0.518713248970312, + "repelStrength": 10, + "linkStrength": 1, + "linkDistance": 250, + "scale": 1.0862826017262757, + "close": true +} \ No newline at end of file diff --git a/.opencode/commands/index.md b/.opencode/commands/index.md new file mode 100644 index 0000000..4ac781a --- /dev/null +++ b/.opencode/commands/index.md @@ -0,0 +1,44 @@ +# OpenCode Commands Index + +Slash commands available in this workspace. + +--- + +## Generic Commands + +- [Workspace Context](workspace-context.md) +- [Communication Sync](communication-sync.md) +- [Archive Import](archive-import.md) +- [AI Prompt](ai-prompt.md) +- [Sync Context](sync-context.md) +- [Log Note](log-note.md) +- [Promote Project Context](promote-project-context.md) +- [Latest Message](latest-message.md) + +--- + +## Communication Commands + +- [Standup](standup.md) +- [Manager Update](manager-update.md) +- [Translate](translate.md) +- [Story Draft](story-draft.md) + +--- + +## Fidelity Compatibility Aliases + +- [Fidelity Context](fidelity-context.md) +- [Mattermost Sync](mattermost-sync.md) +- [Slack Import](slack-import.md) +- [Copilot Prompt](copilot-prompt.md) +- [Swift Help](swift-help.md) + +--- + +## Related + +- [Tooling Map](../../knowledge/maps/tooling.md) +- [Prompts Index](../../prompts/index.md) +- [Skills Index](../skills/index.md) + diff --git a/.opencode/skills/index.md b/.opencode/skills/index.md new file mode 100644 index 0000000..252a51b --- /dev/null +++ b/.opencode/skills/index.md @@ -0,0 +1,30 @@ +# OpenCode Skills Index + +Skills available to the workspace agent. + +--- + +## Generic Skills + +- [Workspace Memory Curation](workspace-memory-curation/SKILL.md) +- [Professional Communication](professional-communication/SKILL.md) +- [Status Reporting](status-reporting/SKILL.md) +- [AI Prompt Engineering](ai-prompt-engineering/SKILL.md) + +--- + +## Fidelity / iOS Skills + +- [Copilot Prompt Engineering](copilot-prompt-engineering/SKILL.md) +- [iOS Swift Answering](ios-swift-answering/SKILL.md) +- [iOS Testing Strategy](ios-testing-strategy/SKILL.md) +- [SwiftUI XFlow Review](swiftui-xflow-review/SKILL.md) + +--- + +## Related + +- [Tooling Map](../../knowledge/maps/tooling.md) +- [Commands Index](../commands/index.md) +- [Prompts Index](../../prompts/index.md) + diff --git a/README.md b/README.md index 3c7ee9e..35f363f 100644 --- a/README.md +++ b/README.md @@ -115,11 +115,20 @@ Reference material for: - XFlow behavior - communication rules - Fidelity-specific debugging heuristics +- Obsidian vault navigation ### /scripts Helpers for future automation around context generation and communication drafting. +### /.obsidian + +Optional Obsidian vault configuration. + +Open the repository root as the vault. Obsidian should navigate and edit the same Markdown files used by OpenCode; it should not duplicate memory into a separate store. + +Portable vault configuration can be versioned, while local layout and plugin runtime files are ignored. + --- ## Daily Usage @@ -252,6 +261,30 @@ The older `FIDELITY_*` variables remain supported for compatibility with this pr --- +## Obsidian Vault + +This repository can be opened directly as an Obsidian vault. + +Recommended entry point: + +- `knowledge/obsidian-vault.md` +- `knowledge/onboarding.md` for new members +- `knowledge/glossary.md` for terminology +- `knowledge/obsidian-usage.md` for navigation rules + +Use Obsidian for: + +- visual navigation +- graph/backlink review +- manual review of work items, people, decisions, and logs +- lightweight editing of the same Markdown memory files + +Do not use Obsidian as a second memory database. The source of truth remains the versioned Markdown files in this repository. + +Ignored Obsidian runtime files include workspace layout, plugin cache, snippets, and local plugin installs. + +--- + ## Creating Another Project 1. Copy `profiles/example/` to `profiles//`. diff --git a/ai/AGENTS.md b/ai/AGENTS.md index 6018582..e6efbd3 100644 --- a/ai/AGENTS.md +++ b/ai/AGENTS.md @@ -64,6 +64,8 @@ When drafting messages for a manager or stakeholder: - Treat workspace files as persistent memory, not just reference notes - Treat `core/` as project-independent workspace logic and keep Fidelity-specific facts in profile/context files +- Treat Obsidian as an optional navigation layer over the same Markdown files, not as a separate source of truth +- Do not treat `.obsidian/workspace*.json`, plugin caches, or local Obsidian layout changes as project memory - Prefer generic `AIW_*` integration variables for new tooling while preserving `FIDELITY_*` fallbacks for compatibility - Before answering prompts about current work, verify `ai/state/current.md` and the latest relevant log in `ai/logs/` - Before answering architecture, process, or historical questions, check the relevant file under `ai/context/systems/`, `ai/context/workstreams/`, or `ai/context/process/` diff --git a/ai/logs/index.md b/ai/logs/index.md new file mode 100644 index 0000000..308f889 --- /dev/null +++ b/ai/logs/index.md @@ -0,0 +1,27 @@ +# Logs Index + +Daily logs capture evolving evidence and same-day work context. + +Promote durable facts into `ai/state/`, `ai/work-items/`, or `ai/context/` when they should survive beyond the day. + +--- + +## Logs + +- [2026-04-08](2026-04-08.md) +- [2026-04-09](2026-04-09.md) +- [2026-04-10](2026-04-10.md) +- [2026-04-13](2026-04-13.md) +- [2026-04-14](2026-04-14.md) +- [2026-04-15](2026-04-15.md) +- [2026-04-16](2026-04-16.md) + +--- + +## Related Memory + +- [Current Work](../state/current.md) +- [Work Item State](../state/work-items.md) +- [Work Item Index](../work-items/index.md) +- [Context Index](../context/index.md) + diff --git a/core/README.md b/core/README.md index 57824b6..6475687 100644 --- a/core/README.md +++ b/core/README.md @@ -57,3 +57,10 @@ Integrations extract evidence. They do not decide what becomes memory. See `core/integrations/communication-model.md` for the reusable connector contract. +--- + +## Knowledge Navigation + +Optional navigation layers such as Obsidian should read the same Markdown files instead of copying memory into a second store. + +See `core/integrations/obsidian-model.md` for the recommended vault model. diff --git a/core/integrations/obsidian-model.md b/core/integrations/obsidian-model.md new file mode 100644 index 0000000..1c26476 --- /dev/null +++ b/core/integrations/obsidian-model.md @@ -0,0 +1,93 @@ +# Obsidian Integration Model + +## Purpose + +Use Obsidian as a visual navigation and manual review layer over the same Markdown files that power the AI workspace. + +Obsidian should not become a second memory store. + +--- + +## Recommended Vault + +Open the repository root as the Obsidian vault: + +```text +/ +``` + +This keeps one source of truth: + +- OpenCode and agents maintain operational memory +- Obsidian reads and edits the same Markdown files +- Git tracks intentional memory and configuration changes + +--- + +## Source Of Truth + +Canonical memory remains in: + +- `ai/logs/` +- `ai/state/` +- `ai/work-items/` +- `ai/context/` +- `knowledge/` +- `core/` +- `profiles/` + +Obsidian-specific runtime files are not project memory. + +--- + +## What To Version + +Version portable Obsidian configuration only when it improves the workspace for every clone: + +- `.obsidian/app.json` +- `.obsidian/core-plugins.json` +- `.obsidian/graph.json` +- `.obsidian/appearance.json` + +Do not version local runtime state: + +- `.obsidian/workspace*.json` +- `.obsidian/workspace-mobile*.json` +- `.obsidian/plugins/` +- `.obsidian/snippets/` +- `.obsidian/cache/` + +Recommended graph and search exclusions: + +- `ai/inbox/` +- `archives/` +- `scripts/**/generated/` +- `scripts/**/.venv/` +- `.opencode/node_modules/` +- Python caches and compiled files + +--- + +## Linking Policy + +Prefer standard Markdown links for shared workspace files because they remain portable across: + +- OpenCode +- VS Code +- GitHub +- Obsidian +- other Markdown tooling + +Use Obsidian wiki-links only for Obsidian-only notes when there is a clear navigation benefit. + +--- + +## Agent Rules + +The agent may update Obsidian navigation notes when they improve discoverability. + +The agent should not treat Obsidian runtime layout changes as project context. + +If Obsidian metadata or properties are added, use them selectively for high-value notes such as work items, decisions, and index pages. Do not mass-convert existing files just to add metadata. + +Use map notes under `knowledge/maps/` as graph hubs. This keeps the graph navigable without forcing every file into Obsidian-specific wiki-link syntax. diff --git a/core/profiles/create-project-profile.md b/core/profiles/create-project-profile.md index 6b5d2a8..924e72e 100644 --- a/core/profiles/create-project-profile.md +++ b/core/profiles/create-project-profile.md @@ -86,3 +86,16 @@ Before using the workspace for real work: - generate one standup from sample context - verify that imported evidence and promoted memory stay separate +--- + +## 6. Optional Obsidian Vault + +Open the workspace root as an Obsidian vault when you want a visual/manual navigation layer. + +Recommended rules: + +- keep the workspace filesystem as the single source of truth +- do not copy memory into a separate Obsidian-only folder +- version only portable `.obsidian` configuration +- ignore local Obsidian workspace state and plugin runtime files +- create or update a vault map under `knowledge/` for human navigation diff --git a/knowledge/glossary.md b/knowledge/glossary.md new file mode 100644 index 0000000..5998f3e --- /dev/null +++ b/knowledge/glossary.md @@ -0,0 +1,51 @@ +--- +type: glossary +audience: new-member +tags: + - onboarding + - glossary +--- + +# Glossary + +Common terms used in this workspace. + +--- + +## Workspace Terms + +- `core`: reusable project-independent AI workspace logic. +- `profile`: project-specific configuration and assumptions layered on top of the core. +- `operational memory`: curated file-based memory that helps future AI sessions reason accurately. +- `daily log`: same-day evidence and evolving findings in `ai/logs/`. +- `state`: near-term active work and priorities in `ai/state/`. +- `work item`: canonical memory for a ticket, story, task, or investigation in `ai/work-items/`. +- `stable context`: durable project knowledge under `ai/context/`. +- `inbox`: raw or lightly processed communication evidence under `ai/inbox/`. +- `promotion`: moving high-confidence evidence into canonical memory. +- `tooling behavior`: reusable behavior encoded in commands, prompts, skills, agents, or knowledge rules. + +--- + +## Fidelity Terms + +- `Fid4`: main Fidelity consumer iOS app and key validation environment. +- `XFlowSDK`: backend-driven UI engine that renders flows from service-provided configuration. +- `XFlowViewMaker`: adapter layer historically involved in integration and release propagation. +- `FTFrameworks`: feature modules such as account opening or transfer flows that can mediate XFlow adoption. +- `AO`: account opening context; many reports require careful reproduction and scope validation. +- `Discourse`: external issue/report source; treat reports as external until confirmed. +- `REST migration`: migration away from GraphQL/Apollo toward REST, with REST behind a feature flag unless confirmed otherwise. +- `authenticated flow`: behavior reproduced while signed in; often differs from non-authenticated behavior. +- `entry point`: the path used to reach a flow, which can affect backend-driven behavior. +- `Cogstore`: flow-configuration publishing and version-comparison platform. + +--- + +## Communication Terms + +- `external report`: issue reported externally before regression status is confirmed. +- `regression`: behavior confirmed to be newly broken relative to a known baseline. +- `scope`: the exact affected flow, platform, auth state, environment, and ownership boundary. +- `reproducibility`: whether the behavior can be repeated with known steps and context. +- `manager-ready`: concise, explicit, natural professional English that can be sent without rewriting. diff --git a/knowledge/maps/ai-workspace-core.md b/knowledge/maps/ai-workspace-core.md new file mode 100644 index 0000000..c572f78 --- /dev/null +++ b/knowledge/maps/ai-workspace-core.md @@ -0,0 +1,38 @@ +--- +type: map +domain: workspace-core +tags: + - map + - core +--- + +# AI Workspace Core Map + +Reusable workspace logic and project-independent operating rules. + +--- + +## Core Model + +- [Core Overview](../../core/README.md) +- [Operational Memory](../../core/memory/operational-memory.md) +- [Communication Integration Model](../../core/integrations/communication-model.md) +- [Obsidian Integration Model](../../core/integrations/obsidian-model.md) +- [Create Project Profile](../../core/profiles/create-project-profile.md) + +--- + +## Workspace Rules + +- [Workspace Model](../workspace-model.md) +- [Agent Memory Rules](../agent-memory-rules.md) +- [Memory Promotion Rules](../memory-promotion-rules.md) +- [Communication Rules](../communication-rules.md) +- [Context Maintenance](../../ai/context/process/context-maintenance.md) + +--- + +## Profiles + +- [Fidelity Profile](../../profiles/fidelity/profile.md) +- [Example Profile](../../profiles/example/profile.md) diff --git a/knowledge/maps/current-work.md b/knowledge/maps/current-work.md new file mode 100644 index 0000000..57dff4b --- /dev/null +++ b/knowledge/maps/current-work.md @@ -0,0 +1,39 @@ +--- +type: map +domain: current-work +tags: + - map + - current-work +--- + +# Current Work Map + +Current operational state for daily work, standups, and manager updates. + +--- + +## Current State + +- [New Member Onboarding](../onboarding.md) +- [Current Work](../../ai/state/current.md) +- [Work Item State](../../ai/state/work-items.md) +- [Work Item Index](../../ai/work-items/index.md) +- [Logs Index](../../ai/logs/index.md) + +--- + +## Active Work Items + +- [PDIAP-14859](../../ai/work-items/pdiap-14859.md) +- [PDIAP-15765](../../ai/work-items/pdiap-15765.md) +- [PDIAP-15836](../../ai/work-items/pdiap-15836.md) +- [PDIAP-15838](../../ai/work-items/pdiap-15838.md) + +--- + +## Communication Context + +- [Communication Rules](../communication-rules.md) +- [Manager Update Prompt](../../prompts/manager-update.md) +- [Standup Prompt](../../prompts/standup.md) +- [Manager Mapping](../../ai/context/people/manager.md) diff --git a/knowledge/maps/fidelity-domain.md b/knowledge/maps/fidelity-domain.md new file mode 100644 index 0000000..db57da1 --- /dev/null +++ b/knowledge/maps/fidelity-domain.md @@ -0,0 +1,50 @@ +--- +type: map +domain: fidelity +tags: + - map + - fidelity +--- + +# Fidelity Domain Map + +Stable Fidelity-specific systems, workstreams, and domain rules. + +--- + +## Project Context + +- [Glossary](../glossary.md) +- [Project Context](../../ai/context/project.md) +- [Context Index](../../ai/context/index.md) +- [Fidelity Profile](../../profiles/fidelity/profile.md) + +--- + +## Systems + +- [Systems Index](../../ai/context/systems/index.md) +- [Fid4](../../ai/context/systems/fid4.md) +- [XFlowSDK](../../ai/context/systems/xflowsdk.md) +- [XFlowViewMaker](../../ai/context/systems/xflowviewmaker.md) +- [FTFrameworks](../../ai/context/systems/ftframeworks.md) +- [Cogstore](../../ai/context/systems/cogstore.md) + +--- + +## Workstreams + +- [Workstreams Index](../../ai/context/workstreams/index.md) +- [REST Migration](../../ai/context/workstreams/rest-migration.md) +- [AO And Discourse](../../ai/context/workstreams/ao-discourse.md) +- [XFlow Debugging](../../ai/context/workstreams/xflow-debugging.md) +- [XFlow SwiftUI Migration](../../ai/context/workstreams/xflow-swiftui-migration.md) +- [Consumer Integration](../../ai/context/workstreams/consumer-integration.md) +- [Flow And Page References](../../ai/context/workstreams/flow-page-references.md) + +--- + +## Decisions + +- [REST vs GraphQL](../../ai/context/decisions/rest-vs-graphql.md) +- [Discourse Handling](../../ai/context/decisions/discourse-handling.md) diff --git a/knowledge/maps/index.md b/knowledge/maps/index.md new file mode 100644 index 0000000..bb85fcd --- /dev/null +++ b/knowledge/maps/index.md @@ -0,0 +1,35 @@ +--- +type: map-index +audience: workspace-user +tags: + - map +--- + +# Knowledge Maps + +Human navigation hubs for the Obsidian graph. + +Use these maps to navigate the workspace by meaning instead of by raw folder structure. + +--- + +## Primary Maps + +- [AI Workspace Core](ai-workspace-core.md) +- [Current Work](current-work.md) +- [Fidelity Domain](fidelity-domain.md) +- [Work Items](work-items.md) +- [People](people.md) +- [Tooling](tooling.md) +- [Logs](../../ai/logs/index.md) + +--- + +## Entry Points + +- [Obsidian Vault Map](../obsidian-vault.md) +- [New Member Onboarding](../onboarding.md) +- [Glossary](../glossary.md) +- [Obsidian Usage Guide](../obsidian-usage.md) +- [README](../../README.md) +- [Fidelity Profile](../../profiles/fidelity/profile.md) diff --git a/knowledge/maps/people.md b/knowledge/maps/people.md new file mode 100644 index 0000000..f3da61d --- /dev/null +++ b/knowledge/maps/people.md @@ -0,0 +1,43 @@ +--- +type: map +domain: people +tags: + - map + - people +--- + +# People Map + +Stakeholder, manager, and collaborator context. + +--- + +## Indexes + +- [People Index](../../ai/context/people/index.md) +- [Manager Mapping](../../ai/context/people/manager.md) + +--- + +## People + +- [Jeff DeWitte](../../ai/context/people/jeff-dewitte.md) +- [Norman Arauz](../../ai/context/people/norman-arauz.md) +- [David Delagneau](../../ai/context/people/david-delagneau.md) +- [Aylwing Olivas](../../ai/context/people/aylwing-olivas.md) +- [Bruce Meeks](../../ai/context/people/bruce-meeks.md) +- [Derian Cordoba](../../ai/context/people/derian-cordoba.md) +- [Erik Reynolds](../../ai/context/people/erik-reynolds.md) +- [Gurram Santosh](../../ai/context/people/gurram-santosh.md) +- [Jason Mandozzi](../../ai/context/people/jason-mandozzi.md) +- [Quy Mai](../../ai/context/people/quy-mai.md) +- [Raj Sundararaj](../../ai/context/people/raj-sundararaj.md) +- [Tim Longfield](../../ai/context/people/tim-longfield.md) + +--- + +## Communication + +- [Communication Rules](../communication-rules.md) +- [Manager Update Workflow](../../workflows/manager-update.md) +- [Professional Communication Skill](../../.opencode/skills/professional-communication/SKILL.md) diff --git a/knowledge/maps/tooling.md b/knowledge/maps/tooling.md new file mode 100644 index 0000000..db96130 --- /dev/null +++ b/knowledge/maps/tooling.md @@ -0,0 +1,52 @@ +--- +type: map +domain: tooling +tags: + - map + - tooling +--- + +# Tooling Map + +Commands, prompts, skills, workflows, and automation surfaces that make the workspace operate consistently. + +--- + +## OpenCode Agents + +- [Fidelity Agent](../../.opencode/agents/fidelity.md) +- [Workspace Agent](../../.opencode/agents/workspace.md) + +--- + +## Commands + +- [Commands Index](../../.opencode/commands/index.md) +- [Workspace Context](../../.opencode/commands/workspace-context.md) +- [Communication Sync](../../.opencode/commands/communication-sync.md) +- [Archive Import](../../.opencode/commands/archive-import.md) +- [AI Prompt](../../.opencode/commands/ai-prompt.md) +- [Standup](../../.opencode/commands/standup.md) +- [Manager Update](../../.opencode/commands/manager-update.md) +- [Sync Context](../../.opencode/commands/sync-context.md) + +--- + +## Skills + +- [Skills Index](../../.opencode/skills/index.md) +- [Workspace Memory Curation](../../.opencode/skills/workspace-memory-curation/SKILL.md) +- [Professional Communication](../../.opencode/skills/professional-communication/SKILL.md) +- [Status Reporting](../../.opencode/skills/status-reporting/SKILL.md) +- [AI Prompt Engineering](../../.opencode/skills/ai-prompt-engineering/SKILL.md) + +--- + +## Prompts And Workflows + +- [Prompts Index](../../prompts/index.md) +- [Standup Prompt](../../prompts/standup.md) +- [Manager Update Prompt](../../prompts/manager-update.md) +- [Story Draft Prompt](../../prompts/story-draft.md) +- [OpenCode Entry Workflow](../../workflows/opencode-entry.md) +- [Daily Context Sync](../../workflows/daily-context-sync.md) diff --git a/knowledge/maps/work-items.md b/knowledge/maps/work-items.md new file mode 100644 index 0000000..72a9d9a --- /dev/null +++ b/knowledge/maps/work-items.md @@ -0,0 +1,36 @@ +--- +type: map +domain: work-items +tags: + - map + - work-items +--- + +# Work Items Map + +Canonical memory for active and recently relevant work units. + +--- + +## Indexes + +- [Work Item Index](../../ai/work-items/index.md) +- [Work Item State](../../ai/state/work-items.md) +- [Current Work](../../ai/state/current.md) + +--- + +## Active Items + +- [PDIAP-14859](../../ai/work-items/pdiap-14859.md) +- [PDIAP-15765](../../ai/work-items/pdiap-15765.md) +- [PDIAP-15836](../../ai/work-items/pdiap-15836.md) +- [PDIAP-15838](../../ai/work-items/pdiap-15838.md) + +--- + +## Related Process + +- [Jira Story Rules](../../ai/context/process/jira-story-rules.md) +- [Story Draft Prompt](../../prompts/story-draft.md) +- [Status Reporting Skill](../../.opencode/skills/status-reporting/SKILL.md) diff --git a/knowledge/obsidian-usage.md b/knowledge/obsidian-usage.md new file mode 100644 index 0000000..baef869 --- /dev/null +++ b/knowledge/obsidian-usage.md @@ -0,0 +1,84 @@ +--- +type: guide +audience: workspace-user +tags: + - onboarding + - obsidian +--- + +# Obsidian Usage Guide + +Use Obsidian to navigate and review workspace memory. Do not use it as a separate memory database. + +--- + +## Recommended Start + +Open: + +- [Obsidian Vault Map](obsidian-vault.md) +- [New Member Onboarding](onboarding.md) +- [Knowledge Maps](maps/index.md) + +--- + +## Best Views + +### New Member View + +Start with: + +- [New Member Onboarding](onboarding.md) +- [Glossary](glossary.md) +- [Current Work Map](maps/current-work.md) +- [Fidelity Domain Map](maps/fidelity-domain.md) + +### Daily Work View + +Start with: + +- [Current Work Map](maps/current-work.md) +- [Work Items Map](maps/work-items.md) +- [Logs Index](../ai/logs/index.md) + +### System Understanding View + +Start with: + +- [Fidelity Domain Map](maps/fidelity-domain.md) +- [AI Workspace Core Map](maps/ai-workspace-core.md) +- [Tooling Map](maps/tooling.md) + +--- + +## Graph Guidance + +Use the graph to find clusters, not to infer truth. + +High-value graph hubs: + +- `obsidian-vault` +- `onboarding` +- `current-work` +- `fidelity-domain` +- `work-items` +- `people` +- `tooling` +- `ai-workspace-core` + +If a node is isolated, it may still be valid. It may be: + +- a daily log +- raw evidence +- a command/prompt file +- a file that needs to be linked from a map + +--- + +## Editing Rules + +- Edit canonical memory files when the fact is clear. +- Prefer updating existing notes over adding duplicate summaries. +- Do not edit generated files as durable memory. +- Do not treat inbox files as confirmed truth. +- Use maps to improve navigation, not to store detailed facts. diff --git a/knowledge/obsidian-vault.md b/knowledge/obsidian-vault.md new file mode 100644 index 0000000..76807d8 --- /dev/null +++ b/knowledge/obsidian-vault.md @@ -0,0 +1,104 @@ +--- +type: map +audience: workspace-user +tags: + - map + - obsidian +--- + +# Obsidian Vault Map + +Use this note as the human navigation entry point when opening this repository as an Obsidian vault. + +--- + +## Start Here + +- [README](../README.md) +- [New Member Onboarding](onboarding.md) +- [Glossary](glossary.md) +- [Obsidian Usage Guide](obsidian-usage.md) +- [Knowledge Maps](maps/index.md) +- [Core Overview](../core/README.md) +- [Operational Memory](../core/memory/operational-memory.md) +- [Obsidian Integration Model](../core/integrations/obsidian-model.md) +- [Fidelity Profile](../profiles/fidelity/profile.md) + +--- + +## Maps + +- [AI Workspace Core](maps/ai-workspace-core.md) +- [Current Work](maps/current-work.md) +- [Fidelity Domain](maps/fidelity-domain.md) +- [Work Items](maps/work-items.md) +- [People](maps/people.md) +- [Tooling](maps/tooling.md) + +--- + +## New Members + +If you are new to this project, read: + +1. [New Member Onboarding](onboarding.md) +2. [Glossary](glossary.md) +3. [Current Work Map](maps/current-work.md) +4. [Fidelity Domain Map](maps/fidelity-domain.md) +5. [People Map](maps/people.md) + +--- + +## Current Work + +- [Current State](../ai/state/current.md) +- [Active Work Items](../ai/state/work-items.md) +- [Work Item Index](../ai/work-items/index.md) +- [Logs Index](../ai/logs/index.md) + +--- + +## Stable Context + +- [Context Index](../ai/context/index.md) +- [Project Context](../ai/context/project.md) +- [Systems Index](../ai/context/systems/index.md) +- [Workstreams Index](../ai/context/workstreams/index.md) +- [People Index](../ai/context/people/index.md) +- [Manager Mapping](../ai/context/people/manager.md) + +--- + +## Process And Rules + +- [Workspace Model](workspace-model.md) +- [Agent Memory Rules](agent-memory-rules.md) +- [Memory Promotion Rules](memory-promotion-rules.md) +- [Communication Rules](communication-rules.md) +- [Context Maintenance](../ai/context/process/context-maintenance.md) + +--- + +## Daily Logs + +Daily logs live in: + +```text +ai/logs/ +``` + +Use the latest dated log for recent evidence, but promote durable facts into `ai/state/`, `ai/work-items/`, or `ai/context/` when they should survive beyond the day. + +- [Logs Index](../ai/logs/index.md) + +--- + +## Inbox And Generated Evidence + +Inbox and generated files are evidence, not durable memory by default. + +- `ai/inbox/` +- `scripts/mattermost/generated/` +- `scripts/slack/generated/` + +Promote only high-confidence, project-relevant facts into canonical memory. diff --git a/knowledge/onboarding.md b/knowledge/onboarding.md new file mode 100644 index 0000000..130bfa1 --- /dev/null +++ b/knowledge/onboarding.md @@ -0,0 +1,92 @@ +--- +type: onboarding +audience: new-member +tags: + - onboarding + - map +--- + +# New Member Onboarding + +Use this guide when someone new needs to understand this workspace and the Fidelity project context quickly. + +This repository is not the product codebase. It is the AI workspace used to preserve context, navigate project memory, and draft precise communication. + +--- + +## First 30 Minutes + +Read these in order: + +1. [Obsidian Vault Map](obsidian-vault.md) +2. [Current Work Map](maps/current-work.md) +3. [Fidelity Domain Map](maps/fidelity-domain.md) +4. [Work Items Map](maps/work-items.md) +5. [People Map](maps/people.md) + +Goal: + +- understand where current work lives +- identify active tickets +- understand the main systems and people +- avoid treating raw logs or inbox evidence as confirmed durable truth + +--- + +## First 60 Minutes + +Read: + +1. [Project Context](../ai/context/project.md) +2. [XFlowSDK](../ai/context/systems/xflowsdk.md) +3. [Fid4](../ai/context/systems/fid4.md) +4. [REST Migration](../ai/context/workstreams/rest-migration.md) +5. [AO And Discourse](../ai/context/workstreams/ao-discourse.md) +6. [Communication Rules](communication-rules.md) + +Goal: + +- understand why auth state, entry point, and backend configuration matter +- distinguish external reports from regressions +- understand why communication precision is part of the engineering workflow + +--- + +## First 120 Minutes + +Read: + +1. [Operational Memory](../core/memory/operational-memory.md) +2. [Workspace Model](workspace-model.md) +3. [Agent Memory Rules](agent-memory-rules.md) +4. [Context Maintenance](../ai/context/process/context-maintenance.md) +5. [Tooling Map](maps/tooling.md) + +Goal: + +- understand how the AI workspace stays current +- know where to add new facts +- know when to update logs, state, work items, stable context, people, decisions, or tooling behavior + +--- + +## Daily Workflow + +1. Start from [Current Work Map](maps/current-work.md). +2. Check [Current Work](../ai/state/current.md). +3. Open the active work item from [Work Items Map](maps/work-items.md). +4. Review the latest relevant log from [Logs Index](../ai/logs/index.md). +5. Use [Communication Rules](communication-rules.md) before writing standups, Jira comments, or manager updates. + +--- + +## Rules Of Thumb + +- `ai/logs/` is evidence from a day. +- `ai/state/` is what matters now. +- `ai/work-items/` is canonical ticket memory. +- `ai/context/` is durable project knowledge. +- `ai/context/people/` is collaborator and role memory. +- `core/` is reusable workspace logic. +- `profiles/fidelity/` is Fidelity-specific configuration. +- `ai/inbox/` and generated files are evidence, not promoted memory. diff --git a/knowledge/workspace-model.md b/knowledge/workspace-model.md index a9f5160..7cdc278 100644 --- a/knowledge/workspace-model.md +++ b/knowledge/workspace-model.md @@ -20,6 +20,7 @@ It now has two layers: - debugging summaries - reusable command, prompt, skill, and agent rules that make the workspace behave consistently - project profiles that configure the reusable core for a specific project +- optional navigation notes and portable Obsidian configuration --- @@ -28,6 +29,7 @@ It now has two layers: - product source code - assumptions about code changes not yet verified - statements that imply work was executed from this machine unless explicitly true +- Obsidian local layout, plugin cache, or runtime state --- @@ -37,6 +39,7 @@ When the user corrects a recurring behavior, the workspace should update the fil - `core/` for reusable project-independent behavior - `profiles//` for project-specific assumptions +- `.obsidian/` only for portable vault configuration, not project memory - `.opencode/commands/` for slash commands - `prompts/` for reusable drafting templates - `.opencode/agents/` and `ai/AGENTS.md` for default agent behavior diff --git a/opencode.json b/opencode.json index 22ce252..029cb03 100644 --- a/opencode.json +++ b/opencode.json @@ -44,6 +44,7 @@ "./core/README.md", "./core/memory/operational-memory.md", "./core/integrations/communication-model.md", + "./core/integrations/obsidian-model.md", "./core/profiles/create-project-profile.md", "./profiles/fidelity/profile.md", "./ai/context/index.md", diff --git a/prompts/index.md b/prompts/index.md new file mode 100644 index 0000000..a3b74a9 --- /dev/null +++ b/prompts/index.md @@ -0,0 +1,22 @@ +# Prompts Index + +Reusable drafting templates used by workspace commands and agents. + +--- + +## Prompts + +- [Copilot Prompt](copilot-prompt.md) +- [Manager Update](manager-update.md) +- [Mattermost Translation](mattermost-translation.md) +- [Standup](standup.md) +- [Story Draft](story-draft.md) + +--- + +## Related Tooling + +- [Tooling Map](../knowledge/maps/tooling.md) +- [Commands Index](../.opencode/commands/index.md) +- [Skills Index](../.opencode/skills/index.md) +