feat: Obsidian integration via cli scripts
This commit is contained in:
@@ -13,10 +13,14 @@ Behavior rules:
|
||||
- Treat `core/` as the reusable project-independent operating model.
|
||||
- Treat `profiles/fidelity/profile.md` as the active Fidelity project profile.
|
||||
- Treat `vault/` as the canonical clean knowledge base for humans and AI.
|
||||
- Treat `scripts/memory/` as the project-agnostic access layer for note creation, vault 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.
|
||||
- Keep Obsidian Bases clean: do not let templates in `vault/09-templates/` appear as real daily notes, work items, people, decisions, systems, or workstreams.
|
||||
- Role mapping notes such as `vault/04-people/manager.md` are `type: role-map`; actual people profiles are `type: person`.
|
||||
- When editing canonical vault 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 <type> <slug> [title]`, then inspect and refine the generated Markdown.
|
||||
- When checking vault quality, use `bash scripts/memory/memory.sh health` and direct file inspection.
|
||||
- Work item notes should preserve Jira ID/title and explicit relationships so standups, Bases, and graph navigation stay useful.
|
||||
- Daily notes should include `focus`, `work-items`, and `blockers` when those values are clear.
|
||||
- Before answering a prompt that depends on current state, verify the latest relevant files instead of relying only on conversation history.
|
||||
@@ -44,6 +48,7 @@ Behavior rules:
|
||||
- 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.
|
||||
- Do not leave behavior-only corrections only in daily logs. If a correction should affect future output, update the tool or instruction that produces that output.
|
||||
- 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 `vault/03-context/ios/`.
|
||||
|
||||
@@ -13,12 +13,15 @@ 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 `vault/` as the canonical clean knowledge base.
|
||||
- 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.
|
||||
- Keep Obsidian Bases clean by excluding templates and typing role maps separately from people.
|
||||
- When updating canonical vault notes, maintain relationship metadata and `updated` fields so the vault 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.
|
||||
- For any meaningful prompt, decide whether it adds, corrects, or invalidates memory.
|
||||
- Update the smallest correct canonical file when memory should change.
|
||||
- Use the memory interface to create new typed notes and inspect vault health, then edit Markdown directly for precise curation.
|
||||
- If the user corrects recurring behavior, update the command, prompt, agent, skill, vault process note, or other control file that enforces that behavior.
|
||||
- Keep imported evidence separate from promoted memory.
|
||||
- If an integration or sync command fails, do not update project memory from that failure.
|
||||
|
||||
@@ -9,6 +9,7 @@ Use these files as the baseline context:
|
||||
@README.md
|
||||
@core/README.md
|
||||
@core/memory/operational-memory.md
|
||||
@core/integrations/memory-vault-model.md
|
||||
@core/integrations/communication-model.md
|
||||
@profiles/fidelity/profile.md
|
||||
@vault/00-start/start-here.md
|
||||
|
||||
@@ -7,6 +7,8 @@ Slash commands available in this workspace.
|
||||
## Generic Commands
|
||||
|
||||
- [Workspace Context](workspace-context.md)
|
||||
- [Memory Health](memory-health.md)
|
||||
- [Memory Create](memory-create.md)
|
||||
- [Communication Sync](communication-sync.md)
|
||||
- [Archive Import](archive-import.md)
|
||||
- [AI Prompt](ai-prompt.md)
|
||||
|
||||
43
.opencode/commands/memory-create.md
Normal file
43
.opencode/commands/memory-create.md
Normal file
@@ -0,0 +1,43 @@
|
||||
---
|
||||
description: Create a canonical memory note using the project-agnostic memory interface
|
||||
---
|
||||
|
||||
Create a new canonical memory note from a known type.
|
||||
|
||||
Supported types:
|
||||
|
||||
- `daily`
|
||||
- `work-item`
|
||||
- `person`
|
||||
- `decision`
|
||||
- `system`
|
||||
- `workstream`
|
||||
- `meeting-note`
|
||||
|
||||
User request:
|
||||
|
||||
$ARGUMENTS
|
||||
|
||||
Read:
|
||||
|
||||
@core/integrations/memory-vault-model.md
|
||||
@vault/00-start/workspace-architecture.md
|
||||
@vault/09-templates/work-item.md
|
||||
@vault/09-templates/person.md
|
||||
@vault/09-templates/decision.md
|
||||
@vault/09-templates/system.md
|
||||
@vault/09-templates/workstream.md
|
||||
|
||||
Instructions:
|
||||
|
||||
- Parse the requested type, slug, and title from `$ARGUMENTS`.
|
||||
- Use `bash scripts/memory/memory.sh create <type> <slug> [title]` when type and slug are clear.
|
||||
- If type or slug is not clear, do not guess. Explain the expected format.
|
||||
- After creation, inspect the generated file and update metadata/content if the user provided enough context.
|
||||
- Keep the note in the canonical folder selected by the memory interface.
|
||||
|
||||
Return:
|
||||
|
||||
1. Created file
|
||||
2. Any metadata/content refined
|
||||
3. Any missing details the user may want to add
|
||||
27
.opencode/commands/memory-health.md
Normal file
27
.opencode/commands/memory-health.md
Normal file
@@ -0,0 +1,27 @@
|
||||
---
|
||||
description: Check canonical memory health and Obsidian adapter status
|
||||
---
|
||||
|
||||
Run a lightweight health check for the canonical memory vault.
|
||||
|
||||
Read:
|
||||
|
||||
@core/integrations/memory-vault-model.md
|
||||
@core/integrations/obsidian-model.md
|
||||
@vault/00-start/workspace-architecture.md
|
||||
|
||||
Run:
|
||||
|
||||
!`bash scripts/memory/memory.sh health`
|
||||
|
||||
Structured views:
|
||||
|
||||
!`for base in work-items people decisions daily systems workstreams; do echo "\n## $base"; bash scripts/memory/memory.sh base-query "$base" paths 2>/dev/null || bash scripts/memory/memory.sh base-query "$base" 2>/dev/null || true; done`
|
||||
|
||||
Respond with:
|
||||
|
||||
1. Health status
|
||||
2. Any issues that should be fixed now
|
||||
3. Any optional Obsidian-only improvements
|
||||
|
||||
Do not modify project memory unless the user explicitly asks for cleanup.
|
||||
@@ -8,6 +8,7 @@ Read core:
|
||||
|
||||
@core/README.md
|
||||
@core/memory/operational-memory.md
|
||||
@core/integrations/memory-vault-model.md
|
||||
@core/integrations/communication-model.md
|
||||
@core/profiles/create-project-profile.md
|
||||
|
||||
|
||||
Reference in New Issue
Block a user