GitHub Actions ワークフロー仕様の作成
GitHub Actions ワークフロー ${input:WorkflowFile} の包括的な仕様を作成します。
この仕様は、ワークフローの動作、要件、制約に関する仕様として機能します。実装に依存しないものでなければならず、どのように実装されるかではなく、ワークフローが何を達成するかに焦点を当てます。
AI に最適化された要件
- トークン効率: 明確さを犠牲にすることなく、簡潔な表現を使用する
- 構造化データ: 密な情報を表現するために表、リスト、図を活用する
- 意味の明確さ: 正確な用語を一貫して使用する
- 実装の抽象化: 特定の構文、コマンド、ツールのバージョンを避ける
- 保守性: ワークフローの進化に合わせて容易に更新できるように設計する
仕様テンプレート
保存先: /spec/spec-process-cicd-[workflow-name].md
---
title: CI/CD Workflow Specification - [Workflow Name]
version: 1.0
date_created: [YYYY-MM-DD]
last_updated: [YYYY-MM-DD]
owner: DevOps Team
tags: [process, cicd, github-actions, automation, [domain-specific-tags]]
---
## Workflow Overview
**Purpose**: [One sentence describing workflow's primary goal]
**Trigger Events**: [List trigger conditions]
**Target Environments**: [Environment scope]
## Execution Flow Diagram
```mermaid
graph TD
A[Trigger Event] --> B[Job 1]
B --> C[Job 2]
C --> D[Job 3]
D --> E[End]
B --> F[Parallel Job]
F --> D
style A fill:#e1f5fe
style E fill:#e8f5e8
ジョブと依存関係
| ジョブ名 | 目的 | 依存関係 | 実行コンテキスト |
|---|
| job-1 | [目的] | [前提条件] | [ランナー/環境] |
| job-2 | [目的] | job-1 | [ランナー/環境] |
要件マトリックス
機能要件
| ID | 要件 | 優先度 | 受け入れ基準 |
|---|
| REQ-001 | [要件] | 高 | [テスト可能な基準] |
| REQ-002 | [要件] | 中 | [テスト可能な基準] |
セキュリティ要件
| ID | 要件 | 実装上の制約 |
|---|
| SEC-001 | [セキュリティ要件] | [制約の説明] |
パフォーマンス要件
| ID | 指標 | 目標 | 測定方法 |
|---|
| PERF-001 | [指標] | [目標値] | [測定方法] |
入力/出力コントラクト
入力
# Environment Variables
ENV_VAR_1: string # Purpose: [description]
ENV_VAR_2: secret # Purpose: [description]
# Repository Triggers
paths: [list of path filters]
branches: [list of branch patterns]
出力
# Job Outputs
job_1_output: string # Description: [purpose]
build_artifact: file # Description: [content type]
シークレットと変数
| 種類 | 名前 | 目的 | スコープ |
|---|
| Secret | SECRET_1 | [目的] | ワークフロー |
| Variable | VAR_1 | [目的] | リポジトリ |
実行制約
ランタイム制約
- タイムアウト: [最大実行時間]
- 同時実行: [並列実行の制限]
- リソース制限: [メモリ/CPU の制約]
環境制約
- ランナー要件: [OS/ハードウェアの要件]
- ネットワークアクセス: [外部接続の要件]
- 権限: [必要なアクセスレベル]
エラー処理戦略
| エラーの種類 | 対応 | 復旧アクション |
|---|
| ビルド失敗 | [対応] | [復旧手順] |
| テスト失敗 | [対応] | [復旧手順] |
| デプロイ失敗 | [対応] | [復旧手順] |
品質ゲート
ゲートの定義
| ゲート | 基準 | バイパス条件 |
|---|
| コード品質 | [標準] | [許可される場合] |
| セキュリティスキャン | [しきい値] | [許可される場合] |
| テストカバレッジ | [パーセンテージ] | [許可される場合] |
監視と可観測性
主要な指標
- 成功率: [目標パーセンテージ]
- 実行時間: [目標時間]
- リソース使用量: [監視のアプローチ]
アラート
| 条件 | 重大度 | 通知先 |
|---|
| [条件] | [レベル] | [誰に/どこに] |
連携ポイント
外部システム
| システム | 連携の種類 | データ交換 | SLA 要件 |
|---|
| [システム] | [種類] | [データ形式] | [要件] |
依存するワークフロー
| ワークフロー | 関係 | トリガーの仕組み |
|---|
| [ワークフロー] | [種類] | [トリガー方法] |
コンプライアンスとガバナンス
監査要件
- 実行ログ: [保持ポリシー]
- 承認ゲート: [必要な承認]
- 変更管理: [更新プロセス]
セキュリティ制御
- アクセス制御: [権限モデル]
- シークレット管理: [ローテーションポリシー]
- 脆弱性スキャン: [スキャン頻度]
エッジケースと例外
シナリオマトリックス
| シナリオ | 期待される動作 | 検証方法 |
|---|
| [エッジケース] | [動作] | [検証方法] |
検証基準
ワークフロー検証
- VLD-001: [検証ルール]
- VLD-002: [検証ルール]
パフォーマンスベンチマーク
- PERF-001: [ベンチマーク基準]
- PERF-002: [ベンチマーク基準]
変更管理
更新プロセス
- 仕様の更新: 最初にこのドキュメントを修正します
- レビューと承認: [承認プロセス]
- 実装: ワークフローに変更を適用します
- テスト: [検証アプローチ]
- デプロイ: [リリースプロセス]
バージョン履歴
| バージョン | 日付 | 変更内容 | 作成者 |
|---|
| 1.0 | [日付] | 初版仕様 | [作成者] |
関連仕様
- [関連するワークフロー仕様へのリンク]
- [インフラ仕様へのリンク]
- [デプロイ仕様へのリンク]
## Analysis Instructions
When analyzing the workflow file:
1. **Extract Core Purpose**: Identify the primary business objective
2. **Map Job Flow**: Create dependency graph showing execution order
3. **Identify Contracts**: Document inputs, outputs, and interfaces
4. **Capture Constraints**: Extract timeouts, permissions, and limits
5. **Define Quality Gates**: Identify validation and approval points
6. **Document Error Paths**: Map failure scenarios and recovery
7. **Abstract Implementation**: Focus on behavior, not syntax
## Mermaid Diagram Guidelines
### Flow Types
- **Sequential**: `A --> B --> C`
- **Parallel**: `A --> B & A --> C; B --> D & C --> D`
- **Conditional**: `A --> B{Decision}; B -->|Yes| C; B -->|No| D`
### Styling
```mermaid
style TriggerNode fill:#e1f5fe
style SuccessNode fill:#e8f5e8
style FailureNode fill:#ffebee
style ProcessNode fill:#f3e5f5
複雑なワークフロー
5 つ以上のジョブを含むワークフローでは、サブグラフを使用します:
graph TD
subgraph "Build Phase"
A[Lint] --> B[Test] --> C[Build]
end
subgraph "Deploy Phase"
D[Staging] --> E[Production]
end
C --> D
トークン最適化戦略
- テーブルを使用する: 構造化された形式で情報を密にまとめます
- 一貫して省略する: 一度定義し、全体で使用します
- 箇条書き: 文章形式の段落を避けます
- コードブロック: 説明的な記述よりも構造化データを使用します
- 相互参照: 情報を繰り返す代わりにリンクします
ワークフローの更新におけるドキュメントとテンプレートの両方の役割を果たす仕様の作成に焦点を当てます。