generated from mathias/template-go-web
Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
346037c5c8 | ||
|
|
f7a0281ca2 |
+10
-3
@@ -54,9 +54,16 @@ assessor-loop ledger) → `06 PR → CI` (go test/vet/lint/govulncheck + **var-g
|
|||||||
|
|
||||||
This repo is built *through* the workflow it depicts. It is `dispatch-allow`-enabled, and its
|
This repo is built *through* the workflow it depicts. It is `dispatch-allow`-enabled, and its
|
||||||
own build increments are governed by a **var-go Oath** embedded in their spec issues (see the
|
own build increments are governed by a **var-go Oath** embedded in their spec issues (see the
|
||||||
Stage-03 tracking issue). Bootstrapping honesty (per swedsl honest-stub discipline): the Oath is
|
Stage-03 tracking issue). Bootstrapping honesty (per swedsl honest-stub discipline): `cmd/vargo-gate`
|
||||||
**defined** but `cmd/vargo-gate` is **not yet wired** into this repo's CI — until it is, the Oath
|
is wired into `.gitea/workflows/cd.yml`'s `oath` job (issue #1, verified with a real PR) — it runs
|
||||||
is advisory here. Wiring it is a first tracked task; disclosed in code, this doc, and CI config.
|
on every pull_request, fetches the linked issue's oath, and posts a `var-go/oath` commit status.
|
||||||
|
But its candidate is still swedsl's hardcoded toy self-test registry, not cad-atlas's own — it
|
||||||
|
fails closed against any real oath. var-go's Executor/Reviewer path is **not** the blocker (that
|
||||||
|
was explicitly killed by swedsl's ADR-0002, swedsl#27 — var-go is gate-only by design, each
|
||||||
|
consumer supplies its own candidate). The real blocker is `swedsl/oath`'s import path
|
||||||
|
(`swedsl#35`); once fixed, cad-atlas writes its own candidate (`#8`). The status is **not**
|
||||||
|
required by branch protection, so it can't block merges yet. Disclosed in the CI config comment,
|
||||||
|
this doc, and `docs/INCEPTION-OATH.md`.
|
||||||
|
|
||||||
## Brain references (source of truth — `brain_get <path>`)
|
## Brain references (source of truth — `brain_get <path>`)
|
||||||
|
|
||||||
|
|||||||
@@ -53,6 +53,51 @@ jobs:
|
|||||||
- name: Run checks
|
- name: Run checks
|
||||||
run: task check
|
run: task check
|
||||||
|
|
||||||
|
oath:
|
||||||
|
name: var-go/oath
|
||||||
|
needs: guard
|
||||||
|
# Only a real pull_request event carries a linked-issue oath to gate (mirrors
|
||||||
|
# swedsl's own oath job, .gitea/workflows/ci.yml). v1 simplification (swedsl#30):
|
||||||
|
# the oath issue number is the PR's OWN number.
|
||||||
|
#
|
||||||
|
# DISCLOSED LIMITATION (honest-stub discipline, see docs/INCEPTION-OATH.md S3 and
|
||||||
|
# knowledge/swedsl-vargo-sprint1-enforcement-teeth-verdict.md): cmd/vargo-gate's
|
||||||
|
# candidate is a hardcoded toy self-test registry (swedsl's own #9 fixture
|
||||||
|
# vocabulary), not a real PR-diff checker. It will fail closed against any oath
|
||||||
|
# that isn't that toy vocabulary — which is every real oath, including this repo's
|
||||||
|
# own #1. A red or green "var-go/oath" status here currently proves the WIRING
|
||||||
|
# (fetch issue -> gate -> post commit status) runs end-to-end on a real PR, not
|
||||||
|
# that the PR satisfies its linked issue's oath. Deliberately NOT required by
|
||||||
|
# branch protection until cad-atlas has its own candidate matching its real oath
|
||||||
|
# vocabulary (#8, blocked on swedsl/oath's import path, swedsl#35) — making it
|
||||||
|
# required now would permanently block every cad-atlas PR.
|
||||||
|
if: needs.guard.outputs.is_template != 'true' && github.event_name == 'pull_request'
|
||||||
|
runs-on: self-hosted
|
||||||
|
steps:
|
||||||
|
- name: Checkout swedsl (var-go source — not go-installable, module path isn't a real import path)
|
||||||
|
uses: actions/checkout@v4
|
||||||
|
with:
|
||||||
|
repository: mathias/swedsl
|
||||||
|
path: swedsl
|
||||||
|
token: ${{ secrets.DMABE_GITEA_API_TOKEN }}
|
||||||
|
|
||||||
|
- uses: actions/setup-go@v5
|
||||||
|
with:
|
||||||
|
go-version-file: swedsl/oath/go.mod
|
||||||
|
cache: false
|
||||||
|
|
||||||
|
- name: Run vargo-gate (fetch -> gate -> post status against this PR)
|
||||||
|
working-directory: swedsl/oath
|
||||||
|
env:
|
||||||
|
VARGO_GITEA_BASEURL: ${{ github.server_url }}
|
||||||
|
VARGO_GITEA_OWNER: ${{ github.repository_owner }}
|
||||||
|
VARGO_GITEA_REPO: cad-atlas
|
||||||
|
VARGO_GITEA_ISSUE: ${{ github.event.pull_request.number }}
|
||||||
|
VARGO_GITEA_SHA: ${{ github.event.pull_request.head.sha }}
|
||||||
|
run: |
|
||||||
|
export DMABE_GITEA_API_TOKEN='${{ secrets.DMABE_GITEA_API_TOKEN }}'
|
||||||
|
go run ./cmd/vargo-gate
|
||||||
|
|
||||||
build:
|
build:
|
||||||
name: Build & Import
|
name: Build & Import
|
||||||
needs: [guard, check]
|
needs: [guard, check]
|
||||||
|
|||||||
@@ -3,8 +3,9 @@
|
|||||||
The acceptance contract for standing up cad-atlas. The sprint is finalized only when this
|
The acceptance contract for standing up cad-atlas. The sprint is finalized only when this
|
||||||
Oath holds. Methodology: brain `wiki/homelab/decisions/inception-sprint-and-oath.md`.
|
Oath holds. Methodology: brain `wiki/homelab/decisions/inception-sprint-and-oath.md`.
|
||||||
|
|
||||||
> **Status of enforcement:** this Oath is currently **advisory** (human-verified). Machine
|
> **Status of enforcement:** this Oath is currently **advisory** (human-verified). `var-go/oath`
|
||||||
> enforcement via `var-go/oath` is deferred — see the honesty rule below and issue #1.
|
> is wired (issue #1) and runs on every PR, but its candidate is a toy self-test — it fails closed
|
||||||
|
> against any real oath and is not required by branch protection. See the honesty rule below.
|
||||||
|
|
||||||
## General clauses (any inception sprint)
|
## General clauses (any inception sprint)
|
||||||
|
|
||||||
@@ -24,7 +25,7 @@ Oath holds. Methodology: brain `wiki/homelab/decisions/inception-sprint-and-oath
|
|||||||
|---|--------|--------|----------|
|
|---|--------|--------|----------|
|
||||||
| S1 | Atlas served at `/`, renders all 9 stages signal→pod | ✅ | `internal/web/handler.go` + `static/cad-atlas.html` |
|
| S1 | Atlas served at `/`, renders all 9 stages signal→pod | ✅ | `internal/web/handler.go` + `static/cad-atlas.html` |
|
||||||
| S2 | Oath covered in the viz (stages 03 + 06) | ✅ | var-go Oath nodes in the atlas |
|
| S2 | Oath covered in the viz (stages 03 + 06) | ✅ | var-go Oath nodes in the atlas |
|
||||||
| S3 | `var-go/oath` enforces cad-atlas's own PRs | ⏸ **deferred → #1** | var-go v1 candidate is a toy self-test; module not cross-repo consumable. See honesty rule. |
|
| S3 | `var-go/oath` enforces cad-atlas's own PRs | ⏸ **wired, not enforcing → #8** | `oath` job runs + posts status (#1, verified with a real PR). Not branch-protection-required: candidate is still swedsl's toy self-test, fails closed on every real oath. Blocked on `swedsl/oath` import path (swedsl#35) → cad-atlas writing its own candidate (#8). Not blocked on an Executor — that path was killed by swedsl's ADR-0002. See honesty rule. |
|
||||||
|
|
||||||
## Deployment
|
## Deployment
|
||||||
|
|
||||||
@@ -37,9 +38,9 @@ namespace `cad-atlas`, 1 replica, `cad-atlas:80 → :8080` (manifests in `mathia
|
|||||||
|
|
||||||
A clause blocked by an external dependency is **descoped and tracked, never marked satisfied** —
|
A clause blocked by an external dependency is **descoped and tracked, never marked satisfied** —
|
||||||
a self-lying Oath is a rubber stamp, the exact failure the Oath exists to prevent. S3's real
|
a self-lying Oath is a rubber stamp, the exact failure the Oath exists to prevent. S3's real
|
||||||
enforcement depends on a var-go Executor (swedsl#27) + a published `oath` module; it is tracked as
|
enforcement depends on `swedsl/oath` becoming importable (swedsl#35) and cad-atlas writing its own
|
||||||
a fast-follow on **#1**, not claimed here. The `DMABE_GITEA_API_TOKEN` Actions secret is
|
candidate (#8); it is tracked there, not claimed here. The `DMABE_GITEA_API_TOKEN` Actions secret
|
||||||
pre-provisioned so #1 can land without a secret-write.
|
is pre-provisioned so #1 landed without a secret-write.
|
||||||
|
|
||||||
## The Oath (advisory form)
|
## The Oath (advisory form)
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user