2026-02-24 23:17:49 +00:00
|
|
|
# CLAUDE.md — AI Assistant Guide for Timmy Time
|
|
|
|
|
|
refactor: Phase 1/4/6 — doc cleanup, config fix, token optimization
Phase 1 — Documentation cleanup:
- Slim README 303→93 lines (remove duplicated architecture, config tables)
- Slim CLAUDE.md 267→80 lines (remove project layout, env vars, CI section)
- Slim AGENTS.md 342→72 lines (remove duplicated patterns, running locally)
- Delete MEMORY.md, WORKSET_PLAN.md, WORKSET_PLAN_PHASE2.md (session docs)
- Archive PLAN.md, IMPLEMENTATION_SUMMARY.md to docs/
- Move QUALITY_ANALYSIS.md, QUALITY_REVIEW_REPORT.md to docs/
- Move apply_security_fixes.py, activate_self_tdd.sh to scripts/
Phase 4 — Config & build cleanup:
- Fix wheel build: add 11 missing modules to pyproject.toml include list
- Add pytest markers (unit, integration, dashboard, swarm, slow)
- Add data/self_modify_reports/ and .handoff/ to .gitignore
Phase 6 — Token optimization:
- Add docstrings to 15 __init__.py files that were empty
- Create __init__.py for events/, memory/, upgrades/ modules
Root markdown: 87KB → ~18KB (79% reduction)
https://claude.ai/code/session_019oMFNvD8uSGSSmBMGkBfQN
2026-02-26 21:03:15 +00:00
|
|
|
**Tech stack:** Python 3.11+ · FastAPI · Jinja2 + HTMX · SQLite · Agno ·
|
|
|
|
|
Ollama · pydantic-settings · WebSockets · Docker
|
2026-02-24 23:17:49 +00:00
|
|
|
|
refactor: Phase 1/4/6 — doc cleanup, config fix, token optimization
Phase 1 — Documentation cleanup:
- Slim README 303→93 lines (remove duplicated architecture, config tables)
- Slim CLAUDE.md 267→80 lines (remove project layout, env vars, CI section)
- Slim AGENTS.md 342→72 lines (remove duplicated patterns, running locally)
- Delete MEMORY.md, WORKSET_PLAN.md, WORKSET_PLAN_PHASE2.md (session docs)
- Archive PLAN.md, IMPLEMENTATION_SUMMARY.md to docs/
- Move QUALITY_ANALYSIS.md, QUALITY_REVIEW_REPORT.md to docs/
- Move apply_security_fixes.py, activate_self_tdd.sh to scripts/
Phase 4 — Config & build cleanup:
- Fix wheel build: add 11 missing modules to pyproject.toml include list
- Add pytest markers (unit, integration, dashboard, swarm, slow)
- Add data/self_modify_reports/ and .handoff/ to .gitignore
Phase 6 — Token optimization:
- Add docstrings to 15 __init__.py files that were empty
- Create __init__.py for events/, memory/, upgrades/ modules
Root markdown: 87KB → ~18KB (79% reduction)
https://claude.ai/code/session_019oMFNvD8uSGSSmBMGkBfQN
2026-02-26 21:03:15 +00:00
|
|
|
For agent roster and conventions, see [`AGENTS.md`](AGENTS.md).
|
2026-02-24 23:17:49 +00:00
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
## Architecture Patterns
|
|
|
|
|
|
|
|
|
|
### Config access
|
|
|
|
|
|
|
|
|
|
```python
|
|
|
|
|
from config import settings
|
|
|
|
|
url = settings.ollama_url # never use os.environ.get() directly in app code
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
### Singletons
|
|
|
|
|
|
|
|
|
|
```python
|
|
|
|
|
from dashboard.store import message_log
|
2026-02-26 22:07:41 +00:00
|
|
|
from infrastructure.notifications.push import notifier
|
|
|
|
|
from infrastructure.ws_manager.handler import ws_manager
|
2026-02-24 23:17:49 +00:00
|
|
|
```
|
|
|
|
|
|
|
|
|
|
### HTMX response pattern
|
|
|
|
|
|
|
|
|
|
```python
|
|
|
|
|
return templates.TemplateResponse(
|
|
|
|
|
"partials/chat_message.html",
|
|
|
|
|
{"request": request, "role": "user", "content": message}
|
|
|
|
|
)
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
### Graceful degradation
|
|
|
|
|
|
|
|
|
|
Optional services (Ollama, Redis, AirLLM) degrade gracefully — log the error,
|
refactor: Phase 1/4/6 — doc cleanup, config fix, token optimization
Phase 1 — Documentation cleanup:
- Slim README 303→93 lines (remove duplicated architecture, config tables)
- Slim CLAUDE.md 267→80 lines (remove project layout, env vars, CI section)
- Slim AGENTS.md 342→72 lines (remove duplicated patterns, running locally)
- Delete MEMORY.md, WORKSET_PLAN.md, WORKSET_PLAN_PHASE2.md (session docs)
- Archive PLAN.md, IMPLEMENTATION_SUMMARY.md to docs/
- Move QUALITY_ANALYSIS.md, QUALITY_REVIEW_REPORT.md to docs/
- Move apply_security_fixes.py, activate_self_tdd.sh to scripts/
Phase 4 — Config & build cleanup:
- Fix wheel build: add 11 missing modules to pyproject.toml include list
- Add pytest markers (unit, integration, dashboard, swarm, slow)
- Add data/self_modify_reports/ and .handoff/ to .gitignore
Phase 6 — Token optimization:
- Add docstrings to 15 __init__.py files that were empty
- Create __init__.py for events/, memory/, upgrades/ modules
Root markdown: 87KB → ~18KB (79% reduction)
https://claude.ai/code/session_019oMFNvD8uSGSSmBMGkBfQN
2026-02-26 21:03:15 +00:00
|
|
|
return a fallback, never crash.
|
2026-02-24 23:17:49 +00:00
|
|
|
|
|
|
|
|
### Route registration
|
|
|
|
|
|
refactor: Phase 1/4/6 — doc cleanup, config fix, token optimization
Phase 1 — Documentation cleanup:
- Slim README 303→93 lines (remove duplicated architecture, config tables)
- Slim CLAUDE.md 267→80 lines (remove project layout, env vars, CI section)
- Slim AGENTS.md 342→72 lines (remove duplicated patterns, running locally)
- Delete MEMORY.md, WORKSET_PLAN.md, WORKSET_PLAN_PHASE2.md (session docs)
- Archive PLAN.md, IMPLEMENTATION_SUMMARY.md to docs/
- Move QUALITY_ANALYSIS.md, QUALITY_REVIEW_REPORT.md to docs/
- Move apply_security_fixes.py, activate_self_tdd.sh to scripts/
Phase 4 — Config & build cleanup:
- Fix wheel build: add 11 missing modules to pyproject.toml include list
- Add pytest markers (unit, integration, dashboard, swarm, slow)
- Add data/self_modify_reports/ and .handoff/ to .gitignore
Phase 6 — Token optimization:
- Add docstrings to 15 __init__.py files that were empty
- Create __init__.py for events/, memory/, upgrades/ modules
Root markdown: 87KB → ~18KB (79% reduction)
https://claude.ai/code/session_019oMFNvD8uSGSSmBMGkBfQN
2026-02-26 21:03:15 +00:00
|
|
|
New routes: `src/dashboard/routes/<name>.py` → register in `src/dashboard/app.py`.
|
2026-02-24 23:17:49 +00:00
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
## Testing
|
|
|
|
|
|
|
|
|
|
```bash
|
refactor: Phase 1/4/6 — doc cleanup, config fix, token optimization
Phase 1 — Documentation cleanup:
- Slim README 303→93 lines (remove duplicated architecture, config tables)
- Slim CLAUDE.md 267→80 lines (remove project layout, env vars, CI section)
- Slim AGENTS.md 342→72 lines (remove duplicated patterns, running locally)
- Delete MEMORY.md, WORKSET_PLAN.md, WORKSET_PLAN_PHASE2.md (session docs)
- Archive PLAN.md, IMPLEMENTATION_SUMMARY.md to docs/
- Move QUALITY_ANALYSIS.md, QUALITY_REVIEW_REPORT.md to docs/
- Move apply_security_fixes.py, activate_self_tdd.sh to scripts/
Phase 4 — Config & build cleanup:
- Fix wheel build: add 11 missing modules to pyproject.toml include list
- Add pytest markers (unit, integration, dashboard, swarm, slow)
- Add data/self_modify_reports/ and .handoff/ to .gitignore
Phase 6 — Token optimization:
- Add docstrings to 15 __init__.py files that were empty
- Create __init__.py for events/, memory/, upgrades/ modules
Root markdown: 87KB → ~18KB (79% reduction)
https://claude.ai/code/session_019oMFNvD8uSGSSmBMGkBfQN
2026-02-26 21:03:15 +00:00
|
|
|
make test # Quick run (no Ollama needed)
|
2026-02-24 23:17:49 +00:00
|
|
|
make test-cov # With coverage (term-missing + XML)
|
|
|
|
|
```
|
|
|
|
|
|
refactor: Phase 1/4/6 — doc cleanup, config fix, token optimization
Phase 1 — Documentation cleanup:
- Slim README 303→93 lines (remove duplicated architecture, config tables)
- Slim CLAUDE.md 267→80 lines (remove project layout, env vars, CI section)
- Slim AGENTS.md 342→72 lines (remove duplicated patterns, running locally)
- Delete MEMORY.md, WORKSET_PLAN.md, WORKSET_PLAN_PHASE2.md (session docs)
- Archive PLAN.md, IMPLEMENTATION_SUMMARY.md to docs/
- Move QUALITY_ANALYSIS.md, QUALITY_REVIEW_REPORT.md to docs/
- Move apply_security_fixes.py, activate_self_tdd.sh to scripts/
Phase 4 — Config & build cleanup:
- Fix wheel build: add 11 missing modules to pyproject.toml include list
- Add pytest markers (unit, integration, dashboard, swarm, slow)
- Add data/self_modify_reports/ and .handoff/ to .gitignore
Phase 6 — Token optimization:
- Add docstrings to 15 __init__.py files that were empty
- Create __init__.py for events/, memory/, upgrades/ modules
Root markdown: 87KB → ~18KB (79% reduction)
https://claude.ai/code/session_019oMFNvD8uSGSSmBMGkBfQN
2026-02-26 21:03:15 +00:00
|
|
|
- **Stubs in conftest:** `agno`, `airllm`, `pyttsx3`, `telegram`, `discord`
|
|
|
|
|
stubbed via `sys.modules.setdefault()` — tests run without those packages
|
|
|
|
|
- **Test mode:** `TIMMY_TEST_MODE=1` set automatically in conftest
|
|
|
|
|
- **FastAPI testing:** Use the `client` fixture
|
|
|
|
|
- **Async:** `asyncio_mode = "auto"` — async tests detected automatically
|
2026-03-08 12:50:44 -04:00
|
|
|
- **Coverage threshold:** 73% (`fail_under` in `pyproject.toml`)
|
2026-02-24 23:17:49 +00:00
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
## Key Conventions
|
|
|
|
|
|
|
|
|
|
1. **Tests must stay green.** Run `make test` before committing.
|
refactor: Phase 1/4/6 — doc cleanup, config fix, token optimization
Phase 1 — Documentation cleanup:
- Slim README 303→93 lines (remove duplicated architecture, config tables)
- Slim CLAUDE.md 267→80 lines (remove project layout, env vars, CI section)
- Slim AGENTS.md 342→72 lines (remove duplicated patterns, running locally)
- Delete MEMORY.md, WORKSET_PLAN.md, WORKSET_PLAN_PHASE2.md (session docs)
- Archive PLAN.md, IMPLEMENTATION_SUMMARY.md to docs/
- Move QUALITY_ANALYSIS.md, QUALITY_REVIEW_REPORT.md to docs/
- Move apply_security_fixes.py, activate_self_tdd.sh to scripts/
Phase 4 — Config & build cleanup:
- Fix wheel build: add 11 missing modules to pyproject.toml include list
- Add pytest markers (unit, integration, dashboard, swarm, slow)
- Add data/self_modify_reports/ and .handoff/ to .gitignore
Phase 6 — Token optimization:
- Add docstrings to 15 __init__.py files that were empty
- Create __init__.py for events/, memory/, upgrades/ modules
Root markdown: 87KB → ~18KB (79% reduction)
https://claude.ai/code/session_019oMFNvD8uSGSSmBMGkBfQN
2026-02-26 21:03:15 +00:00
|
|
|
2. **No cloud AI dependencies.** All inference on localhost.
|
|
|
|
|
3. **Keep the root directory clean.** No new top-level files without purpose.
|
|
|
|
|
4. **Follow existing patterns** — singletons, graceful degradation, pydantic config.
|
|
|
|
|
5. **Security defaults:** Never hard-code secrets.
|
2026-02-24 23:17:49 +00:00
|
|
|
6. **XSS prevention:** Never use `innerHTML` with untrusted content.
|
|
|
|
|
7. **Keep routes thin** — business logic lives in the module, not the route.
|
|
|
|
|
8. **Prefer editing existing files** over creating new ones.
|
|
|
|
|
9. **Use `from config import settings`** for all env-var access.
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
## Security-Sensitive Areas
|
|
|
|
|
|
2026-03-07 07:28:14 -05:00
|
|
|
- `src/timmy_serve/` — API server, payment configuration
|
2026-02-24 23:17:49 +00:00
|
|
|
- Any file handling secrets or authentication tokens
|
refactor: Phase 1/4/6 — doc cleanup, config fix, token optimization
Phase 1 — Documentation cleanup:
- Slim README 303→93 lines (remove duplicated architecture, config tables)
- Slim CLAUDE.md 267→80 lines (remove project layout, env vars, CI section)
- Slim AGENTS.md 342→72 lines (remove duplicated patterns, running locally)
- Delete MEMORY.md, WORKSET_PLAN.md, WORKSET_PLAN_PHASE2.md (session docs)
- Archive PLAN.md, IMPLEMENTATION_SUMMARY.md to docs/
- Move QUALITY_ANALYSIS.md, QUALITY_REVIEW_REPORT.md to docs/
- Move apply_security_fixes.py, activate_self_tdd.sh to scripts/
Phase 4 — Config & build cleanup:
- Fix wheel build: add 11 missing modules to pyproject.toml include list
- Add pytest markers (unit, integration, dashboard, swarm, slow)
- Add data/self_modify_reports/ and .handoff/ to .gitignore
Phase 6 — Token optimization:
- Add docstrings to 15 __init__.py files that were empty
- Create __init__.py for events/, memory/, upgrades/ modules
Root markdown: 87KB → ~18KB (79% reduction)
https://claude.ai/code/session_019oMFNvD8uSGSSmBMGkBfQN
2026-02-26 21:03:15 +00:00
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
## Entry Points
|
|
|
|
|
|
|
|
|
|
| Command | Module | Purpose |
|
|
|
|
|
|---------|--------|---------|
|
|
|
|
|
| `timmy` | `src/timmy/cli.py` | Chat, think, status |
|
2026-03-02 13:17:38 -05:00
|
|
|
| `timmy-serve` | `src/timmy_serve/cli.py` | API server (port 8402) |
|
2026-02-26 22:07:41 +00:00
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
2026-03-02 13:17:38 -05:00
|
|
|
## Module Map (8 packages)
|
2026-02-26 22:07:41 +00:00
|
|
|
|
|
|
|
|
| Package | Purpose |
|
|
|
|
|
|---------|---------|
|
|
|
|
|
| `timmy/` | Core agent, personas, agent interface, semantic memory |
|
|
|
|
|
| `dashboard/` | FastAPI web UI, routes, templates |
|
|
|
|
|
| `infrastructure/` | WebSocket, notifications, events, LLM router |
|
|
|
|
|
| `integrations/` | Discord, Telegram, Siri Shortcuts, voice NLU |
|
|
|
|
|
| `spark/` | Event capture and advisory engine |
|
2026-03-02 13:17:38 -05:00
|
|
|
| `brain/` | Identity system, memory interface |
|
|
|
|
|
| `timmy_serve/` | API server |
|
2026-02-26 22:07:41 +00:00
|
|
|
| `config.py` | Pydantic settings (foundation for all modules) |
|