> ## Documentation Index
> Fetch the complete documentation index at: https://factory-docs-auto-sync-jp-docs.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# 内部ツール

> エンジニア、運用担当者、サポートチームを支援する社内ツールを構築・拡張する再利用可能なスキル。

DroidがBuildするかによって**内部向けアプリケーション**（管理パネル、サポートコンソール、運用ダッシュボード、エンジニアリングユーティリティなど）を構築または拡張する際に、表面的な見栄えよりも信頼性と安全性が重要な場合にこのスキルを使用してください。

## セットアップ手順

このスキルをFactoryで使用するには、リポジトリに以下のディレクトリ構造を作成してください：

```
.factory/skills/internal-tools/
├── SKILL.md
├── rbac.md (任意)
├── audit-patterns.md (任意)
└── operations-checklist.md (任意)
```

### クイックスタート

1. **スキルディレクトリを作成：**
   ```bash theme={null}
   mkdir -p .factory/skills/internal-tools
   ```

2. **下記のスキルコンテンツを `.factory/skills/internal-tools/SKILL.md` （または `skill.mdx`）にコピー**

<Tip>
  Factoryに管理パネルや運用ダッシュボードなどの社内ツールの構築・拡張を依頼すると、タスク説明に基づいてこのスキルが自動的に呼び出されます。
</Tip>

## スキル定義

以下のコンテンツを `.factory/skills/internal-tools/SKILL.md` にコピーしてください：

```md theme={null}
---
name: internal-tools
description: アクセス制御と監査要件を尊重しながら、従業員がシステムを安全かつ効率的に運用するための内部ツールを設計、実装、拡張します。本番環境に近いシステムを扱う社内スタッフ向けに構築する場合に使用します。
---
# スキル: 内部ツール開発

## 目的

アクセス制御と監査要件を尊重しながら、従業員がシステムを安全かつ効率的に運用するための内部ツールを設計、実装、拡張します。

## このスキルを使うタイミング

- 対象読者が**社内スタッフ**（エンジニア、SRE、サポート、運用、財務など）である。
- ツールが**本番環境に近いシステム**（機能フラグ、インシデント、顧客データ、請求など）とやり取りする。
- 変更範囲が内部ワークフローに限定され、顧客向けUXを直接変更しない。

## 入力

- ツールを使用する**ユーザーペルソナ**とチーム。
- サポートする**ワークフロー**（作成/更新アクション、承認、レビューフロー）。
- **影響するシステム**: サービス、キュー、フラグ、データストア。
- **リスク分類**: ツールが誤動作または誤用された場合に何が起こり得るか。

## 対象外

- 新しいアイデンティティプロバイダーやSSO連携を必要とするツール。
- 既存の承認または変更管理プロセスを迂回する変更。
- 明示的な承認なしに、主要な財務またはコンプライアンスシステムへ手動書き込みするツール。

## 規約

- リポジトリですでに使われている内部ツール向けの**標準スタック**（フレームワーク、コンポーネントライブラリ、バックエンドパターン）を使用する。
- **ロールベースのアクセス制御**とロギングパターンを一貫して適用する。
- 高リスク操作には**読み取り専用ビューと保護付きアクション**（確認ダイアログ、理由入力の必須化など）を優先する。

## 必須の動作

1. ハッピーパスを高速にしつつ、破壊的アクションが明確に意図されたものになるフローを実装する。
2. すべての状態変更について**誰が**、**何を**、**いつ**行ったかをログに記録し、既存の監査/ロギング基盤へリンクする。
3. 成功、エラー、部分的な失敗について明確なフィードバックを提供する。
4. 運用デバッグを考慮して設計し、ID、タイムスタンプ、関連システムへのリンクを含める。

## 必須の成果物

- 適切な内部ツールモジュールでのフロントエンドとバックエンドの変更。
- 重要な操作に対する**自動テスト**（少なくとも単体テスト、ハーネスがある場合は統合テスト）。
- チームで必要な場合、ツールの使い方と失敗時の対応を説明する基本的な**運用ランブック項目**またはリンク。

## 実装チェックリスト

1. ステークホルダーとワークフロー境界とリスクレベルを明確にする。
2. 再利用する既存コンポーネント、エンドポイント、パターンを特定する。
3. 確立された抽象化を使ってUI、バックエンドハンドラー、データアクセスを実装する。
4. リスクに応じて確認、レート制限、承認などの保護策を追加する。
5. 利用状況と失敗が可視化されるようにロギングとメトリクスを接続する。
6. テストと必要なランブック項目を追加または更新する。

## 検証

関連するアプリ/サービスの標準検証コマンド（テスト、lint、型チェック）を実行します。加えて:

- 安全な環境で**ハッピーパスと失敗モード**の両方を確認する。
- 監査ログとメトリクスがアクションを正確に反映していることを確認する。

以下を満たしたらスキルは完了です:

- 検証コマンドが成功する。
- ステージングまたは同等の環境でフローが正しく動作する。
- ステークホルダーが手動DBアクセスや安全でない回避策なしに対象ワークフローを実行できる。

## 安全性とエスカレーション

- 操作が**不可逆的なデータ損失または外部顧客への影響**を引き起こす可能性がある場合は、より高いレベルの承認を必須にし、追加制御（二重承認、時間制限付きアクセス、緊急手順など）を検討する。
- 既存の内部ツールが重要な制御を迂回していることを発見した場合は、明確に文書化し、適切なリスクまたはセキュリティチャネルへエスカレーションする。
```
