Skip to content

feat(site): publish this repository's decision portal at adrkit.dev/decisions/ (#294) - #310

Merged
mbeacom merged 2 commits into
mainfrom
feat/portal-dogfood
Oct 10, 2026
Merged

mbeacom merged 2 commits into
mainfrom
feat/portal-dogfood

Conversation

@mbeacom

@mbeacom mbeacom commented Oct 10, 2026

Copy link
Copy Markdown
Owner

Closes #294 once a deploy is seen serving /decisions/.

What and why

This is ADR-0054's rung-2 dogfood: this repository's own decision portal on adrkit.dev. #224 doesn't block it. #224 only blocks upgrading Starlight, and the portal is an independent static bundle.

  • Build: site.yml runs the shipped Action, uses: ./packages/ci/portal, so the committed dist/portal-action.js runs exactly as it does for consumers. The bundle goes into site/dist/decisions/ after astro build, which empties dist on every build, so nothing stale survives. A guard confirms no Starlight route produced dist/decisions.
  • Check: scripts/check-portal-bundle.ts checks the page files, that portal-data.json is version: "1", that references are relative only (clause 8), and that the record count equals adr lint's checked count (59 == 59). It uses lint's count rather than a filename glob, so core's definition of a record file isn't restated.
  • Exit codes (clause 9):
    • Exit 1 publishes with a warning.
    • A refusal or exit 2 fails the build on pull requests.
    • On main, a portal failure still publishes the site and schema, then turns the run red from the deploy job (ADR-0011).
  • Links: from the generated decision-records index and the CI page. A sidebar entry would need astro.config.mjs, which the site: Starlight 0.42 build fails — satteri native binding unresolvable from the prerender bundle under the isolated linker #224 Starlight fix owns.
  • Existing bug fixed in the same file: on main, a failed rendered check exited the build job before the Pages upload, which held back the schema deploy, contrary to the step's own comment and DEPLOYMENT.md. Rendered and portal failures now share one mechanism: publish, then report from the deploy job.

Checklist

  • DCO signed off.
  • Recorded decision: ADR-0054 clauses 8, 9, and 12, plus ADR-0011. Item 8 stays unticked until a real deploy is seen.
  • Schema, packages/ci, or core: n/a.
  • Observed failing first (ADR-0016): the bundle check exits 1 with a specific message for each of six planted defects, and four mutations of the check fail its tests.
  • actionlint, the rendered self-test (27 planted defects caught), bun test (4360 pass), typecheck, lint, check:deps, check:stale-refs, check:site-grammar, and check:doc-pins pass.

Notes for reviewers

  • Gate: this touches .github/workflows/site.yml, so it needs gate-change-acknowledged.
  • Local end to end: I built the site, ran the committed bundle, and served site/dist. /decisions/#/queue, #/graph, and #/adr/0054 load under the page's CSP.
  • When a portal or rendered failure turns a main run red, the github-pages deployment shows as failed even though the site is live. DEPLOYMENT.md says so.
  • Favicon 404 under /decisions/: tracked in portal: the page has no icon, so browsers request /favicon.ico and get a 404 #309.

Copilot AI balanced review requested due to automatic review settings October 10, 2026 21:49

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟡 Changes recommended

The bundle validator can accept missing runtime modules and invalid excess record counts.

1 open finding
What changed in this PR

Publishes the repository’s decision portal at /decisions/, validates its generated bundle, and preserves schema deployment when portal/render checks fail.

Changes:

  • Builds and verifies the portal during site deployment.
  • Defers non-blocking failure reporting until after deployment.
  • Adds portal links and operational documentation.
File Description
.github/​workflows/​site.yml Builds, checks, and deploys the portal.
scripts/​check-portal-bundle.ts Validates generated portal output.
scripts/​check-portal-bundle.test.ts Tests bundle validation.
site/​scripts/​gen-adr-pages.ts Links the records index to the portal.
site/​src/​content/​docs/​ci.mdx Documents the dogfood deployment.
site/​DEPLOYMENT.md Documents deployment and recovery behavior.
CHANGELOG.md Records the new portal deployment.
AGENTS.md Updates portal evidence status.

🧠 Review effort: Balanced

Comment thread scripts/check-portal-bundle.ts Outdated
@github-actions

github-actions Bot commented Oct 10, 2026 •

Copy link
Copy Markdown

Decisions governing this change

