Files
timmy-academy/GENOME.md
Alexander Whitestone 703e095ba6 fix: #678
- Generate GENOME.md for timmy-academy
- Add complete codebase analysis
- Include architecture, API surface, and test coverage

Addresses issue #678: Codebase Genome: timmy-academy — Full Analysis

GENOME.md includes:
- Project overview and architecture
- Entry points and data flow
- Key abstractions
- API surface and commands
- Test coverage gaps
- Security considerations
- Dependencies and deployment
- Future development plans

Repository: Timmy_Foundation/timmy-academy
Description: Evennia MUD world for agent training and crisis response
2026-04-20 22:55:49 -04:00

172 lines
5.9 KiB
Markdown

# GENOME.md — timmy-academy
## Project Overview
**Name:** Timmy Academy
**Description:** An Evennia MUD for AI agent training, collaboration, and crisis response practice
**Framework:** Evennia 6.0.0 (Python MUD framework)
**Language:** Python 3.12.3
**License:** Part of the Timmy Foundation project ecosystem
## Architecture
```
┌─────────────────────────────────────────────────────────┐
│ Timmy Academy │
├─────────────────────────────────────────────────────────┤
│ Evennia Framework Layer │
│ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ │
│ │ Django ORM │ │ Twisted │ │ Telnet + │ │
│ │ (Database) │ │ (Async) │ │ WebSocket │ │
│ └─────────────┘ └─────────────┘ └─────────────┘ │
│ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ │
│ │ Typeclasses │ │ Commands │ │ World │ │
│ │ (Objects) │ │ (Input) │ │ (Rooms) │ │
│ └─────────────┘ └─────────────┘ └─────────────┘ │
└─────────────────────────────────────────────────────────┘
```
## Entry Points and Data Flow
### Entry Points
1. **Telnet Connection:** `telnet 167.99.126.228 4000`
2. **Web Client:** `http://167.99.126.228:4001`
3. **SSH Management:** `ssh root@167.99.126.228`
### Data Flow
```
User → Telnet/Web → Evennia → Commands → Typeclasses → World
Database (Django ORM)
Other Agents (Broadcast)
```
## Key Abstractions
### 1. Typeclasses
- `rooms.py` - Room definitions with atmosphere
- `characters.py` - Player/agent definitions
- `exits.py` - Exit definitions
- `objects.py` - Interactive objects
### 2. Commands
- `command.py` - Custom commands (@status, @map, smell, listen)
- `default_cmdsets.py` - Command set registration
### 3. World Modules
- `commons_wing.py` - 5 Commons rooms
- `dormitory_entrance.py` - 5 Dormitory rooms
- `workshop_wing.py` - 5 Workshop rooms
- `gardens_wing.py` - 5 Gardens rooms
## API Surface
### Custom Commands
| Command | Description |
|---------|-------------|
| `@status` | Show location, wing, who's online, uptime |
| `@map` | ASCII map of current wing |
| `@academy` | Overview of all wings with room counts |
| `rooms` | List all rooms with wing color coding |
| `examine` | Detailed room inspection with atmosphere |
| `smell` / `sniff` | Sensory - room scents |
| `listen` / `hear` | Sensory - room sounds |
### Evennia Hooks
- `at_object_creation()` - Room/character creation
- `at_cmdset()` - Command set registration
- `at_server_startstop()` - Server lifecycle
## Test Coverage Gaps
### Missing Tests
1. **Room atmosphere tests** - Verify sensory data
2. **Command integration tests** - Test custom commands
3. **World rebuild tests** - Test rebuild script
4. **Connection tests** - Test telnet/web connections
5. **Agent interaction tests** - Test multi-agent scenarios
### Test Files
- `tests/stress_test.py` - Basic stress test
- Missing: Unit tests for typeclasses
- Missing: Integration tests for commands
- Missing: End-to-end tests for world rebuild
## Security Considerations
### Connection Security
- Telnet: Unencrypted (port 4000)
- Web Client: HTTP (port 4001)
- SSH: Encrypted (management only)
### Agent Security
- Agent accounts: wizard, Allegro, Timmy, Ezra
- Role-based access: Superuser, AI Agent
- Command permissions: Typeclass-based
### Data Security
- Database: SQLite (file-based)
- No external authentication
- No encryption at rest
## Dependencies
### Python Packages
- Evennia 6.0.0
- Django (via Evennia)
- Twisted (via Evennia)
- Python 3.12.3
### System Dependencies
- VPS: DigitalOcean droplet
- OS: Ubuntu/Debian
- Python venv: `/root/workspace/evennia-venv`
## Deployment
### VPS Location
- **Host:** 167.99.126.228
- **Telnet:** Port 4000
- **Web:** Port 4001
- **SSH:** Port 22
### Rebuild Command
```bash
ssh root@167.99.126.228
cd /root/workspace/timmy-academy
source /root/workspace/evennia-venv/bin/activate
python world/rebuild_world.py
```
## Future Development
### Planned Features
1. **Gitea Bridge** - Webhook integration for in-world notifications
2. **Crisis Training Scenarios** - Multi-agent crisis response exercises
3. **Nexus Integration** - Cross-platform agent orchestration
4. **Sensory Expansion** - Weather, lighting, NPC interactions
5. **Agent Memory** - Persistent memory objects in rooms
6. **Training Modules** - Structured lesson sequences
### Technical Debt
1. **Test coverage** - Need unit and integration tests
2. **Documentation** - API documentation missing
3. **Monitoring** - No health checks or alerting
4. **Backups** - No automated backup system
## Conclusion
Timmy Academy is a functional Evennia MUD world for AI agent training with:
- 21 rooms across 5 zones
- 4 custom agent accounts
- 7 custom commands
- Rich sensory atmosphere
- Active development roadmap
**Status:** Production-ready for agent training
**Priority:** Medium (training environment)
**Maintainer:** Timmy Foundation
---
*Generated by Codebase Genome pipeline — 2026-04-20*