nc://agenda-guardian

v0.1.0Pinned
ThomSharktools/nodecode-agenda-guardian: Plans your day around your calendar and rules, correcting your estimates by the times you report. - a rewrite of Moodtuner997/hermes-agenda-guardian (MIT), credited to Moodtuner9973550488· 10 Nov1 commit
test1 filecell.lisp48.9 KB

nodecode-agenda-guardian

Agenda Guardian: a day planner whose blocks say why they are there. A Nodecode rewrite of Moodtuner997/hermes-agenda-guardian by Moodtuner997.

You write your rules once (work hours, protected windows, the sharpest hours, the longest block, the tasks a day), give each task an estimate, and report the real time when it is done: from the third finished task of a kind the planner corrects that kind's estimates by the median of your own errors and says so. A plan places the day's tasks in the free time around your calendar's events, splits one into blocks no longer than your longest block, prefers your focus window, and names what does not fit instead of overbooking. It is deterministic: no model call, and the same tasks, rules and calendar give the same plan.

Get it

Tell the agent "add the agenda-guardian cell", or run nodecode add nc://agenda-guardian.

Set it up

The cell keeps its tasks in one file, so it needs a folder:

// ~/.nodecode/config.jsonc
{
  "agenda-guardian": {
    "data_dir": "~/agenda/",
    "calendar": "~/agenda/calendar.ics",     // empty plans around no events
    "work_hours": "09:00-18:00",
    "workdays": "mon-fri",
    "protected": "lunch 12:30-13:30",
    "focus": "09:00-11:30",
    "buffer_min": 10,
    "max_block_min": 50,
    "max_tasks_per_day": 3
  }
}

calendar is an .ics file or an https address (an Outlook, Apple or Google export). Nothing else is read, and nothing reaches the network unless calendar is an address. No key and no sign-in are needed.

Use it

In the chat, the model has five tools:

Tool What it does
agenda_add_task A task with its estimate, a kind (writing, admin, sport) and a priority.
agenda_tasks The open tasks in the order the planner takes them.
agenda_done The real time a task took; from the third of a kind the estimates are corrected.
agenda_plan The day: the blocks placed with their reasons, and what does not fit.
agenda_rules The rules in force, and any of them changed in the chat.

Without the model, /agenda-guardian is the same planner:

/agenda-guardian plan                  the day, each block with its reason
/agenda-guardian plan 2026-11-10       another day
/agenda-guardian tasks                 what is open
/agenda-guardian add 30m write the report
/agenda-guardian done t1 45m           the real time it took
/agenda-guardian rules                 the rules, and where each came from
/agenda-guardian set max_tasks_per_day=2

A rule changed in the chat is yours: it outranks the section's value, is kept in the planner's file, and every answer says where each rule came from.

Gaps

The rewrite keeps the original's planner, its estimate correction and its calendar reading; it leaves out what was the other harness's and not the planner's: the Google Workspace write path (this cell reads its calendar and never writes one), the JSON and command calendar sources (an .ics file or address is read), the week and activity proposals with their eight weeks of history, the dashboard tab, the two cron reminders, and the model-facing prompt section. The event-reading covers the ordinary VEVENT shapes (start and end as a wall clock or with a Z); a recurring event is read at its first occurrence only.

Add nc://agenda-guardian

  1. 1

    Install Nodecode

    Once per machine.

    $ curl -fsSL https://nodecode.ai/install.sh | sh
  2. 2

    Add the cell

    Pinned at 3550488.

    $ nodecode add nc://agenda-guardian

    Or tell the agent add the agenda guardian cell.