n., archaic. seven nights; a week.
Your week is a git repo. You text a bot what happened; every six hours an agent reads your messages, replans the rest of the week, admits what will not fit, and commits. No app, no database, no service.
The whole system is a few hundred lines: a markdown file of standing instructions, two YAML files, one validator, one cron, one HTML page. Small enough to read in one sitting, and made to be copied, the way micrograd is a model you can read, this is a life planner you can read.
Telegram and Discord both ship wired up; set up either one, or both, and the agent uses whatever it has secrets for. Neither is a dependency. Any other HTTP messaging API (Slack, email, a webhook) is a bullet in CLAUDE.md and two repo secrets away, with no code to change.
| CLAUDE.md | the brain: standing instructions the agent follows each run | 97 lines |
| config.yaml | your life: waking span, anchors, weekly quotas, priorities | 78 lines |
| overrides.yaml | this week's deviations; they expire with the week | a few |
| activities/<id>.json | optional: a locked long-running program the agent may tick but not rewrite | a few |
| scripts/check_plan.py | the auditor: deterministic checks the agent cannot argue with | 237 lines |
| schema/plan.schema.json | the frozen contract between agent and page | 93 lines |
| .github/workflows/plan.yml | the heartbeat: cron, agent, commit | 53 lines |
| index.html | the board: renders plan.json, no build step | 218 lines |
Counts are for the starting template. A copy that has been lived in for a while runs about half as long again, as house rules accumulate in the brain and the auditor learns your constraints by name. That is the config doing its job, not rot.
gh repo create my-sennight --private \ --template agentlab-in/sennight # then, in your copy: # 1. move template/* to the repo root, delete the rest # 2. rewrite config.yaml with your real week # 3. add secrets: CLAUDE_CODE_OAUTH_TOKEN, then # TELEGRAM_BOT_TOKEN + TELEGRAM_CHAT_ID and/or # DISCORD_BOT_TOKEN + DISCORD_CHANNEL_ID # 4. enable Actions, enable Pages, text your botRead the code on GitHub See the board it produces
That board is this repo's template/ directory running on its fictional week, rendered straight from plan.json with no build step.