feat(doctrine): unification-plan.md + suite-chrome doctrine + tuxCatalog single source (v1.7.1) #16

Open
A-Guevara wants to merge 2 commits from feat/v1.7.1-unification-doctrine into main
Owner

Slice 1 of the unification continuation (see design/unification-plan.md in this PR for the reconstructed doctrine).

  • design/unification-plan.md — the lost v4 portal-unification plan reconstructed as permanent public-safe doctrine, incl. the 2026-07-30 owner decisions (hybrid form controls, warning→gold, collab hc-as-light accidental, docs-platform as separate workstream).
  • compositions.md §Suite chrome — the section TuxUserMenu/TuxUtilityCluster have cited since v1.7.0.
  • app/utils/tuxCatalog.ts + tests/tux-catalog.test.ts — single catalog source replacing 4 drifting registries; backfilled ~30 index entries, 9 sidebar entries, 3 doctrine rows; caught 10 deprecated Lucide alias icons. npm test now gates CI.
  • Doc truth pass: README v1.4.2 staleness, counts, pin examples, homepage computed count + v1.7.0 update entry.

Verified: lint ✓ typecheck ✓ 18/18 tests ✓ audit:tokens ✓ audit:a11y ✓ audit:contrast AAA ✓ (full generate battery), plus visual pass on /design/unification-plan, /components (139 cards), homepage.

Slice 1 of the unification continuation (see design/unification-plan.md in this PR for the reconstructed doctrine). - **design/unification-plan.md** — the lost v4 portal-unification plan reconstructed as permanent public-safe doctrine, incl. the 2026-07-30 owner decisions (hybrid form controls, warning→gold, collab hc-as-light accidental, docs-platform as separate workstream). - **compositions.md §Suite chrome** — the section TuxUserMenu/TuxUtilityCluster have cited since v1.7.0. - **app/utils/tuxCatalog.ts + tests/tux-catalog.test.ts** — single catalog source replacing 4 drifting registries; backfilled ~30 index entries, 9 sidebar entries, 3 doctrine rows; caught 10 deprecated Lucide alias icons. `npm test` now gates CI. - Doc truth pass: README v1.4.2 staleness, counts, pin examples, homepage computed count + v1.7.0 update entry. Verified: lint ✓ typecheck ✓ 18/18 tests ✓ audit:tokens ✓ audit:a11y ✓ audit:contrast AAA ✓ (full generate battery), plus visual pass on /design/unification-plan, /components (139 cards), homepage.
feat(doctrine): unification-plan.md + compositions §Suite chrome + tuxCatalog single source + catalog invariant tests (v1.7.1)
All checks were successful
scan / trivy-fs (push) Successful in 44s
baseline-security / baseline (push) Successful in 55s
baseline-security / baseline (pull_request) Successful in 48s
scan / trivy-fs (pull_request) Successful in 29s
ai-review / review (pull_request) Successful in 2m24s
0b2b762c9d
- design/unification-plan.md: the portal-unification v4 plan reconstructed
  as permanent public-safe doctrine (two-shape identity rule, one-chrome-
  many-voices, registry law, distribution artifacts, execution log, open-
  decision ledger incl. the four decisions ratified 2026-07-30).
- compositions.md gains the §Suite chrome section TuxUserMenu/
  TuxUtilityCluster have cited since v1.7.0.
- app/utils/tuxCatalog.ts replaces four drifting hand-maintained registries
  (navTree, /components grid, components.md tables, homepage count); backfills
  ~30 missing index entries, 9 sidebar entries, 3 doctrine rows; fixes 10
  deprecated Lucide alias icons the test immediately caught.
- tests/tux-catalog.test.ts: catalog ↔ filesystem ↔ routes ↔ components.md
  invariants; npm test now gates CI (quality job).
- Doc truth pass: README v1.4.2 staleness + counts + rename artifact,
  homepage computed count + v1.7.0 update entry, getting-started counts,
  design-doc title maps completed.
Member

AI review · advisory

Verdict: 7 things worth fixing (2 high · 2 medium · 3 low).

app/pages/index.vue:12 · HIGH — Undefined variable tuxComponentCount
The script uses ${tuxComponentCount} but it is never imported or defined, causing a runtime error when the page loads.

Fix: Add import { tuxComponentCount } from "./utils/tuxCatalog"; at the top of the script setup.

.github/workflows/audit-contrast.yml:141 · MEDIUM — Unit tests added to CI but no test file created
The CI workflow runs npm test, but no test file exists, so the step will fail or report zero tests.

Fix: Create a test file (e.g., tests/tux-catalog.test.ts) to match the CI step.

app/app.vue:24 · MEDIUM — Unused import 'pkg' in app.vue
The file imports pkg from package.json but never uses it, which can confuse readers and slow down builds.

Fix: Remove the unused pkg import.

