# Gitea workflow The project is tracked at **https://git.v-port.ru/vaskes/viexp** (Gitea 1.26.2). CLI access: `tea` (logged in as `vaskes`); API access with the saved token. ## Verified capabilities (2026-10-17) | Feature | Via API? | Notes | |---------|----------|-------| | Labels | ✅ | 11 labels created (`type/*`, `priority/*`, `lang/english`) | | Milestones | ✅ | 13 sprint milestones with due dates | | Issues | ✅ | labels by **ID**, not by name (`POST /repos/vaskes/viexp/issues`) | | Project board (kanban) | ❌ | endpoint missing in Gitea 1.26.2 — create once via web UI | | Actions CI | ✅ | `.gitea/workflows/ci.yml` (repo has `has_actions: true`) | ## Organization - **Project board** ("viexp development", created manually in the web UI): columns `Backlog → In Progress → Review → Done`; sprints are tracked by milestones. - **Milestones** = sprints: `Sprint 0 — Setup & deconstruction` … `Sprint 12 — Release & docs` (one 20-hour sprint ≈ one month at ~45 min/day). Due dates are targets, not deadlines. - **Labels**: `type/bug|feature|docs|research|chore|spike`, `priority/P0…P3`, `lang/english`. - **Issues** are created from task notes (`docs/tasks/`) and sprint definitions-of-done; the task note's `gitea-issue` property stores the issue number. - Bootstrap/repeat script: `scripts/gitea-bootstrap.sh` (labels + milestones + seed issues). ## Rules 1. One issue = one demoable outcome; acceptance criteria copied from the task note. 2. Branch per issue: `sprint-N/slug` or `feat/slug`; squash-merge into `main`. 3. Commit messages: Conventional Commits **in English** (`feat(preview): add kitty graphics support`) — every commit is a micro English exercise. 4. An issue is closed only when its acceptance criteria are demoable. 5. Sprint retro (from the sprint note) is posted as a comment on the milestone's closing issue. ## Automation notes - Gitea Actions can run `cargo fmt --check && cargo clippy -- -D warnings && cargo test` on push. - Everything set up via API/`tea` is documented in `docs/workflows/` so it can be re-created from scratch (the setup commands are in the sprint-0 task note).