14 KiB
AI Agent Workflow Runbook
1. Purpose
This document defines how to implement the update server with sequential AI agents.
The workflow is designed for:
- one human operator who launches agents one by one;
- one implementation agent per stage;
- one validation agent after each stage;
- file-based handoff instead of direct agent-to-agent chat.
2. Source Of Truth
Every implementation agent must read these files before starting:
/Users/delete/projects/update_server/PRODUCT_SPEC.md/Users/delete/projects/update_server/IMPLEMENTATION_PLAN.md/Users/delete/projects/update_server/DEVELOPMENT_WORKFLOW.md/Users/delete/projects/update_server/docs/agents/WORKFLOW.md
Every agent must also read the latest handoff and validation files if they exist.
3. Fixed Technical Decisions
These decisions are considered fixed unless the human operator explicitly changes them.
- Language: Go
- Router:
chi - Database:
SQLite - HTML strategy: server-rendered HTML templates
- Artifact storage: local filesystem
- Deployment shape: app container behind Caddy or Nginx
- Web auth: session-based authentication
- Client auth:
Authorization: Bearer <api_key> - API key access modes:
all_projectsproject_allow_listproject_deny_listtag_allow_listtag_deny_list
- One API key must use exactly one scope mode at a time
- Projects support tags from day one
- Security is mandatory, not optional
4. Shared Workspace Rules
All code lives in the main repository.
Agents should use these implementation paths:
/Users/delete/projects/update_server/cmd/server/Users/delete/projects/update_server/internal/Users/delete/projects/update_server/web/Users/delete/projects/update_server/migrations
Agents must use these coordination paths:
- handoffs:
/Users/delete/projects/update_server/docs/agents/handoffs - validations:
/Users/delete/projects/update_server/docs/agents/validation
If an agent needs to communicate something to the next agent, it must do so through:
- code changes;
- a handoff file;
- updates to spec or implementation docs if architecture changed.
Agents should not rely on hidden memory or previous chat state.
5. Handoff Protocol
After finishing work, every implementation agent must create a handoff file:
- naming format:
NN-agent-name.md - example:
01-foundation.md
Each handoff file should be saved in:
/Users/delete/projects/update_server/docs/agents/handoffs
The handoff file must include:
- scope of work;
- files changed;
- migrations added or changed;
- endpoints added or changed;
- tests or commands run;
- known limitations;
- exact next recommended step.
Use this template:
/Users/delete/projects/update_server/docs/agents/HANDOFF_TEMPLATE.md
6. Validation Protocol
After each implementation agent finishes, run a validation agent before moving to the next stage.
The validation agent should:
- read the current agent section in this file;
- read the latest handoff file;
- inspect code changes;
- run relevant tests or checks;
- produce a validation report.
Validation files should be saved in:
/Users/delete/projects/update_server/docs/agents/validation
Use this template:
/Users/delete/projects/update_server/docs/agents/VALIDATION_TEMPLATE.md
Validation result must end in one of these statuses:
APPROVEDCHANGES_REQUIRED
Do not launch the next implementation agent until the previous stage is APPROVED.
7. Agent Count
Recommended sequence:
- 7 implementation agents
- 1 validation agent role used after every stage
The validation agent can be the same AI system reused every time.
8. Agent 01 - Foundation
Mission
Set up the repository skeleton and the minimum runnable Go application.
Ownership
This agent owns:
- Go module initialization
- basic app boot
- config loading
- HTTP router setup
- health endpoint
- base middleware wiring
- template bootstrapping
- initial developer commands
Deliverables
This agent must produce:
- runnable server entrypoint
- config package
- base router with route groups
- health endpoint
- base HTML layout structure
- initial project structure under
cmd,internal, andweb
Out Of Scope
This agent must not implement:
- business logic
- database schema
- authentication flows
- release upload
- API keys
Acceptance Criteria
- the app starts successfully;
- a health endpoint responds;
- the code structure matches the implementation plan;
- the project is ready for migrations and feature modules.
9. Agent 02 - Database And Migrations
Mission
Create the data model, migrations, and database access foundation.
Ownership
This agent owns:
- migration setup
- database connection layer
- schema design
- repository or query layer foundation
Deliverables
This agent must implement tables for:
usersprojectstagsproject_tagsreleasesapi_keysapi_key_project_accessapi_key_tag_accesssessionsif neededaudit_logsif included in the first pass
Out Of Scope
This agent must not implement:
- login UI
- upload endpoints
- full business workflows
Acceptance Criteria
- migrations can be applied cleanly;
- schema matches the spec;
- access tables support project and tag based key scopes;
- database layer is ready for the next agents.
10. Agent 03 - Authentication And Admin Sessions
Mission
Implement admin authentication and session management.
Ownership
This agent owns:
- admin bootstrap user creation
- password hashing
- login and logout flow
- session middleware
- role checks foundation
Deliverables
This agent must produce:
- login form and login handler
- session creation and invalidation
- protected admin route group
- admin bootstrap from environment or setup logic
Out Of Scope
This agent must not implement:
- project management
- release upload
- API key logic
Acceptance Criteria
- admin can log in and log out;
- protected routes are actually protected;
- passwords are hashed securely;
- session handling works reliably.
11. Agent 04 - Projects, Tags, And Releases
Mission
Implement core product data management: projects, project tags, and release upload metadata flow.
Ownership
This agent owns:
- project CRUD
- tag CRUD
- attach or detach tags from projects
- release metadata handling
- artifact storage abstraction
- upload flow and checksum generation
Deliverables
This agent must produce:
- project create, edit, list, archive flow
- tag create, edit, list flow
- project-tag assignment
- release upload service
- artifact persistence on disk
- checksum capture
Out Of Scope
This agent must not implement:
- API key access logic
- external client update endpoints
Acceptance Criteria
- admin can manage projects and tags;
- admin can upload a release to a project;
- release metadata is stored in the database;
- artifact files are stored outside the public web root.
12. Agent 05 - API Keys And Access Control
Mission
Implement API key generation, hashing, permissions, and scope evaluation.
Ownership
This agent owns:
- secure API key generation
- API key hashing and lookup
- permission flags
- access scope evaluation
- project allow or deny list rules
- tag allow or deny list rules
Deliverables
This agent must produce:
- API key creation flow
- one-time key reveal behavior
- key activation and revocation
- permission middleware for API key routes
- project and tag access resolution logic
Out Of Scope
This agent must not implement:
- final UI polish
- deployment hardening
Acceptance Criteria
- API keys are stored hashed;
- only authorized projects are visible to a given key;
- allow-list and deny-list logic works for projects and tags;
- disabled or expired keys are rejected.
13. Agent 06 - Client API And Admin UI
Mission
Implement the usable product experience for admins and client applications.
Ownership
This agent owns:
- admin pages for projects, tags, releases, and API keys
- client-facing update endpoints
- latest-release lookup
- release metadata endpoint
- authenticated download endpoint
Deliverables
This agent must produce:
- admin pages that cover the main flows
- client endpoint to list accessible projects
- client endpoint to get latest release metadata
- client endpoint to download a release
Out Of Scope
This agent must not implement:
- deep security hardening beyond local route protection
- production reverse proxy setup
Acceptance Criteria
- an admin can complete the full product flow from the browser;
- a client can authenticate with a bearer API key;
- a client can discover and download only authorized updates.
14. Agent 07 - Security And Deployment Hardening
Mission
Make the system safe and deployable on an internet-facing server.
Ownership
This agent owns:
- security headers
- rate limiting
- request timeouts
- CSRF finishing pass
- safer cookie settings
- reverse proxy examples
- Docker and deployment finishing pass
- backup and operational notes
Deliverables
This agent must produce:
- hardened HTTP server settings
- production-ready container setup
- Caddy or Nginx example configuration
- deployment notes for Proxmox
- security review fixes that fit the current architecture
Out Of Scope
This agent must not redesign the product or data model unless a critical security issue requires it.
Acceptance Criteria
- the service is ready to run behind HTTPS;
- admin and client traffic have sane security defaults;
- artifacts are not directly exposed;
- deployment instructions are complete enough for first production rollout.
15. Validation Agent Role
Mission
Review each completed stage before the next implementation agent starts.
Required Checks
The validation agent should verify:
- scope completion;
- obvious regressions;
- schema or route mismatches;
- missing tests;
- unsafe behavior;
- contradictions with the spec.
Output
The validation agent must write one validation file per stage and finish with:
APPROVED- or
CHANGES_REQUIRED
16. Operator Guide For Human User
Этот раздел специально для тебя, на русском.
Общая схема запуска
Запускаешь агентов строго по порядку:
Agent 01 - FoundationValidatorAgent 02 - Database And MigrationsValidatorAgent 03 - Authentication And Admin SessionsValidatorAgent 04 - Projects, Tags, And ReleasesValidatorAgent 05 - API Keys And Access ControlValidatorAgent 06 - Client API And Admin UIValidatorAgent 07 - Security And Deployment HardeningFinal Validator
Как запускать каждый этап
Для каждого нового агента даёшь ему один и тот же базовый контекст:
- прочитать
PRODUCT_SPEC.md - прочитать
IMPLEMENTATION_PLAN.md - прочитать
DEVELOPMENT_WORKFLOW.md - прочитать
docs/agents/WORKFLOW.md - прочитать последний handoff-файл
- прочитать последний validation-файл, если он есть
После этого говоришь агенту работать только в рамках его секции из этого runbook.
Что требовать от каждого агента
После завершения этапа агент обязан:
- внести код;
- если нужно, обновить документацию;
- создать handoff-файл в
docs/agents/handoffs; - перечислить, что сделано;
- перечислить, что не сделано;
- указать, что должен делать следующий агент.
Когда запускать валидатора
Валидатора запускаешь после каждого агента.
Ему даёшь задачу:
- прочитать соответствующую секцию агента из
docs/agents/WORKFLOW.md; - прочитать свежий handoff;
- проверить код;
- проверить, не нарушена ли спецификация;
- выдать
APPROVEDилиCHANGES_REQUIRED; - сохранить отчёт в
docs/agents/validation.
Если валидатор нашёл проблемы
Если статус CHANGES_REQUIRED, то:
- не переходишь к следующему агенту;
- запускаешь того же самого агента повторно;
- даёшь ему его прошлый handoff и validation report;
- просишь закрыть замечания;
- снова запускаешь валидатора.
Когда использовать меня как валидатора
Меня лучше использовать:
- после каждого крупного этапа;
- перед миграциями базы;
- перед этапом security hardening;
- перед первым Docker/deploy;
- перед выкладкой на Proxmox.
Практически удобный режим
Самый удобный режим для тебя такой:
- локально на Mac запускаешь первого агента;
- проверяешь, что handoff-файл создался;
- зовёшь меня как валидатора;
- после
APPROVEDзапускаешь следующего агента; - когда дойдёшь до конца, только потом собираешь контейнер и переносишь на Proxmox.
Главный принцип
Следующий агент никогда не стартует без handoff от прошлого и без validation report.
Это защитит тебя от хаоса, повторной работы и скрытых поломок между этапами.