Merge reviewed locale metadata alignment with canonical GAN capabilities

Source-PR: https://github.com/affaan-m/ECC/pull/2879
Source-Head: cc9914ce77
Composition: match the already reviewed canonical resize/key permissions in Japanese and Chinese metadata.
This commit is contained in:
affaan-m
2026-09-28 03:55:49 -04:00
55 changed files with 264 additions and 60 deletions
+1 -1
View File
@@ -2,7 +2,7 @@
name: chief-of-staff
description: Jefe de comunicaciones personal que gestiona el correo electrónico, Slack, LINE y Messenger. Clasifica mensajes en 4 niveles (skip/info_only/meeting_info/action_required), genera borradores de respuesta y refuerza el seguimiento post-envío mediante hooks. Usar para gestionar flujos de trabajo de comunicación multi-canal.
tools: ["Read", "Grep", "Glob", "Bash", "Edit", "Write"]
model: opus
model: sonnet
---
## Línea de Base de Defensa de Prompts
+1 -1
View File
@@ -1,7 +1,7 @@
---
name: database-reviewer
description: Especialista en bases de datos PostgreSQL para optimización de consultas, diseño de esquemas, seguridad y rendimiento. Usar PROACTIVAMENTE al escribir SQL, crear migraciones, diseñar esquemas o solucionar problemas de rendimiento de base de datos. Incorpora mejores prácticas de Supabase.
tools: ["Read", "Write", "Edit", "Bash", "Grep", "Glob"]
tools: ["Read", "Grep", "Glob", "Bash"]
model: sonnet
---
+1 -1
View File
@@ -2,7 +2,7 @@
name: docs-lookup
description: Cuando el usuario pregunta cómo usar una biblioteca, framework o API, o necesita ejemplos de código actualizados, usar Context7 MCP para obtener documentación actual y devolver respuestas con ejemplos. Invocar para preguntas sobre docs/API/configuración.
tools: ["Read", "Grep", "mcp__context7__resolve-library-id", "mcp__context7__query-docs"]
model: sonnet
model: haiku
---
## Línea de Base de Defensa de Prompts
+1 -1
View File
@@ -1,7 +1,7 @@
---
name: security-reviewer
description: Especialista en detección y remediación de vulnerabilidades de seguridad. Usar PROACTIVAMENTE después de escribir código que maneja entrada de usuarios, autenticación, endpoints de API o datos sensibles. Detecta secretos, SSRF, inyección, criptografía insegura y vulnerabilidades del OWASP Top 10.
tools: ["Read", "Write", "Edit", "Bash", "Grep", "Glob"]
tools: ["Read", "Grep", "Glob", "Bash"]
model: sonnet
---
+1 -1
View File
@@ -2,7 +2,7 @@
name: build-error-resolver
description: ビルドおよびTypeScriptエラー解決のスペシャリスト。ビルドが失敗した際やタイプエラーが発生した際に積極的に使用してください。最小限の差分でビルド/タイプエラーのみを修正し、アーキテクチャの変更は行いません。ビルドを迅速に成功させることに焦点を当てます。
tools: ["Read", "Write", "Edit", "Bash", "Grep", "Glob"]
model: opus
model: sonnet
---
# ビルドエラーリゾルバー
+1 -1
View File
@@ -2,7 +2,7 @@
name: chief-of-staff
description: メール、Slack、LINE、Messengerをトリアージするパーソナルコミュニケーションチーフオブスタッフ。メッセージを4つのティア(skip/info_only/meeting_info/action_required)に分類し、返信ドラフトを生成し、送信後のフォロースルーをフックで強制します。マルチチャネルコミュニケーションワークフローの管理時に使用します。
tools: ["Read", "Grep", "Glob", "Bash", "Edit", "Write"]
model: opus
model: sonnet
---
## プロンプト防御ベースライン
+1 -1
View File
@@ -2,7 +2,7 @@
name: code-reviewer
description: 専門コードレビュースペシャリスト。品質、セキュリティ、保守性のためにコードを積極的にレビューします。コードの記述または変更直後に使用してください。すべてのコード変更に対して必須です。
tools: ["Read", "Grep", "Glob", "Bash"]
model: opus
model: sonnet
---
あなたはコード品質とセキュリティの高い基準を確保するシニアコードレビュアーです。
+1 -1
View File
@@ -1,7 +1,7 @@
---
name: comment-analyzer
description: コードコメントの正確性、完全性、保守性、コメント劣化リスクを分析します。
model: sonnet
model: haiku
tools: [Read, Grep, Glob]
---
+1 -1
View File
@@ -1,7 +1,7 @@
---
name: conversation-analyzer
description: 会話のトランスクリプトを分析し、フックで防止すべき動作を見つけるためにこのエージェントを使用します。引数なしの/hookifyでトリガーされます。
model: sonnet
model: haiku
tools: [Read, Grep]
---
+2 -2
View File
@@ -1,8 +1,8 @@
---
name: database-reviewer
description: クエリ最適化、スキーマ設計、セキュリティ、パフォーマンスのためのPostgreSQLデータベーススペシャリスト。SQL作成、マイグレーション作成、スキーマ設計、データベースパフォーマンスのトラブルシューティング時に積極的に使用してください。Supabaseのベストプラクティスを組み込んでいます。
tools: ["Read", "Write", "Edit", "Bash", "Grep", "Glob"]
model: opus
tools: ["Read", "Grep", "Glob", "Bash"]
model: sonnet
---
# データベースレビューアー
+1 -1
View File
@@ -2,7 +2,7 @@
name: doc-updater
description: ドキュメントとコードマップのスペシャリスト。コードマップとドキュメントの更新に積極的に使用してください。/update-codemapsと/update-docsを実行し、docs/CODEMAPS/*を生成し、READMEとガイドを更新します。
tools: ["Read", "Write", "Edit", "Bash", "Grep", "Glob"]
model: opus
model: haiku
---
# ドキュメント & コードマップスペシャリスト
+1 -1
View File
@@ -2,7 +2,7 @@
name: docs-lookup
description: ユーザーがライブラリ、フレームワーク、APIの使い方を質問したり、最新のコード例が必要な場合に、Context7 MCPを使用して最新のドキュメントを取得し、例付きの回答を返します。ドキュメント/API/セットアップの質問時に呼び出します。
tools: ["Read", "Grep", "mcp__context7__resolve-library-id", "mcp__context7__query-docs"]
model: sonnet
model: haiku
---
## プロンプト防御ベースライン
+1 -1
View File
@@ -2,7 +2,7 @@
name: e2e-runner
description: Vercel Agent Browser(推奨)とPlaywrightフォールバックを使用するエンドツーエンドテストスペシャリスト。E2Eテストの生成、メンテナンス、実行に積極的に使用してください。テストジャーニーの管理、不安定なテストの隔離、アーティファクト(スクリーンショット、ビデオ、トレース)のアップロード、重要なユーザーフローの動作確認を行います。
tools: ["Read", "Write", "Edit", "Bash", "Grep", "Glob"]
model: opus
model: sonnet
---
# E2Eテストランナー
+2 -2
View File
@@ -1,8 +1,8 @@
---
name: gan-evaluator
description: "GANハーネス — エバリュエーターエージェント。Playwrightを使用してライブ実行中のアプリケーションをテストし、ルーブリックに対してスコアリングし、ジェネレーターに実行可能なフィードバックを提供します。"
tools: ["Read", "Write", "Bash", "Grep", "Glob"]
model: opus
tools: ["Read", "Write", "Bash", "Grep", "Glob", "mcp__playwright__browser_navigate", "mcp__playwright__browser_click", "mcp__playwright__browser_take_screenshot", "mcp__playwright__browser_snapshot", "mcp__playwright__browser_type", "mcp__playwright__browser_fill_form", "mcp__playwright__browser_resize", "mcp__playwright__browser_press_key"]
model: sonnet
color: red
---
+1 -1
View File
@@ -2,7 +2,7 @@
name: gan-generator
description: "GANハーネス — ジェネレーターエージェント。仕様に従って機能を実装し、エバリュエーターのフィードバックを読み、品質閾値を満たすまでイテレーションします。"
tools: ["Read", "Write", "Edit", "Bash", "Grep", "Glob"]
model: opus
model: sonnet
color: green
---
+1 -1
View File
@@ -2,7 +2,7 @@
name: gan-planner
description: "GANハーネス — プランナーエージェント。1行のプロンプトを、機能、スプリント、評価基準、デザイン方向を含む完全な製品仕様に展開します。"
tools: ["Read", "Write", "Grep", "Glob"]
model: opus
model: sonnet
color: purple
---
+1 -1
View File
@@ -2,7 +2,7 @@
name: go-build-resolver
description: Goビルド、vet、コンパイルエラー解決スペシャリスト。最小限の変更でビルドエラー、go vet問題、リンターの警告を修正します。Goビルドが失敗したときに使用してください。
tools: ["Read", "Write", "Edit", "Bash", "Grep", "Glob"]
model: opus
model: sonnet
---
# Goビルドエラーリゾルバー
+1 -1
View File
@@ -4,7 +4,7 @@ description: 慣用的なGo、並行処理パターン、エラー処理、パ
コード変更に使用してください。Goプロジェクトに必須です。
tools: ["Read", "Grep", "Glob", "Bash"]
model: opus
model: sonnet
---
あなたは慣用的なGoとベストプラクティスの高い基準を確保するシニアGoコードレビュアーです。
+1 -1
View File
@@ -2,7 +2,7 @@
name: opensource-forker
description: あらゆるプロジェクトをオープンソース化のためにフォークします。ファイルのコピー、シークレットと認証情報の除去(20以上のパターン)、内部参照のプレースホルダー置換、.env.exampleの生成、git履歴のクリーンアップを行います。opensource-pipelineスキルの第1ステージです。
tools: ["Read", "Write", "Edit", "Bash", "Grep", "Glob"]
model: sonnet
model: haiku
---
## プロンプト防御ベースライン
+1 -1
View File
@@ -2,7 +2,7 @@
name: opensource-packager
description: サニタイズ済みプロジェクトの完全なオープンソースパッケージングを生成します。CLAUDE.md、setup.sh、README.md、LICENSE、CONTRIBUTING.md、GitHubイシューテンプレートを作成します。あらゆるリポジトリをClaude Codeですぐに使えるようにします。opensource-pipelineスキルの第3ステージです。
tools: ["Read", "Write", "Edit", "Bash", "Grep", "Glob"]
model: sonnet
model: haiku
---
## プロンプト防御ベースライン
+1 -1
View File
@@ -2,7 +2,7 @@
name: python-reviewer
description: PEP 8準拠、Pythonイディオム、型ヒント、セキュリティ、パフォーマンスを専門とする専門Pythonコードレビュアー。すべてのPythonコード変更に使用してください。Pythonプロジェクトに必須です。
tools: ["Read", "Grep", "Glob", "Bash"]
model: opus
model: sonnet
---
あなたはPythonicコードとベストプラクティスの高い基準を確保するシニアPythonコードレビュアーです。
+1 -1
View File
@@ -2,7 +2,7 @@
name: refactor-cleaner
description: デッドコードクリーンアップと統合スペシャリスト。未使用コード、重複の削除、リファクタリングに積極的に使用してください。分析ツール(knip、depcheck、ts-prune)を実行してデッドコードを特定し、安全に削除します。
tools: ["Read", "Write", "Edit", "Bash", "Grep", "Glob"]
model: opus
model: sonnet
---
# リファクタ&デッドコードクリーナー
+2 -2
View File
@@ -1,8 +1,8 @@
---
name: security-reviewer
description: セキュリティ脆弱性検出および修復のスペシャリスト。ユーザー入力、認証、APIエンドポイント、機密データを扱うコードを書いた後に積極的に使用してください。シークレット、SSRF、インジェクション、安全でない暗号、OWASP Top 10の脆弱性を検出します。
tools: ["Read", "Write", "Edit", "Bash", "Grep", "Glob"]
model: opus
tools: ["Read", "Grep", "Glob", "Bash"]
model: sonnet
---
# セキュリティレビューアー
+1 -1
View File
@@ -2,7 +2,7 @@
name: tdd-guide
description: テスト駆動開発スペシャリストで、テストファースト方法論を強制します。新しい機能の記述、バグの修正、コードのリファクタリング時に積極的に使用してください。80%以上のテストカバレッジを確保します。
tools: ["Read", "Write", "Edit", "Bash", "Grep"]
model: opus
model: sonnet
---
あなたはテスト駆動開発(TDD)スペシャリストで、すべてのコードがテストファーストの方法論で包括的なカバレッジをもって開発されることを確保します。
+1 -1
View File
@@ -1,7 +1,7 @@
---
name: database-reviewer
description: PostgreSQL 데이터베이스 전문가. 쿼리 최적화, 스키마 설계, 보안, 성능을 다룹니다. SQL 작성, 마이그레이션 생성, 스키마 설계, 데이터베이스 성능 트러블슈팅 시 사용하세요. Supabase 모범 사례를 포함합니다.
tools: ["Read", "Write", "Edit", "Bash", "Grep", "Glob"]
tools: ["Read", "Grep", "Glob", "Bash"]
model: sonnet
---
+1 -1
View File
@@ -1,7 +1,7 @@
---
name: security-reviewer
description: 보안 취약점 감지 및 수정 전문가. 사용자 입력 처리, 인증, API 엔드포인트, 민감한 데이터를 다루는 코드 작성 후 사용하세요. 시크릿, SSRF, 인젝션, 안전하지 않은 암호화, OWASP Top 10 취약점을 플래그합니다.
tools: ["Read", "Write", "Edit", "Bash", "Grep", "Glob"]
tools: ["Read", "Grep", "Glob", "Bash"]
model: sonnet
---
+1 -1
View File
@@ -1,7 +1,7 @@
---
name: database-reviewer
description: Especialista em banco de dados PostgreSQL para otimização de queries, design de schema, segurança e performance. Use PROATIVAMENTE ao escrever SQL, criar migrações, projetar schemas ou solucionar problemas de performance. Incorpora boas práticas do Supabase.
tools: ["Read", "Write", "Edit", "Bash", "Grep", "Glob"]
tools: ["Read", "Grep", "Glob", "Bash"]
model: sonnet
---
+1 -1
View File
@@ -1,7 +1,7 @@
---
name: security-reviewer
description: Especialista em detecção e remediação de vulnerabilidades de segurança. Use PROATIVAMENTE após escrever código que trata input de usuário, autenticação, endpoints de API ou dados sensíveis. Sinaliza segredos, SSRF, injection, criptografia insegura e vulnerabilidades OWASP Top 10.
tools: ["Read", "Write", "Edit", "Bash", "Grep", "Glob"]
tools: ["Read", "Grep", "Glob", "Bash"]
model: sonnet
---
+1 -1
View File
@@ -2,7 +2,7 @@
name: chief-of-staff
description: Personal communication chief of staff that triages email, Slack, LINE, and Messenger. Classifies messages into 4 tiers (skip/info_only/meeting_info/action_required), generates draft replies, and enforces post-send follow-through via hooks. Use when managing multi-channel communication workflows.
tools: ["Read", "Grep", "Glob", "Bash", "Edit", "Write"]
model: opus
model: sonnet
---
Tüm iletişim kanallarını — e-posta, Slack, LINE, Messenger ve takvim — birleşik bir triyaj hattı üzerinden yöneten kişisel bir başkan yardımcısısınız.
+1 -1
View File
@@ -1,7 +1,7 @@
---
name: database-reviewer
description: PostgreSQL database specialist for query optimization, schema design, security, and performance. Use PROACTIVELY when writing SQL, creating migrations, designing schemas, or troubleshooting database performance. Incorporates Supabase best practices.
tools: ["Read", "Write", "Edit", "Bash", "Grep", "Glob"]
tools: ["Read", "Grep", "Glob", "Bash"]
model: sonnet
---
+1 -1
View File
@@ -2,7 +2,7 @@
name: docs-lookup
description: Kullanıcı bir kütüphaneyi, framework'ü veya API'yi nasıl kullanacağını sorduğunda veya güncel kod örneklerine ihtiyaç duyduğunda, güncel dokümantasyon getirmek ve örneklerle cevaplar döndürmek için Context7 MCP kullanın. Docs/API/kurulum soruları için çağrılır.
tools: ["Read", "Grep", "mcp__context7__resolve-library-id", "mcp__context7__query-docs"]
model: sonnet
model: haiku
---
Bir dokümantasyon specialistisiniz. Kütüphaneler, framework'ler ve API'ler hakkındaki soruları Context7 MCP (resolve-library-id ve query-docs) aracılığıyla getirilen güncel dokümantasyonu kullanarak cevaplarsınız, eğitim verilerini değil.
+1 -1
View File
@@ -1,7 +1,7 @@
---
name: security-reviewer
description: Güvenlik açığı tespit ve düzeltme specialisti. Kullanıcı girdisi, kimlik doğrulama, API endpoint'leri veya hassas veri işleyen kod yazdıktan sonra PROAKTİF olarak kullanın. Secret'ları, SSRF, injection, güvensiz kriptografiyi ve OWASP Top 10 güvenlik açıklarını işaretler.
tools: ["Read", "Write", "Edit", "Bash", "Grep", "Glob"]
tools: ["Read", "Grep", "Glob", "Bash"]
model: sonnet
---
+1 -1
View File
@@ -2,7 +2,7 @@
name: chief-of-staff
description: 个人通讯首席参谋,负责筛选电子邮件、Slack、LINE和Messenger中的消息。将消息分为4个等级(跳过/仅信息/会议信息/需要行动),生成草稿回复,并通过钩子强制执行发送后的跟进。适用于管理多渠道通讯工作流程时。
tools: ["Read", "Grep", "Glob", "Bash", "Edit", "Write"]
model: opus
model: sonnet
---
你是一位个人幕僚长,通过一个统一的分类处理管道管理所有通信渠道——电子邮件、Slack、LINE、Messenger 和日历。
+1 -1
View File
@@ -1,7 +1,7 @@
---
name: comment-analyzer
description: 分析代码注释的准确性、完整性、可维护性和注释腐烂风险。
model: sonnet
model: haiku
tools: [Read, Grep, Glob]
---
+1 -1
View File
@@ -1,7 +1,7 @@
---
name: conversation-analyzer
description: 使用此代理分析对话记录,以找到值得通过钩子预防的行为。由不带参数的 /hookify 触发。
model: sonnet
model: haiku
tools: [Read, Grep]
---
+1 -1
View File
@@ -1,7 +1,7 @@
---
name: database-reviewer
description: PostgreSQL 数据库专家,专注于查询优化、模式设计、安全性和性能。在编写 SQL、创建迁移、设计模式或排查数据库性能问题时,请主动使用。融合了 Supabase 最佳实践。
tools: ["Read", "Write", "Edit", "Bash", "Grep", "Glob"]
tools: ["Read", "Grep", "Glob", "Bash"]
model: sonnet
---
+1 -1
View File
@@ -2,7 +2,7 @@
name: docs-lookup
description: 当用户询问如何使用库、框架或API,或需要最新的代码示例时,使用Context7 MCP获取当前文档,并返回带有示例的答案。针对文档/API/设置问题调用。
tools: ["Read", "Grep", "mcp__context7__resolve-library-id", "mcp__context7__query-docs"]
model: sonnet
model: haiku
---
你是一名文档专家。你使用通过 Context7 MCP(resolve-library-id 和 query-docs)获取的当前文档来回答关于库、框架和 API 的问题,而不是使用训练数据。
+2 -2
View File
@@ -1,8 +1,8 @@
---
name: gan-evaluator
description: "GAN Harness — Evaluator agent. Tests the live running application via Playwright, scores against rubric, and provides actionable feedback to the Generator."
tools: ["Read", "Write", "Bash", "Grep", "Glob"]
model: opus
tools: ["Read", "Write", "Bash", "Grep", "Glob", "mcp__playwright__browser_navigate", "mcp__playwright__browser_click", "mcp__playwright__browser_take_screenshot", "mcp__playwright__browser_snapshot", "mcp__playwright__browser_type", "mcp__playwright__browser_fill_form", "mcp__playwright__browser_resize", "mcp__playwright__browser_press_key"]
model: sonnet
color: red
---
+1 -1
View File
@@ -2,7 +2,7 @@
name: gan-generator
description: "GAN Harness — Generator agent. Implements features according to the spec, reads evaluator feedback, and iterates until quality threshold is met."
tools: ["Read", "Write", "Edit", "Bash", "Grep", "Glob"]
model: opus
model: sonnet
color: green
---
+1 -1
View File
@@ -2,7 +2,7 @@
name: gan-planner
description: "GAN Harness — Planner agent. Expands a one-line prompt into a full product specification with features, sprints, evaluation criteria, and design direction."
tools: ["Read", "Write", "Grep", "Glob"]
model: opus
model: sonnet
color: purple
---
+1 -1
View File
@@ -2,7 +2,7 @@
name: opensource-forker
description: 分叉任何项目以进行开源。复制文件,剥离机密和凭据(20多种模式),用占位符替换内部引用,生成.env.example,并清理git历史。这是opensource-pipeline技能的第一阶段。
tools: ["Read", "Write", "Edit", "Bash", "Grep", "Glob"]
model: sonnet
model: haiku
---
# 开源分叉工具
+1 -1
View File
@@ -2,7 +2,7 @@
name: opensource-packager
description: 为经过清理的项目生成完整的开源打包文件。生成 CLAUDE.md、setup.sh、README.md、LICENSE、CONTRIBUTING.md 和 GitHub 问题模板。使任何仓库都能立即与 Claude Code 配合使用。这是 opensource-pipeline 技能的第三阶段。
tools: ["Read", "Write", "Edit", "Bash", "Grep", "Glob"]
model: sonnet
model: haiku
---
# 开源打包工具
+1 -1
View File
@@ -1,7 +1,7 @@
---
name: security-reviewer
description: 安全漏洞检测与修复专家。在编写处理用户输入、身份验证、API端点或敏感数据的代码后主动使用。标记密钥、SSRF、注入、不安全的加密以及OWASP Top 10漏洞。
tools: ["Read", "Write", "Edit", "Bash", "Grep", "Glob"]
tools: ["Read", "Grep", "Glob", "Bash"]
model: sonnet
---
+1 -1
View File
@@ -1,7 +1,7 @@
---
name: seo-specialist
description: SEO专家,负责技术SEO审计、页面优化、结构化数据、核心网页指标以及内容/关键词映射。用于网站审计、元标签审查、架构标记、站点地图和robots问题以及SEO修复计划。
tools: ["Read", "Grep", "Glob", "Bash", "WebSearch", "WebFetch"]
tools: ["Read", "Grep", "Glob", "WebSearch", "WebFetch"]
model: sonnet
---
+1 -1
View File
@@ -2,7 +2,7 @@
name: build-error-resolver
description: Build and TypeScript error resolution specialist. Use PROACTIVELY when build fails or type errors occur. Fixes build/type errors only with minimal diffs, no architectural edits. Focuses on getting the build green quickly.
tools: ["Read", "Write", "Edit", "Bash", "Grep", "Glob"]
model: opus
model: sonnet
---
# 建置錯誤解決專家
+1 -1
View File
@@ -2,7 +2,7 @@
name: code-reviewer
description: Expert code review specialist. Proactively reviews code for quality, security, and maintainability. Use immediately after writing or modifying code. MUST BE USED for all code changes.
tools: ["Read", "Grep", "Glob", "Bash"]
model: opus
model: sonnet
---
您是一位資深程式碼審查員,確保程式碼品質和安全性的高標準。
+2 -2
View File
@@ -1,8 +1,8 @@
---
name: database-reviewer
description: PostgreSQL database specialist for query optimization, schema design, security, and performance. Use PROACTIVELY when writing SQL, creating migrations, designing schemas, or troubleshooting database performance. Incorporates Supabase best practices.
tools: ["Read", "Write", "Edit", "Bash", "Grep", "Glob"]
model: opus
tools: ["Read", "Grep", "Glob", "Bash"]
model: sonnet
---
# 資料庫審查員
+1 -1
View File
@@ -2,7 +2,7 @@
name: doc-updater
description: Documentation and codemap specialist. Use PROACTIVELY for updating codemaps and documentation. Runs /update-codemaps and /update-docs, generates docs/CODEMAPS/*, updates READMEs and guides.
tools: ["Read", "Write", "Edit", "Bash", "Grep", "Glob"]
model: opus
model: haiku
---
# 文件與程式碼地圖專家
+1 -1
View File
@@ -2,7 +2,7 @@
name: e2e-runner
description: End-to-end testing specialist using Vercel Agent Browser (preferred) with Playwright fallback. Use PROACTIVELY for generating, maintaining, and running E2E tests. Manages test journeys, quarantines flaky tests, uploads artifacts (screenshots, videos, traces), and ensures critical user flows work.
tools: ["Read", "Write", "Edit", "Bash", "Grep", "Glob"]
model: opus
model: sonnet
---
# E2E 測試執行器
+1 -1
View File
@@ -2,7 +2,7 @@
name: go-build-resolver
description: Go build, vet, and compilation error resolution specialist. Fixes build errors, go vet issues, and linter warnings with minimal changes. Use when Go builds fail.
tools: ["Read", "Write", "Edit", "Bash", "Grep", "Glob"]
model: opus
model: sonnet
---
# Go 建置錯誤解決專家
+1 -1
View File
@@ -2,7 +2,7 @@
name: go-reviewer
description: Expert Go code reviewer specializing in idiomatic Go, concurrency patterns, error handling, and performance. Use for all Go code changes. MUST BE USED for Go projects.
tools: ["Read", "Grep", "Glob", "Bash"]
model: opus
model: sonnet
---
您是一位資深 Go 程式碼審查員,確保慣用 Go 和最佳實務的高標準。
+1 -1
View File
@@ -2,7 +2,7 @@
name: refactor-cleaner
description: Dead code cleanup and consolidation specialist. Use PROACTIVELY for removing unused code, duplicates, and refactoring. Runs analysis tools (knip, depcheck, ts-prune) to identify dead code and safely removes it.
tools: ["Read", "Write", "Edit", "Bash", "Grep", "Glob"]
model: opus
model: sonnet
---
# 重構與無用程式碼清理專家
+2 -2
View File
@@ -1,8 +1,8 @@
---
name: security-reviewer
description: Security vulnerability detection and remediation specialist. Use PROACTIVELY after writing code that handles user input, authentication, API endpoints, or sensitive data. Flags secrets, SSRF, injection, unsafe crypto, and OWASP Top 10 vulnerabilities.
tools: ["Read", "Write", "Edit", "Bash", "Grep", "Glob"]
model: opus
tools: ["Read", "Grep", "Glob", "Bash"]
model: sonnet
---
# 安全性審查員
+1 -1
View File
@@ -2,7 +2,7 @@
name: tdd-guide
description: Test-Driven Development specialist enforcing write-tests-first methodology. Use PROACTIVELY when writing new features, fixing bugs, or refactoring code. Ensures 80%+ test coverage.
tools: ["Read", "Write", "Edit", "Bash", "Grep"]
model: opus
model: sonnet
---
您是一位 TDD(測試驅動開發)專家,確保所有程式碼都以測試先行的方式開發,並具有全面的覆蓋率。
+204
View File
@@ -0,0 +1,204 @@
#!/usr/bin/env node
/**
* The translated agent docs under docs/<locale>/agents/ must not contradict the
* agent that actually ships in agents/.
*
* scripts/ci/validate-agents.js only reads agents/, so the locale copies were
* unvalidated and drifted: 39 of them named a costlier model tier than
* canonical, and 15 listed a different tool set — including every locale copy
* of security-reviewer and database-reviewer, which advertised Write and Edit
* for agents that ship read-only.
*
* Only the machine-readable frontmatter is compared. Prose is translated and
* the list style differs per locale on purpose, so `tools` is compared as a
* SET, not as a string.
*/
'use strict';
const assert = require('assert');
const fs = require('fs');
const path = require('path');
const REPO_ROOT = path.join(__dirname, '..', '..');
const AGENTS_DIR = path.join(REPO_ROOT, 'agents');
const DOCS_DIR = path.join(REPO_ROOT, 'docs');
function frontmatter(filePath) {
const text = fs.readFileSync(filePath, 'utf8');
const match = /^---\r?\n([\s\S]*?)\r?\n---/.exec(text);
if (!match) return null;
const fields = {};
for (const line of match[1].split(/\r?\n/)) {
const kv = /^([A-Za-z_-]+):[ \t]*(.*)$/.exec(line);
if (kv) fields[kv[1]] = kv[2].trim();
}
return fields;
}
function toolSet(raw) {
if (raw === undefined) return null;
const inner = raw.trim().replace(/^\[/, '').replace(/\]$/, '');
return new Set(
inner
.split(',')
.map(entry => entry.trim().replace(/^["']|["']$/g, ''))
.filter(Boolean)
);
}
function sameSet(a, b) {
if (a === null || b === null) return a === b;
return a.size === b.size && [...a].every(item => b.has(item));
}
function localeAgentDirs() {
if (!fs.existsSync(DOCS_DIR)) return [];
return fs
.readdirSync(DOCS_DIR, { withFileTypes: true })
.filter(entry => entry.isDirectory())
.map(entry => path.join(DOCS_DIR, entry.name, 'agents'))
.filter(dir => fs.existsSync(dir));
}
function runTest(name, fn) {
try {
fn();
console.log(` ✓ ${name}`);
return true;
} catch (error) {
console.log(` ✗ ${name}`);
console.error(` ${error.message}`);
return false;
}
}
function main() {
console.log('\n=== Testing locale agent frontmatter against canonical ===\n');
const canonical = new Map(
fs
.readdirSync(AGENTS_DIR)
.filter(file => file.endsWith('.md'))
.map(file => [file, frontmatter(path.join(AGENTS_DIR, file))])
.filter(([, fields]) => fields !== null)
);
const rel = filePath => path.relative(REPO_ROOT, filePath).split(path.sep).join('/');
const localeEntries = localeAgentDirs().flatMap(dir =>
fs
.readdirSync(dir)
.filter(file => file.endsWith('.md'))
.map(file => ({ file, filePath: path.join(dir, file) }))
);
const localeFiles = localeEntries.filter(({ file }) => canonical.has(file));
const orphans = localeEntries
.filter(({ file }) => !canonical.has(file))
.map(({ filePath }) => rel(filePath));
const tests = [
['there are locale agent docs to check', () => {
assert.ok(canonical.size > 0, 'no canonical agents found');
assert.ok(localeFiles.length > 0, 'no locale agent docs found');
}],
['no locale agent doc outlives the agent it documents', () => {
// Without this, retiring an agent leaves its translations behind and every
// other case here silently skips them — they have nothing to compare to.
assert.deepStrictEqual(
orphans,
[],
`locale docs with no agent in agents/:\n ${orphans.join('\n ')}`
);
}],
['every locale agent doc has parseable frontmatter', () => {
const bad = localeFiles
.filter(({ filePath }) => frontmatter(filePath) === null)
.map(({ filePath }) => rel(filePath));
assert.deepStrictEqual(bad, [], `missing frontmatter:\n ${bad.join('\n ')}`);
}],
['locale agent docs name the same agent as canonical', () => {
const drift = [];
for (const { file, filePath } of localeFiles) {
const fields = frontmatter(filePath);
if (!fields) continue;
if (fields.name !== canonical.get(file).name) {
drift.push(`${rel(filePath)}: ${fields.name} != ${canonical.get(file).name}`);
}
}
assert.deepStrictEqual(drift, [], `name drift:\n ${drift.join('\n ')}`);
}],
['locale agent docs declare the canonical model tier', () => {
const drift = [];
for (const { file, filePath } of localeFiles) {
const fields = frontmatter(filePath);
if (!fields) continue;
const want = canonical.get(file).model;
if (want !== undefined && fields.model !== undefined && fields.model !== want) {
drift.push(`${rel(filePath)}: ${fields.model} != ${want}`);
}
}
assert.deepStrictEqual(
drift,
[],
`model drift (locale doc promises a different tier than ships):\n ${drift.join('\n ')}`
);
}],
['locale agent docs declare the canonical tool set', () => {
const drift = [];
for (const { file, filePath } of localeFiles) {
const fields = frontmatter(filePath);
if (!fields) continue;
const want = toolSet(canonical.get(file).tools);
const have = toolSet(fields.tools);
if (want === null || have === null) continue;
if (!sameSet(want, have)) {
drift.push(`${rel(filePath)}: [${[...have]}] != [${[...want]}]`);
}
}
assert.deepStrictEqual(
drift,
[],
`tool drift (locale doc grants tools the agent does not have):\n ${drift.join('\n ')}`
);
}],
['a read-only reviewer is never documented with Write or Edit', () => {
// The specific failure this file was written for: every locale copy of
// security-reviewer and database-reviewer advertised Write and Edit.
const offenders = [];
for (const { file, filePath } of localeFiles) {
const want = toolSet(canonical.get(file).tools);
if (want === null || want.has('Write') || want.has('Edit')) continue;
const fields = frontmatter(filePath);
const have = toolSet(fields && fields.tools);
if (have && (have.has('Write') || have.has('Edit'))) {
offenders.push(rel(filePath));
}
}
assert.deepStrictEqual(offenders, [], `read-only agents documented as writable:\n ${offenders.join('\n ')}`);
}],
];
let passed = 0;
let failed = 0;
for (const [name, fn] of tests) {
if (runTest(name, fn)) passed += 1;
else failed += 1;
}
console.log(`\n Checked ${localeFiles.length} locale docs against ${canonical.size} agents`);
console.log(` Passed: ${passed}`);
console.log(` Failed: ${failed}`);
// exitCode, not exit(1): stdout is async when it is a pipe, which is how
// tests/run-all.js runs this, and process.exit() does not wait for pending
// writes — it could drop the two lines above, which the aggregator totals.
if (failed > 0) process.exitCode = 1;
}
main();