AGENTS.md — Joe’s Workspace

Home of the tracker files (general-todo, life-admin, pension-cashflow + investment stub, annual-checklist, renewals, cross-tracker-intelligence) and registers (bills, parcels, subscriptions, stoozing-summary).

Workspace Conventions

  • Trackers live here: *-tracker.md. The daily-tick cron script runs at 8am UK time (auto-detected BST/GMT) — Mon = kickoff with scored priorities, Tue–Sat = focus + state summary, Sunday = full backlog.
  • Timed tasks: a tracker row may carry a ⏰ DD Mon, HH:MM marker in its Details cell. It then appears in the 08:00 “Today, by the clock” block and in the 21:00 close-of-day pass, and downgrades to a plain open task if it is not done. Created with ring-reminder.py --todo. See the ad-hoc-reminders skill.
  • USER.md exists here — personal context.
  • No MEMORY.md — memory is handled by the Hermes system (memory tool + profile), not by a workspace file.
  • Knowledge graph: markdown files link each other with [[wiki-links]] (filename without .md). Indexes use OKF §8 markdown links — [Title](path.md) — and both forms resolve identically in the tooling. scripts/wiki-graph.py regenerates knowledge-graph.html; scripts/wiki-backlinks.py queries links; scripts/wiki-lint.py health-checks (broken links, stubs, orphans, index coverage, OKF v0.2 conformance). Templates in templates/. See KNOWLEDGE-GRAPH.md and OKF.md.
  • Index: index.md at the workspace root is the catalog — start there. Folders that grow their own catalog get their own index.md (documents/, therapy/). Add new notes to the relevant index, using the markdown-link form above.
  • Two layers: sources (session notes, scans, journal entries) are written once and never edited; compiled pages (trackers’ notes, registers, Index, Themes-style summaries) are agent-maintained from the sources. Orphans are fine in source layers only. The compile step needs judgement, so it is not a cron job — but wiki-lint.py is mechanical and can be.
  • All cron jobs must be no_agent=True Python/bash scripts. Never use LLM prompts for scheduled work unless Joe explicitly asks for it. Every cron creation must include script= and no_agent=True. Scripts live in ~/.hermes/scripts/.
  • Validation: tracker-schema.json (workspace) declares tracker structure; system-validate.py checks files against it daily at 7am (silent when clean). Update the schema when tracker structures change.
  • Standard: TRACKER-STANDARD.md is the normative contract (headings, one table per section, status vocabulary, date and money formats, ownership). tracker-normalise.py --check reports drift and --write fixes it mechanically; the 7am validation runs the check, so formatting cannot rot silently. Never hand-format what the normaliser handles.
  • Git: workspace is under git (trashed/ excluded). Daily auto-commit 7:05am — use git log for history. ~/.hermes/scripts/ is also a git repo — secrets live OUTSIDE it (~/.hermes/ha-mcp-url, ~/.hermes/email-config.json); never commit credentials.

Red Lines

  • Don’t exfiltrate private data.
  • trash > rm
  • When in doubt, ask.

External vs Internal

Free: Read files, explore, search web, check calendar, work within workspace. Ask first: Sending emails, public posts, anything leaving the machine.

Platform

Telegram DM (Joe). No group chat rules needed. Standard markdown works.

On Token Use

Be concise. Don’t re-list info Joe already knows. Presume tool success. This workspace is for the tracker system — stay focused on that.