Files
timmy-config/wizards/allegro-primus/knowledge
2026-03-31 20:02:01 +00:00
..
2026-03-31 20:02:01 +00:00
2026-03-31 20:02:01 +00:00
2026-03-31 20:02:01 +00:00
2026-03-31 20:02:01 +00:00
2026-03-31 20:02:01 +00:00
2026-03-31 20:02:01 +00:00
2026-03-31 20:02:01 +00:00

AP Knowledge Base

A hierarchical memory storage system for Allegro-Primus based on the memdir pattern from Claude Code.

Overview

The AP Knowledge Base provides persistent, file-based memory storage with:

  • Hierarchical organization - Memories organized by type (fact, procedure, observation, lesson)
  • Memory aging - Automatic freshness scoring based on age
  • Relevance scoring - Search and rank memories by relevance
  • Memory consolidation - Merge similar memories automatically
  • Knowledge graph - Track relationships between memories
  • Father sync - Sync knowledge with father's teachings

Memory Types

Type Description Example
fact Facts about users, systems, or context "User prefers Python over JavaScript"
procedure How-to guidance and workflows "Deployment checklist for production"
observation Point-in-time observations "Build failed due to missing dependency"
lesson Learned insights from experience "Mocking databases caused test drift"

Directory Structure

~/.ap/knowledge/
├── MEMORY.md              # Auto-generated index
├── facts/                 # Fact memories
├── procedures/            # Procedure memories
├── observations/          # Observation memories
├── lessons/               # Lesson memories
├── archive/               # Archived memories
├── relationships.json     # Knowledge graph edges
├── lineage.json          # Memory lineage tracking
└── sync/                 # Father sync directory
    ├── inbox/            # Imports from father
    ├── outbox/           # Exports to father
    └── processed/        # Processed sync files

Memory File Format

Memories are stored as Markdown with YAML frontmatter:

---
id: abc123
name: Python coding standards
description: Best practices for Python development
type: procedure
scope: team
created: 2024-01-15T10:30:00
modified: 2024-01-15T10:30:00
tags: python, coding, standards
source: father
confidence: 0.95
---

Always use type hints for function signatures.
Write docstrings for all public functions.
Follow PEP 8 style guidelines.

CLI Usage

Add a Memory

# Interactive
ap-kb add-memory --name "Deployment process" --type procedure --tags deploy

# With content
ap-kb add-memory --name "API endpoint" --type fact --content "Base URL is https://api.example.com"

Search Memories

# Basic search
ap-kb search python

# Filter by type
ap-kb search deploy --type procedure

# Filter by tags
ap-kb search --tags python best-practices

List Memories

# All memories
ap-kb list

# By type
ap-kb list --type fact lesson

# Sorted by access count
ap-kb list --sort access

Consolidate Similar Memories

# Preview what would be merged
ap-kb consolidate --dry-run

# Actually consolidate
ap-kb consolidate

Sync with Father

# Show sync status
ap-kb sync --status

# Export for father review
ap-kb sync --export --scope team

# Import father's teachings
ap-kb sync --import

# Create complete package
ap-kb sync --package --notes "Please review deployment procedures"

Knowledge Graph

# Create relationship
ap-kb relate memory1_id memory2_id --type related --description "Similar topic"

# Visualize
ap-kb visualize

Python API

from pathlib import Path
from knowledge import MemoryDirectory, MemoryEntry, MemoryType, MemoryQuery

# Initialize
memdir = MemoryDirectory(Path("~/.ap/knowledge"))

# Create memory
entry = MemoryEntry(
    name="User preference",
    description="User prefers dark mode",
    type=MemoryType.FACT,
    content="Always use dark mode for UI components",
    tags=["ui", "preferences"]
)

# Save
memdir.save(entry)

# Search
results = memdir.search(MemoryQuery(
    text="dark mode",
    types=[MemoryType.FACT],
    limit=5
))

for entry, score in results:
    print(f"{entry.name}: {score}")

# Find similar
similar = memdir.find_similar(entry, threshold=0.8)

# Consolidate
merged = memdir.consolidate()

Knowledge Graph

Track relationships between memories:

from knowledge import KnowledgeGraph, RelationshipType

graph = KnowledgeGraph(Path("~/.ap/knowledge"))

# Add relationship
graph.add_relationship(
    source_id="mem1",
    target_id="mem2",
    rel_type=RelationshipType.DERIVED_FROM,
    description="Based on original research"
)

# Get lineage
lineage = graph.get_lineage("mem2")
print(lineage["ancestors"])  # ['mem1']

# Find related memories
related = graph.find_related("mem1", max_depth=2)

Father Sync

Synchronize knowledge with father's teachings:

from knowledge import FatherSync

sync = FatherSync(memdir)

# Export for father
sync.export_for_father(scope=MemoryScope.TEAM)

# Import teachings
imported, skipped, conflicts = sync.import_from_father()

# Resolve conflicts
for conflict in conflicts:
    sync.resolve_conflict(conflict, resolution='merge')

Configuration

Environment variables:

  • AP_KNOWLEDGE_DIR - Override default knowledge directory

Installation

# Make CLI executable
chmod +x /root/wizards/allegro-primus/knowledge/cli.py

# Optional: Add to PATH
ln -s /root/wizards/allegro-primus/knowledge/cli.py /usr/local/bin/ap-kb

Dependencies

Core:

  • Python 3.8+
  • networkx (for knowledge graph)

Optional:

  • matplotlib (for visualization)

License

MIT - Allegro-Primus Project