docs(ISSUE-WP-0006): Forgejo-only language and projection boundary
All checks were successful
CI Smoke / host-smoke (push) Successful in 0s
CI Smoke / container-smoke (push) Successful in 2s
Build and Publish Container Image / build-and-push (push) Successful in 34s

Prefer Forgejo as the self-hosted forge product. Keep Gitea only as the
Gitea-compatible API identifier (module backends/gitea, type string
gitea). FORGEJO_TOKEN is preferred; GITEA_* remains a deprecated alias.

INTENT/SCOPE quote ACT-ADR-005: issue-core is not the fleet ops claim
queue. Connector docs describe repo work record → hub index → optional
Forgejo projection, not activity-core → issue-core → harness.

Assistant: grok
Assistant-Session: 01a09dc6-3f0d-7c93-8b11-8e83c0623d49
This commit is contained in:
tegwick 2026-09-14 04:52:58 +02:00
parent f9d276dadf
commit ee9b85215d
34 changed files with 410 additions and 263 deletions

View file

@ -49,8 +49,8 @@ be an alternative origin.
This workplan brings issue-core's own docs, scope, and (where cheap) code
in line with that decision. It does not remove issue-core's existing
capability — Gitea/GitHub backend CRUD stays useful — it retargets *what
issue-core is for*.
capability — Forgejo/GitHub backend CRUD stays useful — it retargets *what
issue-core is for*. (Product language: Forgejo only; see ISSUE-WP-0006.)
## Task: Rewrite INTENT.md — connector, not landing zone

View file

@ -35,7 +35,7 @@ Close the gap between:
| Layer | State at start of this WP |
| --- | --- |
| **INTENT** | Work-record-aligned connector (2026-07-22) |
| **SCOPE §1 shipped** | Models, SQLite/Gitea, CLI, REST TaskSpec, backend sync |
| **SCOPE §1 shipped** | Models, SQLite/Forgejo, CLI, REST TaskSpec, backend sync |
| **SCOPE §1.8 / target** | Mapping store/API, boundary sync, work_record_uuid, dual-lifecycle rules |
Deliver a **minimum viable connector core**: durable mapping + project/link
@ -137,14 +137,14 @@ state_hub_task_id: "027871b0-696d-5ab7-b18c-b26167e97813"
Per `docs/uuid-external-id-mapping.md`:
- Table `work_record_issue_map` (or equivalent) on local backend / dedicated
store used even when CRUD backend is Gitea
store used even when CRUD backend is Forgejo
- Uniqueness: active `(backend, external_id)` and active
`(work_record_uuid, backend)`
- Domain service `MappingService`: upsert, resolve by UUID, by canonical id
(if provided), by external id, detach
- Unit tests for idempotent project and uniqueness
**Acceptance:** Tests pass without a live Gitea; store survives reconnect;
**Acceptance:** Tests pass without a live Forgejo; store survives reconnect;
SCOPE §1.8 “mapping store” can move toward shipped with an honest partial
note until CLI/API land.
@ -208,7 +208,7 @@ Implement **outward-only** application of T03 rules for mapped records
- Do **not** write work-record files
- Inward sync remains out of scope for this task (document as next)
**Acceptance:** Policy tests + one integration-style test on local/Gitea mock;
**Acceptance:** Policy tests + one integration-style test on local/Forgejo mock;
SCOPE distinguishes backend sync vs work-record boundary sync clearly.
## Task: SCOPE inventory refresh after implementation

View file

@ -4,18 +4,20 @@ type: workplan
title: "Forgejo-only forge + projection boundary (not ops queue)"
domain: infotech
repo: issue-core
status: ready
status: finished
owner: grok
topic_slug: issue-core
priority: medium
created: "2026-08-03"
updated: "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"
---
@ -41,7 +43,7 @@ and so rein-aharness stops treating issue-core as the primary automation queue
```task
id: ISSUE-WP-0006-T01
status: todo
status: done
priority: high
state_hub_task_id: "927eee42-e22d-5c0d-a4f8-dcd36c53c8e9"
```
@ -65,7 +67,7 @@ compatibility notes remain.
```task
id: ISSUE-WP-0006-T02
status: todo
status: done
priority: high
state_hub_task_id: "a1d69a48-833b-5e5e-8286-14f5aba627f3"
```
@ -87,7 +89,7 @@ Explicit section:
```task
id: ISSUE-WP-0006-T03
status: todo
status: done
priority: medium
state_hub_task_id: "75eef8a3-abd7-50dd-9171-3488fda84da5"
```
@ -107,7 +109,7 @@ as the primary automation loop.
```task
id: ISSUE-WP-0006-T04
status: todo
status: done
priority: low
state_hub_task_id: "5be0bce4-1816-599f-a98b-4fa1565a8b0e"
```
@ -117,14 +119,32 @@ 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
- [ ] No Gitea-as-product planning
- [ ] Projection boundary clear
- [ ] Ops claim queue explicitly out of scope for issue-core
- [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)
- Fixing Forgejo PAT for rest sink (only if projection needs it later)
- GitHub/Jira connectors
- 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.