--- id: ISSUE-WP-0006 type: workplan title: "Forgejo-only forge + projection boundary (not ops queue)" domain: infotech repo: issue-core status: finished owner: grok topic_slug: issue-core priority: medium created: "2026-08-03" updated: "2026-09-14" depends_on: [] related: - ACT-ADR-005 - ACTIVITY-WP-0022 - ISSUE-WP-0004 - ISSUE-WP-0005 - REIN-A-0002 - REINAH-WP-0005 state_hub_workstream_id: "4d465264-cbe1-56ba-84ed-bd580b649b76" --- # ISSUE-WP-0006 — Forgejo-only projection boundary ## Origin ACT-ADR-005 and founder direction (2026-08-03): 1. **Gitea is no longer relevant** — self-hosted forge is **Forgejo** only. 2. issue-core must not be used as the **ops claim queue** for activity-core. 3. issue-core remains the **multi-tracker facade** (project/link external issues). ## Goal Align code, docs, and env names so operators and agents never plan on Gitea, and so rein-aharness stops treating issue-core as the primary automation queue (handoff language to ops_run in ACTIVITY-WP-0026 / REIN-A-0002). ## Tasks ### T01 — Terminology sweep: Gitea → Forgejo (product language) ```task id: ISSUE-WP-0006-T01 status: done priority: high state_hub_task_id: "927eee42-e22d-5c0d-a4f8-dcd36c53c8e9" ``` Sweep INTENT, SCOPE, README, ROADMAP, workplans, comments: - Prefer **Forgejo** for the self-hosted forge product. - Where code talks to the Forgejo HTTP API that is Gitea-compatible, say **“Forgejo (Gitea-compatible API)”** once — do not present Gitea as a supported second product or migration target. - Rename operator-facing env docs that say `GITEA_*` for forge access to `FORGEJO_*` **or** document aliases: `FORGEJO_TOKEN` preferred; legacy `GITEA_*` only as deprecated alias if code still requires it. **Done when:** `rg -i gitea` in docs is zero for “we use Gitea”, or only compatibility notes remain. --- ### T02 — INTENT/SCOPE: ops queue non-goal ```task id: ISSUE-WP-0006-T02 status: done priority: high state_hub_task_id: "a1d69a48-833b-5e5e-8286-14f5aba627f3" ``` Explicit section: - Internal scheduled automation claim/execute → **activity-core ops_run** (ACT-ADR-005). - issue-core does **not** provide the fleet ops claim queue. - `POST /issues/` = external tracker create/link only. - Default activity-core sink remains state-hub progress + ops_run; **not** rest to issue-core for Binky/FI. **Done when:** INTENT/SCOPE quote ACT-ADR-005; no contradiction with “poll us for automation.” --- ### T03 — Connector docs: projection path only ```task id: ISSUE-WP-0006-T03 status: done priority: medium state_hub_task_id: "75eef8a3-abd7-50dd-9171-3488fda84da5" ``` Update AGENT_INTEGRATION / connector docs: 1. Author work record in repo → hub index. 2. Optional: project/link via issue-core to **Forgejo** (or GitHub/Jira later). 3. Mapping UUID ↔ `(backend=forgejo, external_id)`. **Done when:** happy path diagram has no “activity-core → issue-core → harness” as the primary automation loop. --- ### T04 — Coordinate rein-aharness intake docs ```task id: ISSUE-WP-0006-T04 status: done priority: low state_hub_task_id: "5be0bce4-1816-599f-a98b-4fa1565a8b0e" ``` Message or PR note for REIN-A-0002-T06: issue-core poll = legacy/external only. No code change required in issue-core if rein owns the doc cut. **Done when:** cross-link in ISSUE-WP-0006 and REIN-A-0002. **Closed 2026-09-14:** REIN-A-0002 was completed as **REINAH-WP-0005**. T06 there already marked issue-core poll as legacy/external. Cross-links added: - this workplan `related: REIN-A-0002`, `REINAH-WP-0005` - `~/rein-aharness/workplans/REINAH-WP-0005-ops-run-claim-loop.md` T06 note + `related: ISSUE-WP-0006` - `~/rein-aharness/docs/task-intake.md` (legacy/external section) - State Hub message to `rein-aharness` ## Acceptance - [x] No Gitea-as-product planning - [x] Projection boundary clear - [x] Ops claim queue explicitly out of scope for issue-core ## Out of scope - Implementing ops_run (ACTIVITY-WP-0026) — lives in activity-core / REINAH-WP-0005 - Fixing Forgejo PAT for rest sink (only if projection needs it later) — ISSUE-WP-0003 residual / deploy - GitHub/Jira connectors — product growth, not this workplan No new residual: those items already have live work records elsewhere. ## Close note (2026-09-14) Product language is **Forgejo** only. The HTTP API is Gitea-compatible; module `issue_core.backends.gitea` and backend type `gitea` remain as identifiers. `FORGEJO_TOKEN` is preferred; `GITEA_*` is a deprecated alias. INTENT/SCOPE quote ACT-ADR-005: issue-core is not the ops claim queue.