85 lines
2.5 KiB
Markdown
85 lines
2.5 KiB
Markdown
---
|
|
namespace: work
|
|
tags: [system, agent, eagle, rules]
|
|
last_synced: 2026-04-27
|
|
confidence: 1.0
|
|
---
|
|
|
|
# Personal OS — Agent Rules & Architecture
|
|
|
|
Eagle (Орёл) is the Discord-facing Hermes agent. This page documents what Eagle knows about its own environment and how to reason about it.
|
|
|
|
## Data Flow
|
|
|
|
```
|
|
Asana API
|
|
→ sync.js (every 30 min, workdays via Hermes cron)
|
|
→ PostgreSQL (tasks, stories, task_edges, sync_state)
|
|
→ generate-status.js
|
|
→ ~/Developer/personal-os/asana_context.md ← raw Asana data
|
|
→ ~/Developer/personal-os/status.md ← Eagle reads THIS
|
|
```
|
|
|
|
Eagle **only reads** `status.md`. It never touches the DB directly or calls Asana API.
|
|
|
|
## Eagle's Knowledge Sources
|
|
|
|
1. `~/Developer/personal-os/status.md` — live Asana snapshot (updated every 30 min)
|
|
2. `~/Developer/personal-os/briefs/daily/YYYY-MM-DD.md` — today's brief
|
|
3. `~/Developer/personal-os/briefs/weekly/plan-MONDAY.md` — weekly plan
|
|
4. `~/obsidian/wiki/` — knowledge base (via obsidian MCP)
|
|
5. `~/Developer/personal-os/agent/` — playbooks and rules (via file tools)
|
|
|
|
## Feedback Loop
|
|
|
|
When Alex corrects something:
|
|
1. Edit the brief directly (show diff first, confirm before writing)
|
|
2. If systemic → edit the prompt template in `agent/prompts/`
|
|
3. Log to `~/Developer/personal-os/logs/corrections_log.md`: `YYYY-MM-DD HH:MM | file | what changed`
|
|
|
|
## Self-Diagnostics
|
|
|
|
If pipeline seems stale, Eagle can check:
|
|
```bash
|
|
stat -f "%Sm" ~/Developer/personal-os/status.md
|
|
# Should be < 40 min old on workdays
|
|
```
|
|
|
|
If sync is broken:
|
|
```bash
|
|
bash ~/scripts/run-pipeline.sh
|
|
# Runs sync.js + generate-status.js + healthcheck
|
|
```
|
|
|
|
If wiki is stale:
|
|
```bash
|
|
bash ~/scripts/run-wiki-ingest.sh
|
|
# Runs at 22:00 via launchd; call manually if needed
|
|
```
|
|
|
|
## Cron Schedule (Hermes)
|
|
|
|
| Job | Schedule | Channel |
|
|
|-----|----------|---------|
|
|
| data-pipeline | */30 7-21 workdays | silent |
|
|
| morning-brief | 08:30 workdays | #daily-brief |
|
|
| eod-summary | 18:00 workdays | #daily-brief |
|
|
| inbox-check | */30 9-19 workdays | #inbox |
|
|
| weekly-plan | Mon 08:00 | #daily-brief |
|
|
| weekly-review | Fri 17:00 | #daily-brief |
|
|
| commit-vault | 23:00 daily | silent |
|
|
|
|
wiki-ingest runs at 22:00 via **launchd** (not Hermes) — because API-based Claude has no Mac filesystem access.
|
|
|
|
## Allowed File Writes
|
|
|
|
Eagle can write to:
|
|
- `briefs/daily/YYYY-MM-DD.md`
|
|
- `briefs/weekly/plan-MONDAY.md`
|
|
- `briefs/weekly/YYYY-MM-DD.md`
|
|
- `briefs/inbox/YYYY-MM-DD.md`
|
|
- `agent/prompts/*.md` (with confirmation)
|
|
- `logs/corrections_log.md`
|
|
|
|
Never write to `obsidian/wiki/` directly — that's wiki-ingest's job.
|