---
name: project-log
description: Track all completed projects for year-end review
---

# Project Log Maintenance

Keep `/root/.hermes/projects-log.md` updated with every completed project.

## When to update
- At the end of every session where meaningful work was done
- When a task on the todo list gets marked completed
- When a major milestone is reached

## Format
```
## YYYY-MM-DD
- [x] Project name: Brief description of what was accomplished
```

## What to include
- Infrastructure changes (new servers, services, tunnels)
- Portal features built
- Client-specific work (BoxPilot, Apex, etc.)
- Automation / scripts created
- Security improvements
- Any non-trivial task the user would want to remember

## Categories to track
- Infrastructure
- Portal
- Email
- Networking
- Security
- Compliance & Legal (policy manuals, ToS, Privacy Policies, regulatory research)
- Web Research Stack (search/scrape API integrations, data broker removal)
- Client projects (DRE, BoxPilot, Apex, Forefront)
- MCP Servers (database, Google Workspace, etc.)
- Vehicle database updates
- Integrations (Cloudflare, APIs, etc.)

## End of year
When January rolls around, I can summarize the full year by reading this file.

## Retroactive DB Extraction
If the log is incomplete and you need to retroactively inventory projects or deliverables discussed across past sessions (e.g., "what did we work on this week"), FTS5 joins or raw terminal outputs often hit truncation limits due to volume.
Instead, use the included Python script to mine the raw SQLite DB:
`python3 /root/.hermes/skills/productivity/project-log/scripts/mine-state-db.py --since <unix_timestamp> --out /tmp/mentions.txt`
Then use `search_files` or `read_file` to analyze the resulting `/tmp/mentions.txt`.
*(Note: FTS5 tables (`messages_fts`) lack role metadata. If manually querying, always join `messages_fts` on `rowid = messages.id` to filter by `m.role = 'user'`)*
