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:
2026-04-17 15:52:08 -06:00
parent 11fdb17fcb
commit dbc1894e27
175 changed files with 1163 additions and 914 deletions

View File

@@ -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.

View File

@@ -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.

View File

@@ -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.

View File

@@ -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

View File

@@ -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