Refactor Mattermost and Slack integration workflows to remove legacy Fidelity variables, streamline command execution, and enhance documentation for project profiles. Update scripts and README files to reflect changes in directory structure and configuration precedence, ensuring a consistent approach to project knowledge management across profiles. Improve error handling and validation in profile creation and doctor commands, and enhance test coverage for profile-related functionalities.

This commit is contained in:
2026-05-21 14:13:21 -06:00
parent 1ad707373a
commit ad230e1abe
28 changed files with 263 additions and 120 deletions

View File

@@ -12,7 +12,7 @@ Obsidian is the current human-facing implementation, but the workspace should no
### Canonical Memory
The source of truth is plain Markdown under `project-knowledge/`.
The source of truth is plain Markdown under `workspaces/<profile>/project-knowledge/`.
Agents should edit canonical notes directly when precision matters because direct edits produce auditable diffs.
@@ -31,16 +31,16 @@ Use `scripts/memory/memory.sh` for project-knowledge operations:
The current adapter is Obsidian CLI through `scripts/obsidian/cli.sh`.
If Obsidian CLI is unavailable or fails, `scripts/memory/memory.sh` falls back to direct Markdown operations unless `AIW_MEMORY_BACKEND=obsidian` is explicitly set.
If Obsidian CLI is unavailable or fails, `scripts/memory/memory.sh` uses direct Markdown operations unless `AIW_MEMORY_BACKEND=obsidian` is explicitly set.
---
## Configuration
- `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_PROJECT_PROFILE`: selected profile. Defaults to `fidelity` in this workspace.
- `profiles/<profile>/workspace.json`: canonical source for `knowledge_dir`, `inbox_dir`, and `index_dir`.
- `AIW_PROJECT_KNOWLEDGE_DIR`: optional local override for the canonical project knowledge directory.
- `AIW_MEMORY_BACKEND`: `auto`, `files`, or `obsidian`. Defaults to `auto`.
- `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:
@@ -55,15 +55,15 @@ Backend meanings:
The memory interface owns type-to-folder routing:
- `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/`
- `daily` -> `workspaces/<profile>/project-knowledge/06-daily/`
- `work-item` -> `workspaces/<profile>/project-knowledge/02-work-items/`
- `person` -> `workspaces/<profile>/project-knowledge/04-people/`
- `decision` -> `workspaces/<profile>/project-knowledge/05-decisions/`
- `system` -> `workspaces/<profile>/project-knowledge/03-context/systems/`
- `workstream` -> `workspaces/<profile>/project-knowledge/03-context/workstreams/`
- `meeting-note` -> `workspaces/<profile>/project-knowledge/06-daily/`
Templates live in `project-knowledge/09-templates/`.
Templates live in `workspaces/<profile>/project-knowledge/09-templates/`.
This gives agents an automatic destination for new notes without coupling the rule to Obsidian.
@@ -77,7 +77,7 @@ This gives agents an automatic destination for new notes without coupling the ru
- 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 `project-knowledge/`; promote only curated memory.
- Keep raw evidence outside `workspaces/<profile>/project-knowledge/`; promote only curated memory.
---

View File

@@ -10,10 +10,10 @@ Obsidian should not become a second memory store.
## Recommended Vault
Open the `project-knowledge/` folder as the Obsidian vault:
Open the `workspaces/<profile>/project-knowledge/` folder as the Obsidian vault:
```text
<workspace-root>/project-knowledge/
<workspace-root>/workspaces/<profile>/project-knowledge/
```
This keeps one source of truth:
@@ -30,14 +30,14 @@ This keeps one source of truth:
Canonical project knowledge lives in:
- `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/`
- `workspaces/<profile>/project-knowledge/00-start/`
- `workspaces/<profile>/project-knowledge/01-current/`
- `workspaces/<profile>/project-knowledge/02-work-items/`
- `workspaces/<profile>/project-knowledge/03-context/`
- `workspaces/<profile>/project-knowledge/04-people/`
- `workspaces/<profile>/project-knowledge/05-decisions/`
- `workspaces/<profile>/project-knowledge/06-daily/`
- `workspaces/<profile>/project-knowledge/07-maps/`
Technical runtime remains outside the vault:
@@ -58,21 +58,21 @@ Communication evidence may exist under `workspaces/<profile>/inbox/` or connecto
Version portable Obsidian configuration only when it improves the workspace for every clone:
- `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`
- `workspaces/<profile>/project-knowledge/.obsidian/app.json`
- `workspaces/<profile>/project-knowledge/.obsidian/core-plugins.json`
- `workspaces/<profile>/project-knowledge/.obsidian/graph.json`
- `workspaces/<profile>/project-knowledge/.obsidian/appearance.json`
- `workspaces/<profile>/project-knowledge/.obsidian/daily-notes.json`
- `workspaces/<profile>/project-knowledge/.obsidian/templates.json`
- `workspaces/<profile>/project-knowledge/.obsidian/bookmarks.json`
Do not version local runtime state:
- `project-knowledge/.obsidian/workspace*.json`
- `project-knowledge/.obsidian/workspace-mobile*.json`
- `project-knowledge/.obsidian/plugins/`
- `project-knowledge/.obsidian/snippets/`
- `project-knowledge/.obsidian/cache/`
- `workspaces/<profile>/project-knowledge/.obsidian/workspace*.json`
- `workspaces/<profile>/project-knowledge/.obsidian/workspace-mobile*.json`
- `workspaces/<profile>/project-knowledge/.obsidian/plugins/`
- `workspaces/<profile>/project-knowledge/.obsidian/snippets/`
- `workspaces/<profile>/project-knowledge/.obsidian/cache/`
Recommended graph and search exclusions:
@@ -107,7 +107,7 @@ 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 `project-knowledge/07-maps/` as graph hubs. This keeps the graph navigable without forcing every file into Obsidian-specific wiki-link syntax.
Use map notes under `workspaces/<profile>/project-knowledge/07-maps/` as graph hubs. This keeps the graph navigable without forcing every file into Obsidian-specific wiki-link syntax.
---