Hacktoberfest 2026:メンテナが10月に向けて印を付けた、オープンで初心者向けの issue。 Hacktoberfest の issue を見る

[quality] Architecture catalog lists "public cloud" and "public-cloud" as two tags, splitting filter results

クローズ 初心者向け
#1,966 コメント 0 件 リアクション 0 件 担当者 0 名 GitHub で見る

メンテナーはふだん 1 日以内に返信

@hivecommons-hive がすでに取り組んでいます。

2026年10月28日 から。

  • #1967 @hivecommons-hive による — オープン

評価

難易度
2/5
見積もり時間
1〜3時間
初心者へのやさしさ
72/100
issue の種類
バグ
明瞭さ
明確に書かれている
活発さ
活発
技術スタック
javascript
領域
data, testing-qa

調査の方向性

src/components/ArchitectureFilters/index.js と scripts/validate-architectures.mjs を読み、その後 data/architectures/records/zeiss.json の Zeiss レコードと data/architectures/catalog.json のカタログ項目を確認してください。issue で言及されている既存の validator テストに従ってください。このタグについてカタログで表記が1つに統一され、区切り文字だけが異なるタグは validation で拒否される一方、大文字と小文字だけの違いは引き続き許容されれば完了です。

索引モデルが issue の本文から書いたものです。

説明

agent/quality stage/040-covered-by-pr testing

Finding

On /architectures, the "Add a tag" control lists public cloud and public-cloud as two separate tags, and each one returns only half of the records that carry the concept:

picked tag catalog results
public cloud allianz
public-cloud zeiss

Typed search splits the same way: typing public cloud does not match Zeiss, because filterArchitectures searches architecture.tags.join(' ') and Zeiss's tag text is public-cloud.

This is a user-observable wrong result on the production catalog: a visitor filtering for public-cloud architectures sees one of the two that exist, with no indication that a second spelling of the same tag is sitting further down the same dropdown.

Reproduced against main (75a3db8) by running the shipped useArchitectureFilterOptions / filterArchitectures logic over data/architectures/catalog.json:

dropdown has both: [ 'public cloud', 'public-cloud' ]
select "public cloud" -> [ 'allianz' ]
select "public-cloud" -> [ 'zeiss' ]
"private cloud" (sibling, spaced) -> [ 'cern-scientific-computing', 'sncf-onprem',
                                       'swisscom-cloud-native-telco', 'swisscom-kubernetes-service' ]

src/components/ArchitectureFilters/index.js folds tags by case only (tagKey), which is deliberate and documented — upstream tags are not consistently cased, so Kubernetes/kubernetes correctly collapse to one entry. Separators are not folded, so this pair does not collapse.

Why no gate caught it

scripts/validate-architectures.mjs already gates tag spelling, but only for underscores:

if (typeof tag !== 'string' || tag.includes('_'))

A tag that differs from another tag only by - vs a space passes. public cloud and public-cloud are the only such pair in the catalog today; the gate does not cover the class.

Recommendation

Two parts, both in one change:

  1. Data. data/architectures/records/zeiss.json and data/architectures/catalog.json: "public-cloud" → "public cloud". Spaces are the stated convention for this field, Allianz already spells it that way, and the sibling tag private cloud is spelled with a space by four records.

  2. Gate. Extend the existing tag rule in scripts/validate-architectures.mjs to reject two spellings that fold to the same key under case and separators, while still accepting a pure case difference (which the UI collapses on purpose). On the pre-fix data it reports:

    [error] zeiss: tag "public-cloud" differs only in separators from "public cloud" on allianz;
            the catalog filter lists both and each returns only its own records,
            so one spelling must be used
    

Priority

  • Impact: medium — wrong catalog results on a published page; affects two of ten records today and every future import.
  • Effort: low — one data value, one validator rule, four tests.

🐝 Hive Agent: quality | Instance: hosted-available-lke648397-260827-5n31 | SHA: 75a3db8

— hive: agent=quality backend=copilot model=claude-opus-5 copilot=1.0.88

主要言語
JavaScript
スター
0
フォーク
3
平均マージ
7時間 8分
マージ済み PR(30日)
565

環境構築

Codespaces で開く

このプロジェクトの開発コンテナを、あなたの GitHub アカウントでブラウザ上に起動します。

はじめの一歩

  1. issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
  2. 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
  3. リポジトリをフォークし、ブランチを切って変更します。
  4. issue 番号を参照したプルリクエストを送ります。

cncf/endusers のほかの issue

cncf/endusers の issue をすべて見る

似ている issue

JavaScript の issue をもっと見る

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。