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:
@@ -21,7 +21,7 @@ bash scripts/memory/memory.sh search "PDIAP-15765"
|
||||
bash scripts/memory/memory.sh create work-item pdiap-15999 "Example title"
|
||||
```
|
||||
|
||||
This interface defaults to Markdown files under `vault/`, uses Obsidian CLI when useful and available, and falls back to direct file operations.
|
||||
This interface defaults to Markdown files under `project-knowledge/`, uses Obsidian CLI when useful and available, and falls back to direct file operations.
|
||||
|
||||
The default workspace Mattermost extractor now lives in:
|
||||
|
||||
|
||||
@@ -1,12 +1,13 @@
|
||||
# Memory Scripts
|
||||
|
||||
This directory exposes a project-agnostic interface for the canonical memory vault.
|
||||
This directory exposes a project-agnostic interface for canonical project knowledge.
|
||||
|
||||
The current implementation uses Markdown files under `vault/` and can optionally delegate to the Obsidian CLI when it is available. The agent should depend on this memory interface, not on Obsidian-specific behavior, so the backing tool can be replaced later.
|
||||
The current implementation uses Markdown files under `project-knowledge/` and can optionally delegate to the Obsidian CLI when it is available. The agent should depend on this memory interface, not on Obsidian-specific behavior, so the backing tool can be replaced later.
|
||||
|
||||
## Backend Model
|
||||
|
||||
- `AIW_MEMORY_VAULT_DIR` points to the canonical Markdown memory directory.
|
||||
- `AIW_PROJECT_KNOWLEDGE_DIR` points to the canonical Markdown project knowledge directory.
|
||||
- `AIW_MEMORY_VAULT_DIR` and `AIW_OBSIDIAN_VAULT_DIR` are transition aliases.
|
||||
- `AIW_MEMORY_BACKEND` defaults to `auto`.
|
||||
- `auto` uses Obsidian CLI when it is useful and available, then falls back to direct Markdown operations.
|
||||
- `files` forces direct Markdown operations.
|
||||
@@ -39,4 +40,4 @@ The template is resolved from `09-templates/<type>.md`. When Obsidian CLI is ava
|
||||
|
||||
## Agent Rule
|
||||
|
||||
Use these scripts for vault-level operations such as creating notes, querying Bases, validating navigation health, and searching memory. For precise content edits, agents should still edit Markdown files directly so diffs remain auditable.
|
||||
Use these scripts for project-knowledge operations such as creating notes, querying Bases, validating navigation health, and searching memory. For precise content edits, agents should still edit Markdown files directly so diffs remain auditable.
|
||||
|
||||
@@ -4,7 +4,8 @@ set -euo pipefail
|
||||
|
||||
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
||||
WORKSPACE_ROOT="$(cd "$SCRIPT_DIR/../.." && pwd)"
|
||||
VAULT_DIR="${AIW_MEMORY_VAULT_DIR:-${AIW_OBSIDIAN_VAULT_DIR:-$WORKSPACE_ROOT/vault}}"
|
||||
PROJECT_KNOWLEDGE_DIR="${AIW_PROJECT_KNOWLEDGE_DIR:-${AIW_MEMORY_VAULT_DIR:-${AIW_OBSIDIAN_VAULT_DIR:-$WORKSPACE_ROOT/project-knowledge}}}"
|
||||
VAULT_DIR="$PROJECT_KNOWLEDGE_DIR"
|
||||
BACKEND="${AIW_MEMORY_BACKEND:-auto}"
|
||||
OBSIDIAN_CLI="$WORKSPACE_ROOT/scripts/obsidian/cli.sh"
|
||||
|
||||
@@ -14,7 +15,7 @@ usage: memory.sh <command> [args]
|
||||
|
||||
commands:
|
||||
root
|
||||
read <vault-relative-path>
|
||||
read <project-knowledge-relative-path>
|
||||
search <query> [folder]
|
||||
create <type> <slug> [title]
|
||||
base-query <base-name> [format]
|
||||
@@ -28,7 +29,7 @@ die() {
|
||||
}
|
||||
|
||||
ensure_vault() {
|
||||
[[ -d "$VAULT_DIR" ]] || die "vault directory not found: $VAULT_DIR"
|
||||
[[ -d "$PROJECT_KNOWLEDGE_DIR" ]] || die "project knowledge directory not found: $PROJECT_KNOWLEDGE_DIR"
|
||||
}
|
||||
|
||||
has_obsidian() {
|
||||
@@ -43,7 +44,7 @@ require_obsidian_if_forced() {
|
||||
|
||||
safe_path() {
|
||||
local rel="$1"
|
||||
[[ "$rel" != /* ]] || die "path must be vault-relative: $rel"
|
||||
[[ "$rel" != /* ]] || die "path must be project-knowledge-relative: $rel"
|
||||
[[ "$rel" != *".."* ]] || die "path must not contain '..': $rel"
|
||||
printf '%s/%s\n' "$VAULT_DIR" "$rel"
|
||||
}
|
||||
@@ -307,7 +308,7 @@ main() {
|
||||
echo "$VAULT_DIR"
|
||||
;;
|
||||
read)
|
||||
[[ $# -eq 1 ]] || die "usage: memory.sh read <vault-relative-path>"
|
||||
[[ $# -eq 1 ]] || die "usage: memory.sh read <project-knowledge-relative-path>"
|
||||
cat "$(safe_path "$1")"
|
||||
;;
|
||||
search)
|
||||
|
||||
@@ -4,7 +4,7 @@ set -euo pipefail
|
||||
|
||||
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
||||
WORKSPACE_ROOT="$(cd "$SCRIPT_DIR/../.." && pwd)"
|
||||
VAULT_DIR="${AIW_MEMORY_VAULT_DIR:-${AIW_OBSIDIAN_VAULT_DIR:-$WORKSPACE_ROOT/vault}}"
|
||||
VAULT_DIR="${AIW_PROJECT_KNOWLEDGE_DIR:-${AIW_MEMORY_VAULT_DIR:-${AIW_OBSIDIAN_VAULT_DIR:-$WORKSPACE_ROOT/project-knowledge}}}"
|
||||
|
||||
if ! command -v obsidian >/dev/null 2>&1; then
|
||||
echo "obsidian CLI is not installed or not in PATH" >&2
|
||||
@@ -12,7 +12,7 @@ if ! command -v obsidian >/dev/null 2>&1; then
|
||||
fi
|
||||
|
||||
if [[ ! -d "$VAULT_DIR" ]]; then
|
||||
echo "vault directory not found: $VAULT_DIR" >&2
|
||||
echo "project knowledge directory not found: $VAULT_DIR" >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
|
||||
@@ -4,7 +4,7 @@ set -euo pipefail
|
||||
|
||||
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
||||
WORKSPACE_ROOT="$(cd "$SCRIPT_DIR/../.." && pwd)"
|
||||
VAULT_DIR="${AIW_OBSIDIAN_VAULT_DIR:-${AIW_MEMORY_VAULT_DIR:-$WORKSPACE_ROOT/vault}}"
|
||||
VAULT_DIR="${AIW_PROJECT_KNOWLEDGE_DIR:-${AIW_MEMORY_VAULT_DIR:-${AIW_OBSIDIAN_VAULT_DIR:-$WORKSPACE_ROOT/project-knowledge}}}"
|
||||
VAULT_NAME="${AIW_OBSIDIAN_VAULT_NAME:-$(basename "$VAULT_DIR")}"
|
||||
|
||||
URI="$("$SCRIPT_DIR/uri.sh" daily "vault=$VAULT_NAME")"
|
||||
|
||||
@@ -4,11 +4,11 @@ set -euo pipefail
|
||||
|
||||
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
||||
WORKSPACE_ROOT="$(cd "$SCRIPT_DIR/../.." && pwd)"
|
||||
VAULT_DIR="${AIW_OBSIDIAN_VAULT_DIR:-${AIW_MEMORY_VAULT_DIR:-$WORKSPACE_ROOT/vault}}"
|
||||
VAULT_DIR="${AIW_PROJECT_KNOWLEDGE_DIR:-${AIW_MEMORY_VAULT_DIR:-${AIW_OBSIDIAN_VAULT_DIR:-$WORKSPACE_ROOT/project-knowledge}}}"
|
||||
VAULT_NAME="${AIW_OBSIDIAN_VAULT_NAME:-$(basename "$VAULT_DIR")}"
|
||||
|
||||
if [[ $# -lt 1 ]]; then
|
||||
echo "usage: open.sh <vault-relative-path>" >&2
|
||||
echo "usage: open.sh <project-knowledge-relative-path>" >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
|
||||
@@ -4,7 +4,7 @@ set -euo pipefail
|
||||
|
||||
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
||||
WORKSPACE_ROOT="$(cd "$SCRIPT_DIR/../.." && pwd)"
|
||||
VAULT_DIR="${AIW_OBSIDIAN_VAULT_DIR:-${AIW_MEMORY_VAULT_DIR:-$WORKSPACE_ROOT/vault}}"
|
||||
VAULT_DIR="${AIW_PROJECT_KNOWLEDGE_DIR:-${AIW_MEMORY_VAULT_DIR:-${AIW_OBSIDIAN_VAULT_DIR:-$WORKSPACE_ROOT/project-knowledge}}}"
|
||||
VAULT_NAME="${AIW_OBSIDIAN_VAULT_NAME:-$(basename "$VAULT_DIR")}"
|
||||
|
||||
if [[ $# -lt 1 ]]; then
|
||||
|
||||
Reference in New Issue
Block a user