railiance-forge/workplans/RFORGE-WP-0002-forge-resource-economics-evidence.md
codex e395e5e9c1
All checks were successful
CI Smoke / host-smoke (push) Successful in 0s
CI Smoke / container-smoke (push) Successful in 1s
fix(workplans): adopt ADR-007 derived identifiers for unregistered records
These workplans exist only in the retired local hub. Their random pre-ADR-007
identifiers are refused by C-06 as stale references, so they cannot be
registered. Deriving from the canonical record id takes no identity from
anything: central does not hold them and the old ids die with the cache.

Records central already holds were deliberately left untouched.

Refs CUST-WP-0068-T06

Assistant: claude-code
Assistant-Model: opus
Assistant-Process: 2583210@bnt-lap001
Assistant-Session: f2bff2d5-e9b2-4338-92ca-10282a927006
2026-08-25 20:19:54 +02:00

118 lines
4.3 KiB
Markdown

---
id: RFORGE-WP-0002
type: workplan
title: "Publish Forgejo resource economics evidence"
domain: financials
repo: railiance-forge
status: finished
owner: codex
topic_slug: railiance
created: "2026-08-11"
updated: "2026-08-22"
related:
- RESOURCE-WP-0003
- ADR-0008
state_hub_workstream_id: "ce3bcfc5-a9af-5459-9d5c-e44ea50e7b13"
---
# RFORGE-WP-0002 — Forgejo resource economics evidence
## Goal
Provide the workload-owned demand, utilization, operations, and allocation
evidence for `resource:railiance:forgejo`, which supplies source and package
infrastructure to Helix Forge and the wider federation. Origin:
`RESOURCE-WP-0003-T04` delegated evidence gap.
Measure the live Gitea-compatible Helm workload
(`deployment/forgejo-gitea` on `reef-railiance`). Forgejo is the
migration target, not a second live product. Keep the resource id
`resource:railiance:forgejo`.
This id uses the historical `RAILIANCE-WP-` prefix (collides with other
ownership repos). New forge workplans use `FORGE-WP-`. Do not change
this file's `id` or hub UUID.
Do not add a public metrics or economics endpoint (ADR-0008). Collect
in-cluster or via the operator tunnel. Existing public Forgejo HTTPS is
a separate granted surface, not this plan. Do not treat
`environment: production` in resource-control as ADR-0006
`production-approved`.
## T01 — Measure Forgejo demand and utilization
```task
id: RFORGE-WP-0002-T01
status: done
priority: high
state_hub_task_id: "07b43be8-f1f8-5b0f-be52-3343e9ade2d7"
```
Record resource requests/limits and observed CPU/memory, repository and package
storage use/growth, database storage, runner capacity/activity, backup volume,
and material network traffic using stable units and timestamps.
Done when resource-control can forecast capacity and identify saturation or
idle capacity without accessing repository content or credentials.
**Outcome (2026-08-22):** `make forge-observe REMOTE=railiance01` publishes a
timestamped, versioned observation for deployment requests/limits and observed
CPU/memory, PVC and database capacity, shared/runner storage usage, recovery
posture, and unavailable axes. It reads neither repository contents nor Secret
surfaces.
## T02 — Declare service objectives and operations labor
```task
id: RFORGE-WP-0002-T02
status: done
priority: high
state_hub_task_id: "61531eba-5802-5ace-8822-1a5ad67ad44a"
```
Record availability, recovery, retention, and performance requirements plus
setup and recurring operator activities. Separate forge, registry, runner,
database, backup, upgrade, and incident labor where evidence permits.
Done when total-cost and optimization cases can preserve the forge's service
constraints and labor assumptions.
**Outcome (2026-08-22):** the service-objective and labor evidence file names
the availability, restore, retention, performance, operational, upgrade, and
incident dimensions. Unknown targets and hours remain explicit nulls rather
than invented estimates.
## T03 — Publish shared-consumer allocation evidence
```task
id: RFORGE-WP-0002-T03
status: done
priority: medium
state_hub_task_id: "27612238-ec67-55f1-8f5e-0d1ad7bc6af8"
```
Define explainable candidate drivers for source, package, and runner use across
Helix Forge, Coulomb, Railiance, and future tenants. Preserve shared overhead
and unattributed residuals; do not implement customer billing.
Done when a versioned driver report can feed resource-control allocation
without making the forge repository authoritative for booked cost.
**Outcome (2026-08-22):** `forge-raw-drivers-v1` proposes repository count,
package bytes, and runner job minutes, preserves all current use as an
unattributed residual, and assigns method selection to `resource-control`.
## Acceptance
- [x] Demand and utilization include storage, compute, runner, and backup axes.
- [x] Service objectives and labor assumptions are explicit.
- [x] Shared allocation evidence exposes residuals and provenance.
## Completion evidence
- `python3 -m unittest discover -s tests -p 'test_*.py' -v`: 1 test passed.
- Live read-only capture:
`docs/evidence/resource-railiance-forgejo/observations/20260822T102256Z.json`.
- Current observation records 2,377,375,744 forge data bytes, 247,693,312
runner data bytes, healthy single-instance CNPG state, continuous archiving,
and no Forge database Backup/ScheduledBackup or restore-drill evidence.