RedHatInsights/platform-frontend-ai-toolkit

GitHub: RedHatInsights/platform-frontend-ai-toolkit

HCC前端AI工具包:助力前端开发,提升效率与质量。

Stars: 4 | Forks: 15

# HCC 前端 AI 工具包 为前端开发团队定制的 Claude Code 市场和插件仓库。 ## 这是什么? 此仓库作为 **定制的 Claude Code 市场场**,提供针对不同工作流程的专业插件: 1. **前端插件** - React、TypeScript、测试和代码质量的开发工具 2. **基础设施插件** - Konflux 的 DevOps 自动化、数据库升级和密钥管理 3. **管理插件** - JIRA、报告和分析的项目管理工具 每个插件都包含针对特定用例定制的代理和 MCP 服务器,允许团队仅安装他们需要的部分。 ## 入门 ### 🤖 Claude Code 设置 #### 安装插件 ``` # 1. 将此仓库添加到市场 /plugin marketplace add RedHatInsights/platform-frontend-ai-toolkit # 2. 安装您需要的插件: # - 前端开发(React、TypeScript、测试) /plugin install frontend-plugin@hcc-frontend-toolkit # - 基础设施/DevOps(Konflux、数据库升级、密钥) /plugin install infrastructure-plugin@hcc-frontend-toolkit # - 项目管理(JIRA、报告、分析) /plugin install management-plugin@hcc-frontend-toolkit ``` **安装所有三个:** ``` /plugin install frontend-plugin infrastructure-plugin management-plugin@hcc-frontend-toolkit ``` 📖 更多关于 Claude Code 插件的详细信息,请参阅 [官方插件指南](https://code.claude.com/docs/en/plugins#install-and-manage-plugins). #### ⚠️ 重要:需要重启 **安装后,重启您的 Claude Code 会话以查看代理和其他功能。** #### 团队配置(可选) 为了在您的团队中自动设置市场,请将以下内容添加到 `.claude/settings.json`: ``` { "extraKnownMarketplaces": { "hcc-frontend-toolkit": { "source": { "source": "github", "repo": "RedHatInsights/platform-frontend-ai-toolkit" } } } } ``` #### 测试您的安装 安装和重启后,测试插件: ``` # 测试 hello world 代理 Task with subagent_type='hcc-frontend-hello-world' to greet the user ``` hello world 代理应将其自身识别为 HCC 前端 AI 工具包插件的一部分,确认安装成功。 ## 代理开发 ### 📋 开发指南 **想要创建自己的代理吗?** 请参阅我们的全面指南:[AGENT_GUIDELINES.md](AGENT_GUIDELINES.md) 此指南涵盖: - 如何有效地规划代理(小而专注) - 使用 Claude Code 的 `/agents` 命令进行开发 - 命名约定和最佳实践 - 优秀设计 vs. 差劣设计的代理示例 ### 快速入门:创建代理 1. **使用 Claude Code** - 使用 Claude Code 中的 `/agents` 命令创建代理 2. **遵循命名约定** - 使用 `hcc-frontend-` 前缀(例如,`hcc-frontend-css-utilities`) 3. **保持专注范围** - 代理应该是小而专业的(CSS 工具、钩子测试等) 4. **使用正确的格式** - 遵循 [Claude 代理文件格式](https://code.claude.com/docs/en/sub-agents#file-format) ### 代理文件格式 代理使用 **Claude 格式**,带有 YAML 前置内容: ``` --- description: Brief description of what this agent specializes in capabilities: ["specific-task-1", "specific-task-2", "specific-task-3"] --- # 代理名称 Detailed description of when and how Claude should use this agent... ``` ### 开发工作流程 当修改 Claude 代理时: 1. **编辑** Claude 代理文件在 `claude/agents/` 2. **转换** 到 Cursor 格式:`npm run convert-cursor` 3. **验证** 同步:`npm run check-cursor-sync` 4. **提交** Claude 和 Cursor 文件 ### ⚠️ 重要:Cursor 规则同步 **当您修改 Claude 代理时,您必须在使用提交之前重新生成 Cursor 规则。** 我们的 CI 将 **自动失败** 如果 Cursor 规则与 Claude 代理不同步。 ``` # 1. 编辑 Claude 代理 vim claude/agents/hcc-frontend-example.md # 2. 重新生成游标规则 npm run convert-cursor # 3. 确认一切同步 npm run check-cursor-sync # 4. 提交所有更改 git add claude/agents/hcc-frontend-example.md cursor/rules/example.mdc git commit -m "feat: update example agent" ``` ## 可用代理 ### 前端开发代理 - **hcc-frontend-hello-world** - 简单的问候代理,用于验证插件安装和功能 - **hcc-frontend-patternfly-component-builder** - 专家,擅长创建用于表单、布局、导航和模态的 PatternFly React 组件 - **hcc-frontend-patternfly-dataview-specialist** - 专家,擅长 PatternFly DataView 组件,用于表格、列表和数据网格 - **hcc-frontend-patternfly-css-utility-specialist** - 专家,擅长应用 PatternFly CSS 工具类进行样式和布局 - **hcc-frontend-storybook-specialist** - 专家,擅长创建具有测试和文档的全面 Storybook 故事 - **hcc-frontend-typescript-type-refiner** - 专家,擅长分析和精炼 TypeScript 类型,以消除 'any' 并提高类型安全性 - **hcc-frontend-unit-test-writer** - 专家,擅长编写针对 JavaScript/TypeScript 函数和 React 钩子的专注单元测试 - **hcc-frontend-react-patternfly-code-quality-scanner** - 专家,擅长扫描 React + PatternFly 项目以查找反模式和技术债务 - **hcc-frontend-dependency-cleanup-agent** - 专家,擅长安全地删除文件并清理孤立依赖项 - **hcc-frontend-weekly-report** - 专家,通过分析 JIRA 问题生成每周团队报告(用户提供团队识别标准) - **hcc-frontend-yaml-setup-specialist** - 专家,擅长为新应用程序创建前端.yaml 文件,包括适当的 FEO 配置 - **hcc-frontend-feo-migration-specialist** - 专家,擅长将现有应用程序从静态 Chrome 配置迁移到 Frontend Operator 管理系统 - **hcc-frontend-iqe-test-analyzer** - 专家,擅长分析 IQE 测试并创建迁移计划(阶段 1:分析) - **hcc-frontend-iqe-to-playwright-converter** - 专家,擅长将 IQE 测试转换为 Playwright TypeScript(阶段 2:转换) - **hcc-frontend-playwright-test-finalizer** - 专家,擅长通过文档、PR 和 CodeRabbit 解决方案完成迁移(阶段 3:最终化) ### 测试迁移 此工具包包括三个针对 IQE-to-Playwright 迁移的专业代理,按顺序工作: #### 1. **hcc-frontend-iqe-test-analyzer**(分析与规划) 分析 IQE 测试并创建全面的迁移计划,包括: - 仓库识别(确定哪个前端仓库拥有每个测试) - 现有测试覆盖率重叠检测 - 多用户身份验证检测 - 身份验证状态修改检测(注销、组织切换等) - 环境状态假设检测 - 自定义凭据检测 - 按照仓库组织的全面迁移计划 **输出**:包含警告和用户决策所需的迁移计划 #### 2. **hcc-frontend-iqe-to-playwright-converter**(代码转换) 将 IQE 测试转换为 Playwright TypeScript,包括: - 正确的 `@redhat-cloud-services/playwright-test-auth` 集成,用于 Red Hat SSO - 独立的身份验证,用于影响会话状态的测试 - 符号超时常量(无硬编码值) - CI 优化配置(单线程,无重试,最多 2 次失败) - 从 Widgetastic 视图转换为页面对象 - 选择器现代化(XPath → 基于角色的/CSS) - 参数化测试转换 - 处理跳过的测试的 test.skip() **输出**:按仓库组织的转换后的测试文件 #### 3. **hcc-frontend-playwright-test-finalizer**(文档与集成) 通过以下方式完成迁移: - 为每个测试创建 QE 验证文档 - 为跳过的测试创建 JIRA 问题 - 将文件交互式地移植到目标仓库 - 创建 Git 分支和 PR - 监控和解决 CodeRabbit 注释(主要+优先级) - 创建迁移总结文档 **输出**:包含 PR 和文档的完整迁移 **⚠️ 限制**:仅支持使用单个用户帐户的测试。多用户测试需要手动转换或拆分。 **快速入门(顺序工作流程):** ``` # 步骤 1:分析 Use hcc-frontend-iqe-test-analyzer to analyze test_login.py from /path/to/iqe-platform-ui-plugin # 步骤 2:转换(计划批准后) Use hcc-frontend-iqe-to-playwright-converter to convert test_login.py using approved plan # 步骤 3:最终确定 Use hcc-frontend-playwright-test-finalizer to generate docs and create PR for insights-chrome ``` 📋 **有关详细迁移指南,请参阅**:[tests/migration-demo/QUICKSTART.md](tests/migration-demo/QUICKSTART.md) **迁移工作流程:** - **分析** → 创建包含警告和仓库分配的迁移计划 - **转换** → 生成具有正确身份验证和现代模式的 Playwright 测试文件 - **最终化** → 通过文档、移植、PR 和 CodeRabbit 解决方案完成集成 **关键功能:** - ✅ 全局身份验证设置(无每个测试的登录) - ✅ 用于修改会话状态的测试的独立身份验证 - ✅ 符号超时常量(TIMEOUTS.PAGE_LOAD 等) - ✅ 禁用 Cookie 允许提示 - ✅ 参数化测试转换 - ✅ 环境状态假设检测 - ✅ 测试覆盖率重叠检测 - ✅ 跳过的测试的 JIRA 跟踪 - ✅ 交互式文件移植 - ✅ 自动创建 PR - ✅ 解决 CodeRabbit 反馈 ### 基础设施代理 - **hcc-infra-db-upgrade-orchestrator** - 通过分析状态并将任务委派给专门的子代理来编排 RDS 数据库升级 - **hcc-infra-db-upgrade-status-page** - 为生产数据库升级创建状态页维护公告 - **hcc-infra-db-upgrade-replication-check** - 创建 SQL 查询以在 DB 升级之前验证没有活动的复制槽 - **hcc-infra-db-upgrade-post-maintenance** - 创建升级后的 VACUUM 和 REINDEX 维护脚本 - **hcc-infra-db-upgrade-switchover** - 执行 RDS 蓝绿部署切换 - **hcc-infra-db-upgrade-cleanup** - 升级成功后删除蓝绿部署配置 📋 **有关详细数据库升级文档,请参阅**:[DB_UPGRADE_AGENTS.md](DB_UPGRADE_AGENTS.md) 所有代理都使用 `hcc-frontend-` 或 `hcc-infra-` 前缀,以避免与其他插件和内置代理发生名称冲突。 ### 前端操作员(FEO)配置代理 此工具包包括用于前端操作员配置管理的专业代理: - **hcc-frontend-yaml-setup-specialist** - 从头开始为新应用程序创建完整的 frontend.yaml 文件,包括适当的 FEO 配置、模块设置、导航包段、服务磁贴和搜索条目 - **hcc-frontend-feo-migration-specialist** - 将现有应用程序从静态 Chrome 服务后端配置迁移到 Frontend Operator 管理系统,处理导航、服务磁贴、fed-modules.json 转换和搜索条目 **这些代理有助于:** - 使用适当的模式验证设置 `deploy/frontend.yaml` - 配置 `feoConfigEnabled: true` 和相关的 FEO 功能 - 将 fed-modules.json 引用转换为模块配置 - 将导航从 chrome-service-backend 迁移到包段 - 将服务下拉磁贴转换为 FEO 服务磁贴格式 - 设置全局搜索的显式搜索条目 - 确保适当的依赖项升级(`@redhat-cloud-services/frontend-components-config@^6.6.9`) **相关文档:** - [FEO 迁移指南](https://github.com/RedHatInsights/chrome-service-backend/blob/main/docs/feo-migration-guide.md) - [前端操作员文档](https://github.com/RedHatInsights/frontend-starter-app/blob/master/docs/frontend-operator/index.md) - [前端 CRD 模式](https://raw.githubusercontent.com/RedHatInsights/frontend-components/refs/heads/master/packages/config-utils/src/feo/spec/frontend-crd.schema.json) ## 使用工具包 ### 生成每周团队报告 此工具包包括一个强大的每周报告功能,可自动分析您的团队 JIRA 活动。 **先决条件:** 1. 安装 HCC 前端 AI 工具包插件(见入门部分) 2. 配置 [mcp-atlassian](https://github.com/sooperset/mcp-atlassian) MCP 服务器 3. 设置您的 JIRA 凭据(见下文) 4. 重新加载 Claude Code/VSCode **设置 JIRA MCP 服务器:** 将以下内容添加到您的 Claude Code MCP 设置中: ``` { "mcpServers": { "mcp-atlassian": { "command": "podman", "args": [ "run", "-i", "--rm", "-e", "JIRA_URL", "-e", "JIRA_PERSONAL_TOKEN", "ghcr.io/sooperset/mcp-atlassian:latest" ], "env": { "JIRA_URL": "https://issues.redhat.com", "JIRA_PERSONAL_TOKEN": "your-jira-personal-access-token" } } } } ``` **获取您的 JIRA 个人访问令牌:** 1. 登录到您的 JIRA 实例 2. 前往您的配置文件设置 3. 导航到安全 → 创建和管理 API 令牌 4. 创建新的令牌并复制它 5. 使用此令牌作为 `JIRA_PERSONAL_TOKEN` 的值 **基本用法:** 只需让 Claude Code 生成报告: ``` "Show me what Platform Framework accomplished this week" ``` Claude Code 将: - 自动计算日期范围(上周三到今天) - 查询 JIRA 以获取您团队完成的工作 - 分析和将问题分类到有意义的部分 - 生成包含统计信息和见解的格式化报告 **报告包括:** - 📊 摘要统计信息(总问题、按类型细分) - ✅ 成就(安全、质量、产品功能、基础设施) - ⚠️ 风险和阻塞器 - 🤝 跨团队依赖关系 - 👥 团队健康指标 ## 可用 MCP 服务器 - **hcc-patternfly-data-view** - 模型上下文协议服务器,为所有 PatternFly 包提供全面的组件文档、源代码访问、模块发现和 CSS 工具集成 - **hcc-feo-mcp** - 前端操作员(FEO)MCP 服务器,提供模式管理、模板生成、验证和前端.yaml 配置的最佳实践 📋 **有关详细 MCP 服务器文档和独立使用,请参阅**: - PatternFly MCP:[packages/hcc-pf-mcp/README.md](packages/hcc-pf-mcp/README.md) - FEO MCP:[packages/hcc-feo-mcp/README.md](packages/hcc-feo-mcp/README.md) ### MCP 服务器工具 当插件安装后,这些 MCP 工具将可用: #### 数据视图文档和示例 - **getPatternFlyDataViewDescription** - 获取 @patternfly/react-data-view 包功能的全面文档 - **getPatternFlyDataViewExample** - 获取各种数据表场景的实现示例(基本用法、排序、过滤、分页、选择等) #### 前端操作员(FEO)配置工具 - **getFEOSchema** - 获取最新的 FEO 模式以进行验证和参考 - **getFEOMigrationTemplate** - 为现有应用程序生成定制的迁移模板 - **getFEOYamlSetupTemplate** - 为新应用程序生成完整的 frontend.yaml 模板 - **getFEOExamples** - 获取特定的 FEO 配置示例和模式 - **validateFEOConfig** - 将前端.yaml 与 FEO 模式进行验证 - **getFEOBestPractices** - 获取当前的 FEO 最佳实践和模式 - **getFEONavigationPositioning** - 获取导航定位指南 - **getFEOServiceTilesSections** - 获取可用的服务磁贴部分和组 **注意**:FEO 代理(`hcc-frontend-yaml-setup-specialist` 和 `hcc-frontend-feo-migration-specialist`)自动使用这些 MCP 工具来提供最新的模板、验证和指南,显著减少令牌使用量,同时保持全面的功能。 #### PatternFly 模块发现和源代码 - **getAvailableModules** - 在本地环境中发现可用的Fly 组件,包括 react-core、react-icons、react-table、react-data-view 和 react-component-groups 包 - **getComponentSourceCode** - 获取任何 PatternFly 组件的实际 TypeScript/React 源代码 #### PatternFly CSS 工具 - **getReactUtilityClasses** - 访问用于样式的 PatternFly CSS 工具类(间距、显示、flex、颜色、排版等) ## 开发 MCP 服务器 ### 必要依赖项 **CRITICAL**:此存储库中的所有 MCP 服务器 **必须** 包含 `zod` 作为依赖项。MCP SDK(v1.22+)需要 Zod 进行工具模式验证。 将以下内容添加到您的 MCP 服务器 `package.json`: ``` { "dependencies": { "@modelcontextprotocol/sdk": "^1.22.0", "zod": "^3.25.76" } } ``` ### 工具模式定义 工具模式 **必须** 使用 **Zod 模式** 定义,而不是普通的 JSON 模式对象。MCP SDK 将在您的模式上调用 Zod 验证方法,如 `safeParseAsync()`。 #### ✅ 正确 - 使用 Zod 模式 ``` import { z } from 'zod'; export function myTool(): McpTool { async function tool(args: any): Promise { const { param1, param2 } = args; // Tool implementation } return [ 'myTool', { description: 'Tool description', inputSchema: { // Use Zod schema constructors param1: z.string().describe('Required string parameter'), param2: z.number().optional().describe('Optional number parameter'), param3: z.enum(['option1', 'option2', 'option3']).describe('Enum parameter'), param4: z.boolean().optional().default(true).describe('Boolean with default'), }, }, tool ]; } // For tools with no parameters return [ 'noParamTool', { description: 'Tool with no parameters', inputSchema: {}, // Empty object, not JSON Schema }, tool ]; ``` #### ❌ 错误 - 使用 JSON 模式(将失败) ``` // DON'T DO THIS - Will cause "v3Schema.safeParseAsync is not a function" error return [ 'myTool', { description: 'Tool description', inputSchema: { type: 'object', // ❌ JSON Schema syntax properties: { param1: { type: 'string', // ❌ Will fail description: 'Parameter' } }, required: ['param1'] // ❌ Use z.string() instead }, }, tool ]; ``` ### 常见的 Zod 模式模式 ``` // Required string z.string().describe('Description') // Optional string z.string().optional().describe('Description') // String with default z.string().default('default-value').describe('Description') // Enum/Union type z.enum(['value1', 'value2', 'value3']).describe('Description') // Boolean z.boolean().describe('Description') // Number z.number().describe('Description') // Optional boolean with default z.boolean().optional().default(true).describe('Description') ``` ### 最佳实践 1. **始终使用 `describe()`** 为参数添加描述 - 这些将成为工具的文档 2. **使用 `optional()`** 为非必需参数而不是 JSON 模式的 `required` 数组 3. **使用 `default()`** 在模式内指定默认值 4. **在每个工具文件顶部导入 Zod**:`import { z } from 'zod';` 5. **在提交之前测试您的工具**:使用 MCP Inspector 在部署之前 ### 测试 MCP 工具 ``` # 构建您的 MCP 服务器 npm run build # 使用 MCP Inspector 进行测试 npx @modelcontextprotocol/inspector node dist/index.js ``` ### 参考文档 - [MCP SDK 文档](https://github.com/modelcontextprotocol/sdk) - [Zod 文档](https://zod.dev) - [示例 MCP 服务器](packages/hcc-feo-mcp/src/lib/tools/) - 此存储库中的参考实现 ## 未完成的工作与未来路线图 📋 **查看我们的路线图和计划集成**:[OUTSTANDING_WORK.md](OUTSTANDING_WORK.md) 此文档跟踪: - MCP 服务器集成(浏览器工具、Figma、Playwright) - 新代理开发(Scalprum、数据驱动表单) - 团队建议和社区贡献 - 实施优先级和时间段 ## 存储库结构 ``` platform-frontend-ai-toolkit/ ├── .claude-plugin/ │ └── marketplace.json # Marketplace config (lists all plugins) ├── plugins/ # Claude Code plugins │ ├── frontend/ # Frontend development plugin │ │ ├── .claude-plugin/ │ │ │ └── plugin.json │ │ ├── agents/ # 14 frontend development agents │ │ ├── package.json # For NX versioning (private) │ │ └── project.json # NX project config │ ├── infrastructure/ # Infrastructure & DevOps plugin │ │ ├── .claude-plugin/ │ │ │ └── plugin.json │ │ ├── agents/ # 13 infrastructure agents │ │ ├── skills/ # Utility skills (db-upgrader) │ │ ├── package.json │ │ └── project.json │ └── management/ # Project management plugin │ ├── .claude-plugin/ │ │ └── plugin.json │ ├── agents/ # 3 management agents │ ├── package.json │ └── project.json ├── packages/ # MCP servers (npm packages) │ ├── hcc-pf-mcp/ # PatternFly documentation MCP │ ├── hcc-feo-mcp/ # FEO configuration MCP │ └── hcc-kessel-mcp/ # Kessel permissions MCP ├── scripts/ │ └── sync-plugin-versions.js # Sync package.json → plugin.json ├── docs/ # Documentation ├── nx.json # NX workspace config └── README.md ``` **关键功能:** - **模块化插件**:仅安装您需要的部分(前端、基础设施或管理) - **自动化版本控制**:NX Release 管理插件和 MCP 包版本 - **集中式分发**:一个市场,多个专业插件 ## 更新插件 ### 检查更新 ``` # 列出已安装插件及其版本 claude plugins list # 检查是否有更新可用 claude plugins status ``` ### 更新插件 ``` # 更新市场以获取最新插件版本 /plugin marketplace update hcc-frontend-toolkit # 然后更新特定插件: /plugin install frontend-plugin@hcc-frontend-toolkit /plugin install infrastructure-plugin@hcc-frontend-toolkit /plugin install management-plugin@hcc-frontend-toolkit # 或更新所有已安装插件 claude plugins update ``` ### 手动更新过程
标签:AI 工具, Claude Code, JIRA, Linux 内核安全, PPID欺骗, React 开发, TypeScript, 代码市场, 代码示例, 团队协作, 安全插件, 市场配置, 插件安装, 插件管理, 数据分析, 数据库升级, 测试工具, 特权提升, 自动化攻击, 自动化部署, 请求拦截, 项目管理