Add project-knowledge structure and templates
- Introduced new maps for navigating project knowledge, including "Current Work," "Fidelity Domain," "Fidelity Apps," "Work Items," and "People." - Created base files for daily notes, decisions, people, systems, work items, and workstreams with defined properties and views. - Developed templates for daily notes, decisions, meeting notes, persons, systems, work items, and workstreams to standardize documentation. - Updated scripts and prompts to reflect the new project-knowledge directory structure. - Removed outdated onboarding and start-here documents, consolidating relevant information into the new maps. - Ensured all references in workflows and scripts point to the new project-knowledge paths.
This commit is contained in:
@@ -65,4 +65,4 @@ Optional navigation layers such as Obsidian should read the same Markdown files
|
||||
|
||||
See `core/integrations/obsidian-model.md` for the recommended vault model.
|
||||
|
||||
The project-agnostic memory interface lives in `scripts/memory/` and is documented in `core/integrations/memory-vault-model.md`. Agents should use that interface for note creation, vault search, Base queries, and health checks, while still editing Markdown directly for precise curation.
|
||||
The project-agnostic memory interface lives in `scripts/memory/` and is documented in `core/integrations/memory-vault-model.md`. Agents should use that interface for note creation, project knowledge search, Base queries, and health checks, while still editing Markdown directly for precise curation.
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# Memory Vault Integration Model
|
||||
# Project Knowledge Memory Model
|
||||
|
||||
## Purpose
|
||||
|
||||
@@ -12,16 +12,16 @@ Obsidian is the current human-facing implementation, but the workspace should no
|
||||
|
||||
### Canonical Memory
|
||||
|
||||
The source of truth is plain Markdown under `vault/`.
|
||||
The source of truth is plain Markdown under `project-knowledge/`.
|
||||
|
||||
Agents should edit canonical notes directly when precision matters because direct edits produce auditable diffs.
|
||||
|
||||
### Memory Interface
|
||||
|
||||
Use `scripts/memory/memory.sh` for vault-level operations:
|
||||
Use `scripts/memory/memory.sh` for project-knowledge operations:
|
||||
|
||||
- `root` prints the configured memory root
|
||||
- `read <path>` reads a vault-relative note
|
||||
- `read <path>` reads a project-knowledge-relative note
|
||||
- `search <query> [folder]` searches memory
|
||||
- `create <type> <slug> [title]` creates a note in the canonical folder from the matching template
|
||||
- `base-query <base-name> [format]` queries a structured view when supported
|
||||
@@ -37,9 +37,10 @@ If Obsidian CLI is unavailable or fails, `scripts/memory/memory.sh` falls back t
|
||||
|
||||
## Configuration
|
||||
|
||||
- `AIW_MEMORY_VAULT_DIR`: canonical memory directory. Defaults to `<workspace-root>/vault`.
|
||||
- `AIW_PROJECT_KNOWLEDGE_DIR`: canonical project knowledge directory. Defaults to `<workspace-root>/project-knowledge`.
|
||||
- `AIW_MEMORY_VAULT_DIR`: transition alias for the canonical project knowledge directory.
|
||||
- `AIW_MEMORY_BACKEND`: `auto`, `files`, or `obsidian`. Defaults to `auto`.
|
||||
- `AIW_OBSIDIAN_VAULT_DIR`: Obsidian-specific vault override, still supported by the adapter.
|
||||
- `AIW_OBSIDIAN_VAULT_DIR`: Obsidian-specific transition alias, still supported by the adapter.
|
||||
- `AIW_OBSIDIAN_VAULT_NAME`: Obsidian URI vault name override for URI wrappers.
|
||||
|
||||
Backend meanings:
|
||||
@@ -54,15 +55,15 @@ Backend meanings:
|
||||
|
||||
The memory interface owns type-to-folder routing:
|
||||
|
||||
- `daily` -> `vault/06-daily/`
|
||||
- `work-item` -> `vault/02-work-items/`
|
||||
- `person` -> `vault/04-people/`
|
||||
- `decision` -> `vault/05-decisions/`
|
||||
- `system` -> `vault/03-context/systems/`
|
||||
- `workstream` -> `vault/03-context/workstreams/`
|
||||
- `meeting-note` -> `vault/06-daily/`
|
||||
- `daily` -> `project-knowledge/06-daily/`
|
||||
- `work-item` -> `project-knowledge/02-work-items/`
|
||||
- `person` -> `project-knowledge/04-people/`
|
||||
- `decision` -> `project-knowledge/05-decisions/`
|
||||
- `system` -> `project-knowledge/03-context/systems/`
|
||||
- `workstream` -> `project-knowledge/03-context/workstreams/`
|
||||
- `meeting-note` -> `project-knowledge/06-daily/`
|
||||
|
||||
Templates live in `vault/09-templates/`.
|
||||
Templates live in `project-knowledge/09-templates/`.
|
||||
|
||||
This gives agents an automatic destination for new notes without coupling the rule to Obsidian.
|
||||
|
||||
@@ -71,12 +72,12 @@ This gives agents an automatic destination for new notes without coupling the ru
|
||||
## Agent Rules
|
||||
|
||||
- Use the memory interface when creating new canonical notes from a known type.
|
||||
- Use the memory interface for broad search, Base queries, and vault health checks.
|
||||
- Use the memory interface for broad search, Base queries, and project knowledge health checks.
|
||||
- Prefer Obsidian CLI property operations for frontmatter/property edits when available, especially on existing notes that appear in Bases, because the CLI reduces YAML formatting drift.
|
||||
- Edit Markdown directly for precise memory curation, corrections, and content updates.
|
||||
- Do not treat Obsidian CLI failure as project context.
|
||||
- Do not require Obsidian to be running for core workspace operation.
|
||||
- Keep raw evidence outside `vault/`; promote only curated memory.
|
||||
- Keep raw evidence outside `project-knowledge/`; promote only curated memory.
|
||||
|
||||
---
|
||||
|
||||
@@ -88,6 +89,6 @@ When available, Obsidian CLI improves human-facing memory workflows:
|
||||
- `create path=... template=...` creates notes from templates.
|
||||
- `base:query` reads Bases as structured views.
|
||||
- `properties` and `property:*` inspect or update metadata.
|
||||
- `unresolved`, `orphans`, `links`, `backlinks`, and `tags` support vault health checks.
|
||||
- `unresolved`, `orphans`, `links`, `backlinks`, and `tags` support Obsidian/project knowledge health checks.
|
||||
|
||||
These are optional enhancements. The canonical memory remains Markdown.
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
|
||||
## Purpose
|
||||
|
||||
Use Obsidian as a visual navigation and manual review layer over the same canonical Markdown memory that powers the AI workspace.
|
||||
Use Obsidian as a visual navigation and manual review layer over canonical project knowledge.
|
||||
|
||||
Obsidian should not become a second memory store.
|
||||
|
||||
@@ -10,36 +10,38 @@ Obsidian should not become a second memory store.
|
||||
|
||||
## Recommended Vault
|
||||
|
||||
Open the `vault/` folder as the Obsidian vault:
|
||||
Open the `project-knowledge/` folder as the Obsidian vault:
|
||||
|
||||
```text
|
||||
<workspace-root>/vault/
|
||||
<workspace-root>/project-knowledge/
|
||||
```
|
||||
|
||||
This keeps one source of truth:
|
||||
|
||||
- OpenCode and agents maintain operational memory
|
||||
- OpenCode and agents maintain project knowledge in Markdown
|
||||
- Obsidian reads and edits the same Markdown files
|
||||
- Git tracks intentional memory and configuration changes
|
||||
- runtime evidence and generated artifacts stay outside the vault
|
||||
- agent operating rules live outside the vault in `agent-memory/`
|
||||
|
||||
---
|
||||
|
||||
## Source Of Truth
|
||||
|
||||
Canonical human/AI memory lives in:
|
||||
Canonical project knowledge lives in:
|
||||
|
||||
- `vault/00-start/`
|
||||
- `vault/01-current/`
|
||||
- `vault/02-work-items/`
|
||||
- `vault/03-context/`
|
||||
- `vault/04-people/`
|
||||
- `vault/05-decisions/`
|
||||
- `vault/06-daily/`
|
||||
- `vault/07-maps/`
|
||||
- `project-knowledge/00-start/`
|
||||
- `project-knowledge/01-current/`
|
||||
- `project-knowledge/02-work-items/`
|
||||
- `project-knowledge/03-context/`
|
||||
- `project-knowledge/04-people/`
|
||||
- `project-knowledge/05-decisions/`
|
||||
- `project-knowledge/06-daily/`
|
||||
- `project-knowledge/07-maps/`
|
||||
|
||||
Technical runtime remains outside the vault:
|
||||
|
||||
- `agent-memory/`
|
||||
- `.opencode/`
|
||||
- `scripts/`
|
||||
- `core/`
|
||||
@@ -48,7 +50,7 @@ Technical runtime remains outside the vault:
|
||||
- `scripts/*/generated/`
|
||||
- archives and local virtual environments
|
||||
|
||||
Communication evidence may exist under `ai/inbox/` or connector `generated/` folders, but promoted memory belongs in `vault/`.
|
||||
Communication evidence may exist under `ai/inbox/` or connector `generated/` folders, but promoted memory belongs in `project-knowledge/`.
|
||||
|
||||
---
|
||||
|
||||
@@ -56,21 +58,21 @@ Communication evidence may exist under `ai/inbox/` or connector `generated/` fol
|
||||
|
||||
Version portable Obsidian configuration only when it improves the workspace for every clone:
|
||||
|
||||
- `vault/.obsidian/app.json`
|
||||
- `vault/.obsidian/core-plugins.json`
|
||||
- `vault/.obsidian/graph.json`
|
||||
- `vault/.obsidian/appearance.json`
|
||||
- `vault/.obsidian/daily-notes.json`
|
||||
- `vault/.obsidian/templates.json`
|
||||
- `vault/.obsidian/bookmarks.json`
|
||||
- `project-knowledge/.obsidian/app.json`
|
||||
- `project-knowledge/.obsidian/core-plugins.json`
|
||||
- `project-knowledge/.obsidian/graph.json`
|
||||
- `project-knowledge/.obsidian/appearance.json`
|
||||
- `project-knowledge/.obsidian/daily-notes.json`
|
||||
- `project-knowledge/.obsidian/templates.json`
|
||||
- `project-knowledge/.obsidian/bookmarks.json`
|
||||
|
||||
Do not version local runtime state:
|
||||
|
||||
- `vault/.obsidian/workspace*.json`
|
||||
- `vault/.obsidian/workspace-mobile*.json`
|
||||
- `vault/.obsidian/plugins/`
|
||||
- `vault/.obsidian/snippets/`
|
||||
- `vault/.obsidian/cache/`
|
||||
- `project-knowledge/.obsidian/workspace*.json`
|
||||
- `project-knowledge/.obsidian/workspace-mobile*.json`
|
||||
- `project-knowledge/.obsidian/plugins/`
|
||||
- `project-knowledge/.obsidian/snippets/`
|
||||
- `project-knowledge/.obsidian/cache/`
|
||||
|
||||
Recommended graph and search exclusions:
|
||||
|
||||
@@ -99,13 +101,13 @@ Use Obsidian wiki-links only for Obsidian-only notes when there is a clear navig
|
||||
|
||||
## Agent Rules
|
||||
|
||||
The agent may update Obsidian navigation notes when they improve discoverability.
|
||||
The agent may update Obsidian navigation notes when they improve project discoverability.
|
||||
|
||||
The agent should not treat Obsidian runtime layout changes as project context.
|
||||
|
||||
If Obsidian metadata or properties are added, use them selectively for high-value notes such as work items, decisions, and index pages. Do not mass-convert existing files just to add metadata.
|
||||
|
||||
Use map notes under `vault/07-maps/` as graph hubs. This keeps the graph navigable without forcing every file into Obsidian-specific wiki-link syntax.
|
||||
Use map notes under `project-knowledge/07-maps/` as graph hubs. This keeps the graph navigable without forcing every file into Obsidian-specific wiki-link syntax.
|
||||
|
||||
---
|
||||
|
||||
@@ -132,7 +134,7 @@ Use `scripts/obsidian/` only as the current Obsidian adapter:
|
||||
|
||||
- `cli.sh` runs the official Obsidian CLI from the configured vault directory.
|
||||
- `uri.sh` generates encoded Obsidian URIs.
|
||||
- `open.sh <vault-relative-path>` opens a note through Obsidian URI.
|
||||
- `open.sh <project-knowledge-relative-path>` opens a note through Obsidian URI.
|
||||
- `daily.sh` opens the configured daily note through Obsidian URI.
|
||||
- `search.sh <query>` opens Obsidian search through Obsidian URI.
|
||||
|
||||
|
||||
@@ -17,7 +17,7 @@ Use for same-day progress, findings, evolving reproduction notes, and work that
|
||||
Default path pattern:
|
||||
|
||||
```text
|
||||
vault/06-daily/YYYY-MM-DD.md
|
||||
project-knowledge/06-daily/YYYY-MM-DD.md
|
||||
```
|
||||
|
||||
### `state`
|
||||
@@ -27,8 +27,8 @@ Use for current priorities, active blockers, near-term constraints, and communic
|
||||
Default paths:
|
||||
|
||||
```text
|
||||
vault/01-current/current-work.md
|
||||
vault/01-current/work-items.md
|
||||
project-knowledge/01-current/current-work.md
|
||||
project-knowledge/01-current/work-items.md
|
||||
```
|
||||
|
||||
### `work-items`
|
||||
@@ -38,7 +38,7 @@ Use for canonical memory about active tickets, tasks, stories, investigations, o
|
||||
Default path pattern:
|
||||
|
||||
```text
|
||||
vault/02-work-items/<id-or-slug>.md
|
||||
project-knowledge/02-work-items/<id-or-slug>.md
|
||||
```
|
||||
|
||||
### `stable-context`
|
||||
@@ -48,7 +48,7 @@ Use for durable project knowledge that should survive beyond the current work wi
|
||||
Default path pattern:
|
||||
|
||||
```text
|
||||
vault/03-context/<domain>/*.md
|
||||
project-knowledge/03-context/<domain>/*.md
|
||||
```
|
||||
|
||||
### `people`
|
||||
@@ -58,7 +58,7 @@ Use for repeated collaborators, role mappings, manager/stakeholder context, and
|
||||
Default path pattern:
|
||||
|
||||
```text
|
||||
vault/04-people/*.md
|
||||
project-knowledge/04-people/*.md
|
||||
```
|
||||
|
||||
### `decisions`
|
||||
@@ -68,7 +68,7 @@ Use for confirmed decisions with ongoing impact.
|
||||
Default path pattern:
|
||||
|
||||
```text
|
||||
vault/05-decisions/*.md
|
||||
project-knowledge/05-decisions/*.md
|
||||
```
|
||||
|
||||
### `tooling-behavior`
|
||||
@@ -82,11 +82,12 @@ Default path patterns:
|
||||
.opencode/agents/*.md
|
||||
.opencode/skills/*/SKILL.md
|
||||
prompts/*.md
|
||||
vault/00-start/*.md
|
||||
vault/03-context/process/*.md
|
||||
agent-memory/**/*.md
|
||||
core/**/*.md
|
||||
scripts/**/*.md
|
||||
```
|
||||
|
||||
Raw evidence stays outside `vault/`; promoted memory is written to `vault/`.
|
||||
Raw evidence stays outside `project-knowledge/`; promoted memory is written to `project-knowledge/`.
|
||||
|
||||
---
|
||||
|
||||
@@ -171,13 +172,13 @@ Examples:
|
||||
- prompt-engineering correction -> update the AI prompt command or skill
|
||||
- memory routing correction -> update memory rules and context-maintenance guidance
|
||||
|
||||
The daily log may preserve evidence, but reusable behavior must live in the command, prompt, skill, agent, or knowledge file that enforces it.
|
||||
The daily log may preserve evidence, but reusable behavior must live in the command, prompt, skill, agent, or agent-memory file that enforces it.
|
||||
|
||||
The agent should also identify recurring quality gaps proactively. If an answer reveals that the workspace lacks a rule, source anchor, command behavior, skill guidance, or memory model needed for better future output, the agent should propose the improvement and apply it when the correct destination is clear.
|
||||
|
||||
For technical topics, recurring gaps often belong in:
|
||||
|
||||
- domain-specific guidance under `vault/03-context/`
|
||||
- domain-specific guidance under `project-knowledge/03-context/`
|
||||
- reusable skills under `.opencode/skills/`
|
||||
- agent behavior rules under `.opencode/agents/` or `AGENTS.md`
|
||||
- agent behavior rules under `.opencode/agents/`, `AGENTS.md`, or `agent-memory/`
|
||||
- source anchors for official/current documentation
|
||||
|
||||
@@ -32,23 +32,23 @@ The profile should declare:
|
||||
Create or update:
|
||||
|
||||
```text
|
||||
vault/00-start/start-here.md
|
||||
vault/01-current/current-work.md
|
||||
vault/01-current/work-items.md
|
||||
vault/02-work-items/
|
||||
vault/03-context/project.md
|
||||
vault/03-context/process/
|
||||
vault/04-people/
|
||||
vault/05-decisions/
|
||||
vault/06-daily/
|
||||
vault/07-maps/
|
||||
vault/08-bases/
|
||||
vault/09-templates/
|
||||
project-knowledge/00-start/start-here.md
|
||||
project-knowledge/01-current/current-work.md
|
||||
project-knowledge/01-current/work-items.md
|
||||
project-knowledge/02-work-items/
|
||||
project-knowledge/03-context/project.md
|
||||
project-knowledge/03-context/process/
|
||||
project-knowledge/04-people/
|
||||
project-knowledge/05-decisions/
|
||||
project-knowledge/06-daily/
|
||||
project-knowledge/07-maps/
|
||||
project-knowledge/08-bases/
|
||||
project-knowledge/09-templates/
|
||||
```
|
||||
|
||||
Keep project-specific facts out of `core/`.
|
||||
|
||||
Treat `vault/` as canonical memory. Keep connector inboxes and generated evidence outside the vault.
|
||||
Treat `project-knowledge/` as canonical project memory. Keep connector inboxes and generated evidence outside the project knowledge vault.
|
||||
|
||||
---
|
||||
|
||||
@@ -58,7 +58,7 @@ Use generic variables first:
|
||||
|
||||
```text
|
||||
AIW_PROJECT_PROFILE=<project>
|
||||
AIW_MEMORY_VAULT_DIR=<optional custom vault path>
|
||||
AIW_PROJECT_KNOWLEDGE_DIR=<optional custom project knowledge path>
|
||||
AIW_MEMORY_BACKEND=auto
|
||||
AIW_CHANNEL_PREFIX=<project-or-team-prefix>
|
||||
AIW_MATTERMOST_SYNC_CMD=<optional custom command>
|
||||
@@ -102,15 +102,15 @@ Before using the workspace for real work:
|
||||
|
||||
## 6. Obsidian Vault
|
||||
|
||||
Open `vault/` as the Obsidian vault.
|
||||
Open `project-knowledge/` as the Obsidian vault.
|
||||
|
||||
Use `scripts/memory/` as the project-agnostic memory interface. Obsidian is the default visual and CLI-backed adapter, but profile logic should not depend on Obsidian.
|
||||
|
||||
Recommended rules:
|
||||
|
||||
- keep `vault/` as the clean canonical human/AI memory
|
||||
- keep runtime evidence, scripts, profiles, and generated files outside `vault/`
|
||||
- version only portable `vault/.obsidian` configuration
|
||||
- keep `project-knowledge/` as the clean canonical project knowledge
|
||||
- keep runtime evidence, scripts, profiles, and generated files outside `project-knowledge/`
|
||||
- version only portable `project-knowledge/.obsidian` configuration
|
||||
- ignore local Obsidian workspace state and plugin runtime files
|
||||
- create or update map notes under `vault/07-maps/` for human navigation
|
||||
- create Bases under `vault/08-bases/` using simple `type` properties
|
||||
- create or update map notes under `project-knowledge/07-maps/` for human navigation
|
||||
- create Bases under `project-knowledge/08-bases/` using simple `type` properties
|
||||
|
||||
Reference in New Issue
Block a user