Answers for the four sect 5 questions: minimal human-only
authenticated surface (console-vs-server-side stays open for
requirements.md), archive downloads with a named trigger, per-identity
email over the alk.dev catch-all as a stated transparency requirement,
and an admin-action audit trail accepted as family-posture material
- survey the 28.3.0 gitea feature catalog schema-derived from the
sqlite snapshot plus a read-only production-db pass; 117 tables
grouped into 26 feature areas with draft dispositions anchored to
workflows, user classes, and ADR-002 (no observed-usage bias)
- record production-db ground truth the walk lacked: zero 2FA, zero
real OAuth apps, one unverified GPG key, and the exact ten-repo
push-mirror roster (a direct OQ-FG-07 migration input)
- re-anchor the phase 0 requirements work: requirements derive from
a vision plus workflows, user classes, and ADRs with zero
version-based hedging; the walk and survey are sizing/validation
inputs, never the requirements source
- fix the walk-rule vocabulary: every disposition lands at a named
roadmap milestone or is explicitly rejected; 'deferred without a
named home' removed
- rewrite the convergence checklist into session-sized line items
(vision.md, requirements.md, roadmap/feature map, 0.1 as milestone
1, then the existing downstream items)
Verification: em-dash grep clean across AGENTS.md scope; docs-only
change (no Cargo manifest in the repo yet, cargo set not applicable)
- add sect 11 correction lenses: three meanings of zero usage,
residue-vs-workflow (branches are core SDD scaffolding, stale
branches are cleanup debris), no incumbent surface-shape
inheritance (alkcall ACL model, not gitea's anonymous OpenAPI),
workarounds are unmet-need signals, the primary user (the SDD
workflow) is invisible to telemetry; 0.1 = day-to-day replication,
gitea catalog is a selective long-term backlog
- re-bucket: branching load-bearing (was inertia residue); stale
branches deferred as per-branch migration decisions
- new finding (owner-stated): push-mirrors to GitHub for all public
OSS repos, currently half-implemented with a plaintext PAT on
gitea; alkforge posture = alkvault reference + assembly-layer
bearer injection (alkhttp precedent); migration step added
(enumerate + rotate, never copy); new OQ-FG-11 seeds the 0.1
scope question
- clarify why issues/PRs/wiki/CI were unused: in-session workflows
and distrust of gitea, not no-need-forever
- 52 repos (35 public + 17 private incl. alkfamily): both halves of
ADR-002's scope sentence are already operational; new-repo default
is private
- visit patterns: web surface is crawler/scan noise (42k reqs,
~12.8k IPs over 2 days); real git transport is near-100% SSH
- non-git SSH usage: none authorized in 72h; pure git door
- key inventory: ~10 accounts, 12 ed25519 keys, no tokens/webhooks/
protected branches; DB-verified zero usage of issues/PRs/LFS/
actions across both halves
- migration sizing corrected: ~158 MB git on disk (DB size column
stale); backup locations remain a cutover-plan verification
- OQ-FG-09 gains a live precedent: blob-heavy crawls burned gitea
CPU until bounded
- behavior-only walk of git.alk.dev (gitea 28.3.0): findings in
docs/research/deployment-walk.md
- headline: forge is a git host + public landing page only (issues/
PRs/wiki/releases/LFS/CI all zero-usage inertia); whole-org
anonymous read is the operative grant; single-branch direct-push
model by per-agent accounts; tags are the release surface
- phase-0.md: sect 3 filled with summary + link, OQ-FG-01 resolved
with residues, asks list gains the verified web-browse-queries
item, POC item 1 marked done, checklist item checked
- replace .opencode/agents/*.md with the cleaned alkssh versions,
adapted to alkforge constraints (coordinator prompt, implementation
conventions, poc dir name, fail-closed feature wording)
- adopt the alkssh sdd_process.md (project name alkforge)
- write AGENTS.md for the assembly: family stack conventions,
no-deformation rule, alkvault/no-env posture, fail-closed door
features, alkgen SSR rules, license hygiene, and the em-dash rule
(convention 16)
- placeholder README pending the 0.1.0 push
Verified: no em dashes or spaced-hyphen separators in AGENTS.md,
README.md, docs/, .opencode/agents/