--- type: agent-memory status: active updated: 2026-04-21 tags: - process - memory --- # Context Maintenance ## Goal Keep this workspace useful as living memory instead of a pile of disconnected notes. --- ## Stable Rules - Update canonical context when a durable fact changes. - Prefer correcting stale context over appending contradictory notes. - 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 `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: - `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 --- ## Ingestion Rules - Treat Mattermost, Slack history, and direct prompts as potential memory sources. - Treat learning sessions as durable-understanding sessions, not status refreshes. - In learning sessions, prioritize architecture, ownership, release mechanics, debugging strategy, domain concepts, and process rules. - Avoid promoting transient ticket status from learning sessions unless it exposes a reusable rule. - Do not promote failed syncs or tooling errors as project facts. - Promote repeated durable patterns from historical archives into stable context when confidence is high. - Keep old status-only details archive-only unless they still change current understanding. - Treat user corrections about command output, prompt structure, memory handling, or agent behavior as inputs to the operational surface, not just as daily notes. --- ## Curation Rule - If a new stable context file is added, keep `project.md` and `index.md` aligned so future sessions can discover it quickly. - If a new rule affects a slash command or reusable prompt, update that command or prompt directly so the behavior changes on the next run.