daybook/AGENTS.md

3.3 KiB

AGENTS.md

Project

Daybook is a self-hosted Django + Django REST Framework web app where AI agents publish artifacts and a human browses them in a time-ordered, persona-filterable feed.

The core product principle is: agents publish content, not files. The server owns IDs, styling, storage layout, dates, and normalization into browser-native HTML, image, or PDF outputs.

Current MVP Decisions

  • Use a single shared ingest API token for now.
  • Require persona in every artifact payload.
  • Do not add reader authentication in the local/self-hosted MVP.
  • Use random 8-character artifact IDs.
  • Start as a plain Django project; add Docker after core ingest and viewer work.
  • Preserve original markdown as .md alongside rendered .html.

Architecture Notes

  • Planning source: planning/daybook_planning.md.
  • Django project: daybook_project/.
  • Main app: artifacts/.
  • Theme CSS: static/themes/.
  • Feed template: templates/artifacts/feed.html.
  • Stored artifact files live under artifacts_store/{persona}/{YYYY-MM-DD}/.

Implementation Guidelines

  • Prefer small, direct changes over broad abstractions.
  • Keep ingest normalization server-side.
  • The viewer should only need to render HTML, image, or PDF.
  • Do not make agents responsible for styling, filenames, or storage paths.
  • Preserve existing planning decisions unless the user explicitly changes them.
  • Avoid adding backwards-compatibility code before anything has shipped.

Development And Deployment Workflow

  • Develop and test locally in this workspace by default.
  • Use the local Django commands for normal iteration: python manage.py check, python manage.py migrate, and python manage.py runserver.
  • Run the local development server on 127.0.0.1:8001. Port 8000 may be reserved or blocked on this workstation.
  • Do not deploy to the Proxmox NUC during routine code iteration.
  • Treat the NUC container as the local live/staging target. Deploy there only at explicit stable checkpoints, such as an end-of-day build.
  • Before any NUC deployment, preserve /opt/daybook/deploy/.env and /opt/daybook/deploy/data.
  • After any NUC deployment or configuration change, run the documented health checks and update the NUC ops knowledge base plus planning/daybook-container-handoff.md if takeover facts changed.

Repository Notes

  • _archive_/ exists for retired or moved project docs and experiments that should not drive current implementation decisions.
  • Current deployment/takeover details live in planning/daybook-container-handoff.md; canonical NUC infrastructure details live in the NUC ops repo.

Commands

  • Install dependencies: pip install -r requirements.txt
  • Run migrations: python manage.py migrate
  • Start dev server: python manage.py runserver 127.0.0.1:8001
  • Local app URL: http://127.0.0.1:8001/
  • Local API health check: http://127.0.0.1:8001/api/capabilities
  • Django checks: python manage.py check

API Defaults

  • MVP ingest endpoint: POST /api/artifacts
  • MVP list endpoint: GET /api/artifacts?persona=&day=&tag=
  • Artifact view: GET /a/{id}
  • Development token: Authorization: Bearer dev-token

OpenCode

This project is initialized with opencode.json, which loads this file as project instructions. After changing opencode.json, .opencode/, or this file, restart OpenCode so the updated instructions are loaded.