スキルセット
エージェントを使用したAIネイティブ開発では、intra-mart Accel Platform 固有のルールと知識を、規約ファイルとスキルセットという形であらかじめプロジェクトに組み込み、エージェントに参照させます。
スキルセットの構成
Accel CLI によってプロジェクトを作成すると、プロジェクトルートにスキルセット群が配置されます。
AIネイティブ開発で iAP の資材を自動生成する際、エージェントは必要なスキルセットを自動的に読み込んで使用します。
<プロジェクトルート>
├─ .claude
│ ├─ rules - 規約ファイル(Claude Code 版)
│ └─ skills - スキルセット(Claude Code 版)
├─ .codex - Codex向け設定ファイル
├─ .agents
│ ├─ rules - 規約ファイル(Codex 版)
│ └─ skills - スキルセット(Codex 版)
└─ .github
├─ instructions - 規約ファイル(GitHub Copilot 版)
└─ skills - スキルセット(GitHub Copilot 版)
規約ファイル(rules / instructions)
AIネイティブ開発では、エージェントの特性により、一般的な js/html のルールで実装が行われることがあります。 しかし iAP のスクリプト開発モデル(JSSP)には固有の実装ルールが存在するため、一般的なルールのままでは動作しないことがあります。
固有の実装ルールを記載した規約ファイルをエージェントが参照することによって、ルールに従った成果物が生成されるように支援します。
| ファイル | 内容の要点 |
|---|---|
jssp-overview.md | JSSP の構成(.js + .html のペア)と処理シーケンスの概要 |
jssp-file-structure.md | 成果物の出力先定義とルーティングテーブルのマッピング定義 |
jssp-code-style.md | ファンクションコンテナ実装における Rhino 使用上の注意点とコーディング規約の定義 |
jssp-naming.md | 変数・定数・関数の命名規則に関する定義 |
jssp-function-container.md | ファンクションコンテナの実装に関する組み立てルールとパターンの定義 |
jssp-presentation-page.md | プレゼンテーションページの実装に関する組み立てルールとパターンの定義 |
jssp-error-handling.md | 例外発生時のエラーハンドリングに関する定義 |
jssp-security.md | XSS・CSRF などの脆弱性防止に関するコーディング規約 |
jssp-logging.md | ログ・コンソール出力の定義 |
jssp-performance.md | 開発環境の調整に関する定義 |
jssp-2way-sql.md | 2WaySQL とデータベーストランザクションに関する定義 |
jssp-testing.md | 単体テストに関する定義 |
jssp-accessibility.md | アクセシビリティ対応に関する定義 |
スキルセット一覧
通常、エージェントによるAIネイティブ開発を行った場合、一般的な知識ではない固有の知識は学習データに含まれていないため、推測による実装が多発し、iAP 上では動作しないコードが生成されることがあります。
スキルセットには iAP 固有の機能に関する知識・実装技術がマニュアル化されているため、エージェントがこれらのスキルを参照することによって、intra-mart 独自の機能が使用できるように支援します。
コード生成系
「コード生成系」スキルセットは、業務画面や IM-Workflow など、実際に intra-mart 上で動作する資材を生成するための知識・実装技術を定義しています。
必要な成果物の種類に応じて適切なスキルを選択することで、初期実装の抜け漏れを抑えることができます。
| スキル | 用途 | 起動キーワード例 |
|---|---|---|
jssp-page-generator | 業務画面(.html + .js)・ルーティング XML の新規生成 | 「○○画面を作って」「一覧画面」「フォームを実装」 |
jssp-im-job-generator | ジョブスケジューラのバッチ処理(.js)生成 | 「バッチ処理を作って」「定期実行」「夜間バッチ」 |
jssp-im-workflow-usage | IM-Workflow 連携プログラム(申請/承認画面・アクション処理等)生成 | 「申請画面」「承認画面」「アクション処理」「案件開始処理」 |
base-im-workflow-generator | IM-Workflow インポート用 XML 定義(コンテンツ・ルート・フロー等)生成 | 「ワークフロー定義を作って」「WF インポート XML」 |
jssp-im-cache-usage | JSSP ファンクションコンテナでの Cache API を使用した参照結果・計算コストの高い処理結果のキャッシュ化 | 「キャッシュして」「計算結果を高速化」 |
jssp-im-logic-generator | IM-LogicDesigner インポート用 ZIP 定義(ロジックフロー・ルーティング)生成 | 「ロジックフローを作って」「IM-LogicDesigner のフロー」 |
jssp-im-logic-usage | 既存の IM-LogicDesigner ルーティング定義(ロジックフロー API)を JSSP プレゼンテーションページから呼び出すコード生成 | 「ロジックフローAPIを呼び出したい」「logic/api を呼び出したい」「既存のルーティング定義を使いたい」 |
jssp-im-oauth-generator | im_oauth プロバイダ機能を使用した OAuth 認証付き REST-API 資材(スコープ/リソース URL/クライアント詳細 XML + JSSP)の一括生成 | 「OAuth REST-API を作成」「OAuth スコープを定義」「oauth-client-resources-config を追加」 |
jssp-im-master-usage | imACMSearch 検索ダイアログ(ユーザ・組織・会社等)の実装コード生成 | 「ユーザ検索を追加」「組織選択ダイアログ」「マスタ検索」 |
jssp-im-contents-search-generator | IM-ContentsSearch の独自クローラ(Solr インデックス登録・削除ジョブ)と独自コンテンツ表示テンプレートの生成 | 「クローラを作って」「Solr に登録」「コンテンツ検索を追加」 |
jssp-highcharts-usage | Highcharts を使用したグラフ描画 | 「グラフを表示」「チャートを描画」「折れ線グラフ」「円グラフ」 |
jssp-imds-theme | imds 準拠 HTML コンポーネント(テーブル・ボタン・ダイアログ等)の使用方法 | 「テーブルを作って」「ダイアログを実装」「フォームの UI」 |
多言語化系
「多言語化系」スキルセットは、業務画面・ジョブなどの各実装において、多言語対応を行う知識・実装技術を定義しています。
最初から成果物を多言語化することも、ある程度業務画面・ジョブが完成してから多言語化することもできます。
| スキル | 用途 | 起動キーワード例 |
|---|---|---|
jssp-localize-support | ハードコード文字列をメッセージプロパティ(ja/en/zh_CN)に外部化 | 「多言語化して」「i18n」「ローカライズして」 |
検証系
「検証系」スキルセットは、生成された成果物の品質を確認するための知識・実装技術を定義しています。
| スキル | 用途 | 起動キーワード例 |
|---|---|---|
jssp-code-review | コードレビューの自動化 | 「コードレビューを実行」「レビュー結果を表示」 |
jssp-jest-test | jest-on-rhino を使用したファンクションコンテナ(.js)の単体テスト作成 | 「テストを書いて」「単体テストを追加」「mock を使う」 |
jssp-page-verifier | 生成画面の検証 | 「画面を検証」「画面の動作確認」 |
jssp-playwright-test | Playwright を使用した E2E テスト | 「E2E テストを実行」「Playwright テスト」 |
jssp-security-check | セキュリティチェックの実行 | 「セキュリティチェックを実行」「脆弱性確認」 |
test-spec-generator | 仕様書(spec/ 配下)から試験観点一覧・試験項目書(xlsx/HTML)を生成 | 「試験項目書を作って」「試験観点一覧を作って」 |
本番適用準備系
「本番適用準備系」スキルセットは、ユーザモジュールに付属するテナント環境セットアップ資材を生成するための知識・実装技術を定義しています。
ロール・認可・メニュー・ジョブ・DDL/DML のセットアップ用資材を、多言語対応(ja/en/zh_CN)で生成します。
| スキル | 用途 | 起動キーワード例 |
|---|---|---|
jssp-tenant-setup-generator | テナント環境セットアップ資材一式(config XML・ロール・認可・メニュー・ジョブ・DDL/DML・拡張インポート)の一括生成 | 「テナント環境セットアップ資材を作って」「Importer インポート資材を作って」「セットアップ XML を作って」 |
jssp-sample-setup-generator | サンプルデータセットアップ資材一式(config XML・ロール・認可・メニュー・ジョブ・DDL/DML・拡張インポート)の一括生成 | 「サンプルデータセットアップ資材を作って」「サンプルデータの投入資材を作って」「試用環境用のサンプルデータを作って」 |
メニュー: 「グローバルナビ(PC版)」のみ生成対象です。 認可: 「画面・処理」と「IM-LogicDesigner REST API」のみ生成対象です。
スキルセットのカスタマイズ
既存のスキルセットは、運用しながら育てられます。 不具合の修正で得た知見を書き戻したり、プロジェクト固有のスキルを新たに追加したりできます。
暗黙知の共有
AIネイティブ開発の流れの精度を上げるためにで成果物の修正をエージェントに実行させ、修正が成功した場合は、そのときのプロンプトを保存しておくことを推奨します。
複数人で同じプロジェクトを共有して開発している場合、他の開発者側で同じ不具合が生成されることがあります。 修正した際に使用したプロンプトを共有することで、同じ不具合の発生を防ぐことが期待できます。
成果物の修正作業を行った後は、コンテキストをクリアする前に、次のプロンプトを入力して修正方法や実装上の注意点をプロジェクト内に保存しておくこともできます。
今修正した不具合が、次回から発生しないようにするために、知見を SKILL.md に保存してください。
知見を保存しておくと、スキルセットをバージョン管理している場合は他メンバと共有でき、開発環境が変更されても引き続き利用できます。
独自のスキルセットを作成する
プロジェクト固有のライブラリや社内共通 API など、既存のスキルセットでカバーされていない知識をエージェントに習得させたい場合、独自のスキルセットを作成できます。
スキルセットはマークダウンファイルとして作成します。 ファイルを所定のディレクトリに配置することで、エージェントがプロンプト内のキーワードに応じて自動的に参照します。
<プロジェクトルート>
├─ .claude
│ └─ skills
│ └─ my-custom-skill - 独自スキルを追加(Claude Code 版)
│ └─ SKILL.md - スキルの内容を記載
├─ .agents
│ └─ skills
│ └─ my-custom-skill - 独自スキルを追加(OpenAI Codex 版)
│ └─ SKILL.md - スキルの内容を記載
└─ .github
└─ skills
└─ my-custom-skill - 独自スキルを追加(GitHub Copilot 版)
└─ SKILL.md - スキルの内容を記載
スキルファイルには、エージェントへの指示・実装例・注意事項などを記述します。 以下はスキルファイルの構成例です。
---
name: my-custom-skill
description: このスキルが何をするか、および、どのようなプロンプト(キーワード)が入力されたときにこのスキルを起動するかをエージェントに伝える説明文。「○○を作って」「○○のサンプルを書いて」と言及されたときに使用、のように記述する。
allowed-tools: Bash, Read, Write, Glob
---
# my-custom-skill
## 概要
このスキルの目的と用途を記述します。
## 使用方法
具体的な実装手順や API の呼び出し方を記述します。
## 実装例
コードサンプルを記述します。
## 注意事項
実装上の制約や注意点を記述します。
YAML frontmatter(先頭の --- で囲まれたブロック)はスキルのメタデータです。
エージェントはまずファイル本文を読まずに description の内容のみを走査し、ユーザのプロンプトと照合してスキルを起動するかどうかを判定します。
description には「何をするスキルか」と「どんなキーワードで起動するか」を具体的に書くことで、意図したタイミングでスキルが呼ばれやすくなります。
| フィールド | 役割 |
|---|---|
name | スキルの識別子。ディレクトリ名・ファイル名と合わせる(kebab-case) |
description | スキルの説明と起動キーワード。エージェントがスキル選択の判定に使用 |
allowed-tools | スキル実行中に使用を許可するツール(Claude Code 版のみ。省略可) |
作成したスキルをバージョン管理に含めることで、チームメンバ全員が同じ知識をエージェントに与えることができます。