Repository navigation
feat(site): publish this repository's decision portal at adrkit.dev/decisions/ (#294) - #310
Merged
Merged
Conversation
There was a problem hiding this comment.
🟡 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
Decisions governing this change9 accepted decisions govern this change
Links point at |
…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
force-pushed
the
feat/portal-dogfood
branch
from
October 10, 2026 22:16
b94c8ae to
bf8a8f6
Compare
This was referenced Oct 10, 2026
Closed
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>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.

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.
site.ymlruns the shipped Action,uses: ./packages/ci/portal, so the committeddist/portal-action.jsruns exactly as it does for consumers. The bundle goes intosite/dist/decisions/afterastro build, which emptiesdiston every build, so nothing stale survives. A guard confirms no Starlight route produceddist/decisions.scripts/check-portal-bundle.tschecks the page files, thatportal-data.jsonisversion: "1", that references are relative only (clause 8), and that the record count equalsadr lint'scheckedcount (59 == 59). It uses lint's count rather than a filename glob, so core's definition of a record file isn't restated.main, a portal failure still publishes the site and schema, then turns the run red from the deploy job (ADR-0011).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.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 andDEPLOYMENT.md. Rendered and portal failures now share one mechanism: publish, then report from the deploy job.Checklist
packages/ci, or core: n/a.bun test(4360 pass),typecheck,lint,check:deps,check:stale-refs,check:site-grammar, andcheck:doc-pinspass.Notes for reviewers
.github/workflows/site.yml, so it needsgate-change-acknowledged.site/dist./decisions/#/queue,#/graph, and#/adr/0054load under the page's CSP.mainrun red, thegithub-pagesdeployment shows as failed even though the site is live.DEPLOYMENT.mdsays so./decisions/: tracked in portal: the page has no icon, so browsers request /favicon.ico and get a 404 #309.