diff --git a/.agents/rules/copilot-prompt-engineering.md b/.agents/rules/copilot-prompt-engineering.md index 5d4e3cc..3053931 100644 --- a/.agents/rules/copilot-prompt-engineering.md +++ b/.agents/rules/copilot-prompt-engineering.md @@ -19,10 +19,10 @@ Use this skill when the user wants a prompt for another AI assistant, GitHub Cop - test strategy - story/PR drafting 2. Pull only the relevant context: - - `project-knowledge/02-work-items/` for ticket-specific context - - `project-knowledge/03-context/systems/` for component context - - `project-knowledge/03-context/workstreams/` for recurring constraints - - `project-knowledge/03-context/ios/` for Swift/iOS guidance + - `workspaces/fidelity/project-knowledge/02-work-items/` for ticket-specific context + - `workspaces/fidelity/project-knowledge/03-context/systems/` for component context + - `workspaces/fidelity/project-knowledge/03-context/workstreams/` for recurring constraints + - `workspaces/fidelity/project-knowledge/03-context/ios/` for Swift/iOS guidance 3. Make the prompt self-contained. 4. Tell the target AI what to inspect before acting. 5. State constraints, non-goals, and validation expectations. diff --git a/.agents/rules/ios-swift-answering.md b/.agents/rules/ios-swift-answering.md index 634412a..79d17d6 100644 --- a/.agents/rules/ios-swift-answering.md +++ b/.agents/rules/ios-swift-answering.md @@ -12,8 +12,8 @@ Use this skill for Swift, SwiftUI, iOS architecture, concurrency, testing, or de ## Workflow 1. Identify whether the question is general Swift/iOS or Fidelity-specific. -2. Read `project-knowledge/03-context/ios/current-practices.md` for currentness rules. -3. Read `project-knowledge/03-context/ios/project-swift-guidance.md` when the answer may affect XFlow, Fid4, XFlowViewMaker, FTFrameworks, feature flags, or consumer validation. +2. Read `workspaces/fidelity/project-knowledge/03-context/ios/current-practices.md` for currentness rules. +3. Read `workspaces/fidelity/project-knowledge/03-context/ios/project-swift-guidance.md` when the answer may affect XFlow, Fid4, XFlowViewMaker, FTFrameworks, feature flags, or consumer validation. 4. If the answer depends on current Apple APIs, Xcode versions, dependency tooling, package-manager behavior, testing frameworks, or migration guidance, verify with official/primary documentation before making strong claims. 5. Separate: - current best practice diff --git a/.agents/workflows/ai-prompt.md b/.agents/workflows/ai-prompt.md index 6518f99..a9bcd87 100644 --- a/.agents/workflows/ai-prompt.md +++ b/.agents/workflows/ai-prompt.md @@ -8,9 +8,9 @@ Read: @core/README.md @core/memory/operational-memory.md -@project-knowledge/01-current/current-work.md -@project-knowledge/01-current/work-items.md -@project-knowledge/03-context/project.md +@workspaces/fidelity/project-knowledge/01-current/current-work.md +@workspaces/fidelity/project-knowledge/01-current/work-items.md +@workspaces/fidelity/project-knowledge/03-context/project.md @agent-memory/workflows/ai-to-ai-prompting.md Read active profile, if present: @@ -23,13 +23,13 @@ Relevant active work item files, if available: import re from pathlib import Path -summary = Path("project-knowledge/01-current/work-items.md") +summary = Path("workspaces/fidelity/project-knowledge/01-current/work-items.md") if not summary.is_file(): print("No work item files available.") raise SystemExit(0) text = summary.read_text() -paths = re.findall(r"Detail: `(project-knowledge/02-work-items/[^`]+)`", text) +paths = re.findall(r"Detail: `(workspaces/fidelity/project-knowledge/02-work-items/[^`]+)`", text) if not paths: print("No work item files available.") raise SystemExit(0) diff --git a/.agents/workflows/archive-import.md b/.agents/workflows/archive-import.md index 5810b9d..fe1cf57 100644 --- a/.agents/workflows/archive-import.md +++ b/.agents/workflows/archive-import.md @@ -24,12 +24,12 @@ Read: @core/README.md @core/memory/operational-memory.md @core/integrations/communication-model.md -@project-knowledge/01-current/current-work.md -@project-knowledge/01-current/work-items.md -@project-knowledge/03-context/project.md +@workspaces/fidelity/project-knowledge/01-current/current-work.md +@workspaces/fidelity/project-knowledge/01-current/work-items.md +@workspaces/fidelity/project-knowledge/03-context/project.md @agent-memory/memory/context-maintenance.md -@project-knowledge/04-people/index.md -@project-knowledge/04-people/manager.md +@workspaces/fidelity/project-knowledge/04-people/index.md +@workspaces/fidelity/project-knowledge/04-people/manager.md Imported summary, if present: @@ -44,11 +44,11 @@ Instructions: - treat the archive as historical evidence - promote durable project-relevant context automatically when confidence is high - prefer durable role/person associations, recurring architecture patterns, repeated work-item references, approval/scope history, and process lessons -- create or update `project-knowledge/04-people/*.md` when a human repeatedly affects project flow +- create or update `workspaces/fidelity/project-knowledge/04-people/*.md` when a human repeatedly affects project flow - avoid promoting outdated daily status unless it changes current understanding - update existing memory when the archive clarifies or corrects it - keep ambiguous or likely outdated facts as archive-only context -- write promoted memory to `project-knowledge/` +- write promoted memory to `workspaces/fidelity/project-knowledge/` Return: diff --git a/.agents/workflows/communication-sync.md b/.agents/workflows/communication-sync.md index 8fdac96..3455c65 100644 --- a/.agents/workflows/communication-sync.md +++ b/.agents/workflows/communication-sync.md @@ -19,9 +19,9 @@ Read: @core/README.md @core/memory/operational-memory.md @core/integrations/communication-model.md -@project-knowledge/01-current/current-work.md -@project-knowledge/01-current/work-items.md -@project-knowledge/03-context/project.md +@workspaces/fidelity/project-knowledge/01-current/current-work.md +@workspaces/fidelity/project-knowledge/01-current/work-items.md +@workspaces/fidelity/project-knowledge/03-context/project.md @agent-memory/memory/context-maintenance.md Fresh communication evidence: @@ -34,10 +34,10 @@ Instructions: - prefer local proxy mirror evidence when present; legacy sync output is fallback evidence - treat connector output as evidence, not automatically as project truth - promote only explicit, project-relevant, high-confidence facts -- default destination is `project-knowledge/06-daily/$(date +%F).md` -- update `project-knowledge/01-current/current-work.md` only for facts that materially change the active work window -- update `project-knowledge/02-work-items/*.md` for explicit work-item IDs, approved titles, points, scope, and status notes -- keep `project-knowledge/01-current/work-items.md` aligned as the compact summary of active work items +- default destination is `workspaces/fidelity/project-knowledge/06-daily/$(date +%F).md` +- update `workspaces/fidelity/project-knowledge/01-current/current-work.md` only for facts that materially change the active work window +- update `workspaces/fidelity/project-knowledge/02-work-items/*.md` for explicit work-item IDs, approved titles, points, scope, and status notes +- keep `workspaces/fidelity/project-knowledge/01-current/work-items.md` aligned as the compact summary of active work items - do not write tooling noise, sync status, or generic chat chatter into project memory - if a fact is ambiguous, skip it rather than asking what to do diff --git a/.agents/workflows/copilot-prompt.md b/.agents/workflows/copilot-prompt.md index 588b629..056e232 100644 --- a/.agents/workflows/copilot-prompt.md +++ b/.agents/workflows/copilot-prompt.md @@ -9,14 +9,14 @@ Read: @core/README.md @core/memory/operational-memory.md @prompts/copilot-prompt.md -@project-knowledge/01-current/current-work.md -@project-knowledge/01-current/work-items.md -@project-knowledge/03-context/project.md +@workspaces/fidelity/project-knowledge/01-current/current-work.md +@workspaces/fidelity/project-knowledge/01-current/work-items.md +@workspaces/fidelity/project-knowledge/03-context/project.md @agent-memory/workflows/ai-to-ai-prompting.md -@project-knowledge/03-context/ios/index.md -@project-knowledge/03-context/ios/project-swift-guidance.md -@project-knowledge/03-context/systems/index.md -@project-knowledge/03-context/workstreams/index.md +@workspaces/fidelity/project-knowledge/03-context/ios/index.md +@workspaces/fidelity/project-knowledge/03-context/ios/project-swift-guidance.md +@workspaces/fidelity/project-knowledge/03-context/systems/index.md +@workspaces/fidelity/project-knowledge/03-context/workstreams/index.md Active profile, if present: @@ -28,13 +28,13 @@ Detailed active work item files, if available: import re from pathlib import Path -summary = Path("project-knowledge/01-current/work-items.md") +summary = Path("workspaces/fidelity/project-knowledge/01-current/work-items.md") if not summary.is_file(): print("No work item files available.") raise SystemExit(0) text = summary.read_text() -paths = re.findall(r"Detail: `(project-knowledge/02-work-items/[^`]+)`", text) +paths = re.findall(r"Detail: `(workspaces/fidelity/project-knowledge/02-work-items/[^`]+)`", text) if not paths: print("No work item files available.") raise SystemExit(0) diff --git a/.agents/workflows/fidelity-context.md b/.agents/workflows/fidelity-context.md index b3d6bb8..6b33020 100644 --- a/.agents/workflows/fidelity-context.md +++ b/.agents/workflows/fidelity-context.md @@ -11,14 +11,14 @@ Use these files as the baseline context: @agent-memory/behavior/learning-sessions.md @agent-memory/memory/promotion-rules.md @agent-memory/integrations/technical-verification.md -@project-knowledge/00-start/start-here.md -@project-knowledge/01-current/current-work.md -@project-knowledge/01-current/work-items.md -@project-knowledge/03-context/project.md -@project-knowledge/03-context/process/communication.md -@project-knowledge/03-context/ios/index.md -@project-knowledge/04-people/manager.md -@project-knowledge/04-people/index.md +@workspaces/fidelity/project-knowledge/00-start/start-here.md +@workspaces/fidelity/project-knowledge/01-current/current-work.md +@workspaces/fidelity/project-knowledge/01-current/work-items.md +@workspaces/fidelity/project-knowledge/03-context/project.md +@workspaces/fidelity/project-knowledge/03-context/process/communication.md +@workspaces/fidelity/project-knowledge/03-context/ios/index.md +@workspaces/fidelity/project-knowledge/04-people/manager.md +@workspaces/fidelity/project-knowledge/04-people/index.md Today's date: @@ -26,11 +26,11 @@ Today's date: Today's canonical daily note, if present: -!`if [ -f project-knowledge/06-daily/$(date +%F).md ]; then cat project-knowledge/06-daily/$(date +%F).md; else echo "No daily note exists for today yet."; fi` +!`if [ -f workspaces/fidelity/project-knowledge/06-daily/$(date +%F).md ]; then cat workspaces/fidelity/project-knowledge/06-daily/$(date +%F).md; else echo "No daily note exists for today yet."; fi` Latest daily notes available: -!`if [ -d project-knowledge/06-daily ]; then ls -1 project-knowledge/06-daily 2>/dev/null | sort | tail -n 3; else echo "No daily notes directory available."; fi` +!`if [ -d workspaces/fidelity/project-knowledge/06-daily ]; then ls -1 workspaces/fidelity/project-knowledge/06-daily 2>/dev/null | sort | tail -n 3; else echo "No daily notes directory available."; fi` Detailed active work item files, if available: @@ -38,13 +38,13 @@ Detailed active work item files, if available: import re from pathlib import Path -summary = Path("project-knowledge/01-current/work-items.md") +summary = Path("workspaces/fidelity/project-knowledge/01-current/work-items.md") if not summary.is_file(): print("No work item files available.") raise SystemExit(0) text = summary.read_text() -paths = re.findall(r"Detail: `(project-knowledge/02-work-items/[^`]+)`", text) +paths = re.findall(r"Detail: `(workspaces/fidelity/project-knowledge/02-work-items/[^`]+)`", text) if not paths: print("No work item files available.") raise SystemExit(0) diff --git a/.agents/workflows/log-note.md b/.agents/workflows/log-note.md index a3b49d5..f88708c 100644 --- a/.agents/workflows/log-note.md +++ b/.agents/workflows/log-note.md @@ -9,15 +9,15 @@ Read: @README.md @core/README.md @core/memory/operational-memory.md -@project-knowledge/01-current/current-work.md -@project-knowledge/01-current/work-items.md -@project-knowledge/03-context/project.md -@project-knowledge/03-context/workstreams/index.md +@workspaces/fidelity/project-knowledge/01-current/current-work.md +@workspaces/fidelity/project-knowledge/01-current/work-items.md +@workspaces/fidelity/project-knowledge/03-context/project.md +@workspaces/fidelity/project-knowledge/03-context/workstreams/index.md @agent-memory/memory/context-maintenance.md Today's existing log, if present: -!`if [ -f project-knowledge/06-daily/$(date +%F).md ]; then cat project-knowledge/06-daily/$(date +%F).md; else echo "No daily note exists for today yet."; fi` +!`if [ -f workspaces/fidelity/project-knowledge/06-daily/$(date +%F).md ]; then cat workspaces/fidelity/project-knowledge/06-daily/$(date +%F).md; else echo "No daily note exists for today yet."; fi` Incorporate these new rough notes into today's log: @@ -26,7 +26,7 @@ $ARGUMENTS Instructions: - use `workspace-memory-curation` when available -- Update or create `project-knowledge/06-daily/$(date +%F).md` +- Update or create `workspaces/fidelity/project-knowledge/06-daily/$(date +%F).md` - Maintain daily-note frontmatter for Obsidian Bases: `date`, `focus`, `work-items`, `blockers`, and `updated` - Preserve concrete technical meaning - Capture both technical findings and communication context when relevant diff --git a/.agents/workflows/manager-update.md b/.agents/workflows/manager-update.md index 773ab33..aeeb91b 100644 --- a/.agents/workflows/manager-update.md +++ b/.agents/workflows/manager-update.md @@ -9,16 +9,16 @@ Use `professional-communication` when available. Read: @prompts/manager-update.md -@project-knowledge/01-current/current-work.md -@project-knowledge/01-current/work-items.md -@project-knowledge/03-context/project.md -@project-knowledge/03-context/process/communication.md -@project-knowledge/04-people/manager.md -@project-knowledge/04-people/index.md +@workspaces/fidelity/project-knowledge/01-current/current-work.md +@workspaces/fidelity/project-knowledge/01-current/work-items.md +@workspaces/fidelity/project-knowledge/03-context/project.md +@workspaces/fidelity/project-knowledge/03-context/process/communication.md +@workspaces/fidelity/project-knowledge/04-people/manager.md +@workspaces/fidelity/project-knowledge/04-people/index.md Today's log, if present: -!`if [ -f project-knowledge/06-daily/$(date +%F).md ]; then cat project-knowledge/06-daily/$(date +%F).md; else echo "No daily note exists for today yet."; fi` +!`if [ -f workspaces/fidelity/project-knowledge/06-daily/$(date +%F).md ]; then cat workspaces/fidelity/project-knowledge/06-daily/$(date +%F).md; else echo "No daily note exists for today yet."; fi` Latest Mattermost context, if available: @@ -30,13 +30,13 @@ Detailed active work item files, if available: import re from pathlib import Path -summary = Path("project-knowledge/01-current/work-items.md") +summary = Path("workspaces/fidelity/project-knowledge/01-current/work-items.md") if not summary.is_file(): print("No work item files available.") raise SystemExit(0) text = summary.read_text() -paths = re.findall(r"Detail: `(project-knowledge/02-work-items/[^`]+)`", text) +paths = re.findall(r"Detail: `(workspaces/fidelity/project-knowledge/02-work-items/[^`]+)`", text) if not paths: print("No work item files available.") raise SystemExit(0) diff --git a/.agents/workflows/mattermost-sync.md b/.agents/workflows/mattermost-sync.md index b5dbbc9..1eb3bc0 100644 --- a/.agents/workflows/mattermost-sync.md +++ b/.agents/workflows/mattermost-sync.md @@ -24,15 +24,15 @@ Then: - if the command fails, stop there and do not edit any workspace files - prefer the local proxy mirror via `scripts/mattermost-proxy/read-context.py --mode latest` when it has evidence -- otherwise use `ai/inbox/mattermost-latest.md` if it exists and is non-empty +- otherwise use `workspaces/fidelity/inbox/mattermost-latest.md` if it exists and is non-empty - otherwise use `scripts/mattermost/generated/mattermost_context.jsonl` if it exists and is non-empty - apply the memory promotion rules from `agent-memory/memory/promotion-rules.md` - treat Mattermost output as live communication evidence; the agent decides what becomes promoted memory - automatically promote explicit, project-relevant, high-confidence facts -- default destination is `project-knowledge/06-daily/$(date +%F).md` -- update `project-knowledge/01-current/current-work.md` only for facts that materially change the current work window -- update `project-knowledge/02-work-items/*.md` for explicit Jira IDs, approved titles, points, scope, and status notes -- keep `project-knowledge/01-current/work-items.md` aligned as the compact summary of active ticket files +- default destination is `workspaces/fidelity/project-knowledge/06-daily/$(date +%F).md` +- update `workspaces/fidelity/project-knowledge/01-current/current-work.md` only for facts that materially change the current work window +- update `workspaces/fidelity/project-knowledge/02-work-items/*.md` for explicit Jira IDs, approved titles, points, scope, and status notes +- keep `workspaces/fidelity/project-knowledge/01-current/work-items.md` aligned as the compact summary of active ticket files - 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 diff --git a/.agents/workflows/memory-create.md b/.agents/workflows/memory-create.md index 300ddff..a2086c9 100644 --- a/.agents/workflows/memory-create.md +++ b/.agents/workflows/memory-create.md @@ -22,11 +22,11 @@ Read: @core/integrations/memory-vault-model.md @agent-memory/workflows/workspace-architecture.md -@project-knowledge/09-templates/work-item.md -@project-knowledge/09-templates/person.md -@project-knowledge/09-templates/decision.md -@project-knowledge/09-templates/system.md -@project-knowledge/09-templates/workstream.md +@workspaces/fidelity/project-knowledge/09-templates/work-item.md +@workspaces/fidelity/project-knowledge/09-templates/person.md +@workspaces/fidelity/project-knowledge/09-templates/decision.md +@workspaces/fidelity/project-knowledge/09-templates/system.md +@workspaces/fidelity/project-knowledge/09-templates/workstream.md Instructions: diff --git a/.agents/workflows/promote-project-context.md b/.agents/workflows/promote-project-context.md index 9f8c3ab..0dbd87c 100644 --- a/.agents/workflows/promote-project-context.md +++ b/.agents/workflows/promote-project-context.md @@ -8,17 +8,17 @@ Read: @core/README.md @core/memory/operational-memory.md -@project-knowledge/01-current/current-work.md -@project-knowledge/01-current/work-items.md -@project-knowledge/03-context/project.md -@project-knowledge/03-context/systems/index.md -@project-knowledge/03-context/workstreams/index.md -@project-knowledge/03-context/workstreams/flow-page-references.md -@project-knowledge/03-context/process/index.md +@workspaces/fidelity/project-knowledge/01-current/current-work.md +@workspaces/fidelity/project-knowledge/01-current/work-items.md +@workspaces/fidelity/project-knowledge/03-context/project.md +@workspaces/fidelity/project-knowledge/03-context/systems/index.md +@workspaces/fidelity/project-knowledge/03-context/workstreams/index.md +@workspaces/fidelity/project-knowledge/03-context/workstreams/flow-page-references.md +@workspaces/fidelity/project-knowledge/03-context/process/index.md Today's log, if present: -!`if [ -f project-knowledge/06-daily/$(date +%F).md ]; then cat project-knowledge/06-daily/$(date +%F).md; else echo "No daily note exists for today yet."; fi` +!`if [ -f workspaces/fidelity/project-knowledge/06-daily/$(date +%F).md ]; then cat workspaces/fidelity/project-knowledge/06-daily/$(date +%F).md; else echo "No daily note exists for today yet."; fi` Current Mattermost inbox, if present: @@ -37,20 +37,20 @@ Instructions: - Promote only confirmed project-relevant facts - Ignore tooling noise and sync status - Update the smallest correct set of files among: - - `project-knowledge/06-daily/$(date +%F).md` - - `project-knowledge/01-current/current-work.md` - - `project-knowledge/02-work-items/*.md` - - `project-knowledge/01-current/work-items.md` - - `project-knowledge/03-context/project.md` - - `project-knowledge/03-context/systems/*.md` - - `project-knowledge/03-context/workstreams/*.md` - - `project-knowledge/03-context/process/*.md` - - `project-knowledge/05-decisions/*.md` + - `workspaces/fidelity/project-knowledge/06-daily/$(date +%F).md` + - `workspaces/fidelity/project-knowledge/01-current/current-work.md` + - `workspaces/fidelity/project-knowledge/02-work-items/*.md` + - `workspaces/fidelity/project-knowledge/01-current/work-items.md` + - `workspaces/fidelity/project-knowledge/03-context/project.md` + - `workspaces/fidelity/project-knowledge/03-context/systems/*.md` + - `workspaces/fidelity/project-knowledge/03-context/workstreams/*.md` + - `workspaces/fidelity/project-knowledge/03-context/process/*.md` + - `workspaces/fidelity/project-knowledge/05-decisions/*.md` - `.opencode/commands/*.md` when command behavior needs to change - `prompts/*.md` when a reusable output template needs to change - `.opencode/agents/*.md` or `AGENTS.md` when default agent behavior needs to change - `.agents/skills/*/SKILL.md` when a specialized workflow needs to change - - `project-knowledge/00-start/*.md` when durable project onboarding guidance needs to change + - `workspaces/fidelity/project-knowledge/00-start/*.md` when durable project onboarding guidance needs to change - `agent-memory/**/*.md` when agent learning, promotion, verification, or self-maintenance behavior needs to change - Prefer concrete project updates over broad summaries - If a fact is still ambiguous, do not promote it diff --git a/.agents/workflows/slack-import.md b/.agents/workflows/slack-import.md index 41572fe..396f132 100644 --- a/.agents/workflows/slack-import.md +++ b/.agents/workflows/slack-import.md @@ -27,14 +27,14 @@ Read: @core/README.md @core/memory/operational-memory.md @core/integrations/communication-model.md -@project-knowledge/01-current/current-work.md -@project-knowledge/01-current/work-items.md -@project-knowledge/03-context/project.md -@project-knowledge/03-context/systems/index.md -@project-knowledge/03-context/workstreams/index.md -@project-knowledge/03-context/process/index.md -@project-knowledge/04-people/index.md -@project-knowledge/04-people/manager.md +@workspaces/fidelity/project-knowledge/01-current/current-work.md +@workspaces/fidelity/project-knowledge/01-current/work-items.md +@workspaces/fidelity/project-knowledge/03-context/project.md +@workspaces/fidelity/project-knowledge/03-context/systems/index.md +@workspaces/fidelity/project-knowledge/03-context/workstreams/index.md +@workspaces/fidelity/project-knowledge/03-context/process/index.md +@workspaces/fidelity/project-knowledge/04-people/index.md +@workspaces/fidelity/project-knowledge/04-people/manager.md Imported summary, if present: @@ -55,7 +55,7 @@ Instructions: - durable role/person associations - recurring architecture or debugging patterns - past approvals or decisions that still matter -- create or update `project-knowledge/04-people/*.md` when the archive shows a human repeatedly contributing across channels, years, or high-signal technical/process discussions +- create or update `workspaces/fidelity/project-knowledge/04-people/*.md` when the archive shows a human repeatedly contributing across channels, years, or high-signal technical/process discussions - store people conservatively: - exact role only when explicitly supported by the archive - otherwise store collaboration pattern, communication style, and project relationship @@ -70,7 +70,7 @@ Instructions: - avoid promoting outdated daily status unless it changes current understanding - update existing memory when the archive clarifies or corrects it - if historical facts are ambiguous or likely outdated, summarize them as archived context instead of promoting them -- write promoted memory to `project-knowledge/` +- write promoted memory to `workspaces/fidelity/project-knowledge/` Return: diff --git a/.agents/workflows/standup.md b/.agents/workflows/standup.md index ceb5d04..129b5ab 100644 --- a/.agents/workflows/standup.md +++ b/.agents/workflows/standup.md @@ -66,16 +66,16 @@ PY` Read: @prompts/standup.md -@project-knowledge/01-current/current-work.md -@project-knowledge/01-current/work-items.md -@project-knowledge/03-context/project.md -@project-knowledge/03-context/workstreams/flow-page-references.md -@project-knowledge/03-context/process/communication.md -@project-knowledge/04-people/manager.md +@workspaces/fidelity/project-knowledge/01-current/current-work.md +@workspaces/fidelity/project-knowledge/01-current/work-items.md +@workspaces/fidelity/project-knowledge/03-context/project.md +@workspaces/fidelity/project-knowledge/03-context/workstreams/flow-page-references.md +@workspaces/fidelity/project-knowledge/03-context/process/communication.md +@workspaces/fidelity/project-knowledge/04-people/manager.md Today's log, if present: -!`if [ -f project-knowledge/06-daily/$(date +%F).md ]; then cat project-knowledge/06-daily/$(date +%F).md; else echo "No daily note exists for today yet."; fi` +!`if [ -f workspaces/fidelity/project-knowledge/06-daily/$(date +%F).md ]; then cat workspaces/fidelity/project-knowledge/06-daily/$(date +%F).md; else echo "No daily note exists for today yet."; fi` Latest refreshed Mattermost context, if present: @@ -87,13 +87,13 @@ Detailed active work item files, if available: import re from pathlib import Path -summary = Path("project-knowledge/01-current/work-items.md") +summary = Path("workspaces/fidelity/project-knowledge/01-current/work-items.md") if not summary.is_file(): print("No work item files available.") raise SystemExit(0) text = summary.read_text() -paths = re.findall(r"Detail: `(project-knowledge/02-work-items/[^`]+)`", text) +paths = re.findall(r"Detail: `(workspaces/fidelity/project-knowledge/02-work-items/[^`]+)`", text) if not paths: print("No work item files available.") raise SystemExit(0) @@ -118,11 +118,11 @@ Before drafting: - if documentation or root cause updates directly support a story, roll them into that story's update instead of listing them separately - exclude items that are not directly tied to a story unless they are true blockers - when one Jira item has multiple concrete updates, group them under one top-level `JIRA-ID - Title` bullet with indented markdown sub-bullets instead of repeating the same Jira line -- use `project-knowledge/03-context/workstreams/flow-page-references.md` to preserve real flow/page identifiers when shorthand appears in logs or messages +- use `workspaces/fidelity/project-knowledge/03-context/workstreams/flow-page-references.md` to preserve real flow/page identifiers when shorthand appears in logs or messages - for standups that will also be sent to Teams, prefer plain language over internal implementation jargon; avoid unexplained terms like `fallback` - if work is in release-process waiting state, show the parallel story work explicitly instead of implying idle waiting - if Mattermost sync failed, acknowledge that internally and rely on the latest saved workspace context instead of inventing fresher communication -- prefer only the detailed work-item files referenced by `project-knowledge/01-current/work-items.md`; do not mine unrelated or completed ticket files unless they are explicitly active in current memory +- prefer only the detailed work-item files referenced by `workspaces/fidelity/project-knowledge/01-current/work-items.md`; do not mine unrelated or completed ticket files unless they are explicitly active in current memory Return a standup that is: diff --git a/.agents/workflows/story-draft.md b/.agents/workflows/story-draft.md index 8b7817a..caeecc4 100644 --- a/.agents/workflows/story-draft.md +++ b/.agents/workflows/story-draft.md @@ -21,18 +21,18 @@ Read: @core/README.md @core/memory/operational-memory.md @prompts/story-draft.md -@project-knowledge/01-current/current-work.md -@project-knowledge/01-current/work-items.md -@project-knowledge/03-context/project.md -@project-knowledge/03-context/workstreams/index.md -@project-knowledge/03-context/process/communication.md -@project-knowledge/03-context/process/jira-story-rules.md -@project-knowledge/04-people/manager.md -@project-knowledge/04-people/index.md +@workspaces/fidelity/project-knowledge/01-current/current-work.md +@workspaces/fidelity/project-knowledge/01-current/work-items.md +@workspaces/fidelity/project-knowledge/03-context/project.md +@workspaces/fidelity/project-knowledge/03-context/workstreams/index.md +@workspaces/fidelity/project-knowledge/03-context/process/communication.md +@workspaces/fidelity/project-knowledge/03-context/process/jira-story-rules.md +@workspaces/fidelity/project-knowledge/04-people/manager.md +@workspaces/fidelity/project-knowledge/04-people/index.md Today's log, if present: -!`if [ -f project-knowledge/06-daily/$(date +%F).md ]; then cat project-knowledge/06-daily/$(date +%F).md; else echo "No daily note exists for today yet."; fi` +!`if [ -f workspaces/fidelity/project-knowledge/06-daily/$(date +%F).md ]; then cat workspaces/fidelity/project-knowledge/06-daily/$(date +%F).md; else echo "No daily note exists for today yet."; fi` Latest Mattermost context, if available: @@ -44,13 +44,13 @@ Detailed active work item files, if available: import re from pathlib import Path -summary = Path("project-knowledge/01-current/work-items.md") +summary = Path("workspaces/fidelity/project-knowledge/01-current/work-items.md") if not summary.is_file(): print("No work item files available.") raise SystemExit(0) text = summary.read_text() -paths = re.findall(r"Detail: `(project-knowledge/02-work-items/[^`]+)`", text) +paths = re.findall(r"Detail: `(workspaces/fidelity/project-knowledge/02-work-items/[^`]+)`", text) if not paths: print("No work item files available.") raise SystemExit(0) diff --git a/.agents/workflows/swift-help.md b/.agents/workflows/swift-help.md index 5fcae50..d7a7c7e 100644 --- a/.agents/workflows/swift-help.md +++ b/.agents/workflows/swift-help.md @@ -6,14 +6,14 @@ Answer the user's Swift/iOS programming question using current iOS practices and Read: -@project-knowledge/03-context/ios/index.md -@project-knowledge/03-context/ios/current-practices.md -@project-knowledge/03-context/ios/project-swift-guidance.md +@workspaces/fidelity/project-knowledge/03-context/ios/index.md +@workspaces/fidelity/project-knowledge/03-context/ios/current-practices.md +@workspaces/fidelity/project-knowledge/03-context/ios/project-swift-guidance.md @agent-memory/integrations/technical-verification.md -@project-knowledge/03-context/project.md -@project-knowledge/03-context/systems/index.md -@project-knowledge/03-context/workstreams/index.md -@project-knowledge/01-current/work-items.md +@workspaces/fidelity/project-knowledge/03-context/project.md +@workspaces/fidelity/project-knowledge/03-context/systems/index.md +@workspaces/fidelity/project-knowledge/03-context/workstreams/index.md +@workspaces/fidelity/project-knowledge/01-current/work-items.md User question: diff --git a/.agents/workflows/sync-context.md b/.agents/workflows/sync-context.md index fe09812..4fac632 100644 --- a/.agents/workflows/sync-context.md +++ b/.agents/workflows/sync-context.md @@ -7,20 +7,20 @@ Use this command when new information should become part of the persistent works Read: @README.md -@project-knowledge/00-start/start-here.md -@project-knowledge/01-current/current-work.md -@project-knowledge/01-current/work-items.md -@project-knowledge/03-context/project.md -@project-knowledge/03-context/systems/index.md -@project-knowledge/03-context/workstreams/index.md -@project-knowledge/03-context/workstreams/flow-page-references.md +@workspaces/fidelity/project-knowledge/00-start/start-here.md +@workspaces/fidelity/project-knowledge/01-current/current-work.md +@workspaces/fidelity/project-knowledge/01-current/work-items.md +@workspaces/fidelity/project-knowledge/03-context/project.md +@workspaces/fidelity/project-knowledge/03-context/systems/index.md +@workspaces/fidelity/project-knowledge/03-context/workstreams/index.md +@workspaces/fidelity/project-knowledge/03-context/workstreams/flow-page-references.md @agent-memory/memory/context-maintenance.md -@project-knowledge/04-people/manager.md -@project-knowledge/04-people/index.md +@workspaces/fidelity/project-knowledge/04-people/manager.md +@workspaces/fidelity/project-knowledge/04-people/index.md Today's existing log, if present: -!`if [ -f project-knowledge/06-daily/$(date +%F).md ]; then cat project-knowledge/06-daily/$(date +%F).md; else echo "No daily note exists for today yet."; fi` +!`if [ -f workspaces/fidelity/project-knowledge/06-daily/$(date +%F).md ]; then cat workspaces/fidelity/project-knowledge/06-daily/$(date +%F).md; else echo "No daily note exists for today yet."; fi` New information to incorporate: @@ -31,21 +31,21 @@ Instructions: - use `workspace-memory-curation` when available - Treat direct user corrections and learning-session updates as memory sources. - For learning-session updates, prefer durable project understanding over transient ticket status. -- Route durable learning to architecture/process/system/workstream notes; route only truly current operational state to `project-knowledge/01-current/` or `project-knowledge/06-daily/`. +- Route durable learning to architecture/process/system/workstream notes; route only truly current operational state to `workspaces/fidelity/project-knowledge/01-current/` or `workspaces/fidelity/project-knowledge/06-daily/`. - If the new information corrects the agent's uncertainty handling or recurring behavior, update the command, prompt, agent, skill, or process rule that controls that behavior. - Decide whether the new information belongs in: - - today's daily note: `project-knowledge/06-daily/$(date +%F).md` - - current work: `project-knowledge/01-current/current-work.md` - - work items: `project-knowledge/02-work-items/*.md` - - active work summary: `project-knowledge/01-current/work-items.md` - - project overview: `project-knowledge/03-context/project.md` - - systems: `project-knowledge/03-context/systems/` - - workstreams: `project-knowledge/03-context/workstreams/` - - process: `project-knowledge/03-context/process/` - - manager mapping: `project-knowledge/04-people/manager.md` - - people roster: `project-knowledge/04-people/index.md` - - people notes: `project-knowledge/04-people/*.md` - - decisions: `project-knowledge/05-decisions/` + - today's daily note: `workspaces/fidelity/project-knowledge/06-daily/$(date +%F).md` + - current work: `workspaces/fidelity/project-knowledge/01-current/current-work.md` + - work items: `workspaces/fidelity/project-knowledge/02-work-items/*.md` + - active work summary: `workspaces/fidelity/project-knowledge/01-current/work-items.md` + - project overview: `workspaces/fidelity/project-knowledge/03-context/project.md` + - systems: `workspaces/fidelity/project-knowledge/03-context/systems/` + - workstreams: `workspaces/fidelity/project-knowledge/03-context/workstreams/` + - process: `workspaces/fidelity/project-knowledge/03-context/process/` + - manager mapping: `workspaces/fidelity/project-knowledge/04-people/manager.md` + - people roster: `workspaces/fidelity/project-knowledge/04-people/index.md` + - people notes: `workspaces/fidelity/project-knowledge/04-people/*.md` + - decisions: `workspaces/fidelity/project-knowledge/05-decisions/` - `.agents/workflows/*.md` - `.agents/rules/*.md` - `prompts/*.md` diff --git a/.agents/workflows/translate.md b/.agents/workflows/translate.md index 11586c5..33b4d92 100644 --- a/.agents/workflows/translate.md +++ b/.agents/workflows/translate.md @@ -16,14 +16,14 @@ $ARGUMENTS Read: @prompts/mattermost-translation.md -@project-knowledge/03-context/project.md -@project-knowledge/03-context/process/communication.md -@project-knowledge/04-people/manager.md -@project-knowledge/04-people/index.md +@workspaces/fidelity/project-knowledge/03-context/project.md +@workspaces/fidelity/project-knowledge/03-context/process/communication.md +@workspaces/fidelity/project-knowledge/04-people/manager.md +@workspaces/fidelity/project-knowledge/04-people/index.md If relevant, use today's log for context: -!`if [ -f project-knowledge/06-daily/$(date +%F).md ]; then cat project-knowledge/06-daily/$(date +%F).md; else echo "No daily note exists for today yet."; fi` +!`if [ -f workspaces/fidelity/project-knowledge/06-daily/$(date +%F).md ]; then cat workspaces/fidelity/project-knowledge/06-daily/$(date +%F).md; else echo "No daily note exists for today yet."; fi` Return: diff --git a/.agents/workflows/workspace-context.md b/.agents/workflows/workspace-context.md index cabeb61..5687aae 100644 --- a/.agents/workflows/workspace-context.md +++ b/.agents/workflows/workspace-context.md @@ -14,14 +14,14 @@ Read core: Read active workspace memory: -@project-knowledge/00-start/start-here.md -@project-knowledge/01-current/current-work.md -@project-knowledge/01-current/work-items.md -@project-knowledge/03-context/project.md -@project-knowledge/03-context/process/communication.md -@project-knowledge/03-context/ios/index.md -@project-knowledge/04-people/manager.md -@project-knowledge/04-people/index.md +@workspaces/fidelity/project-knowledge/00-start/start-here.md +@workspaces/fidelity/project-knowledge/01-current/current-work.md +@workspaces/fidelity/project-knowledge/01-current/work-items.md +@workspaces/fidelity/project-knowledge/03-context/project.md +@workspaces/fidelity/project-knowledge/03-context/process/communication.md +@workspaces/fidelity/project-knowledge/03-context/ios/index.md +@workspaces/fidelity/project-knowledge/04-people/manager.md +@workspaces/fidelity/project-knowledge/04-people/index.md Read active profile, preferring the configured profile and falling back to Fidelity: @@ -33,11 +33,11 @@ Today's date: Today's canonical daily note, if present: -!`if [ -f project-knowledge/06-daily/$(date +%F).md ]; then cat project-knowledge/06-daily/$(date +%F).md; else echo "No daily note exists for today yet."; fi` +!`if [ -f workspaces/fidelity/project-knowledge/06-daily/$(date +%F).md ]; then cat workspaces/fidelity/project-knowledge/06-daily/$(date +%F).md; else echo "No daily note exists for today yet."; fi` Latest daily notes available: -!`if [ -d project-knowledge/06-daily ]; then ls -1 project-knowledge/06-daily 2>/dev/null | sort | tail -n 3; else echo "No daily notes directory available."; fi` +!`if [ -d workspaces/fidelity/project-knowledge/06-daily ]; then ls -1 workspaces/fidelity/project-knowledge/06-daily 2>/dev/null | sort | tail -n 3; else echo "No daily notes directory available."; fi` Detailed active work item files, if available: @@ -45,13 +45,13 @@ Detailed active work item files, if available: import re from pathlib import Path -summary = Path("project-knowledge/01-current/work-items.md") +summary = Path("workspaces/fidelity/project-knowledge/01-current/work-items.md") if not summary.is_file(): print("No work item files available.") raise SystemExit(0) text = summary.read_text() -paths = re.findall(r"Detail: `(project-knowledge/02-work-items/[^`]+)`", text) +paths = re.findall(r"Detail: `(workspaces/fidelity/project-knowledge/02-work-items/[^`]+)`", text) if not paths: print("No work item files available.") raise SystemExit(0) diff --git a/.gitignore b/.gitignore index c945ff4..1269799 100644 --- a/.gitignore +++ b/.gitignore @@ -8,13 +8,13 @@ __pycache__/ .venv/ # Mattermost raw inbox artifacts -ai/inbox/mattermost-latest.md -ai/inbox/mattermost-*.md -ai/inbox/mattermost-status.json -ai/inbox/mattermost-mirror/* -!ai/inbox/mattermost-mirror/.gitkeep -ai/inbox/photos/* -!ai/inbox/photos/.gitkeep +workspaces/*/inbox/mattermost-latest.md +workspaces/*/inbox/mattermost-*.md +workspaces/*/inbox/mattermost-status.json +workspaces/*/inbox/mattermost-mirror/* +!workspaces/*/inbox/mattermost-mirror/.gitkeep +workspaces/*/inbox/photos/* +!workspaces/*/inbox/photos/.gitkeep # Local build artifact for the iPhone photo inbox pasteboard helper scripts/iphone-photo-inbox/.env @@ -29,14 +29,14 @@ scripts/mattermost-proxy/.env # Obsidian local runtime state /.obsidian/ -project-knowledge/.obsidian/workspace*.json -project-knowledge/.obsidian/workspace-mobile*.json -project-knowledge/.obsidian/graph.json -project-knowledge/.obsidian/hotkeys.json -project-knowledge/.obsidian/community-plugins.json -project-knowledge/.obsidian/plugins/ -project-knowledge/.obsidian/snippets/ -project-knowledge/.obsidian/cache/ +workspaces/*/project-knowledge/.obsidian/workspace*.json +workspaces/*/project-knowledge/.obsidian/workspace-mobile*.json +workspaces/*/project-knowledge/.obsidian/graph.json +workspaces/*/project-knowledge/.obsidian/hotkeys.json +workspaces/*/project-knowledge/.obsidian/community-plugins.json +workspaces/*/project-knowledge/.obsidian/plugins/ +workspaces/*/project-knowledge/.obsidian/snippets/ +workspaces/*/project-knowledge/.obsidian/cache/ .trash/ # Antigravity CLI local workspace configuration diff --git a/.opencode/agents/fidelity.md b/.opencode/agents/fidelity.md index 6017714..ae12c7b 100644 --- a/.opencode/agents/fidelity.md +++ b/.opencode/agents/fidelity.md @@ -12,14 +12,14 @@ Behavior rules: - Treat `core/` as the reusable project-independent operating model. - Treat `profiles/fidelity/profile.md` as the active Fidelity project profile. -- Treat `project-knowledge/` as the canonical clean project knowledge base for humans and AI. +- Treat `workspaces/fidelity/project-knowledge/` as the canonical clean project knowledge base for humans and AI. - Treat `agent-memory/` as the operating memory for agent behavior, learning, promotion, verification, and self-maintenance rules. - Treat `scripts/memory/` as the project-agnostic access layer for note creation, project-knowledge search, Base queries, and health checks. - Treat `scripts/obsidian/` as the current Obsidian adapter. Do not couple durable memory rules to Obsidian-specific behavior. -- Treat `ai/inbox/` and generated connector files as raw evidence only, not promoted memory. -- For Mattermost context, prefer the local proxy mirror in `ai/inbox/mattermost-mirror/` when present. Use `scripts/mattermost-proxy/read-context.py` or the mirror views (`latest.*`, `by-date/`, `channels/`, `threads/`) before falling back to legacy `ai/inbox/mattermost-latest.md` or `scripts/mattermost/generated/` artifacts. -- Keep Obsidian Bases clean: do not let templates in `project-knowledge/09-templates/` appear as real daily notes, work items, people, decisions, systems, or workstreams. -- Role mapping notes such as `project-knowledge/04-people/manager.md` are `type: role-map`; actual people profiles are `type: person`. +- Treat `workspaces/fidelity/inbox/` and generated connector files as raw evidence only, not promoted memory. +- For Mattermost context, prefer the local proxy mirror in `workspaces/fidelity/inbox/mattermost-mirror/` when present. Use `scripts/mattermost-proxy/read-context.py` or the mirror views (`latest.*`, `by-date/`, `channels/`, `threads/`) before falling back to legacy `workspaces/fidelity/inbox/mattermost-latest.md` or `scripts/mattermost/generated/` artifacts. +- Keep Obsidian Bases clean: do not let templates in `workspaces/fidelity/project-knowledge/09-templates/` appear as real daily notes, work items, people, decisions, systems, or workstreams. +- Role mapping notes such as `workspaces/fidelity/project-knowledge/04-people/manager.md` are `type: role-map`; actual people profiles are `type: person`. - When editing canonical project notes, update useful metadata at the same time: `updated`, `systems`, `workstreams`, `people`, `related`, `focus`, `work-items`, and `blockers` when applicable. - When creating a new typed note, prefer `bash scripts/memory/memory.sh create [title]`, then inspect and refine the generated Markdown. - When checking project knowledge quality, use `bash scripts/memory/memory.sh health` and direct file inspection. @@ -39,21 +39,21 @@ Behavior rules: - When the user corrects how the workspace should behave, update the linked operational surface too: commands in `.opencode/commands/`, prompt templates in `prompts/`, agent rules in `AGENTS.md` or `.opencode/agents/`, skills in `.agents/skills/`, and agent operating rules in `agent-memory/` when those files control the behavior. - If existing context is stale, correct it directly instead of leaving conflicting versions. - Promote information carefully: - - daily facts go to `project-knowledge/06-daily/YYYY-MM-DD.md` - - current priorities go to `project-knowledge/01-current/current-work.md` - - active Jira-linked work goes to `project-knowledge/02-work-items/*.md` - - the active-work summary goes to `project-knowledge/01-current/work-items.md` - - durable project knowledge overview goes to `project-knowledge/03-context/project.md` - - system-specific durable knowledge goes to `project-knowledge/03-context/systems/` - - workstream-specific durable knowledge goes to `project-knowledge/03-context/workstreams/` - - project-facing process knowledge goes to `project-knowledge/03-context/process/` - - confirmed team or manager communication preferences go to `project-knowledge/04-people/manager.md` - - role-to-person mapping and recurring stakeholders go to `project-knowledge/04-people/` - - confirmed decisions go to `project-knowledge/05-decisions/` + - daily facts go to `workspaces/fidelity/project-knowledge/06-daily/YYYY-MM-DD.md` + - current priorities go to `workspaces/fidelity/project-knowledge/01-current/current-work.md` + - active Jira-linked work goes to `workspaces/fidelity/project-knowledge/02-work-items/*.md` + - the active-work summary goes to `workspaces/fidelity/project-knowledge/01-current/work-items.md` + - durable project knowledge overview goes to `workspaces/fidelity/project-knowledge/03-context/project.md` + - system-specific durable knowledge goes to `workspaces/fidelity/project-knowledge/03-context/systems/` + - workstream-specific durable knowledge goes to `workspaces/fidelity/project-knowledge/03-context/workstreams/` + - project-facing process knowledge goes to `workspaces/fidelity/project-knowledge/03-context/process/` + - confirmed team or manager communication preferences go to `workspaces/fidelity/project-knowledge/04-people/manager.md` + - role-to-person mapping and recurring stakeholders go to `workspaces/fidelity/project-knowledge/04-people/` + - confirmed decisions go to `workspaces/fidelity/project-knowledge/05-decisions/` - behavioral rules for how this workspace should respond go to the exact command, prompt, agent, skill, or `agent-memory/` file that enforces that behavior - Use generic `AIW_*` integration variables for new tooling and keep `FIDELITY_*` only as Fidelity-profile aliases. - Default to writing new same-day information to today's log unless a more durable destination is clearly better. -- Write canonical memory to `project-knowledge/`. +- Write canonical memory to `workspaces/fidelity/project-knowledge/`. - Update preexisting memory when a new prompt clarifies or corrects something already stored. - Do not wait for a dedicated sync command if the correct memory update is already obvious. - For analysis, drafting, review, or translation prompts, answer first and persist second unless saving the fact is required to produce the answer safely. @@ -63,7 +63,7 @@ Behavior rules: - If the memory interface or Obsidian adapter fails, continue with direct Markdown operations when safe and do not promote the failure as project memory. - Do not over-promote uncertain information. Keep uncertain items in the daily log. - When drafting communication, preserve technical meaning and improve clarity in natural US English. -- When answering Swift/iOS programming questions, use the project-local iOS skills and `project-knowledge/03-context/ios/`. +- When answering Swift/iOS programming questions, use the project-local iOS skills and `workspaces/fidelity/project-knowledge/03-context/ios/`. - When answering programming, dependency-management, package-manager, CI/build, testing, or architecture-practice questions, verify with primary/current documentation when the topic may be outdated, disputed, version-sensitive, or project-critical. - For CocoaPods, podspecs, private spec repos, trunk/CDN behavior, SPM, Xcode, Swift, and Apple frameworks, do not rely only on model memory before giving strong advice. - When generating prompts for GitHub Copilot or another AI, use `agent-memory/workflows/ai-to-ai-prompting.md` and the `copilot-prompt-engineering` skill. diff --git a/.opencode/agents/workspace.md b/.opencode/agents/workspace.md index e5f7477..d07af14 100644 --- a/.opencode/agents/workspace.md +++ b/.opencode/agents/workspace.md @@ -12,12 +12,12 @@ Behavior rules: - Load `core/` first for project-independent operating rules. - Load the active profile from `AIW_PROJECT_PROFILE` when available; otherwise use the configured project files in this workspace. -- Treat `project-knowledge/` as the canonical clean project knowledge base. +- Treat `workspaces/fidelity/project-knowledge/` as the canonical clean project knowledge base. - Treat `agent-memory/` as the operating memory for agent behavior, learning, promotion, verification, and self-maintenance rules. - Treat `scripts/memory/` as the stable memory access layer. - Treat tool-specific integrations such as Obsidian as replaceable adapters. -- Treat profile files as configuration and `ai/inbox/` plus generated connector files as raw evidence. -- For live communication context, prefer project-local mirror evidence under `ai/inbox/*-mirror/` through its reader script when available, then fall back to legacy inbox/generated connector artifacts. +- Treat profile files as configuration and `workspaces/fidelity/inbox/` plus generated connector files as raw evidence. +- For live communication context, prefer project-local mirror evidence under `workspaces/fidelity/inbox/*-mirror/` through its reader script when available, then fall back to legacy inbox/generated connector artifacts. - Keep Obsidian Bases clean by excluding templates and typing role maps separately from people. - When updating canonical project notes, maintain relationship metadata and `updated` fields so project knowledge remains useful to both humans and agents. - Before answering current-state questions, inspect current state, active work items, recent logs, and inbox evidence when available. @@ -39,11 +39,11 @@ Behavior rules: Memory destinations: -- daily facts -> `project-knowledge/06-daily/YYYY-MM-DD.md` -- current priorities -> `project-knowledge/01-current/current-work.md` -- active work items -> `project-knowledge/02-work-items/*.md` -- active-work summary -> `project-knowledge/01-current/work-items.md` -- durable project knowledge -> `project-knowledge/03-context/` -- people and roles -> `project-knowledge/04-people/` -- confirmed decisions -> `project-knowledge/05-decisions/` +- daily facts -> `workspaces/fidelity/project-knowledge/06-daily/YYYY-MM-DD.md` +- current priorities -> `workspaces/fidelity/project-knowledge/01-current/current-work.md` +- active work items -> `workspaces/fidelity/project-knowledge/02-work-items/*.md` +- active-work summary -> `workspaces/fidelity/project-knowledge/01-current/work-items.md` +- durable project knowledge -> `workspaces/fidelity/project-knowledge/03-context/` +- people and roles -> `workspaces/fidelity/project-knowledge/04-people/` +- confirmed decisions -> `workspaces/fidelity/project-knowledge/05-decisions/` - reusable behavior -> `.opencode/commands/`, `prompts/`, `.opencode/agents/`, `.agents/skills/`, `agent-memory/`, `core/`, or `scripts/` diff --git a/.opencode/plugins/mattermost-inbox.js b/.opencode/plugins/mattermost-inbox.js index 1eb3d4a..dad2c5f 100644 --- a/.opencode/plugins/mattermost-inbox.js +++ b/.opencode/plugins/mattermost-inbox.js @@ -43,6 +43,21 @@ async function resolveSyncContent(directory, stdoutText) { return (generated || "").trim() } +async function resolveProfileInbox(directory) { + const profile = process.env.AIW_PROJECT_PROFILE?.trim() || "fidelity" + const configured = process.env.AIW_PROJECT_INBOX_DIR?.trim() + if (configured) return path.isAbsolute(configured) ? configured : path.join(directory, configured) + + const workspaceConfigPath = path.join(directory, "profiles", profile, "workspace.json") + try { + const config = JSON.parse(await readFile(workspaceConfigPath, "utf8")) + const inboxDir = config?.inbox_dir || `workspaces/${profile}/inbox` + return path.isAbsolute(inboxDir) ? inboxDir : path.join(directory, inboxDir) + } catch { + return path.join(directory, "workspaces", profile, "inbox") + } +} + function extractPromptText(event) { const candidates = [ event?.properties?.text, @@ -144,7 +159,7 @@ export const MattermostInbox = async ({ $, directory, client }) => { lastSyncAt = now const syncStartedAt = Date.now() - const inboxDir = path.join(directory, "ai/inbox") + const inboxDir = await resolveProfileInbox(directory) const latestPath = path.join(inboxDir, "mattermost-latest.md") const statusPath = path.join(inboxDir, "mattermost-status.json") diff --git a/AGENTS.md b/AGENTS.md index 6192554..43f2ea2 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -19,15 +19,15 @@ Keep the always-loaded context small. The hot set is: - `agent-memory/memory/promotion-rules.md` - `agent-memory/integrations/technical-verification.md` - `agent-memory/workflows/ai-to-ai-prompting.md` -- `project-knowledge/00-start/start-here.md` -- `project-knowledge/01-current/current-work.md` -- `project-knowledge/01-current/work-items.md` -- `project-knowledge/03-context/project.md` -- `project-knowledge/03-context/process/communication.md` -- `project-knowledge/03-context/ios/index.md` -- `project-knowledge/03-context/ios/project-swift-guidance.md` -- `project-knowledge/04-people/manager.md` -- `project-knowledge/04-people/index.md` +- `workspaces/fidelity/project-knowledge/00-start/start-here.md` +- `workspaces/fidelity/project-knowledge/01-current/current-work.md` +- `workspaces/fidelity/project-knowledge/01-current/work-items.md` +- `workspaces/fidelity/project-knowledge/03-context/project.md` +- `workspaces/fidelity/project-knowledge/03-context/process/communication.md` +- `workspaces/fidelity/project-knowledge/03-context/ios/index.md` +- `workspaces/fidelity/project-knowledge/03-context/ios/project-swift-guidance.md` +- `workspaces/fidelity/project-knowledge/04-people/manager.md` +- `workspaces/fidelity/project-knowledge/04-people/index.md` Load everything else lazily when the task actually needs it. @@ -36,14 +36,14 @@ Do not preemptively load broad context sets, all work-item files, or all process ## Required Behavior - Assume the workspace may contain stale context until checked. -- Treat `project-knowledge/` as the canonical clean project memory for humans and AI. Treat `agent-memory/` as agent operating memory. Treat `ai/inbox/` as raw evidence only. +- Treat `workspaces/fidelity/project-knowledge/` as the canonical clean project memory for humans and AI. Treat `agent-memory/` as agent operating memory. Treat `workspaces/fidelity/inbox/` as raw evidence only. - Treat `scripts/memory/` as the project-agnostic interface for creating notes, searching memory, querying Bases, and running project knowledge health checks. - Treat `scripts/obsidian/` as the current Obsidian adapter, not as the core memory abstraction. -- Keep Obsidian Bases clean: templates in `project-knowledge/09-templates/` must not be treated as real notes, and role mapping files such as `project-knowledge/04-people/manager.md` must not be typed as people. +- Keep Obsidian Bases clean: templates in `workspaces/fidelity/project-knowledge/09-templates/` must not be treated as real notes, and role mapping files such as `workspaces/fidelity/project-knowledge/04-people/manager.md` must not be typed as people. - Maintain useful project-note properties when editing canonical notes, especially work-item relationships (`systems`, `workstreams`, `people`, `related`) and daily note fields (`focus`, `work-items`, `blockers`). -- Before answering questions that depend on current work state, inspect `project-knowledge/01-current/current-work.md` and the latest relevant daily note under `project-knowledge/06-daily/`. +- Before answering questions that depend on current work state, inspect `workspaces/fidelity/project-knowledge/01-current/current-work.md` and the latest relevant daily note under `workspaces/fidelity/project-knowledge/06-daily/`. - Prefer lazy loading over eager loading. Pull in only the smallest relevant files for the active task. -- For Mattermost evidence, prefer the local proxy mirror under `ai/inbox/mattermost-mirror/` when present. Use `scripts/mattermost-proxy/read-context.py` or mirror views (`latest.*`, `by-date/`, `channels/`, `threads/`) before falling back to legacy `ai/inbox/mattermost-latest.md` or `scripts/mattermost/generated/` artifacts. +- For Mattermost evidence, prefer the local proxy mirror under `workspaces/fidelity/inbox/mattermost-mirror/` when present. Use `scripts/mattermost-proxy/read-context.py` or mirror views (`latest.*`, `by-date/`, `channels/`, `threads/`) before falling back to legacy `workspaces/fidelity/inbox/mattermost-latest.md` or `scripts/mattermost/generated/` artifacts. - If the user asks for the latest/last/recent Mattermost message, the latest message from Jeff/current manager, or what someone just said, use the explicit latest-message flow and answer from the freshest refreshed evidence; the proxy mirror is primary when available. - If automatic refresh is uncertain and the proxy mirror is not available, run the Mattermost sync command, then answer from the refreshed inbox only. - Treat latest-message flows as read-first. Report memory update candidates, but do not edit canonical memory from that command unless the user explicitly asks to promote the fact. @@ -60,12 +60,12 @@ Do not preemptively load broad context sets, all work-item files, or all process - Treat sync failures as operational errors, not project context. - If a patch or edit verification fails while making a non-essential memory update, stop retrying and return the user-facing answer with the failed target noted. - `mattermost-sync` should automatically promote high-confidence project facts without asking what to promote. -- Prefer `project-knowledge/06-daily/` as the default destination for new Mattermost-derived facts. -- Promote to `project-knowledge/01-current/current-work.md` only when the fact materially changes active work over the next few days. -- Keep explicit Jira IDs and approved titles visible in `project-knowledge/02-work-items/` and summarize active items in `project-knowledge/01-current/work-items.md` when they are useful for future standups or manager updates. -- Promote to `project-knowledge/03-context/project.md` only when the fact changes durable project understanding. -- When a repeatedly mentioned person becomes relevant to project flow, create or update a file under `project-knowledge/04-people/`. -- Keep role-to-person mapping explicit in `project-knowledge/04-people/manager.md` and the roster in `project-knowledge/04-people/index.md`. +- Prefer `workspaces/fidelity/project-knowledge/06-daily/` as the default destination for new Mattermost-derived facts. +- Promote to `workspaces/fidelity/project-knowledge/01-current/current-work.md` only when the fact materially changes active work over the next few days. +- Keep explicit Jira IDs and approved titles visible in `workspaces/fidelity/project-knowledge/02-work-items/` and summarize active items in `workspaces/fidelity/project-knowledge/01-current/work-items.md` when they are useful for future standups or manager updates. +- Promote to `workspaces/fidelity/project-knowledge/03-context/project.md` only when the fact changes durable project understanding. +- When a repeatedly mentioned person becomes relevant to project flow, create or update a file under `workspaces/fidelity/project-knowledge/04-people/`. +- Keep role-to-person mapping explicit in `workspaces/fidelity/project-knowledge/04-people/manager.md` and the roster in `workspaces/fidelity/project-knowledge/04-people/index.md`. - 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. - If a new prompt corrects prior understanding, update the canonical file directly instead of keeping both versions alive. @@ -77,8 +77,8 @@ Do not preemptively load broad context sets, all work-item files, or all process - If a previous context file is now stale or inaccurate, update that file directly. - Prefer correcting canonical context over appending contradictory notes. - Keep changes concise and auditable. -- When the topic is architectural or historical, prefer updating the relevant file under `project-knowledge/03-context/systems/`, `project-knowledge/03-context/workstreams/`, or project-facing `project-knowledge/03-context/process/` instead of overloading `project-knowledge/03-context/project.md`. -- When the user asks Swift, SwiftUI, iOS architecture, testing, or debugging questions, use `project-knowledge/03-context/ios/` and the local OpenCode iOS skills before answering. +- When the topic is architectural or historical, prefer updating the relevant file under `workspaces/fidelity/project-knowledge/03-context/systems/`, `workspaces/fidelity/project-knowledge/03-context/workstreams/`, or project-facing `workspaces/fidelity/project-knowledge/03-context/process/` instead of overloading `workspaces/fidelity/project-knowledge/03-context/project.md`. +- When the user asks Swift, SwiftUI, iOS architecture, testing, or debugging questions, use `workspaces/fidelity/project-knowledge/03-context/ios/` and the local OpenCode iOS skills before answering. - When the user asks about programming concepts, dependency tooling, package managers, CI/build tooling, testing frameworks, or practices that may be outdated or opinion-sensitive, verify against primary/current documentation before making strong claims. - For CocoaPods, podspecs, private specs repos, trunk/CDN behavior, Swift Package Manager, Xcode, Swift, Apple frameworks, and similar project-linked tooling, do not rely only on memory. - When the user asks for a prompt for another AI, GitHub Copilot, or the Fidelity development machine, use `agent-memory/workflows/ai-to-ai-prompting.md` and generate a self-contained prompt. diff --git a/GEMINI.md b/GEMINI.md index 1791f0a..32604f6 100644 --- a/GEMINI.md +++ b/GEMINI.md @@ -7,9 +7,9 @@ Shared rules and context already live in the normal workspace files. Do not dupl Read these first: @./AGENTS.md -@./project-knowledge/00-start/start-here.md -@./project-knowledge/01-current/current-work.md -@./project-knowledge/01-current/work-items.md +@./workspaces/fidelity/project-knowledge/00-start/start-here.md +@./workspaces/fidelity/project-knowledge/01-current/current-work.md +@./workspaces/fidelity/project-knowledge/01-current/work-items.md ## Tool Surface @@ -17,7 +17,7 @@ Read these first: - `.agents/` is the canonical shared cross-platform surface for workflows and reusable rule/skill content. - `.opencode/` is the OpenCode compatibility/runtime surface. - `.agent/` is an alias for tools that expect the singular directory naming. -- `project-knowledge/` is canonical project memory. +- `workspaces/fidelity/project-knowledge/` is canonical project memory. - `agent-memory/` is agent operating memory. ## Gemini-Specific Operating Notes @@ -26,4 +26,4 @@ Read these first: - Follow `AGENTS.md` as the shared source of truth for answer-first behavior, memory promotion, and lazy loading. - For analysis, review, translation, or drafting prompts, answer first and persist second unless saving the fact is clearly required to produce a safe answer. - Do not create new canonical notes in the critical path of a simple answer unless the user explicitly asked to save the information or the destination is obvious and non-blocking. -- When memory should be updated, prefer the smallest correct change to `project-knowledge/` and avoid duplicating stale and corrected versions. +- When memory should be updated, prefer the smallest correct change to `workspaces/fidelity/project-knowledge/` and avoid duplicating stale and corrected versions. diff --git a/README.md b/README.md index c3aee4e..02f077b 100644 --- a/README.md +++ b/README.md @@ -48,9 +48,9 @@ Markdown project knowledge is canonical. Inboxes, indexes, chat memory, and clou | `docs/` | Simple project-independent documentation for developers adopting the workspace | | `core/` | Reusable operating model and architecture notes | | `profiles/` | Project-specific configuration and assumptions | -| `project-knowledge/` | Current canonical Markdown vault for the active Fidelity profile; future profiles should use explicit profile paths | +| `workspaces//project-knowledge/` | Profile-owned canonical Markdown vault | | `agent-memory/` | Agent behavior, promotion, verification, and workflow memory | -| `ai/inbox/` | Raw evidence before promotion into canonical memory | +| `workspaces//inbox/` | Profile-owned raw evidence before promotion into canonical memory | | `scripts/aiw/` | Service manager and local indexer | | `scripts/mcp/` | MCP servers exposing bounded local context | | `scripts/memory/` | Project-agnostic interface for canonical memory operations | @@ -102,7 +102,7 @@ Start here: Profile-specific project knowledge starts at: -- `project-knowledge/00-start/start-here.md` for the current Fidelity vault +- `workspaces/fidelity/project-knowledge/00-start/start-here.md` for the current Fidelity vault - `profiles/fidelity/profile.md` for the Fidelity profile declaration - `profiles/example/profile.md` for a sanitized reusable profile example @@ -117,14 +117,14 @@ profiles/fidelity/ profiles/example/ ``` -The current Fidelity profile still uses root-level `project-knowledge/` and `ai/inbox/` for compatibility. The target reusable shape is to resolve memory and inbox paths from profile configuration so future projects can keep isolated data under profile/workspace-specific directories. +Each profile resolves memory and inbox paths from `profiles//workspace.json`. Fidelity data now lives under `workspaces/fidelity/`. ## Memory Model The workspace separates memory by responsibility: -- `project-knowledge/`: canonical project facts for humans and AI; -- `ai/inbox/`: raw evidence; +- `workspaces//project-knowledge/`: canonical project facts for humans and AI; +- `workspaces//inbox/`: raw evidence; - `agent-memory/`: rules for how agents behave; - `.aiw/indexes/`: derived local search indexes; - external systems such as mem9: optional agent recall, not project truth. diff --git a/agent-memory/README.md b/agent-memory/README.md index 79a4b1e..1ca8088 100644 --- a/agent-memory/README.md +++ b/agent-memory/README.md @@ -11,7 +11,7 @@ tags: This folder contains the operating memory for the AI agent. -It is not Fidelity project documentation. Do not transfer this folder as project knowledge for a new engineer. Transfer `project-knowledge/` for the project second brain, and use this folder to explain how the agent should maintain that knowledge. +It is not Fidelity project documentation. Do not transfer this folder as project knowledge for a new engineer. Transfer `workspaces/fidelity/project-knowledge/` for the project second brain, and use this folder to explain how the agent should maintain that knowledge. --- @@ -28,8 +28,8 @@ It is not Fidelity project documentation. Do not transfer this folder as project ## Relationship To Project Knowledge -- `project-knowledge/` is the clean Obsidian vault and project second brain. +- `workspaces/fidelity/project-knowledge/` is the clean Obsidian vault and project second brain. - `agent-memory/` is the agent operating manual. -- `ai/inbox/` and connector `generated/` folders are evidence, not canonical memory. +- `workspaces/fidelity/inbox/` and connector `generated/` folders are evidence, not canonical memory. - `scripts/memory/` is the project-agnostic interface for reading, searching, creating, querying, and validating project knowledge. - `scripts/obsidian/` is the current Obsidian adapter and must not become the core abstraction. diff --git a/agent-memory/behavior/agent-behavior.md b/agent-memory/behavior/agent-behavior.md index 1a0999f..f0c650f 100644 --- a/agent-memory/behavior/agent-behavior.md +++ b/agent-memory/behavior/agent-behavior.md @@ -27,10 +27,10 @@ This applies to: - debugging discussions - corrections to previous understanding -The agent must not wait for a separate promotion command. The agent should proactively update `project-knowledge/` (including 01-current, 02-work-items, 03-context, 04-people, 06-daily) within the same conversational turn when new information is clear, durable, and the destination is obvious. +The agent must not wait for a separate promotion command. The agent should proactively update `workspaces/fidelity/project-knowledge/` (including 01-current, 02-work-items, 03-context, 04-people, 06-daily) within the same conversational turn when new information is clear, durable, and the destination is obvious. -- When editing `project-knowledge/`, write as a human engineer maintaining shared project documentation. -- Keep agent-operating logic out of `project-knowledge/`; store that logic in prompts, commands, skills, agents, or `agent-memory/`. +- When editing `workspaces/fidelity/project-knowledge/`, write as a human engineer maintaining shared project documentation. +- Keep agent-operating logic out of `workspaces/fidelity/project-knowledge/`; store that logic in prompts, commands, skills, agents, or `agent-memory/`. - Answer-first rule: when the user's main goal is analysis, review, translation, or drafting, answer first unless persistence is required to avoid losing a clear durable fact. - Do not create a brand-new canonical note during the critical path of the answer unless the user explicitly asked to save the fact or the new note is the smallest correct update. - Prefer updating an existing canonical note over creating a new file when both are valid. @@ -71,7 +71,7 @@ Avoid low-value learning-session questions such as: - whether a specific PR was approved today - whether a ticket moved columns today - what the next standup line should be -- temporary sequencing questions that belong in `project-knowledge/01-current/` or `project-knowledge/06-daily/` +- temporary sequencing questions that belong in `workspaces/fidelity/project-knowledge/01-current/` or `workspaces/fidelity/project-knowledge/06-daily/` Prefer high-value questions such as: @@ -130,7 +130,7 @@ Examples: - A standup formatting correction should update `prompts/standup.md` and the shared workflow in `.agents/workflows/standup.md`. - A Mattermost freshness correction should update the Mattermost command/plugin instructions. - A Copilot prompt-structure correction should update `prompts/copilot-prompt.md`, `.agents/workflows/copilot-prompt.md`, or the shared skill/rule source. -- A Swift answer-quality correction should update the relevant iOS skill or `project-knowledge/03-context/ios/` guidance. +- A Swift answer-quality correction should update the relevant iOS skill or `workspaces/fidelity/project-knowledge/03-context/ios/` guidance. Keep the daily log as evidence of what happened, but make the reusable behavior live in the file that controls that behavior. @@ -138,7 +138,7 @@ Keep the daily log as evidence of what happened, but make the reusable behavior ## File Selection -### `project-knowledge/06-daily/YYYY-MM-DD.md` +### `workspaces/fidelity/project-knowledge/06-daily/YYYY-MM-DD.md` Default destination for: @@ -148,7 +148,7 @@ Default destination for: - story and approval movement - context that is important now but may evolve later -### `project-knowledge/01-current/current-work.md` +### `workspaces/fidelity/project-knowledge/01-current/current-work.md` Use when the fact changes the active work window, including: @@ -157,28 +157,28 @@ Use when the fact changes the active work window, including: - current blockers or debugging constraints - manager direction that changes the next few days of work -### `project-knowledge/02-work-items/*.md` and `project-knowledge/01-current/work-items.md` +### `workspaces/fidelity/project-knowledge/02-work-items/*.md` and `workspaces/fidelity/project-knowledge/01-current/work-items.md` -Use `project-knowledge/02-work-items/*.md` as the canonical memory for current Jira-linked work that should remain easy to reference across sessions, especially: +Use `workspaces/fidelity/project-knowledge/02-work-items/*.md` as the canonical memory 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 -Use `project-knowledge/01-current/work-items.md` as the summary view of what is active now. +Use `workspaces/fidelity/project-knowledge/01-current/work-items.md` as the summary view of what is active now. These files should help standups and manager updates mention work items precisely. -### `project-knowledge/03-context/project.md` +### `workspaces/fidelity/project-knowledge/03-context/project.md` Use for durable project knowledge that should survive beyond the current work window. -### `project-knowledge/04-people/manager.md` +### `workspaces/fidelity/project-knowledge/04-people/manager.md` Use only when a communication preference or manager expectation becomes stable enough to reuse repeatedly. -### `project-knowledge/04-people/index.md` and `project-knowledge/04-people/*.md` +### `workspaces/fidelity/project-knowledge/04-people/index.md` and `workspaces/fidelity/project-knowledge/04-people/*.md` Use these files for: @@ -192,7 +192,7 @@ When the role is not explicit, store: - what kinds of topics they influence - how they affect approvals, scope, debugging, or communication -### `project-knowledge/05-decisions/*.md` +### `workspaces/fidelity/project-knowledge/05-decisions/*.md` Use for explicit confirmed decisions with ongoing impact. diff --git a/agent-memory/behavior/self-maintenance.md b/agent-memory/behavior/self-maintenance.md index a59bc33..9433e9e 100644 --- a/agent-memory/behavior/self-maintenance.md +++ b/agent-memory/behavior/self-maintenance.md @@ -21,7 +21,7 @@ The agent must keep the workspace behavior aligned with recurring user correctio - Update `.opencode/agents/` and `AGENTS.md` for default agent behavior. - Update `.agents/skills/` for specialized workflows. - Update `agent-memory/` for reusable agent operating rules. -- Update `project-knowledge/` only when the correction changes project knowledge or project-facing process documentation. +- Update `workspaces/fidelity/project-knowledge/` only when the correction changes project knowledge or project-facing process documentation. --- diff --git a/agent-memory/integrations/communication-sources.md b/agent-memory/integrations/communication-sources.md index 0a985cc..4d1104f 100644 --- a/agent-memory/integrations/communication-sources.md +++ b/agent-memory/integrations/communication-sources.md @@ -17,18 +17,18 @@ Communication connectors extract evidence. The agent decides what to promote. Mattermost is the current live communication connector. -- Primary local evidence is the Mattermost proxy mirror under `ai/inbox/mattermost-mirror/` when present. -- Prefer `ai/inbox/mattermost-mirror/latest.md` / `latest.jsonl` for latest-message context, `by-date/YYYY/MM/YYYY-MM-DD.jsonl` for daily/standup context, `channels//YYYY/MM/YYYY-MM-DD.jsonl` for channel-specific context, and `threads/.jsonl` for thread-specific context. +- Primary local evidence is the Mattermost proxy mirror under `workspaces/fidelity/inbox/mattermost-mirror/` when present. +- Prefer `workspaces/fidelity/inbox/mattermost-mirror/latest.md` / `latest.jsonl` for latest-message context, `by-date/YYYY/MM/YYYY-MM-DD.jsonl` for daily/standup context, `channels//YYYY/MM/YYYY-MM-DD.jsonl` for channel-specific context, and `threads/.jsonl` for thread-specific context. - Use `scripts/mattermost-proxy/read-context.py` from commands/workflows instead of reading ad hoc files; it prefers the proxy mirror and falls back to legacy sync artifacts. -- Legacy fresh output may still go to `ai/inbox/mattermost-latest.md`. +- Legacy fresh output may still go to `workspaces/fidelity/inbox/mattermost-latest.md`. - Legacy generated extraction artifacts stay under `scripts/mattermost/generated/`. - Failed syncs must not update project knowledge. - Latest-message requests must refresh Mattermost before answering. -- Latest-message requests are read-first. The agent may identify a memory update candidate, but should not edit `project-knowledge/` from the latest-message command unless the user explicitly asks to promote the fact. +- Latest-message requests are read-first. The agent may identify a memory update candidate, but should not edit `workspaces/fidelity/project-knowledge/` from the latest-message command unless the user explicitly asks to promote the fact. - Standup generation is a separate required-refresh flow: it must fetch Mattermost before drafting, even though general prompts should not sync automatically. - Standup reads should use the focused reader mode, `scripts/mattermost-proxy/read-context.py --mode standup --today YYYY-MM-DD`, which reads date-bucketed previous-workday/today records and should use the active profile's configured `AIW_MATTERMOST_CONTEXT_CHANNELS` when available. Avoid loading broad mirror `latest.md` into standup prompts because it may include stale or unrelated channels and waste tokens. Keep project-specific channel names out of reusable connector code. - If adding MCP support for Mattermost, treat it as a read-only query wrapper over the existing proxy mirror and `read-context.py`, not as a replacement for the capture/mirror pipeline. Keep the mirror's file layout as canonical raw evidence and expose only narrow tools such as latest, standup/date, channel, and thread reads with channel filters and limits. -- Do not build a write-capable Mattermost MCP or expose tokens, cookies, raw headers, or broad unfiltered raw dumps through MCP. MCP output should remain evidence for agent reasoning; promotion to `project-knowledge/` still follows normal memory rules. +- Do not build a write-capable Mattermost MCP or expose tokens, cookies, raw headers, or broad unfiltered raw dumps through MCP. MCP output should remain evidence for agent reasoning; promotion to `workspaces/fidelity/project-knowledge/` still follows normal memory rules. - If the proxy mirror is running, treat it as fresher than legacy `mattermost-latest.md` / generated JSONL. Do not ignore mirror evidence merely because a legacy sync command also ran. - Do not refresh Mattermost just because a prompt mentions a manager or stakeholder. - Treat document review, message polishing, translation, and "does this align with Jeff's expectations?" prompts as normal drafting tasks unless the user explicitly asks for the latest message or fresh Mattermost evidence. @@ -42,6 +42,6 @@ Mattermost is the current live communication connector. Slack export import is the current historical archive connector. -- Archive evidence stays outside `project-knowledge/`. +- Archive evidence stays outside `workspaces/fidelity/project-knowledge/`. - Promote only durable project facts, people context, process rules, or historical architecture lessons. - Do not promote dated status details unless they explain current context. diff --git a/agent-memory/integrations/mem9.md b/agent-memory/integrations/mem9.md index d200527..1403233 100644 --- a/agent-memory/integrations/mem9.md +++ b/agent-memory/integrations/mem9.md @@ -15,7 +15,7 @@ Use mem9 as a cross-session, cross-agent recall layer without replacing the work ## Source Of Truth -`project-knowledge/` remains the canonical human-readable Fidelity project memory. +`workspaces/fidelity/project-knowledge/` remains the canonical human-readable Fidelity project memory. `agent-memory/` remains the canonical operating memory for agent behavior, workflows, promotion rules, and integration guidance. @@ -46,7 +46,7 @@ Do not bulk-import raw inboxes, generated sync output, full chat transcripts, or 1. Recall mem9 early for user preferences and relevant workspace history. 2. Load hot Markdown context from `AGENTS.md` / `opencode.json` instructions. -3. For current-work questions, still inspect `project-knowledge/01-current/current-work.md` and the latest relevant daily note. +3. For current-work questions, still inspect `workspaces/fidelity/project-knowledge/01-current/current-work.md` and the latest relevant daily note. 4. Answer or act from verified context. 5. When the interaction adds durable knowledge, update canonical Markdown first; store a compact mem9 memory only if it improves future recall. diff --git a/agent-memory/integrations/memory-interface.md b/agent-memory/integrations/memory-interface.md index 08a08f3..365c29f 100644 --- a/agent-memory/integrations/memory-interface.md +++ b/agent-memory/integrations/memory-interface.md @@ -15,7 +15,7 @@ Use `scripts/memory/memory.sh` as the project-agnostic interface to project know ## Default Root -The primary project knowledge directory is `project-knowledge/`. +The primary project knowledge directory is `workspaces/fidelity/project-knowledge/`. Environment variable precedence: diff --git a/agent-memory/integrations/obsidian.md b/agent-memory/integrations/obsidian.md index c39812b..71466d8 100644 --- a/agent-memory/integrations/obsidian.md +++ b/agent-memory/integrations/obsidian.md @@ -16,13 +16,13 @@ Obsidian is the current interface over canonical Markdown memory. The workspace- ## Recommended Start -Open the `project-knowledge/` folder as the Obsidian vault, not the repository root and not `agent-memory/`. +Open the `workspaces/fidelity/project-knowledge/` folder as the Obsidian vault, not the repository root and not `agent-memory/`. Open: -- [Start Here](../../project-knowledge/00-start/start-here.md) -- [New Member Onboarding](../../project-knowledge/00-start/onboarding.md) -- [Knowledge Maps](../../project-knowledge/07-maps/index.md) +- [Start Here](../../workspaces/fidelity/project-knowledge/00-start/start-here.md) +- [New Member Onboarding](../../workspaces/fidelity/project-knowledge/00-start/onboarding.md) +- [Knowledge Maps](../../workspaces/fidelity/project-knowledge/07-maps/index.md) --- @@ -32,26 +32,26 @@ Open: Start with: -- [New Member Onboarding](../../project-knowledge/00-start/onboarding.md) -- [Glossary](../../project-knowledge/00-start/glossary.md) -- [Current Work Map](../../project-knowledge/07-maps/current-work.md) -- [Fidelity Domain Map](../../project-knowledge/07-maps/fidelity-domain.md) +- [New Member Onboarding](../../workspaces/fidelity/project-knowledge/00-start/onboarding.md) +- [Glossary](../../workspaces/fidelity/project-knowledge/00-start/glossary.md) +- [Current Work Map](../../workspaces/fidelity/project-knowledge/07-maps/current-work.md) +- [Fidelity Domain Map](../../workspaces/fidelity/project-knowledge/07-maps/fidelity-domain.md) ### Daily Work View Start with: -- [Current Work Map](../../project-knowledge/07-maps/current-work.md) -- [Work Items Map](../../project-knowledge/07-maps/work-items.md) -- [Daily Notes Index](../../project-knowledge/06-daily/index.md) +- [Current Work Map](../../workspaces/fidelity/project-knowledge/07-maps/current-work.md) +- [Work Items Map](../../workspaces/fidelity/project-knowledge/07-maps/work-items.md) +- [Daily Notes Index](../../workspaces/fidelity/project-knowledge/06-daily/index.md) ### System Understanding View Start with: -- [Fidelity Domain Map](../../project-knowledge/07-maps/fidelity-domain.md) -- [Fidelity Apps Map](../../project-knowledge/07-maps/fidelity-apps.md) -- [People Map](../../project-knowledge/07-maps/people.md) +- [Fidelity Domain Map](../../workspaces/fidelity/project-knowledge/07-maps/fidelity-domain.md) +- [Fidelity Apps Map](../../workspaces/fidelity/project-knowledge/07-maps/fidelity-apps.md) +- [People Map](../../workspaces/fidelity/project-knowledge/07-maps/people.md) --- diff --git a/agent-memory/maps/ai-workspace-core.md b/agent-memory/maps/ai-workspace-core.md index 65d72e1..3be55ad 100644 --- a/agent-memory/maps/ai-workspace-core.md +++ b/agent-memory/maps/ai-workspace-core.md @@ -50,4 +50,4 @@ Reusable workspace logic and project-independent operating rules. ## Project Profile - Active project profile: `profiles/fidelity/profile.md` -- Project knowledge vault: `project-knowledge/` +- Project knowledge vault: `workspaces/fidelity/project-knowledge/` diff --git a/agent-memory/maps/tooling.md b/agent-memory/maps/tooling.md index 3a362a1..b960d54 100644 --- a/agent-memory/maps/tooling.md +++ b/agent-memory/maps/tooling.md @@ -75,5 +75,5 @@ Commands, prompts, skills, workflows, and automation surfaces that make the work - Project-agnostic memory scripts: `scripts/memory/` - Current Obsidian adapter: `scripts/obsidian/` - Obsidian MCP migration plan: `agent-memory/workflows/obsidian-mcp-migration.md` -- Project knowledge vault: `project-knowledge/` +- Project knowledge vault: `workspaces/fidelity/project-knowledge/` - Agent operating memory: `agent-memory/` diff --git a/agent-memory/memory/context-maintenance.md b/agent-memory/memory/context-maintenance.md index e3fb578..b98b472 100644 --- a/agent-memory/memory/context-maintenance.md +++ b/agent-memory/memory/context-maintenance.md @@ -18,22 +18,22 @@ Keep this workspace useful as living memory instead of a pile of disconnected no - Update canonical context when a durable fact changes. - Prefer correcting stale context over appending contradictory notes. -- Keep `project-knowledge/` human-facing and project-facing: write it as an engineer maintaining shared project notes, not as an AI maintaining its own operating instructions. -- Do not place agent-only logic, output contracts, prompting tactics, evaluation heuristics, or command-behavior rules in `project-knowledge/` unless a human engineer on the project would reasonably want that exact guidance there. -- Put agent behavior, prompt logic, formatting contracts, and slash-command rules in `agent-memory/`, `.opencode/commands/`, `prompts/`, `.opencode/agents/`, or `.agents/skills/` instead of `project-knowledge/`. +- Keep `workspaces/fidelity/project-knowledge/` human-facing and project-facing: write it as an engineer maintaining shared project notes, not as an AI maintaining its own operating instructions. +- Do not place agent-only logic, output contracts, prompting tactics, evaluation heuristics, or command-behavior rules in `workspaces/fidelity/project-knowledge/` unless a human engineer on the project would reasonably want that exact guidance there. +- Put agent behavior, prompt logic, formatting contracts, and slash-command rules in `agent-memory/`, `.opencode/commands/`, `prompts/`, `.opencode/agents/`, or `.agents/skills/` instead of `workspaces/fidelity/project-knowledge/`. - If a canonical note appears in an Obsidian Base, update its frontmatter properties together with the prose content. - When changing frontmatter properties on existing canonical notes, prefer Obsidian CLI property operations through `scripts/obsidian/cli.sh` when available so YAML spacing and property formatting stay clean; fall back to direct Markdown edits only when the CLI is unavailable or the operation is unsupported. -- Keep templates under `project-knowledge/09-templates/` out of real-note Bases by filtering the template folder. +- Keep templates under `workspaces/fidelity/project-knowledge/09-templates/` out of real-note Bases by filtering the template folder. - Role mapping files should not use `type: person`; reserve `type: person` for actual people profiles. - Work-item notes should keep known `systems`, `workstreams`, `people`, and `related` properties current. - Daily notes should keep `focus`, `work-items`, and `blockers` properties current when the values are clear. - Use the smallest correct destination: - - `project-knowledge/06-daily/YYYY-MM-DD.md` for daily progress and evolving findings - - `project-knowledge/01-current/current-work.md` for near-term active work - - `project-knowledge/02-work-items/*.md` for canonical Jira-linked active work - - `project-knowledge/01-current/work-items.md` for the compact active-work summary - - `project-knowledge/03-context/` for durable project knowledge - - `project-knowledge/04-people/` for named person context + - `workspaces/fidelity/project-knowledge/06-daily/YYYY-MM-DD.md` for daily progress and evolving findings + - `workspaces/fidelity/project-knowledge/01-current/current-work.md` for near-term active work + - `workspaces/fidelity/project-knowledge/02-work-items/*.md` for canonical Jira-linked active work + - `workspaces/fidelity/project-knowledge/01-current/work-items.md` for the compact active-work summary + - `workspaces/fidelity/project-knowledge/03-context/` for durable project knowledge + - `workspaces/fidelity/project-knowledge/04-people/` for named person context - `.opencode/commands/`, `prompts/`, `.opencode/agents/`, `.agents/skills/`, `agent-memory/`, `core/`, or `scripts/` for reusable behavior rules that control how the workspace responds --- diff --git a/agent-memory/memory/operational-memory.md b/agent-memory/memory/operational-memory.md index cb3aeed..25347c4 100644 --- a/agent-memory/memory/operational-memory.md +++ b/agent-memory/memory/operational-memory.md @@ -17,12 +17,12 @@ The reusable model lives in `core/memory/operational-memory.md`. This file recor ## Memory Classes -- `daily`: dated progress and evidence in `project-knowledge/06-daily/`. -- `state`: near-term active work in `project-knowledge/01-current/`. -- `work-items`: ticket-scoped memory in `project-knowledge/02-work-items/`. -- `stable-context`: durable systems, workstreams, process, and iOS context in `project-knowledge/03-context/`. -- `people`: collaborators, stakeholders, and role mappings in `project-knowledge/04-people/`. -- `decisions`: accepted durable decisions in `project-knowledge/05-decisions/`. +- `daily`: dated progress and evidence in `workspaces/fidelity/project-knowledge/06-daily/`. +- `state`: near-term active work in `workspaces/fidelity/project-knowledge/01-current/`. +- `work-items`: ticket-scoped memory in `workspaces/fidelity/project-knowledge/02-work-items/`. +- `stable-context`: durable systems, workstreams, process, and iOS context in `workspaces/fidelity/project-knowledge/03-context/`. +- `people`: collaborators, stakeholders, and role mappings in `workspaces/fidelity/project-knowledge/04-people/`. +- `decisions`: accepted durable decisions in `workspaces/fidelity/project-knowledge/05-decisions/`. - `tooling-behavior`: agent and workspace behavior in `agent-memory/`, `.opencode/`, `prompts/`, `scripts/`, and `core/`. --- @@ -31,9 +31,9 @@ The reusable model lives in `core/memory/operational-memory.md`. This file recor Raw evidence stays outside project knowledge: -- `ai/inbox/` +- `workspaces/fidelity/inbox/` - `scripts/mattermost/generated/` - `scripts/slack/generated/` -Only curated, high-confidence project facts should be promoted into `project-knowledge/`. +Only curated, high-confidence project facts should be promoted into `workspaces/fidelity/project-knowledge/`. diff --git a/agent-memory/memory/promotion-rules.md b/agent-memory/memory/promotion-rules.md index a807c71..cf839a1 100644 --- a/agent-memory/memory/promotion-rules.md +++ b/agent-memory/memory/promotion-rules.md @@ -25,7 +25,7 @@ If a fact is ambiguous, skip it or keep it only in the daily log with appropriat ## File Selection -### Promote to `project-knowledge/06-daily/YYYY-MM-DD.md` +### Promote to `workspaces/fidelity/project-knowledge/06-daily/YYYY-MM-DD.md` Use the daily log for: @@ -37,7 +37,7 @@ Use the daily log for: Daily logs are the default destination for most promoted Mattermost facts. -### Promote to `project-knowledge/01-current/current-work.md` +### Promote to `workspaces/fidelity/project-knowledge/01-current/current-work.md` Use current state only for facts that materially affect active work over the next few days, such as: @@ -48,9 +48,9 @@ Use current state only for facts that materially affect active work over the nex Do not copy every daily update into current state. -### Promote to `project-knowledge/02-work-items/*.md` and `project-knowledge/01-current/work-items.md` +### Promote to `workspaces/fidelity/project-knowledge/02-work-items/*.md` and `workspaces/fidelity/project-knowledge/01-current/work-items.md` -Use `project-knowledge/02-work-items/*.md` for: +Use `workspaces/fidelity/project-knowledge/02-work-items/*.md` for: - explicit Jira IDs - approved or explicit story titles @@ -60,9 +60,9 @@ Use `project-knowledge/02-work-items/*.md` for: If a Jira item is likely to appear again in standups or manager updates, it belongs here. -Use `project-knowledge/01-current/work-items.md` as the compact summary of which ticket files are active. +Use `workspaces/fidelity/project-knowledge/01-current/work-items.md` as the compact summary of which ticket files are active. -### Promote to `project-knowledge/03-context/project.md` +### Promote to `workspaces/fidelity/project-knowledge/03-context/project.md` Use project context only for durable project knowledge that should survive beyond the current work window, such as: @@ -73,11 +73,11 @@ Use project context only for durable project knowledge that should survive beyon Do not promote story-specific daily movement into project context unless it changes durable project understanding. -### Promote to `project-knowledge/05-decisions/*.md` +### Promote to `workspaces/fidelity/project-knowledge/05-decisions/*.md` Use decisions only for explicit confirmed decisions with medium or long-term impact. -### Promote to `project-knowledge/04-people/index.md` and `project-knowledge/04-people/*.md` +### Promote to `workspaces/fidelity/project-knowledge/04-people/index.md` and `workspaces/fidelity/project-knowledge/04-people/*.md` Use these files when: @@ -141,5 +141,5 @@ Given Mattermost updates like: Automatic behavior should be: - add all of them to today's log if they are relevant to today's work -- promote only the currently actionable subset to `project-knowledge/01-current/current-work.md` -- keep story-specific details out of `project-knowledge/03-context/project.md` unless they reveal a durable project rule +- promote only the currently actionable subset to `workspaces/fidelity/project-knowledge/01-current/current-work.md` +- keep story-specific details out of `workspaces/fidelity/project-knowledge/03-context/project.md` unless they reveal a durable project rule diff --git a/agent-memory/workflows/obsidian-mcp-migration.md b/agent-memory/workflows/obsidian-mcp-migration.md index b25b4a6..5334ef7 100644 --- a/agent-memory/workflows/obsidian-mcp-migration.md +++ b/agent-memory/workflows/obsidian-mcp-migration.md @@ -11,7 +11,7 @@ tags: [obsidian, mcp, migration, memory] Replace the current Obsidian CLI-backed adapter path with an Obsidian MCP-first integration while preserving the workspace memory model: -- `project-knowledge/` remains the canonical source of truth +- `workspaces/fidelity/project-knowledge/` remains the canonical source of truth - `scripts/memory/` remains the stable workspace memory contract - direct Markdown edits remain the safe fallback for precise curation - Obsidian stays an adapter/navigation layer, not a second memory store @@ -66,7 +66,7 @@ The migration should change the adapter, not the memory model. - Do not move canonical memory out of Markdown - Do not encode promotion rules into the MCP layer -- Do not make `project-knowledge/` depend on Obsidian-only storage +- Do not make `workspaces/fidelity/project-knowledge/` depend on Obsidian-only storage - Do not remove direct Markdown editing as a fallback - Do not delete the current scripts until MCP coverage is validated in real use @@ -116,7 +116,7 @@ Current Phase 1 checklist: - [x] Add OpenCode MCP config using `OBSIDIAN_API_KEY` environment substitution. - [x] Export `OBSIDIAN_API_KEY` in the shell that launches OpenCode. - [x] Restart OpenCode and confirm `opencode mcp list` shows `obsidian` connected. -- [x] Validate read/search tools against `project-knowledge/` notes. +- [x] Validate read/search tools against `workspaces/fidelity/project-knowledge/` notes. - [x] Validate write/append/delete behavior on a disposable test note before touching canonical memory. - [ ] Determine whether Bases/properties/backlinks/template behavior needs to remain on the existing CLI/direct-Markdown path. @@ -208,9 +208,9 @@ Delete later only if truly unused: ### Keep -- `project-knowledge/.obsidian/` -- `project-knowledge/08-bases/*.base` -- `project-knowledge/09-templates/` +- `workspaces/fidelity/project-knowledge/.obsidian/` +- `workspaces/fidelity/project-knowledge/08-bases/*.base` +- `workspaces/fidelity/project-knowledge/09-templates/` - `scripts/memory/` ### Deprecate then remove diff --git a/agent-memory/workflows/prompt-engineering-lessons.md b/agent-memory/workflows/prompt-engineering-lessons.md index b07fd8b..a4f67b2 100644 --- a/agent-memory/workflows/prompt-engineering-lessons.md +++ b/agent-memory/workflows/prompt-engineering-lessons.md @@ -51,4 +51,4 @@ Capture reusable prompting lessons so the agent does not need to re-research the - Treat prompt improvement as eval-driven iteration: identify the exact bad output pattern, add the smallest correction, and check whether it fixes the failure without bloating the prompt. - When a correction is about workspace behavior, update the controlling prompt or command immediately so the next run benefits. -- Keep project memory clean while improving prompt quality; do not store agent heuristics in `project-knowledge/`. +- Keep project memory clean while improving prompt quality; do not store agent heuristics in `workspaces/fidelity/project-knowledge/`. diff --git a/agent-memory/workflows/workspace-architecture.md b/agent-memory/workflows/workspace-architecture.md index 1706978..fa1a381 100644 --- a/agent-memory/workflows/workspace-architecture.md +++ b/agent-memory/workflows/workspace-architecture.md @@ -11,7 +11,7 @@ related: This repository separates project knowledge from agent operation: -- `project-knowledge/` is the clean Obsidian second brain and transferable project memory. +- `workspaces/fidelity/project-knowledge/` is the clean Obsidian second brain and transferable project memory. - `agent-memory/` is the operating manual for the AI agent. - Everything else is technical runtime, reusable core, profile configuration, scripts, commands, prompts, or raw evidence. @@ -42,10 +42,10 @@ These folders are intentionally outside Obsidian memory: - `core/` stores reusable workspace logic. - `profiles/` stores project-specific profile declarations. - `scripts/` stores connectors, importers, and wrappers. -- `ai/inbox/` stores live evidence from communication sync. +- `workspaces/fidelity/inbox/` stores live evidence from communication sync. - `scripts/*/generated/` stores extracted evidence. -Runtime and generated files can be used as evidence, but durable project facts should be promoted into `project-knowledge/`. +Runtime and generated files can be used as evidence, but durable project facts should be promoted into `workspaces/fidelity/project-knowledge/`. Agent behavior rules belong in `agent-memory/`, not in the project vault. @@ -55,7 +55,7 @@ Agent behavior rules belong in `agent-memory/`, not in the project vault. Use `scripts/memory/` as the platform-agnostic interface to canonical memory. -Obsidian is the current visual and CLI-backed adapter, but the source of truth remains Markdown under `project-knowledge/`. +Obsidian is the current visual and CLI-backed adapter, but the source of truth remains Markdown under `workspaces/fidelity/project-knowledge/`. - Agents use `scripts/memory/memory.sh create` when a new typed note is needed. - Agents use `scripts/memory/memory.sh search` or direct Markdown reads for context lookup. @@ -66,6 +66,6 @@ Obsidian is the current visual and CLI-backed adapter, but the source of truth r ## Memory Rule -Promoted memory lives in `project-knowledge/`. +Promoted memory lives in `workspaces/fidelity/project-knowledge/`. Raw inbox and generated connector evidence stays outside the vault until the agent promotes durable facts. diff --git a/agent-memory/workflows/workspace-model.md b/agent-memory/workflows/workspace-model.md index fe63f10..6cec846 100644 --- a/agent-memory/workflows/workspace-model.md +++ b/agent-memory/workflows/workspace-model.md @@ -15,7 +15,7 @@ It separates reusable tooling, project knowledge, and agent operating memory: - `core/` contains reusable project-independent operating rules - `profiles//` contains project-specific configuration and assumptions -- `project-knowledge/` contains transferable project documentation and current work memory +- `workspaces/fidelity/project-knowledge/` contains transferable project documentation and current work memory - `agent-memory/` contains agent behavior, learning, promotion, integration, and verification rules --- @@ -48,14 +48,14 @@ When the user corrects a recurring behavior, the workspace should update the fil - `core/` for reusable project-independent behavior - `profiles//` for project-specific assumptions -- `project-knowledge/.obsidian/` only for portable Obsidian configuration, not project memory content +- `workspaces/fidelity/project-knowledge/.obsidian/` only for portable Obsidian configuration, not project memory content - `scripts/memory/` for project-agnostic memory access, creation, search, Base queries, and health checks - `scripts/obsidian/` for the current Obsidian adapter, not for core memory semantics - `.agents/workflows/` for slash commands (with `.opencode/commands/` for compatibility) - `prompts/` for reusable drafting templates - `.agents/rules/` and `AGENTS.md` for default agent behavior - `.agents/skills/` for specialized workflows. Do not mirror into `.opencode/skills/`; OpenCode discovers `.agents/skills/` directly. -- `project-knowledge/00-start/` and `project-knowledge/03-context/process/` for project-facing onboarding and process rules +- `workspaces/fidelity/project-knowledge/00-start/` and `workspaces/fidelity/project-knowledge/03-context/process/` for project-facing onboarding and process rules - `agent-memory/` for agent-specific behavior, learning, promotion, verification, and self-maintenance rules Daily logs can preserve evidence, but they should not be the only place where a reusable behavior rule lives. diff --git a/core/README.md b/core/README.md index 9b3ae0c..788bfc5 100644 --- a/core/README.md +++ b/core/README.md @@ -51,7 +51,7 @@ See `core/memory/operational-memory.md` for the detailed rules. Integrations extract evidence. They do not decide what becomes memory. -- live communication connectors write recent evidence to `ai/inbox/` +- live communication connectors write recent evidence to `workspaces//inbox/` - historical archive connectors write selected evidence to `scripts//generated/` - the agent promotes only high-confidence, project-relevant facts into memory diff --git a/core/integrations/communication-model.md b/core/integrations/communication-model.md index 6a3b121..30a76c7 100644 --- a/core/integrations/communication-model.md +++ b/core/integrations/communication-model.md @@ -18,7 +18,7 @@ Expected behavior: - fetch recent messages from configured channels or conversations - support a forced refresh for "latest message" prompts -- write the latest evidence to `ai/inbox/` +- write the latest evidence to `workspaces//inbox/` - write status separately from project memory - fail safely without updating logs, state, or context diff --git a/core/integrations/obsidian-model.md b/core/integrations/obsidian-model.md index fbe4cfa..33e8932 100644 --- a/core/integrations/obsidian-model.md +++ b/core/integrations/obsidian-model.md @@ -46,11 +46,11 @@ Technical runtime remains outside the vault: - `scripts/` - `core/` - `profiles/` -- `ai/inbox/` +- `workspaces//inbox/` - `scripts/*/generated/` - archives and local virtual environments -Communication evidence may exist under `ai/inbox/` or connector `generated/` folders, but promoted memory belongs in `project-knowledge/`. +Communication evidence may exist under `workspaces//inbox/` or connector `generated/` folders, but promoted memory belongs in the profile's project knowledge vault. --- @@ -76,7 +76,7 @@ Do not version local runtime state: Recommended graph and search exclusions: -- `ai/inbox/` +- `workspaces//inbox/` - `archives/` - `scripts/**/generated/` - `scripts/**/.venv/` diff --git a/docs/architecture.md b/docs/architecture.md index f352597..d850ddc 100644 --- a/docs/architecture.md +++ b/docs/architecture.md @@ -26,8 +26,8 @@ AI clients and agent workflows |---|---|---| | `core/` | Reusable architecture and operating model | yes, for workspace design | | `profiles//` | Project-specific configuration and assumptions | yes, for profile config | -| `project-knowledge/` | Human-readable project memory for the active profile | yes, for project facts | -| `ai/inbox/` | Raw evidence captured from connectors | no | +| `workspaces//project-knowledge/` | Human-readable project memory for the active profile | yes, for project facts | +| `workspaces//inbox/` | Raw evidence captured from connectors | no | | `.aiw/indexes/` | Rebuildable search indexes | no | | `.aiw/runtime/` | PID files, logs, local service state | no | | `scripts/aiw/` | Profile-aware service/index utilities | code source | @@ -36,9 +36,9 @@ AI clients and agent workflows ## Current Repository Shape -The current repo still keeps the first real profile's vault at root-level `project-knowledge/`. That is acceptable during migration, but reusable code should resolve paths from `profiles//workspace.json` rather than hardcoding Fidelity-specific locations. +Profile-owned data lives under `workspaces//`. Reusable code must resolve paths from `profiles//workspace.json` rather than hardcoding profile-specific locations. -Target direction: +Current data layout: ```text profiles//workspace.json # where profile data lives diff --git a/docs/profiles.md b/docs/profiles.md index efbe768..0d010d0 100644 --- a/docs/profiles.md +++ b/docs/profiles.md @@ -46,14 +46,14 @@ Human-readable summary for agents and developers: ### `workspace.json` -Profile path configuration. Initial versions can point to current paths: +Profile path configuration: ```json { "profile": "example", "display_name": "Example Project", - "knowledge_dir": "project-knowledge", - "inbox_dir": "ai/inbox", + "knowledge_dir": "workspaces/example/project-knowledge", + "inbox_dir": "workspaces/example/inbox", "index_dir": ".aiw/indexes/example" } ``` diff --git a/docs/security-and-privacy.md b/docs/security-and-privacy.md index a8e0b9e..e97fcd7 100644 --- a/docs/security-and-privacy.md +++ b/docs/security-and-privacy.md @@ -18,7 +18,7 @@ Examples of local-only data: ```text .aiw/runtime/ .aiw/indexes/ -ai/inbox/mattermost-mirror/ +workspaces/*/inbox/mattermost-mirror/ scripts/*/.env ``` diff --git a/profiles/fidelity/profile.md b/profiles/fidelity/profile.md index 18c889e..c4cfdae 100644 --- a/profiles/fidelity/profile.md +++ b/profiles/fidelity/profile.md @@ -20,7 +20,7 @@ It keeps Fidelity-specific context, integrations, commands, and skills separate ## Communication Sources - Live communication: Mattermost -- Preferred local Mattermost evidence source: proxy mirror under `ai/inbox/mattermost-mirror/` when present; legacy `ai/inbox/mattermost-latest.md` and `scripts/mattermost/generated/` are fallback evidence. +- Preferred local Mattermost evidence source: proxy mirror under `workspaces/fidelity/inbox/mattermost-mirror/` when present; legacy `workspaces/fidelity/inbox/mattermost-latest.md` and `scripts/mattermost/generated/` are fallback evidence. - Historical archive: Slack export - Preferred channel naming: readable channel names instead of raw IDs - Current high-signal channel: `fidelity-preguntas` @@ -47,16 +47,16 @@ Generic variables should be preferred for new setup: ## Work System - Work items are Jira-linked when available -- Active ticket memory lives in `project-knowledge/02-work-items/` -- Compact active summary lives in `project-knowledge/01-current/work-items.md` +- Active ticket memory lives in `workspaces/fidelity/project-knowledge/02-work-items/` +- Compact active summary lives in `workspaces/fidelity/project-knowledge/01-current/work-items.md` - Jira IDs and approved titles should remain visible for standups and manager updates --- ## Stakeholders -- Current manager mapping lives in `project-knowledge/04-people/manager.md` -- Person-specific collaboration context lives in `project-knowledge/04-people/` +- Current manager mapping lives in `workspaces/fidelity/project-knowledge/04-people/manager.md` +- Person-specific collaboration context lives in `workspaces/fidelity/project-knowledge/04-people/` - Manager-facing messages should be concise, explicit, and natural professional US English --- @@ -65,14 +65,14 @@ Generic variables should be preferred for new setup: Core Fidelity context remains in: -- `project-knowledge/03-context/project.md` -- `project-knowledge/03-context/systems/` -- `project-knowledge/03-context/workstreams/` -- `project-knowledge/03-context/ios/` -- `project-knowledge/03-context/process/` -- `project-knowledge/05-decisions/` +- `workspaces/fidelity/project-knowledge/03-context/project.md` +- `workspaces/fidelity/project-knowledge/03-context/systems/` +- `workspaces/fidelity/project-knowledge/03-context/workstreams/` +- `workspaces/fidelity/project-knowledge/03-context/ios/` +- `workspaces/fidelity/project-knowledge/03-context/process/` +- `workspaces/fidelity/project-knowledge/05-decisions/` -Raw communication evidence remains outside the project knowledge vault under `ai/inbox/` and generated connector folders. +Raw communication evidence remains outside the project knowledge vault under `workspaces/fidelity/inbox/` and generated connector folders. Memory access should go through the project-agnostic `scripts/memory/` interface for note creation, search, Base queries, and health checks. Obsidian is the current visual and CLI adapter, not a Fidelity-specific dependency. diff --git a/profiles/fidelity/workspace.json b/profiles/fidelity/workspace.json index ebd4581..0742741 100644 --- a/profiles/fidelity/workspace.json +++ b/profiles/fidelity/workspace.json @@ -1,8 +1,8 @@ { "profile": "fidelity", "display_name": "Fidelity", - "description": "Current Fidelity AI Workspace profile. Paths intentionally point to the existing root-level vault and inbox until the data migration phase.", - "knowledge_dir": "project-knowledge", - "inbox_dir": "ai/inbox", + "description": "Current Fidelity AI Workspace profile with isolated profile-owned data paths.", + "knowledge_dir": "workspaces/fidelity/project-knowledge", + "inbox_dir": "workspaces/fidelity/inbox", "index_dir": ".aiw/indexes/fidelity" } diff --git a/prompts/manager-update.md b/prompts/manager-update.md index 402f3e2..7df4cd1 100644 --- a/prompts/manager-update.md +++ b/prompts/manager-update.md @@ -1,6 +1,6 @@ # Manager Update Prompt -Use the current state, today's daily note, `project-knowledge/01-current/work-items.md`, the relevant files under `project-knowledge/02-work-items/`, `project-knowledge/03-context/project.md`, `project-knowledge/03-context/process/communication.md`, `project-knowledge/04-people/manager.md`, and `project-knowledge/04-people/index.md`. +Use the current state, today's daily note, `workspaces/fidelity/project-knowledge/01-current/work-items.md`, the relevant files under `workspaces/fidelity/project-knowledge/02-work-items/`, `workspaces/fidelity/project-knowledge/03-context/project.md`, `workspaces/fidelity/project-knowledge/03-context/process/communication.md`, `workspaces/fidelity/project-knowledge/04-people/manager.md`, and `workspaces/fidelity/project-knowledge/04-people/index.md`. Draft a Mattermost update for the current manager or stakeholder in concise, natural, professional US English. diff --git a/prompts/standup.md b/prompts/standup.md index 4b108d9..03c4b6e 100644 --- a/prompts/standup.md +++ b/prompts/standup.md @@ -2,7 +2,7 @@ > **Format note (2026-05-13):** Mattermost requires a visible blank line before section headers like `Today:` and `Blockers:` for proper rendering. Always emit two newline characters between the previous bullet/list item and the next section header; never place `Today:` immediately after a list item. -Use `project-knowledge/01-current/current-work.md`, `project-knowledge/01-current/work-items.md`, the detailed files referenced from that active-work summary, `project-knowledge/03-context/project.md`, `project-knowledge/03-context/workstreams/index.md`, `project-knowledge/03-context/process/communication.md`, `project-knowledge/04-people/manager.md`, the previous workday communication context, today's daily note if present, and the latest available communication context. +Use `workspaces/fidelity/project-knowledge/01-current/current-work.md`, `workspaces/fidelity/project-knowledge/01-current/work-items.md`, the detailed files referenced from that active-work summary, `workspaces/fidelity/project-knowledge/03-context/project.md`, `workspaces/fidelity/project-knowledge/03-context/workstreams/index.md`, `workspaces/fidelity/project-knowledge/03-context/process/communication.md`, `workspaces/fidelity/project-knowledge/04-people/manager.md`, the previous workday communication context, today's daily note if present, and the latest available communication context. Generate a standup update for the active project profile. diff --git a/scripts/aiw/README.md b/scripts/aiw/README.md index 41fb214..0dfb3e5 100644 --- a/scripts/aiw/README.md +++ b/scripts/aiw/README.md @@ -56,8 +56,8 @@ Current fields: ```json { - "knowledge_dir": "project-knowledge", - "inbox_dir": "ai/inbox", + "knowledge_dir": "workspaces/fidelity/project-knowledge", + "inbox_dir": "workspaces/fidelity/inbox", "index_dir": ".aiw/indexes/fidelity" } ``` diff --git a/scripts/aiw/profile.py b/scripts/aiw/profile.py index feaa6a9..7634d2f 100644 --- a/scripts/aiw/profile.py +++ b/scripts/aiw/profile.py @@ -17,8 +17,8 @@ ROOT = Path(__file__).resolve().parents[2] DEFAULT_WORKSPACE = { - "knowledge_dir": "project-knowledge", - "inbox_dir": "ai/inbox", + "knowledge_dir": "workspaces/{profile}/project-knowledge", + "inbox_dir": "workspaces/{profile}/inbox", "index_dir": ".aiw/indexes/{profile}", } @@ -52,12 +52,12 @@ def resolve_path(raw: str | None, *, profile: str, root: Path | None = None, fal def knowledge_dir(profile: str, root: Path | None = None) -> Path: config = load_workspace_config(profile, root=root) - return resolve_path(config.get("knowledge_dir"), profile=profile, root=root, fallback="project-knowledge") + return resolve_path(config.get("knowledge_dir"), profile=profile, root=root, fallback="workspaces/{profile}/project-knowledge") def inbox_dir(profile: str, root: Path | None = None) -> Path: config = load_workspace_config(profile, root=root) - return resolve_path(config.get("inbox_dir"), profile=profile, root=root, fallback="ai/inbox") + return resolve_path(config.get("inbox_dir"), profile=profile, root=root, fallback="workspaces/{profile}/inbox") def index_dir(profile: str, root: Path | None = None) -> Path: diff --git a/scripts/aiw/test_indexer.py b/scripts/aiw/test_indexer.py index d18313c..c731edd 100644 --- a/scripts/aiw/test_indexer.py +++ b/scripts/aiw/test_indexer.py @@ -23,8 +23,8 @@ class IndexerTests(unittest.TestCase): def test_build_skips_templates_and_searches_canonical_files(self) -> None: with tempfile.TemporaryDirectory() as tmp: root = Path(tmp) - real = root / "project-knowledge" / "03-context" / "project.md" - template = root / "project-knowledge" / "09-templates" / "daily.md" + real = root / "workspaces" / "fidelity" / "project-knowledge" / "03-context" / "project.md" + template = root / "workspaces" / "fidelity" / "project-knowledge" / "09-templates" / "daily.md" real.parent.mkdir(parents=True) template.parent.mkdir(parents=True) real.write_text("# XFlow\nDismissal lifecycle context", encoding="utf-8") @@ -48,7 +48,7 @@ class IndexerTests(unittest.TestCase): self.assertIn(".aiw/indexes/fidelity/project-knowledge.jsonl", result["index_path"]) def test_cli_search_payload_is_json_serializable(self) -> None: - payload = {"matches": [{"path": "project-knowledge/01-current/current-work.md", "score": 1.0}]} + payload = {"matches": [{"path": "workspaces/fidelity/project-knowledge/01-current/current-work.md", "score": 1.0}]} self.assertIsInstance(json.dumps(payload), str) def test_build_uses_workspace_json_paths(self) -> None: diff --git a/scripts/aiw/test_profile.py b/scripts/aiw/test_profile.py index 6442ef8..46340fb 100644 --- a/scripts/aiw/test_profile.py +++ b/scripts/aiw/test_profile.py @@ -34,12 +34,12 @@ class ProfileTests(unittest.TestCase): self.assertEqual(profile.inbox_dir("demo", root=root), root / "workspaces" / "demo" / "inbox") self.assertEqual(profile.index_dir("demo", root=root), root / ".aiw" / "indexes" / "demo") - def test_defaults_preserve_current_root_paths(self) -> None: + def test_defaults_use_isolated_workspace_paths(self) -> None: with tempfile.TemporaryDirectory() as tmp: root = Path(tmp) - self.assertEqual(profile.knowledge_dir("missing", root=root), root / "project-knowledge") - self.assertEqual(profile.inbox_dir("missing", root=root), root / "ai" / "inbox") + self.assertEqual(profile.knowledge_dir("missing", root=root), root / "workspaces" / "missing" / "project-knowledge") + self.assertEqual(profile.inbox_dir("missing", root=root), root / "workspaces" / "missing" / "inbox") self.assertEqual(profile.index_dir("missing", root=root), root / ".aiw" / "indexes" / "missing") def test_relative_to_root_handles_external_paths(self) -> None: diff --git a/scripts/mattermost-proxy/read-context.py b/scripts/mattermost-proxy/read-context.py index 75c90d9..61f460c 100755 --- a/scripts/mattermost-proxy/read-context.py +++ b/scripts/mattermost-proxy/read-context.py @@ -1,7 +1,7 @@ #!/usr/bin/env python3 """Read local Mattermost mirror evidence for agent prompts. -The proxy mirror under ai/inbox/mattermost-mirror is the preferred Mattermost +The proxy mirror under the active profile inbox is the preferred Mattermost evidence source when present. This reader gives commands a stable way to load a small focused view and fall back to the older sync artifacts when the mirror is not available. diff --git a/scripts/mcp/aiw-context-mcp/test_server.py b/scripts/mcp/aiw-context-mcp/test_server.py index 1bb738e..0f3d1b5 100644 --- a/scripts/mcp/aiw-context-mcp/test_server.py +++ b/scripts/mcp/aiw-context-mcp/test_server.py @@ -56,7 +56,7 @@ class ContextMCPTests(unittest.TestCase): with tempfile.TemporaryDirectory() as tmp: root = Path(tmp) profile = root / "profiles" / "fidelity" / "profile.md" - current = root / "project-knowledge" / "01-current" / "current-work.md" + current = root / "workspaces" / "fidelity" / "project-knowledge" / "01-current" / "current-work.md" profile.parent.mkdir(parents=True) current.parent.mkdir(parents=True) profile.write_text("# Fidelity", encoding="utf-8") @@ -79,7 +79,7 @@ class ContextMCPTests(unittest.TestCase): def test_communication_latest_reads_bounded_records(self) -> None: with tempfile.TemporaryDirectory() as tmp: root = Path(tmp) - latest = root / "ai" / "inbox" / "mattermost-mirror" / "latest.jsonl" + latest = root / "workspaces" / "fidelity" / "inbox" / "mattermost-mirror" / "latest.jsonl" latest.parent.mkdir(parents=True) for index in range(3): latest.write_text("", encoding="utf-8") if index == 0 else None @@ -96,7 +96,7 @@ class ContextMCPTests(unittest.TestCase): def test_communication_latest_filters_to_profile_channels_by_default(self) -> None: with tempfile.TemporaryDirectory() as tmp: root = Path(tmp) - latest = root / "ai" / "inbox" / "mattermost-mirror" / "latest.jsonl" + latest = root / "workspaces" / "fidelity" / "inbox" / "mattermost-mirror" / "latest.jsonl" profile_config = root / "profiles" / "fidelity" / "context-sources.json" latest.parent.mkdir(parents=True) profile_config.parent.mkdir(parents=True) @@ -122,7 +122,7 @@ class ContextMCPTests(unittest.TestCase): def test_communication_latest_can_include_all_channels(self) -> None: with tempfile.TemporaryDirectory() as tmp: root = Path(tmp) - latest = root / "ai" / "inbox" / "mattermost-mirror" / "latest.jsonl" + latest = root / "workspaces" / "fidelity" / "inbox" / "mattermost-mirror" / "latest.jsonl" profile_config = root / "profiles" / "fidelity" / "context-sources.json" latest.parent.mkdir(parents=True) profile_config.parent.mkdir(parents=True) @@ -146,8 +146,8 @@ class ContextMCPTests(unittest.TestCase): def test_project_search_skips_templates(self) -> None: with tempfile.TemporaryDirectory() as tmp: root = Path(tmp) - real = root / "project-knowledge" / "03-context" / "project.md" - template = root / "project-knowledge" / "09-templates" / "daily.md" + real = root / "workspaces" / "fidelity" / "project-knowledge" / "03-context" / "project.md" + template = root / "workspaces" / "fidelity" / "project-knowledge" / "09-templates" / "daily.md" real.parent.mkdir(parents=True) template.parent.mkdir(parents=True) real.write_text("Important XFlow context", encoding="utf-8") @@ -167,7 +167,7 @@ class ContextMCPTests(unittest.TestCase): index.parent.mkdir(parents=True) index.write_text(json.dumps({ "chunk_id": "abc", - "path": "project-knowledge/03-context/project.md", + "path": "workspaces/fidelity/project-knowledge/03-context/project.md", "heading": "XFlow", "text": "Dismissal lifecycle sequencing for XFlow", "mtime": 1.0, @@ -185,7 +185,7 @@ class ContextMCPTests(unittest.TestCase): def test_memory_hybrid_search_falls_back_without_index(self) -> None: with tempfile.TemporaryDirectory() as tmp: root = Path(tmp) - real = root / "project-knowledge" / "03-context" / "project.md" + real = root / "workspaces" / "fidelity" / "project-knowledge" / "03-context" / "project.md" real.parent.mkdir(parents=True) real.write_text("Important XFlow context", encoding="utf-8") diff --git a/workflows/opencode-entry.md b/workflows/opencode-entry.md index cb251d9..9bfe68d 100644 --- a/workflows/opencode-entry.md +++ b/workflows/opencode-entry.md @@ -34,7 +34,7 @@ Use OpenCode as the daily AI entry point for this workspace without losing proje - Shared workflow/rule content can stay centralized in `.agents/` while OpenCode keeps using `.opencode/`. - The main context command reads the reusable `core/`, active profile, stable workspace files, and today's log. - Stable context is split by systems, workstreams, process, people, and decisions so the agent can pull the right layer instead of overloading one project file. -- Live communication context can be refreshed into `ai/inbox/` using the configured connector. +- Live communication context can be refreshed into the active profile inbox using the configured connector. - Direct prompts are also treated as memory opportunities, so the agent can update workspace context during normal conversation. - Daily updates go back into the workspace, so later prompts inherit better context. - The local compaction plugin helps preserve the most important workspace context during long sessions. diff --git a/ai/inbox/.gitkeep b/workspaces/fidelity/inbox/.gitkeep similarity index 100% rename from ai/inbox/.gitkeep rename to workspaces/fidelity/inbox/.gitkeep diff --git a/ai/inbox/README.md b/workspaces/fidelity/inbox/README.md similarity index 61% rename from ai/inbox/README.md rename to workspaces/fidelity/inbox/README.md index ef73257..80f2051 100644 --- a/ai/inbox/README.md +++ b/workspaces/fidelity/inbox/README.md @@ -7,6 +7,6 @@ Recommended usage: - `mattermost-mirror/` is the preferred local Mattermost evidence source when present. It stores `latest.*`, `by-date/`, `channels/`, `threads/`, and `refs/` views from the local proxy mirror. - `mattermost-latest.md` contains the legacy most recent sync capture - timestamped snapshots can be stored here if needed -- durable facts should be promoted into `project-knowledge/06-daily/`, `project-knowledge/01-current/`, `project-knowledge/02-work-items/`, `project-knowledge/03-context/`, `project-knowledge/04-people/`, or `project-knowledge/05-decisions/` +- durable facts should be promoted into `workspaces/fidelity/project-knowledge/06-daily/`, `workspaces/fidelity/project-knowledge/01-current/`, `workspaces/fidelity/project-knowledge/02-work-items/`, `workspaces/fidelity/project-knowledge/03-context/`, `workspaces/fidelity/project-knowledge/04-people/`, or `workspaces/fidelity/project-knowledge/05-decisions/` This directory is intentionally treated as an inbox, not as the final source of truth. diff --git a/ai/discourse-archive/charles-session-format.md b/workspaces/fidelity/inbox/discourse-archive/charles-session-format.md similarity index 100% rename from ai/discourse-archive/charles-session-format.md rename to workspaces/fidelity/inbox/discourse-archive/charles-session-format.md diff --git a/ai/discourse-archive/copilot-prompt-charles-discourse-archiver.md b/workspaces/fidelity/inbox/discourse-archive/copilot-prompt-charles-discourse-archiver.md similarity index 100% rename from ai/discourse-archive/copilot-prompt-charles-discourse-archiver.md rename to workspaces/fidelity/inbox/discourse-archive/copilot-prompt-charles-discourse-archiver.md diff --git a/ai/inbox/mattermost-mirror/.gitkeep b/workspaces/fidelity/inbox/mattermost-mirror/.gitkeep similarity index 100% rename from ai/inbox/mattermost-mirror/.gitkeep rename to workspaces/fidelity/inbox/mattermost-mirror/.gitkeep diff --git a/ai/inbox/photos/.gitkeep b/workspaces/fidelity/inbox/photos/.gitkeep similarity index 100% rename from ai/inbox/photos/.gitkeep rename to workspaces/fidelity/inbox/photos/.gitkeep diff --git a/project-knowledge/.obsidian/app.json b/workspaces/fidelity/project-knowledge/.obsidian/app.json similarity index 100% rename from project-knowledge/.obsidian/app.json rename to workspaces/fidelity/project-knowledge/.obsidian/app.json diff --git a/project-knowledge/.obsidian/appearance.json b/workspaces/fidelity/project-knowledge/.obsidian/appearance.json similarity index 100% rename from project-knowledge/.obsidian/appearance.json rename to workspaces/fidelity/project-knowledge/.obsidian/appearance.json diff --git a/project-knowledge/.obsidian/bookmarks.json b/workspaces/fidelity/project-knowledge/.obsidian/bookmarks.json similarity index 100% rename from project-knowledge/.obsidian/bookmarks.json rename to workspaces/fidelity/project-knowledge/.obsidian/bookmarks.json diff --git a/project-knowledge/.obsidian/core-plugins.json b/workspaces/fidelity/project-knowledge/.obsidian/core-plugins.json similarity index 100% rename from project-knowledge/.obsidian/core-plugins.json rename to workspaces/fidelity/project-knowledge/.obsidian/core-plugins.json diff --git a/project-knowledge/.obsidian/daily-notes.json b/workspaces/fidelity/project-knowledge/.obsidian/daily-notes.json similarity index 100% rename from project-knowledge/.obsidian/daily-notes.json rename to workspaces/fidelity/project-knowledge/.obsidian/daily-notes.json diff --git a/project-knowledge/.obsidian/templates.json b/workspaces/fidelity/project-knowledge/.obsidian/templates.json similarity index 100% rename from project-knowledge/.obsidian/templates.json rename to workspaces/fidelity/project-knowledge/.obsidian/templates.json diff --git a/project-knowledge/.obsidian/types.json b/workspaces/fidelity/project-knowledge/.obsidian/types.json similarity index 100% rename from project-knowledge/.obsidian/types.json rename to workspaces/fidelity/project-knowledge/.obsidian/types.json diff --git a/project-knowledge/00-start/glossary.md b/workspaces/fidelity/project-knowledge/00-start/glossary.md similarity index 80% rename from project-knowledge/00-start/glossary.md rename to workspaces/fidelity/project-knowledge/00-start/glossary.md index a66f063..316323a 100644 --- a/project-knowledge/00-start/glossary.md +++ b/workspaces/fidelity/project-knowledge/00-start/glossary.md @@ -14,14 +14,14 @@ Common terms used in the Fidelity project knowledge vault. ## Workspace Terms -- `project-knowledge`: this Obsidian vault; transferable Fidelity project knowledge. +- `workspaces/fidelity/project-knowledge`: this Obsidian vault; transferable Fidelity project knowledge. - `agent-memory`: agent operating rules outside this vault. - `operational memory`: curated file-based memory that helps future sessions reason accurately. -- `daily log`: same-day evidence and evolving findings in `project-knowledge/06-daily/`. -- `state`: near-term active work and priorities in `project-knowledge/01-current/`. -- `work item`: canonical memory for a ticket, story, task, or investigation in `project-knowledge/02-work-items/`. -- `stable context`: durable project knowledge under `project-knowledge/03-context/`. -- `inbox`: raw or lightly processed communication evidence under `ai/inbox/`. +- `daily log`: same-day evidence and evolving findings in `workspaces/fidelity/project-knowledge/06-daily/`. +- `state`: near-term active work and priorities in `workspaces/fidelity/project-knowledge/01-current/`. +- `work item`: canonical memory for a ticket, story, task, or investigation in `workspaces/fidelity/project-knowledge/02-work-items/`. +- `stable context`: durable project knowledge under `workspaces/fidelity/project-knowledge/03-context/`. +- `inbox`: raw or lightly processed communication evidence under `workspaces/fidelity/inbox/`. - `promotion`: moving high-confidence evidence into canonical memory. - `memory interface`: project-agnostic scripts under `scripts/memory/` that create, search, query, and validate project knowledge without coupling the workspace to Obsidian. diff --git a/project-knowledge/00-start/onboarding.md b/workspaces/fidelity/project-knowledge/00-start/onboarding.md similarity index 80% rename from project-knowledge/00-start/onboarding.md rename to workspaces/fidelity/project-knowledge/00-start/onboarding.md index 4c14262..fc7a3c1 100644 --- a/project-knowledge/00-start/onboarding.md +++ b/workspaces/fidelity/project-knowledge/00-start/onboarding.md @@ -84,10 +84,10 @@ Goal: ## Rules Of Thumb -- `project-knowledge/06-daily/` is dated work evidence. -- `project-knowledge/01-current/` is what matters now. -- `project-knowledge/02-work-items/` is canonical ticket memory. -- `project-knowledge/03-context/` is durable project knowledge. -- `project-knowledge/04-people/` is collaborator and role memory. -- `project-knowledge/05-decisions/` is durable decision history. -- `ai/inbox/` and generated files are raw evidence, not promoted memory. +- `workspaces/fidelity/project-knowledge/06-daily/` is dated work evidence. +- `workspaces/fidelity/project-knowledge/01-current/` is what matters now. +- `workspaces/fidelity/project-knowledge/02-work-items/` is canonical ticket memory. +- `workspaces/fidelity/project-knowledge/03-context/` is durable project knowledge. +- `workspaces/fidelity/project-knowledge/04-people/` is collaborator and role memory. +- `workspaces/fidelity/project-knowledge/05-decisions/` is durable decision history. +- `workspaces/fidelity/inbox/` and generated files are raw evidence, not promoted memory. diff --git a/project-knowledge/00-start/start-here.md b/workspaces/fidelity/project-knowledge/00-start/start-here.md similarity index 92% rename from project-knowledge/00-start/start-here.md rename to workspaces/fidelity/project-knowledge/00-start/start-here.md index da73e89..71247fd 100644 --- a/project-knowledge/00-start/start-here.md +++ b/workspaces/fidelity/project-knowledge/00-start/start-here.md @@ -10,7 +10,7 @@ tags: # Start Here -Use this note as the entry point when opening `project-knowledge/` as the Obsidian vault. +Use this note as the entry point when opening `workspaces/fidelity/project-knowledge/` as the Obsidian vault. This vault is the Fidelity project second brain. It is meant to be useful to the engineer, a new teammate, or an AI agent consuming project context. Agent implementation rules live outside this vault in `agent-memory/`. @@ -75,7 +75,7 @@ Read these first: Daily notes live in: ```text -project-knowledge/06-daily/ +workspaces/fidelity/project-knowledge/06-daily/ ``` Use the latest dated note for recent evidence, but promote durable facts into `01-current/`, `02-work-items/`, or `03-context/` when they should survive beyond the day. @@ -86,7 +86,7 @@ Use the latest dated note for recent evidence, but promote durable facts into `0 Inbox and generated files are evidence, not durable memory by default. -- `ai/inbox/` +- `workspaces/fidelity/inbox/` - `scripts/mattermost/generated/` - `scripts/slack/generated/` diff --git a/project-knowledge/01-current/current-work.md b/workspaces/fidelity/project-knowledge/01-current/current-work.md similarity index 99% rename from project-knowledge/01-current/current-work.md rename to workspaces/fidelity/project-knowledge/01-current/current-work.md index 77f5489..8fa1660 100644 --- a/project-knowledge/01-current/current-work.md +++ b/workspaces/fidelity/project-knowledge/01-current/current-work.md @@ -15,7 +15,7 @@ tags: - Track REST migration findings - Debug Discourse and AO issues - Prepare better updates for the current manager or stakeholder through Mattermost -- Follow up on active tickets through `project-knowledge/02-work-items/`, especially branch maintenance for `PDIAP-15838` and implementation planning for `PDIAP-15836` / `PDIAP-12284` +- Follow up on active tickets through `workspaces/fidelity/project-knowledge/02-work-items/`, especially branch maintenance for `PDIAP-15838` and implementation planning for `PDIAP-15836` / `PDIAP-12284` - `PDIAP-15765` is done and `PDIAP-14859` is also done - `PDIAP-15838` is Done from a Jira/status perspective after external review feedback was addressed, but its draft PR must remain unmerged and kept current with `main` until REST backend production readiness and the required REST-toggle consumer validation window allow merge - `PDIAP-15836` has moved to In Progress. David found a possible minimal dismissal fix path that would not require removing `UIHostingController`, but Jeff directed David to do the `PDIAP-15836` dismissal/lifecycle work and `PDIAP-12284` UIKit-removal work in the same branch because both are disruptive enough to require consumer testing. diff --git a/project-knowledge/01-current/work-items.md b/workspaces/fidelity/project-knowledge/01-current/work-items.md similarity index 84% rename from project-knowledge/01-current/work-items.md rename to workspaces/fidelity/project-knowledge/01-current/work-items.md index d986ce2..1b9735c 100644 --- a/project-knowledge/01-current/work-items.md +++ b/workspaces/fidelity/project-knowledge/01-current/work-items.md @@ -12,44 +12,44 @@ tags: Use this file as the quick summary for active Jira-linked work. -Detailed ticket memory now lives under `project-knowledge/02-work-items/`. +Detailed ticket memory now lives under `workspaces/fidelity/project-knowledge/02-work-items/`. Update the per-ticket files first when scope, status, sequencing, or communication framing changes materially. ## Current - `PDIAP-15838` - Remove Apollo for iOS - Detail: `project-knowledge/02-work-items/pdiap-15838.md` + Detail: `workspaces/fidelity/project-knowledge/02-work-items/pdiap-15838.md` Current note: ticket moved to Done after external review feedback was addressed, but the draft PR stays unmerged. Keep the branch up to date with `main` until REST backend is live in production and REST toggles have been enabled for consumers for the required validation window; expected merge timing is at least 30 days out. May 13 follow-up validation succeeded on iOS after Raj enabled the production LaunchDarkly toggle for the specific production test user's MID. - `PDIAP-15836` - Modernize dismissal delegate lifecycle sequencing for pure SwiftUI environment - Detail: `project-knowledge/02-work-items/pdiap-15836.md` + Detail: `workspaces/fidelity/project-knowledge/02-work-items/pdiap-15836.md` Current note: moved to In Progress on May 7. David found a possible minimal dismissal fix path that would not require removing `UIHostingController`, but Jeff directed David to do the dismissal/lifecycle work and `PDIAP-12284` UIKit-removal work in the same branch because both changes require consumer testing. A May 11 simulator log review suggests the tested SwiftUI-host path fires delegate/session-clear callbacks only after host-disappearance confirmation, but broader branch and consumer validation are still needed. - `PDIAP-12284` - Remove UIKit wrapping from XFlow - Detail: `project-knowledge/02-work-items/pdiap-12284.md` + Detail: `workspaces/fidelity/project-knowledge/02-work-items/pdiap-12284.md` Current note: moved to In Progress on May 12 and should be handled with `PDIAP-15836` in the same branch. Quy confirmed both stories can remain In Progress together, so no immediate Jira restructuring is required. Current implementation direction is to avoid Fid4 per-flow host-mode mapping and instead evaluate XFlowViewMaker-owned global host-mode resolution, with SwiftUI as default and `UIHostingController` only as an explicit temporary fallback. May 12 implementation pass resolved earlier shape concerns with neutral enum names, `iOS-XflowUIKitHostEnabled`, SwiftUI default semantics, and `AnyView` removed from builder internals. Fid4 now compiles after manual dependency/build handling. May 13 AccountLink runtime validation looks good for both SwiftUI-default and forced UIKit-host paths. May 14 SampleApp work added explicit UIKit-host vs SwiftUI-host validation paths. May 20-21 status: sessions 004, 005, 008, and 009 confirmed full validation for HybridBloomAccountOpening (both hosts, full lifecycle/dismissal confirmed), HybridBrokerageAccountOpening (both hosts, full lifecycle confirmed), and HybridYouthAccountOpening (both hosts, full lifecycle/dismissal confirmed, resolving the dismissal gap). Remaining gaps are accountlink UIKit host, AODeeplinkLaunchView (both toggle branches and dismissal), and launch wrappers/common-launch flows. Draft PRs were opened for XFlowSDK and XFlowViewMaker on May 20 while validation continues. ## Backlog / Future Reference - `PDIAP-11962` - Closure of secret scanning alerts - Detail: `project-knowledge/02-work-items/pdiap-11962.md` + Detail: `workspaces/fidelity/project-knowledge/02-work-items/pdiap-11962.md` Current note: prior closure was submitted on October 9, 2025 and Matthew closed earlier alerts/story on March 5, 2026. Two Google API Key alerts remain open and appear tied to old April 18, 2025 work, not the current REST story. - `PDIAP-11961` - Remediation of Exposed Secrets in XFlow iOS SDK - Request for Rotation/Invalidation - Detail: `project-knowledge/02-work-items/pdiap-11961.md` + Detail: `workspaces/fidelity/project-knowledge/02-work-items/pdiap-11961.md` Current note: related unassigned story for remaining Google API Key alerts; not a current priority but should be preserved for future planning. - `PDIAP-11562` - Investigate if XFlow is being built as debug - Detail: `project-knowledge/02-work-items/pdiap-11562.md` + Detail: `workspaces/fidelity/project-knowledge/02-work-items/pdiap-11562.md` Current note: likely tied to the `XFlowSDK_Debug` variable check in the XFlow podspec and Fid4 consumption, not Sparta-team work; historical Slack suggests Jenkins may build the xcframework path while local development consumes XFlow as a normal library, but this needs current validation. - `PDIAP-12226`, `PDIAP-12227`, `PDIAP-12228` - Sparta backlog items - Details: `project-knowledge/02-work-items/pdiap-12226.md`, `project-knowledge/02-work-items/pdiap-12227.md`, `project-knowledge/02-work-items/pdiap-12228.md` + Details: `workspaces/fidelity/project-knowledge/02-work-items/pdiap-12226.md`, `workspaces/fidelity/project-knowledge/02-work-items/pdiap-12227.md`, `workspaces/fidelity/project-knowledge/02-work-items/pdiap-12228.md` Current note: Slack history ties these to the SpartaSDK follow-up split from initialization/JSON decoding, grid rendering/core components, and interactive/lifecycle behavior. Decoding and rendering are partially complete; interactive components remain blocked by unresolved mobile JavaScript execution. ## Recently Completed - `PDIAP-16167` - AccountLink - XFlow causing web view rewrites investigation - Detail: `project-knowledge/02-work-items/pdiap-16167.md` + Detail: `workspaces/fidelity/project-knowledge/02-work-items/pdiap-16167.md` Current note: moved to Done after publishing the Confluence report and sending the findings to Zachary / Jira / Discourse. Future references should frame this as a consumer-side SwiftUI presentation-topology issue, not an XFlow/XFlowViewMaker regression. diff --git a/project-knowledge/02-work-items/IA improvements.md b/workspaces/fidelity/project-knowledge/02-work-items/IA improvements.md similarity index 100% rename from project-knowledge/02-work-items/IA improvements.md rename to workspaces/fidelity/project-knowledge/02-work-items/IA improvements.md diff --git a/project-knowledge/02-work-items/README.md b/workspaces/fidelity/project-knowledge/02-work-items/README.md similarity index 81% rename from project-knowledge/02-work-items/README.md rename to workspaces/fidelity/project-knowledge/02-work-items/README.md index 9378225..6999bb5 100644 --- a/project-knowledge/02-work-items/README.md +++ b/workspaces/fidelity/project-knowledge/02-work-items/README.md @@ -22,4 +22,4 @@ Keep active Jira-linked work in one canonical place so standups, manager updates - Keep titles exact when approved or explicitly confirmed. - If the title is not confirmed, store the Jira ID and current framing without inventing a final title. - Update the ticket file when scope, sequencing, points, status, rollout implications, or reproducibility meaningfully change. -- Keep `project-knowledge/01-current/work-items.md` as a short bridge summary, not the primary source of detailed ticket context. +- Keep `workspaces/fidelity/project-knowledge/01-current/work-items.md` as a short bridge summary, not the primary source of detailed ticket context. diff --git a/project-knowledge/02-work-items/index.md b/workspaces/fidelity/project-knowledge/02-work-items/index.md similarity index 100% rename from project-knowledge/02-work-items/index.md rename to workspaces/fidelity/project-knowledge/02-work-items/index.md diff --git a/project-knowledge/02-work-items/pdiap-11562.md b/workspaces/fidelity/project-knowledge/02-work-items/pdiap-11562.md similarity index 100% rename from project-knowledge/02-work-items/pdiap-11562.md rename to workspaces/fidelity/project-knowledge/02-work-items/pdiap-11562.md diff --git a/project-knowledge/02-work-items/pdiap-11961.md b/workspaces/fidelity/project-knowledge/02-work-items/pdiap-11961.md similarity index 100% rename from project-knowledge/02-work-items/pdiap-11961.md rename to workspaces/fidelity/project-knowledge/02-work-items/pdiap-11961.md diff --git a/project-knowledge/02-work-items/pdiap-11962.md b/workspaces/fidelity/project-knowledge/02-work-items/pdiap-11962.md similarity index 100% rename from project-knowledge/02-work-items/pdiap-11962.md rename to workspaces/fidelity/project-knowledge/02-work-items/pdiap-11962.md diff --git a/project-knowledge/02-work-items/pdiap-12226.md b/workspaces/fidelity/project-knowledge/02-work-items/pdiap-12226.md similarity index 100% rename from project-knowledge/02-work-items/pdiap-12226.md rename to workspaces/fidelity/project-knowledge/02-work-items/pdiap-12226.md diff --git a/project-knowledge/02-work-items/pdiap-12227.md b/workspaces/fidelity/project-knowledge/02-work-items/pdiap-12227.md similarity index 100% rename from project-knowledge/02-work-items/pdiap-12227.md rename to workspaces/fidelity/project-knowledge/02-work-items/pdiap-12227.md diff --git a/project-knowledge/02-work-items/pdiap-12228.md b/workspaces/fidelity/project-knowledge/02-work-items/pdiap-12228.md similarity index 100% rename from project-knowledge/02-work-items/pdiap-12228.md rename to workspaces/fidelity/project-knowledge/02-work-items/pdiap-12228.md diff --git a/project-knowledge/02-work-items/pdiap-12284.md b/workspaces/fidelity/project-knowledge/02-work-items/pdiap-12284.md similarity index 100% rename from project-knowledge/02-work-items/pdiap-12284.md rename to workspaces/fidelity/project-knowledge/02-work-items/pdiap-12284.md diff --git a/project-knowledge/02-work-items/pdiap-14859.md b/workspaces/fidelity/project-knowledge/02-work-items/pdiap-14859.md similarity index 100% rename from project-knowledge/02-work-items/pdiap-14859.md rename to workspaces/fidelity/project-knowledge/02-work-items/pdiap-14859.md diff --git a/project-knowledge/02-work-items/pdiap-15765.md b/workspaces/fidelity/project-knowledge/02-work-items/pdiap-15765.md similarity index 100% rename from project-knowledge/02-work-items/pdiap-15765.md rename to workspaces/fidelity/project-knowledge/02-work-items/pdiap-15765.md diff --git a/project-knowledge/02-work-items/pdiap-15836.md b/workspaces/fidelity/project-knowledge/02-work-items/pdiap-15836.md similarity index 100% rename from project-knowledge/02-work-items/pdiap-15836.md rename to workspaces/fidelity/project-knowledge/02-work-items/pdiap-15836.md diff --git a/project-knowledge/02-work-items/pdiap-15838.md b/workspaces/fidelity/project-knowledge/02-work-items/pdiap-15838.md similarity index 100% rename from project-knowledge/02-work-items/pdiap-15838.md rename to workspaces/fidelity/project-knowledge/02-work-items/pdiap-15838.md diff --git a/project-knowledge/02-work-items/pdiap-16167.md b/workspaces/fidelity/project-knowledge/02-work-items/pdiap-16167.md similarity index 100% rename from project-knowledge/02-work-items/pdiap-16167.md rename to workspaces/fidelity/project-knowledge/02-work-items/pdiap-16167.md diff --git a/project-knowledge/03-context/index.md b/workspaces/fidelity/project-knowledge/03-context/index.md similarity index 100% rename from project-knowledge/03-context/index.md rename to workspaces/fidelity/project-knowledge/03-context/index.md diff --git a/project-knowledge/03-context/ios/cocoapods-dependency-management.md b/workspaces/fidelity/project-knowledge/03-context/ios/cocoapods-dependency-management.md similarity index 100% rename from project-knowledge/03-context/ios/cocoapods-dependency-management.md rename to workspaces/fidelity/project-knowledge/03-context/ios/cocoapods-dependency-management.md diff --git a/project-knowledge/03-context/ios/current-practices.md b/workspaces/fidelity/project-knowledge/03-context/ios/current-practices.md similarity index 100% rename from project-knowledge/03-context/ios/current-practices.md rename to workspaces/fidelity/project-knowledge/03-context/ios/current-practices.md diff --git a/project-knowledge/03-context/ios/index.md b/workspaces/fidelity/project-knowledge/03-context/ios/index.md similarity index 100% rename from project-knowledge/03-context/ios/index.md rename to workspaces/fidelity/project-knowledge/03-context/ios/index.md diff --git a/project-knowledge/03-context/ios/project-swift-guidance.md b/workspaces/fidelity/project-knowledge/03-context/ios/project-swift-guidance.md similarity index 100% rename from project-knowledge/03-context/ios/project-swift-guidance.md rename to workspaces/fidelity/project-knowledge/03-context/ios/project-swift-guidance.md diff --git a/project-knowledge/03-context/process/communication-rules.md b/workspaces/fidelity/project-knowledge/03-context/process/communication-rules.md similarity index 100% rename from project-knowledge/03-context/process/communication-rules.md rename to workspaces/fidelity/project-knowledge/03-context/process/communication-rules.md diff --git a/project-knowledge/03-context/process/communication.md b/workspaces/fidelity/project-knowledge/03-context/process/communication.md similarity index 96% rename from project-knowledge/03-context/process/communication.md rename to workspaces/fidelity/project-knowledge/03-context/process/communication.md index 62ab94c..c698e7b 100644 --- a/project-knowledge/03-context/process/communication.md +++ b/workspaces/fidelity/project-knowledge/03-context/process/communication.md @@ -44,7 +44,7 @@ When the format fits, prefer: - If the previous calendar day has no project activity because of weekend, holiday, or OOO, use the latest prior day with Mattermost activity. - For standups, when a Jira item has multiple concrete updates, use one top-level `JIRA-ID - Title` bullet and indented markdown sub-bullets instead of repeating the same Jira line. - For Mattermost-ready standups, include a visible blank line before `Today:` and `Blockers:` section headers so copy/paste rendering is correct without manual edits. -- When a flow/page shorthand could be ambiguous, prefer the real flow identifier and page name from `project-knowledge/03-context/workstreams/flow-page-references.md`. +- When a flow/page shorthand could be ambiguous, prefer the real flow identifier and page name from `workspaces/fidelity/project-knowledge/03-context/workstreams/flow-page-references.md`. - For standups that may also be sent to Teams, prefer plain audience-friendly wording over internal implementation shorthand; avoid terms like `fallback` unless the audience already has the necessary context. - When a release is waiting on approvals or pipeline movement, make the concurrent work explicit so the update does not imply idle waiting. - Avoid vague phrasing such as: diff --git a/project-knowledge/03-context/process/index.md b/workspaces/fidelity/project-knowledge/03-context/process/index.md similarity index 100% rename from project-knowledge/03-context/process/index.md rename to workspaces/fidelity/project-knowledge/03-context/process/index.md diff --git a/project-knowledge/03-context/process/jira-story-rules.md b/workspaces/fidelity/project-knowledge/03-context/process/jira-story-rules.md similarity index 100% rename from project-knowledge/03-context/process/jira-story-rules.md rename to workspaces/fidelity/project-knowledge/03-context/process/jira-story-rules.md diff --git a/project-knowledge/03-context/process/pull-requests.md b/workspaces/fidelity/project-knowledge/03-context/process/pull-requests.md similarity index 100% rename from project-knowledge/03-context/process/pull-requests.md rename to workspaces/fidelity/project-knowledge/03-context/process/pull-requests.md diff --git a/project-knowledge/03-context/process/sprint-cadence.md b/workspaces/fidelity/project-knowledge/03-context/process/sprint-cadence.md similarity index 100% rename from project-knowledge/03-context/process/sprint-cadence.md rename to workspaces/fidelity/project-knowledge/03-context/process/sprint-cadence.md diff --git a/project-knowledge/03-context/project.md b/workspaces/fidelity/project-knowledge/03-context/project.md similarity index 75% rename from project-knowledge/03-context/project.md rename to workspaces/fidelity/project-knowledge/03-context/project.md index 558d4a1..5b2db40 100644 --- a/project-knowledge/03-context/project.md +++ b/workspaces/fidelity/project-knowledge/03-context/project.md @@ -29,13 +29,13 @@ The product work happens outside this repository, usually from another machine. ## Stable Context Map - Core systems live under: - - `project-knowledge/03-context/systems/` + - `workspaces/fidelity/project-knowledge/03-context/systems/` - Durable workstreams live under: - - `project-knowledge/03-context/workstreams/` + - `workspaces/fidelity/project-knowledge/03-context/workstreams/` - Project-facing communication and process rules live under: - - `project-knowledge/03-context/process/` + - `workspaces/fidelity/project-knowledge/03-context/process/` - Named people and role mapping live under: - - `project-knowledge/04-people/` + - `workspaces/fidelity/project-knowledge/04-people/` The Slack archive has already been curated into these files so future sessions do not need to rediscover the same patterns from raw history. @@ -60,13 +60,13 @@ This machine is used to: - prepare polished updates for the current manager or stakeholder - generate standups with better context coverage -This means the context files should hold durable engineering knowledge, while `project-knowledge/06-daily/` and `project-knowledge/01-current/` hold the moving day-to-day view. +This means the context files should hold durable engineering knowledge, while `workspaces/fidelity/project-knowledge/06-daily/` and `workspaces/fidelity/project-knowledge/01-current/` hold the moving day-to-day view. --- ## First Files To Read -- `project-knowledge/03-context/index.md` -- `project-knowledge/03-context/workstreams/index.md` -- `project-knowledge/03-context/process/communication.md` -- `project-knowledge/04-people/index.md` +- `workspaces/fidelity/project-knowledge/03-context/index.md` +- `workspaces/fidelity/project-knowledge/03-context/workstreams/index.md` +- `workspaces/fidelity/project-knowledge/03-context/process/communication.md` +- `workspaces/fidelity/project-knowledge/04-people/index.md` diff --git a/project-knowledge/03-context/systems/almx-toolbox.md b/workspaces/fidelity/project-knowledge/03-context/systems/almx-toolbox.md similarity index 100% rename from project-knowledge/03-context/systems/almx-toolbox.md rename to workspaces/fidelity/project-knowledge/03-context/systems/almx-toolbox.md diff --git a/project-knowledge/03-context/systems/artifactory.md b/workspaces/fidelity/project-knowledge/03-context/systems/artifactory.md similarity index 100% rename from project-knowledge/03-context/systems/artifactory.md rename to workspaces/fidelity/project-knowledge/03-context/systems/artifactory.md diff --git a/project-knowledge/03-context/systems/cogstore.md b/workspaces/fidelity/project-knowledge/03-context/systems/cogstore.md similarity index 100% rename from project-knowledge/03-context/systems/cogstore.md rename to workspaces/fidelity/project-knowledge/03-context/systems/cogstore.md diff --git a/project-knowledge/03-context/systems/confluence.md b/workspaces/fidelity/project-knowledge/03-context/systems/confluence.md similarity index 100% rename from project-knowledge/03-context/systems/confluence.md rename to workspaces/fidelity/project-knowledge/03-context/systems/confluence.md diff --git a/project-knowledge/03-context/systems/discourse.md b/workspaces/fidelity/project-knowledge/03-context/systems/discourse.md similarity index 100% rename from project-knowledge/03-context/systems/discourse.md rename to workspaces/fidelity/project-knowledge/03-context/systems/discourse.md diff --git a/project-knowledge/03-context/systems/fid4.md b/workspaces/fidelity/project-knowledge/03-context/systems/fid4.md similarity index 100% rename from project-knowledge/03-context/systems/fid4.md rename to workspaces/fidelity/project-knowledge/03-context/systems/fid4.md diff --git a/project-knowledge/03-context/systems/fidelity-central.md b/workspaces/fidelity/project-knowledge/03-context/systems/fidelity-central.md similarity index 100% rename from project-knowledge/03-context/systems/fidelity-central.md rename to workspaces/fidelity/project-knowledge/03-context/systems/fidelity-central.md diff --git a/project-knowledge/03-context/systems/ftframeworks.md b/workspaces/fidelity/project-knowledge/03-context/systems/ftframeworks.md similarity index 100% rename from project-knowledge/03-context/systems/ftframeworks.md rename to workspaces/fidelity/project-knowledge/03-context/systems/ftframeworks.md diff --git a/project-knowledge/03-context/systems/github-copilot.md b/workspaces/fidelity/project-knowledge/03-context/systems/github-copilot.md similarity index 90% rename from project-knowledge/03-context/systems/github-copilot.md rename to workspaces/fidelity/project-knowledge/03-context/systems/github-copilot.md index fbc11cf..9cd5905 100644 --- a/project-knowledge/03-context/systems/github-copilot.md +++ b/workspaces/fidelity/project-knowledge/03-context/systems/github-copilot.md @@ -43,5 +43,5 @@ updated: 2026-04-20 ## Related Context -- `project-knowledge/04-people/jeff-dewitte.md` -- `project-knowledge/02-work-items/pdiap-15838.md` +- `workspaces/fidelity/project-knowledge/04-people/jeff-dewitte.md` +- `workspaces/fidelity/project-knowledge/02-work-items/pdiap-15838.md` diff --git a/project-knowledge/03-context/systems/index.md b/workspaces/fidelity/project-knowledge/03-context/systems/index.md similarity index 100% rename from project-knowledge/03-context/systems/index.md rename to workspaces/fidelity/project-knowledge/03-context/systems/index.md diff --git a/project-knowledge/03-context/systems/iosinstaller.md b/workspaces/fidelity/project-knowledge/03-context/systems/iosinstaller.md similarity index 100% rename from project-knowledge/03-context/systems/iosinstaller.md rename to workspaces/fidelity/project-knowledge/03-context/systems/iosinstaller.md diff --git a/project-knowledge/03-context/systems/jira.md b/workspaces/fidelity/project-knowledge/03-context/systems/jira.md similarity index 100% rename from project-knowledge/03-context/systems/jira.md rename to workspaces/fidelity/project-knowledge/03-context/systems/jira.md diff --git a/project-knowledge/03-context/systems/launchdarkly.md b/workspaces/fidelity/project-knowledge/03-context/systems/launchdarkly.md similarity index 94% rename from project-knowledge/03-context/systems/launchdarkly.md rename to workspaces/fidelity/project-knowledge/03-context/systems/launchdarkly.md index 4b44fa6..03e8de8 100644 --- a/project-knowledge/03-context/systems/launchdarkly.md +++ b/workspaces/fidelity/project-knowledge/03-context/systems/launchdarkly.md @@ -44,4 +44,4 @@ updated: 2026-04-20 ## Related Context -- `project-knowledge/02-work-items/pdiap-15838.md` +- `workspaces/fidelity/project-knowledge/02-work-items/pdiap-15838.md` diff --git a/project-knowledge/03-context/systems/miro.md b/workspaces/fidelity/project-knowledge/03-context/systems/miro.md similarity index 100% rename from project-knowledge/03-context/systems/miro.md rename to workspaces/fidelity/project-knowledge/03-context/systems/miro.md diff --git a/project-knowledge/03-context/systems/myaccess.md b/workspaces/fidelity/project-knowledge/03-context/systems/myaccess.md similarity index 100% rename from project-knowledge/03-context/systems/myaccess.md rename to workspaces/fidelity/project-knowledge/03-context/systems/myaccess.md diff --git a/project-knowledge/03-context/systems/nexus-fidelity.md b/workspaces/fidelity/project-knowledge/03-context/systems/nexus-fidelity.md similarity index 100% rename from project-knowledge/03-context/systems/nexus-fidelity.md rename to workspaces/fidelity/project-knowledge/03-context/systems/nexus-fidelity.md diff --git a/project-knowledge/03-context/systems/slate.md b/workspaces/fidelity/project-knowledge/03-context/systems/slate.md similarity index 100% rename from project-knowledge/03-context/systems/slate.md rename to workspaces/fidelity/project-knowledge/03-context/systems/slate.md diff --git a/project-knowledge/03-context/systems/splunk.md b/workspaces/fidelity/project-knowledge/03-context/systems/splunk.md similarity index 100% rename from project-knowledge/03-context/systems/splunk.md rename to workspaces/fidelity/project-knowledge/03-context/systems/splunk.md diff --git a/project-knowledge/03-context/systems/trackit.md b/workspaces/fidelity/project-knowledge/03-context/systems/trackit.md similarity index 100% rename from project-knowledge/03-context/systems/trackit.md rename to workspaces/fidelity/project-knowledge/03-context/systems/trackit.md diff --git a/project-knowledge/03-context/systems/vault-preprod.md b/workspaces/fidelity/project-knowledge/03-context/systems/vault-preprod.md similarity index 81% rename from project-knowledge/03-context/systems/vault-preprod.md rename to workspaces/fidelity/project-knowledge/03-context/systems/vault-preprod.md index 8b22509..85bdf92 100644 --- a/project-knowledge/03-context/systems/vault-preprod.md +++ b/workspaces/fidelity/project-knowledge/03-context/systems/vault-preprod.md @@ -32,7 +32,7 @@ aliases: ## Risks -- Easy to mix up with production Vault or with the `project-knowledge/` documentation directory. +- Easy to mix up with production Vault or with the `workspaces/fidelity/project-knowledge/` documentation directory. --- diff --git a/project-knowledge/03-context/systems/vault.md b/workspaces/fidelity/project-knowledge/03-context/systems/vault.md similarity index 87% rename from project-knowledge/03-context/systems/vault.md rename to workspaces/fidelity/project-knowledge/03-context/systems/vault.md index 69a14d5..5f203fa 100644 --- a/project-knowledge/03-context/systems/vault.md +++ b/workspaces/fidelity/project-knowledge/03-context/systems/vault.md @@ -22,7 +22,7 @@ updated: 2026-04-17 ## Stable Patterns -- Base note only; this refers to the Fidelity system named Vault, not the `project-knowledge/` documentation directory. +- Base note only; this refers to the Fidelity system named Vault, not the `workspaces/fidelity/project-knowledge/` documentation directory. - Add real purpose and usage patterns gradually as they become clear. --- diff --git a/project-knowledge/03-context/systems/wukong.md b/workspaces/fidelity/project-knowledge/03-context/systems/wukong.md similarity index 100% rename from project-knowledge/03-context/systems/wukong.md rename to workspaces/fidelity/project-knowledge/03-context/systems/wukong.md diff --git a/project-knowledge/03-context/systems/xflowsdk.md b/workspaces/fidelity/project-knowledge/03-context/systems/xflowsdk.md similarity index 100% rename from project-knowledge/03-context/systems/xflowsdk.md rename to workspaces/fidelity/project-knowledge/03-context/systems/xflowsdk.md diff --git a/project-knowledge/03-context/systems/xflowviewmaker.md b/workspaces/fidelity/project-knowledge/03-context/systems/xflowviewmaker.md similarity index 100% rename from project-knowledge/03-context/systems/xflowviewmaker.md rename to workspaces/fidelity/project-knowledge/03-context/systems/xflowviewmaker.md diff --git a/project-knowledge/03-context/systems/xq1-portfolio-summary.md b/workspaces/fidelity/project-knowledge/03-context/systems/xq1-portfolio-summary.md similarity index 100% rename from project-knowledge/03-context/systems/xq1-portfolio-summary.md rename to workspaces/fidelity/project-knowledge/03-context/systems/xq1-portfolio-summary.md diff --git a/project-knowledge/03-context/workstreams/ao-discourse.md b/workspaces/fidelity/project-knowledge/03-context/workstreams/ao-discourse.md similarity index 100% rename from project-knowledge/03-context/workstreams/ao-discourse.md rename to workspaces/fidelity/project-knowledge/03-context/workstreams/ao-discourse.md diff --git a/project-knowledge/03-context/workstreams/consumer-integration.md b/workspaces/fidelity/project-knowledge/03-context/workstreams/consumer-integration.md similarity index 100% rename from project-knowledge/03-context/workstreams/consumer-integration.md rename to workspaces/fidelity/project-knowledge/03-context/workstreams/consumer-integration.md diff --git a/project-knowledge/03-context/workstreams/flow-page-references.md b/workspaces/fidelity/project-knowledge/03-context/workstreams/flow-page-references.md similarity index 100% rename from project-knowledge/03-context/workstreams/flow-page-references.md rename to workspaces/fidelity/project-knowledge/03-context/workstreams/flow-page-references.md diff --git a/project-knowledge/03-context/workstreams/index.md b/workspaces/fidelity/project-knowledge/03-context/workstreams/index.md similarity index 100% rename from project-knowledge/03-context/workstreams/index.md rename to workspaces/fidelity/project-knowledge/03-context/workstreams/index.md diff --git a/project-knowledge/03-context/workstreams/rest-migration.md b/workspaces/fidelity/project-knowledge/03-context/workstreams/rest-migration.md similarity index 100% rename from project-knowledge/03-context/workstreams/rest-migration.md rename to workspaces/fidelity/project-knowledge/03-context/workstreams/rest-migration.md diff --git a/project-knowledge/03-context/workstreams/xflow-debugging.md b/workspaces/fidelity/project-knowledge/03-context/workstreams/xflow-debugging.md similarity index 100% rename from project-knowledge/03-context/workstreams/xflow-debugging.md rename to workspaces/fidelity/project-knowledge/03-context/workstreams/xflow-debugging.md diff --git a/project-knowledge/03-context/workstreams/xflow-swiftui-migration.md b/workspaces/fidelity/project-knowledge/03-context/workstreams/xflow-swiftui-migration.md similarity index 100% rename from project-knowledge/03-context/workstreams/xflow-swiftui-migration.md rename to workspaces/fidelity/project-knowledge/03-context/workstreams/xflow-swiftui-migration.md diff --git a/project-knowledge/04-people/README.md b/workspaces/fidelity/project-knowledge/04-people/README.md similarity index 100% rename from project-knowledge/04-people/README.md rename to workspaces/fidelity/project-knowledge/04-people/README.md diff --git a/project-knowledge/04-people/adam-abdelhadi.md b/workspaces/fidelity/project-knowledge/04-people/adam-abdelhadi.md similarity index 87% rename from project-knowledge/04-people/adam-abdelhadi.md rename to workspaces/fidelity/project-knowledge/04-people/adam-abdelhadi.md index 4e1ccb1..e9a6e1d 100644 --- a/project-knowledge/04-people/adam-abdelhadi.md +++ b/workspaces/fidelity/project-knowledge/04-people/adam-abdelhadi.md @@ -37,5 +37,5 @@ updated: 2026-04-20 ## Related Context -- `project-knowledge/02-work-items/pdiap-15838.md` -- `project-knowledge/03-context/systems/launchdarkly.md` +- `workspaces/fidelity/project-knowledge/02-work-items/pdiap-15838.md` +- `workspaces/fidelity/project-knowledge/03-context/systems/launchdarkly.md` diff --git a/project-knowledge/04-people/aylwing-olivas.md b/workspaces/fidelity/project-knowledge/04-people/aylwing-olivas.md similarity index 100% rename from project-knowledge/04-people/aylwing-olivas.md rename to workspaces/fidelity/project-knowledge/04-people/aylwing-olivas.md diff --git a/project-knowledge/04-people/bruce-meeks.md b/workspaces/fidelity/project-knowledge/04-people/bruce-meeks.md similarity index 100% rename from project-knowledge/04-people/bruce-meeks.md rename to workspaces/fidelity/project-knowledge/04-people/bruce-meeks.md diff --git a/project-knowledge/04-people/david-delagneau.md b/workspaces/fidelity/project-knowledge/04-people/david-delagneau.md similarity index 100% rename from project-knowledge/04-people/david-delagneau.md rename to workspaces/fidelity/project-knowledge/04-people/david-delagneau.md diff --git a/project-knowledge/04-people/derian-cordoba.md b/workspaces/fidelity/project-knowledge/04-people/derian-cordoba.md similarity index 100% rename from project-knowledge/04-people/derian-cordoba.md rename to workspaces/fidelity/project-knowledge/04-people/derian-cordoba.md diff --git a/project-knowledge/04-people/erik-reynolds.md b/workspaces/fidelity/project-knowledge/04-people/erik-reynolds.md similarity index 100% rename from project-knowledge/04-people/erik-reynolds.md rename to workspaces/fidelity/project-knowledge/04-people/erik-reynolds.md diff --git a/project-knowledge/04-people/gurram-santosh.md b/workspaces/fidelity/project-knowledge/04-people/gurram-santosh.md similarity index 100% rename from project-knowledge/04-people/gurram-santosh.md rename to workspaces/fidelity/project-knowledge/04-people/gurram-santosh.md diff --git a/project-knowledge/04-people/index.md b/workspaces/fidelity/project-knowledge/04-people/index.md similarity index 100% rename from project-knowledge/04-people/index.md rename to workspaces/fidelity/project-knowledge/04-people/index.md diff --git a/project-knowledge/04-people/jason-mandozzi.md b/workspaces/fidelity/project-knowledge/04-people/jason-mandozzi.md similarity index 100% rename from project-knowledge/04-people/jason-mandozzi.md rename to workspaces/fidelity/project-knowledge/04-people/jason-mandozzi.md diff --git a/project-knowledge/04-people/jeff-dewitte.md b/workspaces/fidelity/project-knowledge/04-people/jeff-dewitte.md similarity index 100% rename from project-knowledge/04-people/jeff-dewitte.md rename to workspaces/fidelity/project-knowledge/04-people/jeff-dewitte.md diff --git a/project-knowledge/04-people/jeffrey-oleary.md b/workspaces/fidelity/project-knowledge/04-people/jeffrey-oleary.md similarity index 86% rename from project-knowledge/04-people/jeffrey-oleary.md rename to workspaces/fidelity/project-knowledge/04-people/jeffrey-oleary.md index 7ccc8a0..5cda950 100644 --- a/project-knowledge/04-people/jeffrey-oleary.md +++ b/workspaces/fidelity/project-knowledge/04-people/jeffrey-oleary.md @@ -37,5 +37,5 @@ updated: 2026-04-20 ## Related Context -- `project-knowledge/02-work-items/pdiap-15838.md` -- `project-knowledge/03-context/systems/github-copilot.md` +- `workspaces/fidelity/project-knowledge/02-work-items/pdiap-15838.md` +- `workspaces/fidelity/project-knowledge/03-context/systems/github-copilot.md` diff --git a/project-knowledge/04-people/manager.md b/workspaces/fidelity/project-knowledge/04-people/manager.md similarity index 100% rename from project-knowledge/04-people/manager.md rename to workspaces/fidelity/project-knowledge/04-people/manager.md diff --git a/project-knowledge/04-people/norman-arauz.md b/workspaces/fidelity/project-knowledge/04-people/norman-arauz.md similarity index 100% rename from project-knowledge/04-people/norman-arauz.md rename to workspaces/fidelity/project-knowledge/04-people/norman-arauz.md diff --git a/project-knowledge/04-people/quy-mai.md b/workspaces/fidelity/project-knowledge/04-people/quy-mai.md similarity index 100% rename from project-knowledge/04-people/quy-mai.md rename to workspaces/fidelity/project-knowledge/04-people/quy-mai.md diff --git a/project-knowledge/04-people/raj-sundararaj.md b/workspaces/fidelity/project-knowledge/04-people/raj-sundararaj.md similarity index 100% rename from project-knowledge/04-people/raj-sundararaj.md rename to workspaces/fidelity/project-knowledge/04-people/raj-sundararaj.md diff --git a/project-knowledge/04-people/tauf.md b/workspaces/fidelity/project-knowledge/04-people/tauf.md similarity index 84% rename from project-knowledge/04-people/tauf.md rename to workspaces/fidelity/project-knowledge/04-people/tauf.md index 96b34e3..2bd07fa 100644 --- a/project-knowledge/04-people/tauf.md +++ b/workspaces/fidelity/project-knowledge/04-people/tauf.md @@ -41,7 +41,7 @@ updated: 2026-04-20 ## Related Context -- `project-knowledge/03-context/workstreams/consumer-integration.md` -- `project-knowledge/02-work-items/pdiap-15765.md` -- `project-knowledge/02-work-items/pdiap-15838.md` -- `project-knowledge/04-people/jeffrey-oleary.md` +- `workspaces/fidelity/project-knowledge/03-context/workstreams/consumer-integration.md` +- `workspaces/fidelity/project-knowledge/02-work-items/pdiap-15765.md` +- `workspaces/fidelity/project-knowledge/02-work-items/pdiap-15838.md` +- `workspaces/fidelity/project-knowledge/04-people/jeffrey-oleary.md` diff --git a/project-knowledge/04-people/tim-longfield.md b/workspaces/fidelity/project-knowledge/04-people/tim-longfield.md similarity index 100% rename from project-knowledge/04-people/tim-longfield.md rename to workspaces/fidelity/project-knowledge/04-people/tim-longfield.md diff --git a/project-knowledge/05-decisions/discourse-handling.md b/workspaces/fidelity/project-knowledge/05-decisions/discourse-handling.md similarity index 100% rename from project-knowledge/05-decisions/discourse-handling.md rename to workspaces/fidelity/project-knowledge/05-decisions/discourse-handling.md diff --git a/project-knowledge/05-decisions/rest-vs-graphql.md b/workspaces/fidelity/project-knowledge/05-decisions/rest-vs-graphql.md similarity index 100% rename from project-knowledge/05-decisions/rest-vs-graphql.md rename to workspaces/fidelity/project-knowledge/05-decisions/rest-vs-graphql.md diff --git a/project-knowledge/06-daily/2026-04-08.md b/workspaces/fidelity/project-knowledge/06-daily/2026-04-08.md similarity index 100% rename from project-knowledge/06-daily/2026-04-08.md rename to workspaces/fidelity/project-knowledge/06-daily/2026-04-08.md diff --git a/project-knowledge/06-daily/2026-04-09.md b/workspaces/fidelity/project-knowledge/06-daily/2026-04-09.md similarity index 100% rename from project-knowledge/06-daily/2026-04-09.md rename to workspaces/fidelity/project-knowledge/06-daily/2026-04-09.md diff --git a/project-knowledge/06-daily/2026-04-10.md b/workspaces/fidelity/project-knowledge/06-daily/2026-04-10.md similarity index 100% rename from project-knowledge/06-daily/2026-04-10.md rename to workspaces/fidelity/project-knowledge/06-daily/2026-04-10.md diff --git a/project-knowledge/06-daily/2026-04-13.md b/workspaces/fidelity/project-knowledge/06-daily/2026-04-13.md similarity index 100% rename from project-knowledge/06-daily/2026-04-13.md rename to workspaces/fidelity/project-knowledge/06-daily/2026-04-13.md diff --git a/project-knowledge/06-daily/2026-04-14.md b/workspaces/fidelity/project-knowledge/06-daily/2026-04-14.md similarity index 100% rename from project-knowledge/06-daily/2026-04-14.md rename to workspaces/fidelity/project-knowledge/06-daily/2026-04-14.md diff --git a/project-knowledge/06-daily/2026-04-15.md b/workspaces/fidelity/project-knowledge/06-daily/2026-04-15.md similarity index 100% rename from project-knowledge/06-daily/2026-04-15.md rename to workspaces/fidelity/project-knowledge/06-daily/2026-04-15.md diff --git a/project-knowledge/06-daily/2026-04-16.md b/workspaces/fidelity/project-knowledge/06-daily/2026-04-16.md similarity index 100% rename from project-knowledge/06-daily/2026-04-16.md rename to workspaces/fidelity/project-knowledge/06-daily/2026-04-16.md diff --git a/project-knowledge/06-daily/2026-04-17.md b/workspaces/fidelity/project-knowledge/06-daily/2026-04-17.md similarity index 100% rename from project-knowledge/06-daily/2026-04-17.md rename to workspaces/fidelity/project-knowledge/06-daily/2026-04-17.md diff --git a/project-knowledge/06-daily/2026-04-20.md b/workspaces/fidelity/project-knowledge/06-daily/2026-04-20.md similarity index 100% rename from project-knowledge/06-daily/2026-04-20.md rename to workspaces/fidelity/project-knowledge/06-daily/2026-04-20.md diff --git a/project-knowledge/06-daily/2026-04-21.md b/workspaces/fidelity/project-knowledge/06-daily/2026-04-21.md similarity index 100% rename from project-knowledge/06-daily/2026-04-21.md rename to workspaces/fidelity/project-knowledge/06-daily/2026-04-21.md diff --git a/project-knowledge/06-daily/2026-04-27.md b/workspaces/fidelity/project-knowledge/06-daily/2026-04-27.md similarity index 100% rename from project-knowledge/06-daily/2026-04-27.md rename to workspaces/fidelity/project-knowledge/06-daily/2026-04-27.md diff --git a/project-knowledge/06-daily/2026-04-28.md b/workspaces/fidelity/project-knowledge/06-daily/2026-04-28.md similarity index 100% rename from project-knowledge/06-daily/2026-04-28.md rename to workspaces/fidelity/project-knowledge/06-daily/2026-04-28.md diff --git a/project-knowledge/06-daily/2026-04-29.md b/workspaces/fidelity/project-knowledge/06-daily/2026-04-29.md similarity index 100% rename from project-knowledge/06-daily/2026-04-29.md rename to workspaces/fidelity/project-knowledge/06-daily/2026-04-29.md diff --git a/project-knowledge/06-daily/2026-04-30.md b/workspaces/fidelity/project-knowledge/06-daily/2026-04-30.md similarity index 100% rename from project-knowledge/06-daily/2026-04-30.md rename to workspaces/fidelity/project-knowledge/06-daily/2026-04-30.md diff --git a/project-knowledge/06-daily/2026-05-01.md b/workspaces/fidelity/project-knowledge/06-daily/2026-05-01.md similarity index 100% rename from project-knowledge/06-daily/2026-05-01.md rename to workspaces/fidelity/project-knowledge/06-daily/2026-05-01.md diff --git a/project-knowledge/06-daily/2026-05-05.md b/workspaces/fidelity/project-knowledge/06-daily/2026-05-05.md similarity index 100% rename from project-knowledge/06-daily/2026-05-05.md rename to workspaces/fidelity/project-knowledge/06-daily/2026-05-05.md diff --git a/project-knowledge/06-daily/2026-05-07.md b/workspaces/fidelity/project-knowledge/06-daily/2026-05-07.md similarity index 100% rename from project-knowledge/06-daily/2026-05-07.md rename to workspaces/fidelity/project-knowledge/06-daily/2026-05-07.md diff --git a/project-knowledge/06-daily/2026-05-08.md b/workspaces/fidelity/project-knowledge/06-daily/2026-05-08.md similarity index 100% rename from project-knowledge/06-daily/2026-05-08.md rename to workspaces/fidelity/project-knowledge/06-daily/2026-05-08.md diff --git a/project-knowledge/06-daily/2026-05-11.md b/workspaces/fidelity/project-knowledge/06-daily/2026-05-11.md similarity index 100% rename from project-knowledge/06-daily/2026-05-11.md rename to workspaces/fidelity/project-knowledge/06-daily/2026-05-11.md diff --git a/project-knowledge/06-daily/2026-05-12.md b/workspaces/fidelity/project-knowledge/06-daily/2026-05-12.md similarity index 100% rename from project-knowledge/06-daily/2026-05-12.md rename to workspaces/fidelity/project-knowledge/06-daily/2026-05-12.md diff --git a/project-knowledge/06-daily/2026-05-13.md b/workspaces/fidelity/project-knowledge/06-daily/2026-05-13.md similarity index 100% rename from project-knowledge/06-daily/2026-05-13.md rename to workspaces/fidelity/project-knowledge/06-daily/2026-05-13.md diff --git a/project-knowledge/06-daily/2026-05-14.md b/workspaces/fidelity/project-knowledge/06-daily/2026-05-14.md similarity index 100% rename from project-knowledge/06-daily/2026-05-14.md rename to workspaces/fidelity/project-knowledge/06-daily/2026-05-14.md diff --git a/project-knowledge/06-daily/2026-05-18.md b/workspaces/fidelity/project-knowledge/06-daily/2026-05-18.md similarity index 100% rename from project-knowledge/06-daily/2026-05-18.md rename to workspaces/fidelity/project-knowledge/06-daily/2026-05-18.md diff --git a/project-knowledge/06-daily/2026-05-19.md b/workspaces/fidelity/project-knowledge/06-daily/2026-05-19.md similarity index 100% rename from project-knowledge/06-daily/2026-05-19.md rename to workspaces/fidelity/project-knowledge/06-daily/2026-05-19.md diff --git a/project-knowledge/06-daily/2026-05-20.md b/workspaces/fidelity/project-knowledge/06-daily/2026-05-20.md similarity index 100% rename from project-knowledge/06-daily/2026-05-20.md rename to workspaces/fidelity/project-knowledge/06-daily/2026-05-20.md diff --git a/project-knowledge/06-daily/2026-05-21.md b/workspaces/fidelity/project-knowledge/06-daily/2026-05-21.md similarity index 100% rename from project-knowledge/06-daily/2026-05-21.md rename to workspaces/fidelity/project-knowledge/06-daily/2026-05-21.md diff --git a/project-knowledge/06-daily/index.md b/workspaces/fidelity/project-knowledge/06-daily/index.md similarity index 81% rename from project-knowledge/06-daily/index.md rename to workspaces/fidelity/project-knowledge/06-daily/index.md index aa56221..e809835 100644 --- a/project-knowledge/06-daily/index.md +++ b/workspaces/fidelity/project-knowledge/06-daily/index.md @@ -10,7 +10,7 @@ tags: Daily logs capture evolving evidence and same-day work context. -Promote durable facts into `project-knowledge/01-current/`, `project-knowledge/02-work-items/`, or `project-knowledge/03-context/` when they should survive beyond the day. +Promote durable facts into `workspaces/fidelity/project-knowledge/01-current/`, `workspaces/fidelity/project-knowledge/02-work-items/`, or `workspaces/fidelity/project-knowledge/03-context/` when they should survive beyond the day. --- diff --git a/project-knowledge/07-maps/current-work.md b/workspaces/fidelity/project-knowledge/07-maps/current-work.md similarity index 100% rename from project-knowledge/07-maps/current-work.md rename to workspaces/fidelity/project-knowledge/07-maps/current-work.md diff --git a/project-knowledge/07-maps/fidelity-apps.md b/workspaces/fidelity/project-knowledge/07-maps/fidelity-apps.md similarity index 100% rename from project-knowledge/07-maps/fidelity-apps.md rename to workspaces/fidelity/project-knowledge/07-maps/fidelity-apps.md diff --git a/project-knowledge/07-maps/fidelity-domain.md b/workspaces/fidelity/project-knowledge/07-maps/fidelity-domain.md similarity index 100% rename from project-knowledge/07-maps/fidelity-domain.md rename to workspaces/fidelity/project-knowledge/07-maps/fidelity-domain.md diff --git a/project-knowledge/07-maps/index.md b/workspaces/fidelity/project-knowledge/07-maps/index.md similarity index 100% rename from project-knowledge/07-maps/index.md rename to workspaces/fidelity/project-knowledge/07-maps/index.md diff --git a/project-knowledge/07-maps/people.md b/workspaces/fidelity/project-knowledge/07-maps/people.md similarity index 100% rename from project-knowledge/07-maps/people.md rename to workspaces/fidelity/project-knowledge/07-maps/people.md diff --git a/project-knowledge/07-maps/work-items.md b/workspaces/fidelity/project-knowledge/07-maps/work-items.md similarity index 100% rename from project-knowledge/07-maps/work-items.md rename to workspaces/fidelity/project-knowledge/07-maps/work-items.md diff --git a/project-knowledge/08-bases/daily.base b/workspaces/fidelity/project-knowledge/08-bases/daily.base similarity index 100% rename from project-knowledge/08-bases/daily.base rename to workspaces/fidelity/project-knowledge/08-bases/daily.base diff --git a/project-knowledge/08-bases/decisions.base b/workspaces/fidelity/project-knowledge/08-bases/decisions.base similarity index 100% rename from project-knowledge/08-bases/decisions.base rename to workspaces/fidelity/project-knowledge/08-bases/decisions.base diff --git a/project-knowledge/08-bases/people.base b/workspaces/fidelity/project-knowledge/08-bases/people.base similarity index 100% rename from project-knowledge/08-bases/people.base rename to workspaces/fidelity/project-knowledge/08-bases/people.base diff --git a/project-knowledge/08-bases/systems.base b/workspaces/fidelity/project-knowledge/08-bases/systems.base similarity index 100% rename from project-knowledge/08-bases/systems.base rename to workspaces/fidelity/project-knowledge/08-bases/systems.base diff --git a/project-knowledge/08-bases/work-items.base b/workspaces/fidelity/project-knowledge/08-bases/work-items.base similarity index 100% rename from project-knowledge/08-bases/work-items.base rename to workspaces/fidelity/project-knowledge/08-bases/work-items.base diff --git a/project-knowledge/08-bases/workstreams.base b/workspaces/fidelity/project-knowledge/08-bases/workstreams.base similarity index 100% rename from project-knowledge/08-bases/workstreams.base rename to workspaces/fidelity/project-knowledge/08-bases/workstreams.base diff --git a/project-knowledge/09-templates/daily.md b/workspaces/fidelity/project-knowledge/09-templates/daily.md similarity index 100% rename from project-knowledge/09-templates/daily.md rename to workspaces/fidelity/project-knowledge/09-templates/daily.md diff --git a/project-knowledge/09-templates/decision.md b/workspaces/fidelity/project-knowledge/09-templates/decision.md similarity index 100% rename from project-knowledge/09-templates/decision.md rename to workspaces/fidelity/project-knowledge/09-templates/decision.md diff --git a/project-knowledge/09-templates/meeting-note.md b/workspaces/fidelity/project-knowledge/09-templates/meeting-note.md similarity index 100% rename from project-knowledge/09-templates/meeting-note.md rename to workspaces/fidelity/project-knowledge/09-templates/meeting-note.md diff --git a/project-knowledge/09-templates/person.md b/workspaces/fidelity/project-knowledge/09-templates/person.md similarity index 100% rename from project-knowledge/09-templates/person.md rename to workspaces/fidelity/project-knowledge/09-templates/person.md diff --git a/project-knowledge/09-templates/system.md b/workspaces/fidelity/project-knowledge/09-templates/system.md similarity index 100% rename from project-knowledge/09-templates/system.md rename to workspaces/fidelity/project-knowledge/09-templates/system.md diff --git a/project-knowledge/09-templates/work-item.md b/workspaces/fidelity/project-knowledge/09-templates/work-item.md similarity index 100% rename from project-knowledge/09-templates/work-item.md rename to workspaces/fidelity/project-knowledge/09-templates/work-item.md diff --git a/project-knowledge/09-templates/workstream.md b/workspaces/fidelity/project-knowledge/09-templates/workstream.md similarity index 100% rename from project-knowledge/09-templates/workstream.md rename to workspaces/fidelity/project-knowledge/09-templates/workstream.md diff --git a/project-knowledge/attachments/.gitkeep b/workspaces/fidelity/project-knowledge/attachments/.gitkeep similarity index 100% rename from project-knowledge/attachments/.gitkeep rename to workspaces/fidelity/project-knowledge/attachments/.gitkeep