Skip to content

[feat](insights): group the landing into four lenses + three activities - #66

Merged
programmerShinobi merged 1 commit into
mainfrom
feat/phase3-chat-advisor
Jul 25, 2026
Merged

[feat](insights): group the landing into four lenses + three activities#66
programmerShinobi merged 1 commit into
mainfrom
feat/phase3-chat-advisor

Conversation

@programmerShinobi

Copy link
Copy Markdown
Owner

The finding

The Insights tab renders seven cards in one flat grid — and that is the main reason it reads as daunting.

Four of those cards (Catalog, Playbook, Review, Library) are the same 21 architectures seen from four angles. Every architecture appears in all four, and each page already carries a switcher to jump between them. The other three (Roadmap, Academy, Lab) are activities you do.

Flattened into seven peers, that reads as seven separate libraries to work through — both wrong and discouraging.

The codebase already knew this. src/config/sections.ts says "the four architecture lenses plus Roadmap, Academy, Lab"in a comment. The UI never said it.

What changed

Two labelled groups, each stating what the group is:

Read about the architectures — Four ways of reading the same 21 architectures — not four separate libraries. Pick the angle that matches your question; every architecture appears in all four.

Build the skill — Things you do rather than read: a route through the material, questions to test yourself against, and a sandbox that runs the real scoring engine.

An "Open this when…" line on every card. The existing desc fields say what a section contains — not the question someone facing seven cards is asking. They are asking which to click, decided by what they are trying to do right now. So these are phrased as circumstances:

Section Open this when…
Catalog you do not yet know what an architecture is or where it is used
Playbook you have decided and now have to build it
Review you are weighing two options against each other
Library you hit a term you do not recognise
Roadmap you want a route instead of choosing where to start
Academy you want to find out what you actually retained
Lab you want to see a trade-off move instead of reading about it

Guide §8 rewritten from a one-sentence list of seven names into four paragraphs: the 4+3 split and why it matters, each lens by the question it answers, the three practice sections, and two things worth knowing first — that Guided/Expert changes reading depth across the whole tab, and that the articles are in English by product decision while the navigation follows your language.

Bundle — stated plainly

Initial JS 121→122kB. Those 11 dict keys are only read on a lazy tab, but dict is a single object literal, so Vite cannot tree-shake properties — every key costs first paint wherever it is used. That is a known, accepted property of this i18n design rather than something introduced here; recorded inline so the next raise is judged on the same terms. Total 284, NFR cap 300.

Gates

tsc clean · lint 0 warnings · 241/241 unit (2 new, pinning the grouping and one routing line per section) · 14/14 E2E · 7/7 guards.

Landing verified in both languages at 390px and 1440px: correct group headings, 7 cards, 7 routing lines, 0 axe violations (WCAG 2.0/2.1 A+AA), no horizontal overflow.

🤖 Generated with Claude Code

The Insights tab renders seven cards in one flat grid, and that is the main
reason it reads as daunting: four of those cards — Catalog, Playbook, Review,
Library — are the SAME 21 architectures seen from four angles, while the other
three are activities you do. Every architecture appears in all four lenses, and
each page already carries a switcher to jump between them. Flattened into seven
peers, that reads instead as seven separate libraries to work through, which is
both wrong and discouraging.

The codebase already knew the structure — src/config/sections.ts says "the four
architecture lenses plus Roadmap, Academy, Lab" in a comment — but the UI never
said it. This states it where the reader is: two labelled groups, each with a
line explaining what the group IS ("four ways of reading the same 21
architectures — not four separate libraries").

Adds an "Open this when…" line to every card. The existing `desc` fields say
what a section CONTAINS, which is not the question someone facing seven cards is
asking; they are asking which to click, and that is decided by what they are
trying to do right now. So these are phrased as circumstances: "open this when
you hit a term you do not recognise", "…when you have decided and now have to
build it", "…when you want to see a trade-off move instead of reading about it".

Guide §8 rewritten to match, from a one-sentence list of seven names into four
paragraphs: the 4+3 split and why it matters, each lens by the question it
answers, the three practice sections, and two things worth knowing first — that
Guided/Expert changes reading depth across the whole tab, and that the articles
themselves are in English by product decision while the navigation follows the
chosen language.

Bundle: initial JS 121→122kB. Those 11 dict keys are only READ on a lazy tab,
but `dict` is a single object literal, so Vite cannot tree-shake properties and
every key costs first paint wherever it is used. That is a known, accepted
property of this i18n design rather than a regression introduced here; recorded
inline so the next raise is judged on the same terms. Total 284, NFR cap 300.

Gates: tsc clean, lint 0 warnings, 241/241 unit (2 new pinning the grouping and
the one-line-per-section routing), 14/14 E2E, 7/7 guards. Landing verified in
both languages at 390px and 1440px: correct group headings, 7 cards, 7 routing
lines, 0 axe violations (WCAG 2.0/2.1 A+AA), no horizontal overflow.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
@programmerShinobi
programmerShinobi merged commit a80e465 into main Jul 25, 2026
4 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant