personal memory agent
at main 47 lines 2.8 kB view raw view rendered
1# Project Structure 2 3## Directory Layout 4 5```text 6solstone/ 7├── sol.py # Unified CLI entry point (run: sol <command>) 8├── observe/ # Multimodal capture & AI analysis 9├── think/ # Data post-processing, AI agents & orchestration 10├── convey/ # Web app frontend & backend 11├── apps/ # Convey app extensions (see docs/APPS.md) 12├── talent/ # Agent/generator configs + Agent Skills (talent/*/SKILL.md) 13├── tests/ # Pytest test suites + test fixtures under tests/fixtures/ 14├── docs/ # All documentation (*.md files) 15├── AGENTS.md # Development guidelines (this file) 16├── CLAUDE.md # Symlink to AGENTS.md for Claude Code 17└── README.md # Project overview 18``` 19 20Each package has a README.md symlink pointing to its documentation in `docs/`. 21 22## Package Organization 23 24- **Python**: Requires Python 3.10+ 25- **Modules**: Each top-level folder is a Python package with `__init__.py` unless it is data-only (e.g., `tests/fixtures/`) 26- **Imports**: Prefer absolute imports (e.g., `from think.utils import setup_cli`) whenever feasible 27- **Entry Points**: Commands are registered in `sol.py`'s `COMMANDS` dict (pyproject.toml just defines the `sol` entry point) 28- **Journal**: Data stored under `journal/` at the project root 29- **Calling**: When calling other modules as a separate process always use `sol <command>` and never call using `python -m ...` (e.g., use `sol indexer`, NOT `python -m think.indexer`) 30 31## CLI Routing 32 33`sol.py`'s `COMMANDS` dict maps command names to module paths. The unified CLI is `sol`. Run `sol` to see status and available commands. `sol call` routes to `think/call.py`, which discovers `apps/*/call.py` Typer sub-apps and mounts them as subcommands. 34 35## Agent & Skill Organization 36 37`talent/*.md` stores agent personas and generator templates. Apps can add their own in `apps/*/talent/*.md`. Skills live at `talent/*/SKILL.md` and are symlinked to `.agents/skills/` and `.claude/skills/` via `make skills`. 38 39## File Locations 40 41- **Entry Points**: `sol.py` `COMMANDS` dict 42- **Test Fixtures**: `tests/fixtures/journal/` - complete mock journal 43- **Live Logs**: `journal/health/<service>.log` 44- **Agent Personas**: `talent/*.md` (apps can add their own in `talent/`, see [docs/APPS.md](docs/APPS.md)) 45- **Generator Templates**: `talent/*.md` (apps can add their own in `talent/`, see [docs/APPS.md](docs/APPS.md)) 46- **Agent Skills**: `talent/*/SKILL.md` - symlinked to `.agents/skills/` and `.claude/skills/` via `make skills`, read https://platform.claude.com/docs/en/agents-and-tools/agent-skills/best-practices to create the best skills 47- **Scratch Space**: `scratch/` - git-ignored local workspace