9 accepted decisions govern this change

  • 0007 — Isolate integrations as optional adapters and build only against public surfaces
    • via path: .github/workflows/**
  • 0010 — Use Bun as the package manager and test runner while publishing Node-targeted artifacts
    • via path: .github/workflows/**
  • 0011 — Host the canonical JSON Schema at its $id on adrkit.dev
    • via path: .github/workflows/site.yml
    • via path: site/**
  • 0025 — Ship badges as recipes over existing output, not a new CLI surface
    • via path: .github/workflows/site.yml
  • 0026 — Identify the CI comment by the strongest author evidence the token allows
    • via path: site/src/content/docs/ci.mdx
  • 0033 — Select interactive graph presentation at the CLI boundary while preserving piped DOT
    • via path: site/src/content/docs/**
  • 0035 — Execute the gates that certify a pull request from the default branch
    • via path: .github/workflows/**
    • via path: scripts/**
  • 0037 — Treat generated knowledge systems as downstream read models, not decision authorities
    • via path: site/src/content/docs/**
  • 0040 — Keep derived surfaces in lockstep with three mechanisms matched to three classes of drift
    • via path: AGENTS.md

Links point at a081938, this run's GITHUB_SHA. Run adr explain <path> locally to see why a file is governed.

@mbeacom mbeacom self-assigned this Oct 10, 2026
@mbeacom mbeacom added gate-change-acknowledged A maintainer has seen and accepted this PR's change to the CI gate surface (ADR-0035) enhancement New feature or request labels Oct 10, 2026
…ecisions/ (#294)

site.yml builds the portal for docs/adr with the shipped Action
(`uses: ./packages/ci/portal`, so the committed dist runs exactly as it
does for consumers) into site/dist/decisions/ after the Astro build, and
scripts/check-portal-bundle.ts checks the bundle: page files present,
portal-data.json version "1", relative references only, and a record
count equal to `adr lint`'s. An exit-1 corpus still publishes (ADR-0054
clause 9). The decision-records index and the CI page link to it.

Also fixes an existing bug: a failed rendered check on main exited the
build job before the Pages upload, so it held back the schema deploy,
contrary to the step's own comment and DEPLOYMENT.md (ADR-0011). Rendered
and portal failures on main now publish, then turn the run red from the
deploy job; on pull requests both still fail the build directly.

The bundle check was observed failing first on six defects and four
mutations (ADR-0016). ADR-0054 item 8 stays open until a deploy is seen
serving /decisions/.

Signed-off-by: Mark Beacom <m@beacom.dev>
…heck

Copilot noted that page/app.mjs imports vendor/board-layout.mjs and vendor/board-view.mjs statically, so a bundle missing either renders nothing, yet the check passed it. Both are now required files, so a missing one fails with its own message (the test.each over REQUIRED_FILES covers each). Observed: with the old list, a bundle without the vendor modules passed the check; with the new list it reports both missing.

Signed-off-by: Mark Beacom <m@beacom.dev>
@mbeacom
mbeacom force-pushed the feat/portal-dogfood branch from b94c8ae to bf8a8f6 Compare October 10, 2026 22:16
@github-actions github-actions Bot removed the gate-change-acknowledged A maintainer has seen and accepted this PR's change to the CI gate surface (ADR-0035) label Oct 10, 2026
@mbeacom mbeacom added the gate-change-acknowledged A maintainer has seen and accepted this PR's change to the CI gate surface (ADR-0035) label Oct 10, 2026
@mbeacom
mbeacom merged commit c35d910 into main Oct 10, 2026
23 of 24 checks passed
@mbeacom
mbeacom deleted the feat/portal-dogfood branch October 10, 2026 22:32
mbeacom added a commit that referenced this pull request Oct 11, 2026
…tion evidence (#316)

* docs(adr): record ADR-0054's rung-2 dogfood and ADR-0055's implementation evidence

- ADR-0054 item 8 ticked: https://adrkit.dev/decisions/ serves this
  repository's portal from site.yml via `uses: ./packages/ci/portal`
  (#310), verified by curl (version "1", 59 records, a real commit).
  Evidence rung is now 2 (maintainer-owned dogfood); rung 3 not claimed.
- ADR-0055 items 1-7 and 9 ticked against #314 and the CI container
  smoke on main; item 8 (APIM measurement) stays open. Evidence rung 1.
- ADR-0053 item 9 stays open: the publication record decides it.
  docs/sdk-surface.md now names the REST server as the long-lived
  consumer that exercises every handle member, beside the build-time
  portal.
- AGENTS.md rung notes updated, and the broken ADR-0055 link (`-th.md`)
  fixed in AGENTS.md, README.md, CHANGELOG.md, and nine
  packages/server/src header comments.

Signed-off-by: Mark Beacom <m@beacom.dev>

* docs(adr): keep ADR-0054 at rung 1; the adrkit.dev deploy is dogfood, not rung 2

Copilot pointed out that ADR-0014 defines rung 2 as a run in a separate, isolated reference repository with reproducible, self-verifying evidence, and ADR-0053 records that an in-repository consumer stays rung 1. Item 8 stays ticked because it was done as written, but the evidence rung is 1, item 8's own 'rung-2' label is noted as an overstatement, and rung 2 is named as a portal Action run in an isolated reference repository such as adrkit-t018-dogfood. AGENTS.md matches.

Signed-off-by: Mark Beacom <m@beacom.dev>

---------

Signed-off-by: Mark Beacom <m@beacom.dev>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request gate-change-acknowledged A maintainer has seen and accepted this PR's change to the CI gate surface (ADR-0035)

Projects

None yet

Development

Successfully merging this pull request may close these issues.

portal: publish this repository's corpus on adrkit.dev as the rung-2 dogfood (ADR-0054 item 8)

2 participants