Repository navigation
🐛 fix(architectures): list the finance vertical once in the industry filter - #2020
Conversation
…lter The Allianz Direct page labelled its vertical Financial while the Capital One page labelled the same vertical Financial Services. The industry filter on /architectures and /community/members offers one option per distinct industries string and matches on exact equality, so the published dropdowns showed two adjacent options for one vertical and each returned only one of the two architectures, hiding the other. Normalise the Allianz entry to Financial Services, the label the Capital One page, its own financial-services tag and data/case-studies.json already use, keeping the page's second Insurance label so no specificity is lost, and regenerate the catalog and member data. The project-spelling gate added in #1991 normalises case and punctuation, so it cannot see two labels that differ in wording. Gate the catalog's industry vocabulary by word set instead, so a label whose words are contained in another label fails the contract. Signed-off-by: quality <280983584+hivecommons-hive[bot]@users.noreply.github.com>
|
Important Held for human review by the hive's ACMM level gate. This PR was opened by the "quality" agent while Hive policy required a human checkpoint for that agent. Agent PRs are held at ACMM L3–L5; an Hive will keep the |
✅ Deploy Preview for endusers ready!
To edit notification comments on pull requests, go to your Netlify project configuration. |
There was a problem hiding this comment.
Read the tree at head e9caa50, not just the diff. This looks correct to me.
What I verified:
src/components/ArchitectureFilters/index.js:91matches industry with exactincludesequality and builds options from the distinctindustriesstrings (lines 50–63), soFinancialandFinancial Serviceson main do render as two options that each hide the other page — the stated defect is real.- The three data touchpoints move together:
docs/architectures/allianz/index.mdfront matter,data/architectures/catalog.json, anddata/members.jsonall now sayFinancial Services, andInsuranceis kept, so no specificity is lost. - The new gate in
tests/architecture-catalog-contract.test.mjsbehaves as the body claims: with main'scatalog.jsonswapped in, it fails with exactlyFinancial vs Financial Services; at head, 13/13 tests pass. I also checked the word-subset heuristic against every current label pair (E-commerce/Digital Commerce,Telecommunication/Communication,Optics/Optical Manufacturing) — none collide, so no false positives on today's catalog. Financial Servicesas the surviving label matchesdata/case-studies.jsonvocabulary and the Capital One page's existing tag.
No findings. CI is fully green; this is ready for a maintainer to lift the hold.
— hive: agent=reviewer backend=copilot model=claude-fable-5 copilot=1.0.88
…lters The industry and tag filters on /architectures and /community/members offer one option per distinct label. After cncf#2020 and cncf#2022 the project and industry dimensions had no label that hid another's architectures, but two tag pairs still did, and five industry synonym sets sat on single records waiting for a second page to turn them into the same split. Tags, where picking one option hid the other's architecture: - finance (Allianz Direct) -> financial-services (already on Capital One) - Site reliability (Flipkart) -> reliability (already on Capital One) Industries, where one record carried two or three wordings of one vertical: - Communication + Telecommunication -> Telecommunication (both Swisscom pages) - Optics + Optical Manufacturing -> Optics (ZEISS) - Transport + Rail -> Transport (SNCF); Rail kept as a tag - E-commerce + Retail + Digital Commerce -> Retail (Flipkart); E-commerce was already a tag - Digital Media + Digital Experience -> Digital Media (Adobe) The industry select drops from 18 options to 12 for 10 architectures. data/architectures/catalog.json and data/members.json are regenerated from the page front matter. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Signed-off-by: mrbobbytables <mrbobbytables@users.noreply.github.com>
Remit: a visitor filtering
/architecturesor/community/membersby industry now sees both finance architectures under one option instead of one each under two.Test Improvement
The industry
<select>on/architecturesand/community/membersoffers oneoption per distinct
industriesstring and matches with exact equality(
filterArchitecturesinsrc/components/ArchitectureFilters/index.js). TheAllianz Direct page labelled its vertical
Financialand the Capital One pagelabelled the same vertical
Financial Services, so the production build ofmainrendered both as adjacent options and each returned only one of the twoarchitectures:
Files and functions this PR claims:
docs/architectures/allianz/index.md— front-matterindustries, normalisedto
Financial Services; the pagesInsurancelabel is kept, so nospecificity is lost.
data/architectures/catalog.json,data/members.json— regenerated withnpm run generate:architecturesandnpm run generate:members(the follow-upfix: regenerate members.json after the catalog ExternalDNS fix #2015 had to add for 🐛 fix(architectures): list ExternalDNS once in the catalog project filter #1991 is included here).
tests/architecture-catalog-contract.test.mjs— newno industry is listed under two labels across the cataloggate, plus itsindustryWords/isSubsetOfhelpers. The project-spelling gate 🐛 fix(architectures): list ExternalDNS once in the catalog project filter #1991 added normalises caseand punctuation, so it cannot see two labels that differ in wording. This one
compares word sets: a label whose words are all contained in another labels
words names the same vertical less completely. It fails on
main(
Financial vs Financial Services) and passes with the data fix.Why
Financial Servicesis the surviving label: it is the vocabularydata/case-studies.jsonalready uses for this vertical, and it is what theCapital One page and its own
financial-servicestag carry.Verification
node --test tests/architecture-catalog-contract.test.mjs— fails onmainwith
Financial vs Financial Services, passes with this changenpm run test:unit— 3802 passnpm run validate:architectures,npm run validate:membersnpm run check:format,check:lint,check:spelling,check:markdown,check:duplication,check:unusednpm run build:production, then the rendered<select id=architecture-industry>and
<select id=member-industry>each list the vertical onceRelated Issue
Fixes #2019
Human review required.
— hive: agent=quality backend=copilot model=claude-opus-5 copilot=1.0.88