design/compositions.md:410 · LOW — Incomplete example in documentation
The example for TuxUtilityCluster cuts off mid-sentence, making it hard for readers to follow.

Fix: Complete the example or remove the incomplete line.

design/components.md:295 · LOW — Inconsistent component count in documentation
The docs say "~70 Tux* components" while the PR claims 140+, which can mislead users.

Fix: Update the count to "~140 Tux* components" for consistency.

app/pages/design/[doc].vue:35 · LOW — Inconsistent title format in doc page
The title "Unification plan — one suite, one system" doesn’t match the pattern of other titles (e.g., "tux — design system").

Fix: Change the title to "Unification plan — design system" for consistency.

⚑ panel: GPT-OSS 120B · Gemma 4 31B · Devstral 2 123B — 9 raised, 7 confirmed, 2 refuted · web: not used · context: 3 files · 6 codebase · 4 standards chunks

Panel debate — how this review was reached

Grounding — context: 3 files · 6 codebase · 4 standards chunks

Round 1 — independent reviews

  • GPT-OSS 120B (1 finding, confidence 0.97): The change introduces a missing import causing a reference error; otherwise the diff looks correct.
  • Gemma 4 31B (0 findings, confidence 1.0): The diff is correct and follows codebase patterns, successfully unifying the component catalog into a single source of truth with corresponding CI gating.
  • Devstral 2 123B (8 findings, confidence 0.85): The PR introduces significant changes, including a new catalog system and CI integration for unit tests, but has several inconsistencies and undefined references.

Round 2 — cross-examination

  • GPT-OSS 120B#1 Undefined variable tuxComponentCount · confirmed: Gemma 4 31B, Devstral 2 123B · refuted: —
  • Devstral 2 123B#1 Unit tests added to CI but no test file created · confirmed: GPT-OSS 120B · refuted: Gemma 4 31B
  • Devstral 2 123B#2 Undefined variable 'tuxComponentCount' used in homepage · confirmed: GPT-OSS 120B, Gemma 4 31B · refuted: —
  • Devstral 2 123B#3 Unused import 'pkg' in app.vue · confirmed: GPT-OSS 120B · refuted: Gemma 4 31B
  • Devstral 2 123B#4 Inconsistent title format in doc page · confirmed: GPT-OSS 120B · refuted: Gemma 4 31B
  • Devstral 2 123B#5 Inconsistent component count in documentation · confirmed: GPT-OSS 120B · refuted: Gemma 4 31B
  • Devstral 2 123B#6 Inconsistent reference to future component · confirmed: — · refuted: GPT-OSS 120B, Gemma 4 31B
  • Devstral 2 123B#7 Inconsistent reference to future component · confirmed: — · refuted: GPT-OSS 120B, Gemma 4 31B
  • Devstral 2 123B#8 Incomplete example in documentation · confirmed: GPT-OSS 120B, Gemma 4 31B · refuted: —

Raised but refuted (left out of the review above)

  • Devstral 2 123B#6 Inconsistent reference to future component — The diff adds a clarification that TuxPhotoCard is a roadmap item ("TuxPhotoCard → roadmap"), removing the alleged inconsistency.
  • Devstral 2 123B#7 Inconsistent reference to future component — The documentation now explicitly notes that TuxStatusToast ships in v1.8.0, providing clear status and thus not being inconsistent.

Synthesis — Devstral 2 123B wrote the final review from 7 confirmed findings.

Transcript rv-20260730144834-f7ead5 — full round outputs, web results, and model reasoning are viewable by anyone with access to this repository via the AI gateway.

Full transcript: http://host.containers.internal:3939/-/ai/v1/review/rv-20260730144834-f7ead5

Three superPOD models reviewed this independently and cross-examined each other; only what survived is shown. Advisory — never a merge gate.

### AI review · advisory **Verdict: 7 things worth fixing** (2 high · 2 medium · 3 low). **`app/pages/index.vue:12`** · HIGH — Undefined variable `tuxComponentCount` The script uses `${tuxComponentCount}` but it is never imported or defined, causing a runtime error when the page loads. > **Fix:** Add `import { tuxComponentCount } from "./utils/tuxCatalog";` at the top of the script setup. **`.github/workflows/audit-contrast.yml:141`** · MEDIUM — Unit tests added to CI but no test file created The CI workflow runs `npm test`, but no test file exists, so the step will fail or report zero tests. > **Fix:** Create a test file (e.g., `tests/tux-catalog.test.ts`) to match the CI step. **`app/app.vue:24`** · MEDIUM — Unused import 'pkg' in app.vue The file imports `pkg` from `package.json` but never uses it, which can confuse readers and slow down builds. > **Fix:** Remove the unused `pkg` import. **`design/compositions.md:410`** · LOW — Incomplete example in documentation The example for `TuxUtilityCluster` cuts off mid-sentence, making it hard for readers to follow. > **Fix:** Complete the example or remove the incomplete line. **`design/components.md:295`** · LOW — Inconsistent component count in documentation The docs say "~70 Tux* components" while the PR claims 140+, which can mislead users. > **Fix:** Update the count to "~140 Tux* components" for consistency. **`app/pages/design/[doc].vue:35`** · LOW — Inconsistent title format in doc page The title "Unification plan — one suite, one system" doesn’t match the pattern of other titles (e.g., "tux — design system"). > **Fix:** Change the title to "Unification plan — design system" for consistency. <sub>⚑ panel: GPT-OSS 120B · Gemma 4 31B · Devstral 2 123B — 9 raised, 7 confirmed, 2 refuted · web: not used · context: 3 files · 6 codebase · 4 standards chunks</sub> <details> <summary>Panel debate — how this review was reached</summary> **Grounding** — context: 3 files · 6 codebase · 4 standards chunks **Round 1 — independent reviews** - **GPT-OSS 120B** (1 finding, confidence 0.97): The change introduces a missing import causing a reference error; otherwise the diff looks correct. - **Gemma 4 31B** (0 findings, confidence 1.0): The diff is correct and follows codebase patterns, successfully unifying the component catalog into a single source of truth with corresponding CI gating. - **Devstral 2 123B** (8 findings, confidence 0.85): The PR introduces significant changes, including a new catalog system and CI integration for unit tests, but has several inconsistencies and undefined references. **Round 2 — cross-examination** - `GPT-OSS 120B#1` Undefined variable `tuxComponentCount` · confirmed: Gemma 4 31B, Devstral 2 123B · refuted: — - `Devstral 2 123B#1` Unit tests added to CI but no test file created · confirmed: GPT-OSS 120B · refuted: Gemma 4 31B - `Devstral 2 123B#2` Undefined variable 'tuxComponentCount' used in homepage · confirmed: GPT-OSS 120B, Gemma 4 31B · refuted: — - `Devstral 2 123B#3` Unused import 'pkg' in app.vue · confirmed: GPT-OSS 120B · refuted: Gemma 4 31B - `Devstral 2 123B#4` Inconsistent title format in doc page · confirmed: GPT-OSS 120B · refuted: Gemma 4 31B - `Devstral 2 123B#5` Inconsistent component count in documentation · confirmed: GPT-OSS 120B · refuted: Gemma 4 31B - `Devstral 2 123B#6` Inconsistent reference to future component · confirmed: — · refuted: GPT-OSS 120B, Gemma 4 31B - `Devstral 2 123B#7` Inconsistent reference to future component · confirmed: — · refuted: GPT-OSS 120B, Gemma 4 31B - `Devstral 2 123B#8` Incomplete example in documentation · confirmed: GPT-OSS 120B, Gemma 4 31B · refuted: — **Raised but refuted** (left out of the review above) - `Devstral 2 123B#6` Inconsistent reference to future component — The diff adds a clarification that `TuxPhotoCard` is a roadmap item ("TuxPhotoCard → roadmap"), removing the alleged inconsistency. - `Devstral 2 123B#7` Inconsistent reference to future component — The documentation now explicitly notes that `TuxStatusToast` ships in v1.8.0, providing clear status and thus not being inconsistent. **Synthesis** — Devstral 2 123B wrote the final review from 7 confirmed findings. <sub>Transcript `rv-20260730144834-f7ead5` — full round outputs, web results, and model reasoning are viewable by anyone with access to this repository via the AI gateway.</sub> </details> <sub>Full transcript: http://host.containers.internal:3939/-/ai/v1/review/rv-20260730144834-f7ead5</sub> <sub>Three superPOD models reviewed this independently and cross-examined each other; only what survived is shown. Advisory — never a merge gate.</sub>
chore(release): v1.7.1 — version bump + changelog section
All checks were successful
baseline-security / baseline (push) Successful in 58s
scan / trivy-fs (push) Successful in 51s
ai-review / review (pull_request) Successful in 25s
scan / trivy-fs (pull_request) Successful in 40s
baseline-security / baseline (pull_request) Successful in 1m0s
34b29f25ca
All checks were successful
baseline-security / baseline (push) Successful in 58s
scan / trivy-fs (push) Successful in 51s
ai-review / review (pull_request) Successful in 25s
scan / trivy-fs (pull_request) Successful in 40s
baseline-security / baseline (pull_request) Successful in 1m0s
Required
Details
This pull request doesn't have enough approvals yet. 0 of 1 approvals granted.
This branch is out-of-date with the base branch
You are not authorized to merge this pull request.
View command line instructions

Checkout

From your project repository, check out a new branch and test the changes.
git fetch -u origin feat/v1.7.1-unification-doctrine:feat/v1.7.1-unification-doctrine
git switch feat/v1.7.1-unification-doctrine
Sign in to join this conversation.
No reviewers
No milestone
No project
No assignees
2 participants
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
tti/tti-ux!16
No description provided.