From ff0a1cd4cb23b26fbf2f001ae4a9390ef980e999 Mon Sep 17 00:00:00 2001
From: XiaoSeS <87064762+XiaoSeS@users.noreply.github.com>
Date: Wed, 9 Sep 2026 16:39:34 +0800
Subject: [PATCH] feat(suite): enrich overview with entry skill guidance
Signed-off-by: XiaoSeS <87064762+XiaoSeS@users.noreply.github.com>
---
web/src/i18n/locales/en.json | 3 ++
web/src/i18n/locales/ru.json | 3 ++
web/src/i18n/locales/zh.json | 3 ++
web/src/pages/suite-detail.test.tsx | 10 ++++-
web/src/pages/suite-detail.tsx | 65 +++++++++++++++++++++++++----
5 files changed, 73 insertions(+), 11 deletions(-)
diff --git a/web/src/i18n/locales/en.json b/web/src/i18n/locales/en.json
index 949ad92a..46af8d9f 100644
--- a/web/src/i18n/locales/en.json
+++ b/web/src/i18n/locales/en.json
@@ -1778,6 +1778,9 @@
"viewMember": "View skill: {{name}}",
"pinnedVersion": "Pinned version v{{version}}",
"entrySkill": "Entry skill",
+ "startWithEntry": "Start with the entry skill",
+ "startWithEntryDescription": "Installing this suite gives you {{count}} version-pinned skills. Open the entry skill first to understand the primary way to use them together.",
+ "viewEntrySkill": "View entry skill",
"versionHistory": "Version history",
"validationRequired": "Complete the required fields and select at least one skill",
"draftUpdated": "Suite draft updated",
diff --git a/web/src/i18n/locales/ru.json b/web/src/i18n/locales/ru.json
index 2676815a..d9d37237 100644
--- a/web/src/i18n/locales/ru.json
+++ b/web/src/i18n/locales/ru.json
@@ -1775,6 +1775,9 @@
"viewMember": "Открыть навык: {{name}}",
"pinnedVersion": "Зафиксированная версия v{{version}}",
"entrySkill": "Входной навык",
+ "startWithEntry": "Начните с входного навыка",
+ "startWithEntryDescription": "После установки набора вы получите {{count}} навыков с зафиксированными версиями. Сначала откройте входной навык, чтобы понять основной сценарий их совместного использования.",
+ "viewEntrySkill": "Открыть входной навык",
"versionHistory": "История версий",
"validationRequired": "Заполните обязательные поля и выберите хотя бы один навык",
"draftUpdated": "Черновик набора обновлён",
diff --git a/web/src/i18n/locales/zh.json b/web/src/i18n/locales/zh.json
index cc14067b..309425b1 100644
--- a/web/src/i18n/locales/zh.json
+++ b/web/src/i18n/locales/zh.json
@@ -1777,6 +1777,9 @@
"viewMember": "查看技能:{{name}}",
"pinnedVersion": "固定版本 v{{version}}",
"entrySkill": "入口技能",
+ "startWithEntry": "从入口技能开始",
+ "startWithEntryDescription": "安装套件后将获得 {{count}} 个固定版本的技能。先打开入口技能,了解这组技能的主要使用方式。",
+ "viewEntrySkill": "查看入口技能",
"versionHistory": "版本历史",
"validationRequired": "请填写必填项并至少选择一个技能",
"draftUpdated": "套件草稿已更新",
diff --git a/web/src/pages/suite-detail.test.tsx b/web/src/pages/suite-detail.test.tsx
index c0fd8e03..3128a974 100644
--- a/web/src/pages/suite-detail.test.tsx
+++ b/web/src/pages/suite-detail.test.tsx
@@ -93,13 +93,19 @@ describe('SuiteDetailPage', () => {
vi.clearAllMocks()
})
- it('separates the Markdown overview from browsable member skills', () => {
+ it('adds entry skill guidance to the overview and keeps the full member grid separate', () => {
mocks.detail = { data: suite(), isLoading: false, error: null }
render(
- {suite.summary || t('suite.noOverview')} -
- )} ++ {suite.summary || t('suite.noOverview')} +
+ )} ++ {t('suite.startWithEntryDescription', { count: suite.members.length })} +
++ + + {entryMember.displayName || `@${entryMember.namespace}/${entryMember.slug}`} + +
++ @{entryMember.namespace}/{entryMember.slug}@{entryMember.version} +
+ {entryMember.blockingReason ? ( + + {suiteBlockingReasonLabel(t, entryMember.blockingReason)} + + ) : null} +