# AI-DLC State Tracking ## Project Information - **Project**: atheos-blog-lxc - **Start Date**: 2026-09-29T05:05:05Z - **Current Stage**: INCEPTION — Workspace Detection (complete) → Requirements Analysis - **Deploy Target**: Proxmox LXC (Alpine 3.23) — NOT the K3s cluster. Deploy-target flavour: "self-hosted LXC", so `k3s-flavor.md` does NOT apply and no CI/registry pipeline is wired. ## Workspace State - **Existing Code**: No (greenfield repo; the blog being edited is a separate existing repo) - **Programming Languages**: none yet (deliverable is provisioning/docs; target app is PHP) - **Build System**: none (Alpine + nginx/php-fpm provisioning; Makefile-driven install script) - **Reverse Engineering Needed**: N/A for the repo; brownfield recon done on the *estate* (blog repo, Gitea, PVE templates) — see audit.md Workspace Detection entry. - **Workspace Root**: /home/hermes/dev/atheos-blog-lxc ## Existing Estate Facts (load-bearing — verify before trusting) - **Atheos** (Atheos/Atheos, 677★, MIT, active): PHP web IDE, **no database**. Install = drop files in a web root + make `config.php`, `data/`, `workspace/`, `plugins/`, `themes/` writable. Optional PHP extensions for the plugin marketplace: **ZIP, OPENSSL, MBSTRING**, and `allow_url_fopen=On`. Has git integration via its **codegit** component. - **blog repo** = `armistace/blog` (public, default branch `master`). It is a **Pelican static site**, not plain content: - `src/content/*.md` (~20 posts) + `src/content/images/` - `src/themes/cleanblog/` - `src/pelicanconf.py`, `src/devpelconf.py`, `src/publishconf.py`, `src/Makefile`, `src/tasks.py` - `requirements.txt`: `pelican[markdown]`, `markdown-markup-emoji` - Root: `Dockerfile` (python:slim → `make html` → `make serve-global`), `kube/`, `.gitea/workflows/build_push.yml` - **Implication**: to *regenerate/publish* the site you need Python+pelican (`make html`, `make github`). Atheos alone edits the markdown + git and cannot build it. - **PVE**: template `alpine-3.23-default_20260116_amd64.tar.xz` available (must download first). Node `janeway` (.225) = 15.9 GB RAM (3.3 GB free), storage `extra` 874 GB free. Node `data` (.42) = 7.9 GB RAM (only ~0.95 GB free) — avoid heavy guests. - **Gitea**: LXC 109 on data (.42), guest .155, **1.27.3** (post-CVE-2026-60004 remediation). `.151` = LXC 110 **nginxpm (NPM)** which fronts it; runners are on k3s nodes .161/.162. - **Access**: `root@` + `pct exec`. Gitea token in `~/.hermes/credentials/gitea-api.env`. ## Code Location Rules - **Application Code**: Workspace root (NEVER in aidlc-docs/) - **Documentation**: aidlc-docs/ only - **Structure patterns**: See code-generation.md Critical Rules ## Extension Configuration | Extension | Enabled | Decided At | |---|---|---| | security-baseline | ❌ No (opt-out; TODOs documented in docs/security-notes.md) | Requirements Analysis | | resiliency-baseline | ❌ No (opt-out; TODOs documented in docs/resiliency-notes.md) | Requirements Analysis | | property-based-testing | ❌ No | Requirements Analysis | ## Stage Progress ### 🔵 INCEPTION PHASE - [x] Workspace Detection - [ ] Reverse Engineering (brownfield only — N/A; estate recon done inline) - [x] Requirements Analysis - [x] User Stories (SKIPPED — user-confirmed; substituted with a requirement→unit map) - [x] Workflow Planning - [x] Application Design (minimal depth — 5 design artifacts; D6 deploy-key model) - [x] Units Generation (5 units; requirement→unit map substitutes the story map) ### 🟢 CONSTRUCTION PHASE - [ ] Per-Unit Loop - [ ] Build and Test ### 🟡 OPERATIONS PHASE - [ ] Operations (placeholder)