diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index d55baf9..995a94b 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -98,6 +98,9 @@ jobs: test -f .output/public/apps/standards/index.html test -f .output/public/ideas/equivalence-engine/index.html test -f .output/public/ideas/uniconfig/index.html + test -f .output/public/ideas/uniprovider/index.html + test -f .output/public/ideas/opr-directory/index.html + test -f .output/public/ideas/provider-mirror-backups/index.html - name: Verify news, changelog, and feed artifacts run: | diff --git a/README.adoc b/README.adoc index 1933a01..1d7933e 100644 --- a/README.adoc +++ b/README.adoc @@ -121,7 +121,7 @@ pnpm dev * `public/` — Static assets (includes generated feeds under `public/news/`) * `src/lib/news-posts.generated.json` / `changelog-entries.generated.json` — build outputs from `pnpm news:build` * `app.config.ts` — SolidStart/Vinxi configuration -* `docs/` — Antora component (published on link:https://docs.devcentr.org/devcentr-org/[docs.devcentr.org]) +* `docs/` — Antora component (published on link:https://docs.devcentr.org/devcentr-org/[docs.devcentr.org]); includes apps catalogue and inference/OPR guides * `DESIGN.md` — Design philosophy and guidelines == Site Generation diff --git a/app.config.ts b/app.config.ts index 7387b3d..2ff29d0 100644 --- a/app.config.ts +++ b/app.config.ts @@ -80,6 +80,9 @@ export default defineConfig({ "/apps/standards", "/ideas/equivalence-engine", "/ideas/uniconfig", + "/ideas/uniprovider", + "/ideas/opr-directory", + "/ideas/provider-mirror-backups", ...newsRoutes, ], }, diff --git a/docs/modules/ROOT/nav.adoc b/docs/modules/ROOT/nav.adoc index c445003..a75c75b 100644 --- a/docs/modules/ROOT/nav.adoc +++ b/docs/modules/ROOT/nav.adoc @@ -3,6 +3,8 @@ ** xref:explanation/news-and-changelog.adoc[News & changelog pipeline] ** xref:explanation/theme-reveal.adoc[Theme reveal] ** xref:explanation/stack-advisor.adoc[Stack Advisor] +** xref:explanation/apps-catalog.adoc[Apps catalogue] +** xref:explanation/inference-opr.adoc[Inference & OPR] ** xref:explanation/bootstrap-templates.adoc[Agent skills] ** xref:how-to/local-development.adoc[Local development] ** xref:help-and-support-plans.adoc[Help & support plans] diff --git a/docs/modules/ROOT/pages/changelog-details/2026-09-02 - provider-mirror-backups.adoc b/docs/modules/ROOT/pages/changelog-details/2026-09-02 - provider-mirror-backups.adoc new file mode 100644 index 0000000..04957e4 --- /dev/null +++ b/docs/modules/ROOT/pages/changelog-details/2026-09-02 - provider-mirror-backups.adoc @@ -0,0 +1,19 @@ += Provider search and mirror backups +:description: Vision service entry and news for provider-native search and consumer mirror backups. + +== Catalogue + +Added **Provider mirror backups** (services) with idea slug `provider-mirror-backups` — vision for opt-in mirror backups that mimic a provider's shape/API and provider-native fuzzy/vector search. + +Near-term wedge: personal `.issues` submission archives plus Issues Browser forge metadata backups. + +Prerender route and CI artifact check for `/ideas/provider-mirror-backups`. + +== News + +link:https://devcentr.org/news/2026-09-02-provider-search-and-mirror-backups[Provider search and consumer mirror backups] + +== Docs + +* xref:explanation/inference-opr.adoc[Inference — UniProvider & OPR] (mirror vision section) +* Encyclopedia: https://docs.devcentr.org/general-knowledge/explanation/infrastructure/provider-search-and-mirror-backups.html diff --git a/docs/modules/ROOT/pages/changelog-details/2026-09-02 - uniprovider-opr-solod.adoc b/docs/modules/ROOT/pages/changelog-details/2026-09-02 - uniprovider-opr-solod.adoc new file mode 100644 index 0000000..748d553 --- /dev/null +++ b/docs/modules/ROOT/pages/changelog-details/2026-09-02 - uniprovider-opr-solod.adoc @@ -0,0 +1,28 @@ += UniProvider, OPR, SoloMD, and OPR Directory +:description: Apps catalogue and news for Open Provider Registry ecosystem entries. + +== Catalogue + +Added to `src/lib/apps-catalog.ts`: + +* **UniProvider** (products) — idea slug `uniprovider` +* **Open Provider Registry (OPR)** (standards) — links to `spec/opr.md` +* **OPR Directory** (services) — idea slug `opr-directory`; SolidStart on Netlify/Vercel + +Prerender routes and CI artifact checks extended for `/ideas/uniprovider` and `/ideas/opr-directory`. + +== News + +* link:https://devcentr.org/news/2026-09-02-one-registration-protocol-for-model-runners[One registration protocol for model runners] — OPR as protocol vs product brand war +* link:https://devcentr.org/news/2026-09-02-solomd-for-markdown-on-disk[SoloMD for Markdown on disk] — editor consuming discovery via OpenAI-compat HTTP + +Screenshots under `public/news/media/solomd-*.png`. + +== Implementation note + +OPR Directory moved from tentative skeleton to SolidStart implementation in `dev-centr/opr-directory`. + +== Docs + +* xref:explanation/inference-opr.adoc[Inference — UniProvider & OPR] +* Canonical spec: https://github.com/dev-centr/uniprovider/blob/main/spec/opr.md diff --git a/docs/modules/ROOT/pages/changelog-details/2026-09-03 - markview.adoc b/docs/modules/ROOT/pages/changelog-details/2026-09-03 - markview.adoc new file mode 100644 index 0000000..5f058d1 --- /dev/null +++ b/docs/modules/ROOT/pages/changelog-details/2026-09-03 - markview.adoc @@ -0,0 +1,20 @@ += MarkView for reading Markdown on disk +:description: News recommending MarkView as a third-party local Markdown viewer. + +== News + +link:https://devcentr.org/news/2026-09-03-markview-for-reading-markdown-on-disk[MarkView for reading Markdown on disk] + +MarkView is recommended on the general-knowledge **recommended tools** list as a free native **viewer** (no editing) for macOS, Windows, and Linux. + +Screenshot: `public/news/media/markview-biome-readme.png`. + +== Scope + +* **People's machines** — third-party tool for opening `.md` files outside Dev-Centr products +* **Not in-app** — DevCentr apps keep in-house rendering; org docs stay on Antora + +== Docs + +* https://docs.devcentr.org/general-knowledge/explanation/documentation/markdown-editors-on-disk.html[Markdown editors on local disk] +* https://docs.devcentr.org/general-knowledge/reference/recommended-tools.html[Recommended tools] diff --git a/docs/modules/ROOT/pages/changelog.adoc b/docs/modules/ROOT/pages/changelog.adoc index 6f24c76..4f47a5c 100644 --- a/docs/modules/ROOT/pages/changelog.adoc +++ b/docs/modules/ROOT/pages/changelog.adoc @@ -2,15 +2,17 @@ Timeline of notable documentation and site changes in the devcentr.org repository. -== 2026-09-02 — Provider mirror backups idea + news - -* Apps catalog / idea: `/ideas/provider-mirror-backups` (vision service). -* News: Provider search and consumer mirror backups. - == 2026-09-03 — MarkView for reading Markdown * News: MarkView as free local Markdown **viewer only** (no editing) for people’s machines; DevCentr products keep in-house rendering. * Screenshot under `public/news/media/markview-biome-readme.png`. +* See xref:changelog-details/2026-09-03 - markview.adoc[Detailed changelog]. + +== 2026-09-02 — Provider mirror backups idea + news + +* Apps catalog / idea: `/ideas/provider-mirror-backups` (vision service). +* News: Provider search and consumer mirror backups. +* See xref:changelog-details/2026-09-02 - provider-mirror-backups.adoc[Detailed changelog]. == 2026-09-02 — UniProvider, OPR, SoloMD, OPR Directory MVP @@ -18,6 +20,7 @@ Timeline of notable documentation and site changes in the devcentr.org repositor * News: SoloMD for Markdown on disk; one registration protocol for model runners. * Screenshots under `public/news/media/solomd-*.png`. * OPR Directory moved from tentative skeleton to SolidStart implementation (see `dev-centr/opr-directory`). +* See xref:changelog-details/2026-09-02 - uniprovider-opr-solod.adoc[Detailed changelog]. == 2026-08-25 — Stack Advisor multiselect + path docs diff --git a/docs/modules/ROOT/pages/explanation/apps-catalog.adoc b/docs/modules/ROOT/pages/explanation/apps-catalog.adoc new file mode 100644 index 0000000..f07ef0b --- /dev/null +++ b/docs/modules/ROOT/pages/explanation/apps-catalog.adoc @@ -0,0 +1,66 @@ += Apps catalogue +:navtitle: Apps catalogue +:description: How devcentr.org lists products, services, and standards — catalog data, idea pages, and GitHub Pages routing. + +The public **Apps** section (`/apps`) is a marketing catalogue for Dev-Centr offerings. +Data lives in a single TypeScript module; idea pages expand entries that need more context than a one-line summary. + +== Categories + +Three panes under `/apps`: + +[cols="1,2",options="header"] +|=== +| Route | Contents + +| `/apps/products` +| Shipped or in-progress products (DevCentr, UniConfig, Stack Advisor, UniProvider, …) + +| `/apps/services` +| Hosted or planned services (PackageHub, OPR Directory, provider mirror vision, …) + +| `/apps/standards` +| Protocols and shared specs (CentrMark, Open Provider Registry) +|=== + +Each list item is a `CatalogItem` in `src/lib/apps-catalog.ts` with `id`, `name`, `summary`, `href`, optional `logo`, `tags`, and optional `ideaSlug`. + +== Idea pages + +Entries with an `ideaSlug` link to `/ideas/` for a longer overview and linked repositories. + +Idea content is an `IdeaPage` in the same file (`ideas` array): `slug`, `title`, `category`, `overview`, and `repos[]`. + +Rendering: + +* Dynamic route: `src/routes/ideas/[slug].tsx` → `IdeaDetail` component +* Optional file route: `src/routes/ideas/.tsx` when Vinxi prerender must emit a static `index.html` at build time (see below) +* Breadcrumb: `Apps / / ` via `PageTrail`; topic tags (e.g. `Tooling · Config`) sit below the trail, not in it + +== Adding or updating an entry + +. Edit `src/lib/apps-catalog.ts` — add or update `products`, `services`, or `standards`, and optionally an `ideas[]` record. +. Add a logo under `public/apps/logos/` when a product mark exists (omit when none). +. For a new idea slug: +** Add the slug to `app.config.ts` `router.prerender.routes` (e.g. `/ideas/uniprovider`) so Vinxi emits HTML at build time. +** `scripts/spa-fallback.mjs` also copies the SPA shell into `.output/public/ideas/<slug>/` for every slug in `ideas[]` — required for direct GitHub Pages loads when prerender misses a slug. +** Optionally add `src/routes/ideas/<slug>.tsx` as a dedicated file route (same pattern as `uniconfig.tsx`). +. Extend `.github/workflows/ci.yml` artifact checks for new `/ideas/<slug>/index.html` paths. +. Changelog: add a dated entry to xref:changelog.adoc[Changelog] with a detail page under `changelog-details/`. +. News (optional): narrative post under `content/news/` — see xref:explanation/news-and-changelog.adoc[News & changelog pipeline]. + +Deep product docs belong in the owning repo's Antora component (e.g. `uniconfig`, `general-knowledge`), not duplicated here. + +== Key files + +* Data: `src/lib/apps-catalog.ts` +* List UI: `src/components/catalog-page.tsx` +* Idea UI: `src/components/idea-detail.tsx` +* Routes: `src/routes/apps/`, `src/routes/ideas/` +* SPA fallback: `scripts/spa-fallback.mjs` +* Prerender list: `app.config.ts` → `router.prerender.routes` + +== See also + +* xref:explanation/inference-opr.adoc[Inference — UniProvider & OPR] — recent services/standards entries +* xref:explanation/site-architecture.adoc[Site architecture] — full route map and build pipeline diff --git a/docs/modules/ROOT/pages/explanation/inference-opr.adoc b/docs/modules/ROOT/pages/explanation/inference-opr.adoc new file mode 100644 index 0000000..cd975fc --- /dev/null +++ b/docs/modules/ROOT/pages/explanation/inference-opr.adoc @@ -0,0 +1,69 @@ += Inference — UniProvider & OPR +:navtitle: Inference & OPR +:description: How devcentr.org surfaces Open Provider Registry (OPR), UniProvider, and OPR Directory — catalogue entries and links to canonical specs. + +September 2026 added inference-related catalogue entries and news. +This page documents what the **marketing site** exposes; protocol and implementation detail live in sibling repositories. + +== Problem (one sentence) + +Local model runners should register once in a **neutral format** so editors and aggregators discover them without each app inventing its own JSON drop folder. + +== What appears on devcentr.org + +[cols="1,2",options="header"] +|=== +| Catalogue entry | Route / link + +| **UniProvider** (product) +| `/ideas/uniprovider` — reference D library, CLI, well-known probes, localhost OpenAI-compat aggregator + +| **Open Provider Registry (OPR)** (standard) +| Standards list → `spec/opr.md` on GitHub — on-disk manifests + optional HTTP + +| **OPR Directory** (service) +| `/ideas/opr-directory` — SolidStart online catalog; providers self-register; apps poll `GET /opr/v1/providers` + +| **Provider mirror backups** (vision) +| `/ideas/provider-mirror-backups` — architectural direction for consumer-portable data and provider-native search; near-term wedge via `.issues` archives +|=== + +News posts (September 2026): + +* link:https://devcentr.org/news/2026-09-02-one-registration-protocol-for-model-runners[One registration protocol for model runners] +* link:https://devcentr.org/news/2026-09-02-solomd-for-markdown-on-disk[SoloMD for Markdown on disk] — editor slot that consumes OPR discovery via OpenAI-compat HTTP + +== Canonical documentation (not in this repo) + +[cols="1,2",options="header"] +|=== +| Topic | Where + +| OPR spec +| https://github.com/dev-centr/uniprovider/blob/main/spec/opr.md[`dev-centr/uniprovider` → `spec/opr.md`] + +| UniProvider implementation +| https://github.com/dev-centr/uniprovider[dev-centr/uniprovider] + +| Online directory app +| https://github.com/dev-centr/opr-directory[dev-centr/opr-directory] (SolidStart · Netlify/Vercel; planned `providers.devcentr.org`) + +| Encyclopedia overview +| https://docs.devcentr.org/general-knowledge/explanation/infrastructure/uniprovider.html[general-knowledge — UniProvider and OPR] + +| Provider search vision +| https://docs.devcentr.org/general-knowledge/explanation/infrastructure/provider-search-and-mirror-backups.html[general-knowledge — Provider search and mirror backups] +|=== + +== Boundaries + +* **OPR** answers *what runners exist and how to reach them* — not routing which model to use for a job. +* **UniProvider** is a reference implementation; other aggregators may speak OPR without depending on it. +* **OPR Directory** is for publicly reachable providers; localhost runners stay on disk via UniProvider. +* **MarkView** (September news) is a third-party *viewer* for people's machines — not an in-app or org-docs renderer. See general-knowledge link:https://docs.devcentr.org/general-knowledge/explanation/documentation/markdown-editors-on-disk.html[Markdown editors on local disk]. + +== Maintaining catalogue copy + +Edit `src/lib/apps-catalog.ts` and follow xref:explanation/apps-catalog.adoc[Apps catalogue] for idea pages, prerender routes, and CI checks. + +Changelog: xref:changelog-details/2026-09-02 - uniprovider-opr-solod.adoc[2026-09-02 UniProvider & OPR], xref:changelog-details/2026-09-02 - provider-mirror-backups.adoc[2026-09-02 Provider mirror backups], xref:changelog-details/2026-09-03 - markview.adoc[2026-09-03 MarkView]. diff --git a/docs/modules/ROOT/pages/explanation/site-architecture.adoc b/docs/modules/ROOT/pages/explanation/site-architecture.adoc index 81ae7d8..ca3e604 100644 --- a/docs/modules/ROOT/pages/explanation/site-architecture.adoc +++ b/docs/modules/ROOT/pages/explanation/site-architecture.adoc @@ -37,7 +37,7 @@ devcentr.org is a **static** SolidStart (Vinxi) application. | Apps catalogue (data in `src/lib/apps-catalog.ts`) | `/ideas/:slug` -| Idea pages for catalogue entries with `ideaSlug` +| Idea pages for catalogue entries with `ideaSlug` (`uniconfig`, `uniprovider`, `opr-directory`, `provider-mirror-backups`, `equivalence-engine`) | `/stack-advisor` | Interactive stack decision flow (browse + advice modes; SDL from `stack-advisor` repo). `/toolchain-browser` and `/toolchain-advisor` redirect here. @@ -76,7 +76,7 @@ Custom domain `devcentr.org` is configured in the repository's Pages settings. == Key source locations * `src/routes/` — page components -* `src/components/` — shared UI (header, footer, diagrams, toolchain browser widget, agent skills catalog) +* `src/components/` — shared UI (header, footer, diagrams, stack advisor widget, agent skills catalog, apps catalogue) * `src/lib/` — catalog data, changelog loader, theme reveal, site links * `content/news/` — authored news (see xref:explanation/news-and-changelog.adoc[News & changelog pipeline]) * `public/brand/` — SVG logo marks (canonical org assets live in `.github` profile repos) diff --git a/docs/modules/ROOT/pages/how-to/local-development.adoc b/docs/modules/ROOT/pages/how-to/local-development.adoc index c3d4944..cde65dc 100644 --- a/docs/modules/ROOT/pages/how-to/local-development.adoc +++ b/docs/modules/ROOT/pages/how-to/local-development.adoc @@ -77,5 +77,6 @@ See xref:walkthrough-vscode-and-ci.adoc[VS Code & CI walkthrough] for rationale. * **Stale news or changelog** — run `pnpm news:build` after editing `content/news/` or after pulling sibling changelog files. * **Advisor page empty** — run `pnpm sync-advisor` with `stack-advisor` checked out; verify `public/catalog/advisor.json` exists. * **Skills / bootstrap selector empty** — run `pnpm sync-bootstrap-profiles` with `agent-rules` checked out; verify `public/catalog/bootstrap-profiles.json` exists (gitignored, not committed). +* **New idea page 404 on GitHub Pages** — add `/ideas/<slug>` to `app.config.ts` prerender routes; confirm `scripts/spa-fallback.mjs` ran in `postbuild`. See xref:explanation/apps-catalog.adoc[Apps catalogue]. * **CI fails `skills/index.html`** — Vinxi does not emit a directory index for client-only routes; `scripts/spa-fallback.mjs` must copy the SPA shell into `.output/public/skills/`. * **Build fails on CI but works locally** — CI uses `pnpm install --no-frozen-lockfile`; ensure lockfile is committed after dependency changes. diff --git a/docs/modules/ROOT/pages/index.adoc b/docs/modules/ROOT/pages/index.adoc index a56d0f5..ee6ef73 100644 --- a/docs/modules/ROOT/pages/index.adoc +++ b/docs/modules/ROOT/pages/index.adoc @@ -36,6 +36,12 @@ https://devcentr.org | SDL catalog sync and `/stack-advisor` | xref:explanation/stack-advisor.adoc[Stack Advisor] +| Products, services, standards, and idea pages +| xref:explanation/apps-catalog.adoc[Apps catalogue] + +| UniProvider, OPR, OPR Directory (September 2026) +| xref:explanation/inference-opr.adoc[Inference & OPR] + | Agent skills catalog (`/skills`; `/templates` redirects) | xref:explanation/bootstrap-templates.adoc[Agent skills] diff --git a/src/lib/apps-catalog.ts b/src/lib/apps-catalog.ts index c3bd4df..fb34e9e 100644 --- a/src/lib/apps-catalog.ts +++ b/src/lib/apps-catalog.ts @@ -101,7 +101,7 @@ export const products: CatalogItem[] = [ id: "stack-advisor", name: "Stack Advisor", summary: - "Reach a host · target · language · toolchain stack. Guided path or DIY filters; browse and advice are modes.", + "Reach a host · target · language · toolchain stack via one sample-based filter path; browse and advice are modes.", href: "/stack-advisor", tags: "Tooling · Toolchains", },