From 09387f90e19c8331b72f4683dbce23098557fb1c Mon Sep 17 00:00:00 2001 From: Andrew Stoltz Date: Tue, 19 May 2026 10:34:28 -0500 Subject: [PATCH] =?UTF-8?q?brochure:=20ARCHIVED=202026-05-19=20=E2=80=94?= =?UTF-8?q?=20was=20a=20misinterpretation,=20do=20not=20re-enable?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The brochure split project was a misinterpretation of an operator request to make TtsReader + AI Station production-ready. Somewhere in the planning chain it spun up into a separate "showcase brochure product" with its own host, repo, NuGet, and Codex pack — none of which the operator actually wanted. The project itself is pointless and a waste of credits. Archive (not delete) per operator decision 2026-05-19, because some work shipped under the misinterpretation may still have reusable value: - FlowerCore.Intranet.Web PR #8 (merged) introduced FlowerCore.Brochure.Content content-NuGet carve-out — pattern may apply to TtsReader/AiStation production polish. - Sprint 32 Cl-5 substrate has design ideas for public-twin vs operator-host separation that may transfer. - magpie-doc-writer / wren-walkthrough skills still author useful Intranet content — those skills stay active. These manifests stay at replicas: 0 for ArgoCD continuity. Cleanup options (move out of apps/* glob, or delete entirely) are documented in README.md for an operator-explicit future call. Co-Authored-By: Claude Opus 4.7 (1M context) --- apps/brochure/README.md | 48 +++++++++++++++++++++---------------- apps/brochure/brochure.yaml | 25 +++++++++++++++---- 2 files changed, 47 insertions(+), 26 deletions(-) diff --git a/apps/brochure/README.md b/apps/brochure/README.md index 8f4c3bc..6fd6c9c 100644 --- a/apps/brochure/README.md +++ b/apps/brochure/README.md @@ -1,27 +1,33 @@ -# FlowerCore Brochure +# FlowerCore Brochure — ARCHIVED 2026-05-19 -`apps/brochure` hosts the public brochure split from `FlowerCore.Intranet.Web`. -ArgoCD's `apps/*` ApplicationSet will create `infra-brochure` after this -directory lands on `main`. +**Status:** ARCHIVED. Do not re-enable, do not rebuild the image. -## Runtime +## What this was -- Host: `https://brochure.flowercore.io` -- Namespace: `brochure` -- Deployment: `brochure-web` -- Image: `localhost/fc-brochure-web:v20260524-sprint32` -- Port: `8080` -- Public route method allowlist: `GET` and `HEAD` +A proposed public-facing brochure subdomain (`brochure.flowercore.io`) that would carve `/whats-new`, `/walkthroughs`, and `/galleries` content out of `FlowerCore.Intranet.Web` and serve it anonymously through a new thin Blazor host backed by a `FlowerCore.Brochure.Content` NuGet. -## Operator Actions +## Why it was archived -1. Publish and import `localhost/fc-brochure-web:v20260524-sprint32` to every - RKE2 node before sync, using the same podman save + `ctr images import` - flow as the Intranet deployment. -2. Create the Cloudflare DNS record for `brochure.flowercore.io` pointing at - the FlowerCore public edge. -3. Verify `infra-brochure` appears in ArgoCD, the certificate becomes Ready, - and `GET https://brochure.flowercore.io/` returns `200`. +The operator asked for **TtsReader and AI Station to become production-ready**. Somewhere along the way that request was misinterpreted by the planning chain into "spin up a new showcase brochure product". The brochure project itself is pointless and a waste of credits. The two actual productionization arcs (TtsReader + AI Station) get the focus instead. -The route intentionally does not expose `/ops/*` or `/admin/*`; the Brochure -web app returns `404` for those paths and Traefik only forwards read methods. +## Archive (don't delete) rationale + +Some of the work shipped under this misinterpretation may still have value if pulled back into the actual productionization work: + +- `FlowerCore.Intranet.Web` PR #8 (merged Sprint 32) introduced the `FlowerCore.Brochure.Content` content-split carve-out. That code may be reusable as a content-NuGet pattern for TtsReader/AiStation production polish. +- The Sprint 32 Cl-5 substrate (`docs/standards/sprint-32-intranet-brochure-split-substrate-2026-05-24.md`) contains design ideas for public-twin vs. operator-host separation that could apply elsewhere. +- The magpie-doc-writer / wren-walkthrough skills that authored `flowercore-whats-new`, `flowercore-walkthroughs`, `flowercore-galleries` content still produce useful Intranet content — those skills are NOT archived. + +The Sprint 34 Cl-4 brochure rebuild Codex pack is at `docs/archived/codex-2026-05-18-fc-brochure-web-rebuild-pack.md` in `FlowerCore.Notes`. + +## Cluster state + +These manifests stay at `replicas: 0`. ArgoCD keeps the `brochure` namespace + service + cert + IngressRoute objects alive for continuity, but nothing serves real traffic. The `localhost/fc-brochure-web:v20260524-sprint32` image still exists on RKE2 nodes — that image is the wrong codebase (an `FlowerCore.Intranet.Web` binary mis-tagged as brochure during Sprint 33 Cx-5) and can be safely `ctr images rm`'d in a future cleanup. + +## Cleanup choices for a future sprint + +1. **Leave as-is** (current state). Negligible cluster footprint. Operator can re-evaluate later. +2. **Move directory** to `apps-archived/brochure/` (outside the `apps/*` ApplicationSet glob). ArgoCD prunes the `infra-brochure` Application + the `brochure` namespace. Manifests preserved in git history. +3. **Delete entirely.** Removes from git too. Use only after confirming no reusable patterns are still pending extraction. + +All three are valid. Operator-explicit at the time of cleanup. diff --git a/apps/brochure/brochure.yaml b/apps/brochure/brochure.yaml index 9ff685e..6de3af0 100644 --- a/apps/brochure/brochure.yaml +++ b/apps/brochure/brochure.yaml @@ -1,8 +1,23 @@ -# FlowerCore Brochure public host +# FlowerCore Brochure public host — ARCHIVED 2026-05-19 # -# Thin Blazor host for public What's New, walkthrough, and gallery content -# carved out of FlowerCore.Intranet.Web. The ApplicationSet creates -# infra-brochure from this directory after merge. +# This project was a MISINTERPRETATION of an operator productionization +# request (TtsReader + AiStation production-ready) that spun up into a +# whole new showcase product. Operator decision 2026-05-19: archive, +# don't delete — the Sprint 32 Cl-5 substrate + the FlowerCore.Intranet.Web +# PR #8 carve-out may have reusable content/admin-panel work that could +# be pulled back into the actual productionization work later. +# +# Do NOT re-enable. Do NOT try to rebuild the brochure-web image. +# Do NOT dispatch the Sprint 34 Cl-4 rebuild pack (now at +# docs/archived/codex-2026-05-18-fc-brochure-web-rebuild-pack.md). +# +# These manifests stay in-place at replicas: 0 for ArgoCD continuity. +# Cleanup options for a future sprint: (a) move this whole directory +# to apps-archived/brochure/ so the ApplicationSet stops tracking it +# and ArgoCD prunes the namespace, OR (b) delete the directory entirely. +# Both are valid; operator-explicit at the time of cleanup. +# +# Memory: project_brochure_split_misinterpretation_archived_2026_05_19 --- apiVersion: v1 kind: Namespace @@ -21,7 +36,7 @@ metadata: app.kubernetes.io/name: brochure-web app.kubernetes.io/part-of: flowercore spec: - replicas: 0 # Scaled to 0 by SRE 2026-05-19; pod was running wrong codebase (Intranet.Web binary in brochure image); Sprint 34 Cx-3 to rebuild from FlowerCore.Brochure.Web source per docs/ai-agents/codex-prompts/2026-05-18-fc-brochure-web-rebuild-pack.md + replicas: 0 # ARCHIVED 2026-05-19 — brochure project was a misinterpretation; do not re-enable. See file header for context. revisionHistoryLimit: 3 selector: matchLabels: