{"id":45167420,"url":"https://github.com/j5ik2o/takt-sdd","last_synced_at":"2026-04-26T15:00:48.901Z","repository":{"id":339359187,"uuid":"1161483470","full_name":"j5ik2o/takt-sdd","owner":"j5ik2o","description":"A Spec-Driven Development (SDD) workflow definition repository using takt","archived":false,"fork":false,"pushed_at":"2026-04-26T09:23:55.000Z","size":1358,"stargazers_count":32,"open_issues_count":8,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-04-26T10:10:04.999Z","etag":null,"topics":["ai-agent","ai-dlc","sdd","takt","workflow"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/j5ik2o.png","metadata":{"files":{"readme":"README.ja.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE-APACHE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":"AGENTS.md","dco":null,"cla":null}},"created_at":"2026-02-19T06:46:08.000Z","updated_at":"2026-04-26T09:24:00.000Z","dependencies_parsed_at":"2026-04-01T21:02:05.963Z","dependency_job_id":null,"html_url":"https://github.com/j5ik2o/takt-sdd","commit_stats":null,"previous_names":["j5ik2o/takt-forge"],"tags_count":48,"template":false,"template_full_name":null,"purl":"pkg:github/j5ik2o/takt-sdd","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/j5ik2o%2Ftakt-sdd","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/j5ik2o%2Ftakt-sdd/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/j5ik2o%2Ftakt-sdd/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/j5ik2o%2Ftakt-sdd/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/j5ik2o","download_url":"https://codeload.github.com/j5ik2o/takt-sdd/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/j5ik2o%2Ftakt-sdd/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32301330,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-26T09:34:17.070Z","status":"ssl_error","status_checked_at":"2026-04-26T09:34:00.993Z","response_time":129,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["ai-agent","ai-dlc","sdd","takt","workflow"],"created_at":"2026-02-20T07:04:11.864Z","updated_at":"2026-04-26T15:00:48.885Z","avatar_url":"https://github.com/j5ik2o.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# takt-sdd\n\n[![npm version](https://img.shields.io/npm/v/create-takt-sdd)](https://www.npmjs.com/package/create-takt-sdd)\n[![CI](https://github.com/j5ik2o/takt-sdd/actions/workflows/ci.yml/badge.svg?branch=main)](https://github.com/j5ik2o/takt-sdd/actions/workflows/ci.yml)\n[![Release](https://github.com/j5ik2o/takt-sdd/actions/workflows/release.yml/badge.svg?branch=main)](https://github.com/j5ik2o/takt-sdd/actions/workflows/release.yml)\n[![Publish](https://github.com/j5ik2o/takt-sdd/actions/workflows/publish-installer.yml/badge.svg)](https://github.com/j5ik2o/takt-sdd/actions/workflows/publish-installer.yml)\n[![Lines of Code](https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/j5ik2o/takt-sdd/refs/heads/main/.github/badges/tokei_badge.json)](https://github.com/j5ik2o/takt-sdd)\n[![Renovate](https://img.shields.io/badge/renovate-enabled-brightgreen.svg)](https://renovatebot.com)\n[![License](https://img.shields.io/badge/License-MIT-blue.svg)](https://opensource.org/licenses/MIT)\n[![License](https://img.shields.io/badge/License-APACHE2.0-blue.svg)](https://opensource.org/licenses/apache-2-0)\n\n\u003e **仕様を書け。あとは takt が確実に届ける。**\n\n[English](README.md)\n\n[takt](https://github.com/nrslib/takt) を用いた Spec-Driven Development（SDD: 仕様駆動開発）ワークフロー定義リポジトリ。\n\n要件定義から設計・タスク分解・実装・レビュー・検証までの開発フローを、takt のピース（YAML ワークフロー）とファセット群で自動化する。\n\ntakt-sdd は Kiroと互換性(`.kiro/specs/`)があるため、併用が可能。\n\n## 特徴\n\ntakt-sdd は [takt](https://github.com/nrslib/takt) のステートマシンベースのワークフロー制御により、AI エージェントの実行パスを決定論的に管理する。\n\n- **宣言的ワークフロー制御** — AI エージェントの実行順序・遷移条件をピース（YAML）で宣言的に定義する。AI の出力自体は非決定的だが、「どのステップを、どの順序で、どの条件で遷移するか」は YAML のルールで決定論的に制御される。自由形式のチャットではなく、ステートマシンとしてワークフローが進行する。\n- **Faceted Prompting** — プロンプトを 5 つの独立した関心事（Persona / Policy / Instruction / Knowledge / Output Contract）に分離する。各ファセットは再利用・差し替え可能で、ピース間で共有できる。モノリシックなプロンプトの重複を排除し、保守性を向上させる。\n- **多段階バリデーション** — 要件・設計・実装の各フェーズにバリデーションゲートを配置する。ギャップ分析、設計レビュー（GO/NO-GO 判定）、アーキテクチャ / QA / 実装の並列レビューにより、品質問題を早期に検出し手戻りを最小化する。\n- **ループ検出と監督制御** — plan→implement、review→fix などの反復パターンを自動検出する。閾値超過時にスーパーバイザーが介入して進捗の有無を判定し、非生産的なループを自動的にエスカレーションする。\n- **適応型バッチ実装** — タスク間の依存関係を分析し、逐次実行と並列実行を自動選択する。独立したタスクは複数ワーカーで並列処理される。\n- **プロバイダ非依存** — 同じピース定義が Claude / Codex 等の異なるプロバイダで動作する。\n\n## 前提条件\n\n- Node.js 22+（takt はインストール時に `devDependencies` へ自動追加される）\n\n## インストール\n\n自分のプロジェクトに SDD ワークフローを導入するには、プロジェクトルートで以下を実行する：\n\n```bash\nnpx create-takt-sdd\n```\n\n日本語のファセットとメッセージで実行する場合：\n\n```bash\nnpx create-takt-sdd --lang ja\n```\n\n特定バージョンや最新リリースをインストールする場合：\n\n```bash\nnpx create-takt-sdd --tag latest\nnpx create-takt-sdd --tag 0.1.2\n```\n\nインストーラは以下をセットアップする：\n\n- **`.takt/`** — 選択言語（`--lang`）のピース（YAML ワークフロー）とファセット群\n- **`scripts/opsx-cli.sh`** — opsx ワークフローが利用する OpenSpec 補助スクリプト\n- **`package.json`** — 各フェーズの npm scripts + takt を devDependency に追加\n\nオプション：\n\n| オプション | 内容 |\n|-----------|------|\n| `--force` | 既存の `.takt/` を上書き |\n| `--tag \u003cversion\u003e` | 特定バージョンをインストール（`latest`, `0.2.0` 等） |\n| `--lang \u003cen\\|ja\u003e` | ファセット・メッセージの言語（デフォルト: `en`） |\n| `--dry-run` | ファイルを書き込まずにプレビュー |\n\n既存の `package.json` がある場合は npm scripts のみマージされる（既存のスクリプトは上書きしない）。\n\n### スキルの個別追加\n\nTAKT スキルは [`j5ik2o/ai-tools`](https://github.com/j5ik2o/ai-tools) へ移転済みで、`npx skills add` で個別にインストールできる：\n\n```bash\nnpx -y skills add j5ik2o/ai-tools --skill takt-analyzer\nnpx -y skills add j5ik2o/ai-tools --skill takt-facet-builder\nnpx -y skills add j5ik2o/ai-tools --skill takt-optimizer\nnpx -y skills add j5ik2o/ai-tools --skill takt-piece-builder\nnpx -y skills add j5ik2o/ai-tools --skill takt-task-builder\n```\n\n## Kiro 互換ワークフロー\n\nSDD は以下のフェーズを順に実行する：\n\n| Phase | ピース | 内容 |\n|-------|--------|------|\n| 1 | `cc-sdd-requirements` | EARS 形式による要件ドキュメント生成 |\n| 1.5 | `cc-sdd-validate-gap` | 要件と既存コードベースのギャップ分析 |\n| 2 | `cc-sdd-design` | 要件に基づく技術設計と発見ログの生成 |\n| 2.5 | `cc-sdd-validate-design` | 設計の品質レビューと GO/NO-GO 判定, NO-GO時の設計の修正も含む |\n| 3 | `cc-sdd-tasks` | 実装タスクリストの生成 |\n| 4 | `cc-sdd-impl` | 適応型バッチ実装（逐次/並列ワーカー対応） |\n| 5 | `cc-sdd-validate-impl` | アーキテクチャ・QA・実装の並列レビュー, NO-GO時の実装の修正も含む |\n\nフルオートピース `cc-sdd-full` を使うと、Phase 1〜5 を自動遷移で一括実行できる。\n\n### フルオート実行\n\n要件定義→ギャップ分析→設計→設計検証→実装→実装検証 を一括で実行する。\n\n```bash\nnpm run cc-sdd:full -- \"要件の説明...\"\n```\n\n### フェーズ別実行\n\n各フェーズのワークフローを実行した後に、人間の介入を挟むことができる。\n\n```bash\n# Phase 1: 要件生成\nnpm run cc-sdd:requirements -- \"要件の説明...\"\n# .kiro/specs/{feature} の {feature} を確認すること\n\n# Phase 1.5: ギャップ分析（既存コードがある場合のみ）\nnpm run cc-sdd:validate-gap -- \"feature={feature}\"\n\n# Phase 2: 設計生成\nnpm run cc-sdd:design -- \"feature={feature}\"\n\n# Phase 2.5: 設計検証（NO-GO時は自動修正→再検証）\nnpm run cc-sdd:validate-design -- \"feature={feature}\"\n\n# Phase 3: タスク生成\nnpm run cc-sdd:tasks -- \"feature={feature}\"\n\n# Phase 4: 実装\nnpm run cc-sdd:impl -- \"feature={feature}\"\n\n# Phase 5: 実装検証（不合格時は自動修正→再検証）\nnpm run cc-sdd:validate-impl -- \"feature={feature}\"\n```\n\n\u003cdetails\u003e\n\u003csummary\u003etakt コマンドを直接使う場合\u003c/summary\u003e\n\n```bash\ntakt --pipeline --skip-git -w cc-sdd-full -t \"要件の説明...\"\ntakt --pipeline --skip-git -w cc-sdd-requirements -t \"要件の説明...\"\ntakt --pipeline --skip-git -w cc-sdd-validate-gap -t \"feature={feature}\"\ntakt --pipeline --skip-git -w cc-sdd-design -t \"feature={feature}\"\ntakt --pipeline --skip-git -w cc-sdd-validate-design -t \"feature={feature}\"\ntakt --pipeline --skip-git -w cc-sdd-tasks -t \"feature={feature}\"\ntakt --pipeline --skip-git -w cc-sdd-impl -t \"feature={feature}\"\ntakt --pipeline --skip-git -w cc-sdd-validate-impl -t \"feature={feature}\"\n```\n\n対話モードの場合は `takt -w {ピース名}` で実行できる。\n\n\u003c/details\u003e\n\n### 出力ファイル\n\n各フェーズの成果物は `.kiro/specs/{feature}/` に出力される。Kiro の仕様フォーマットと互換性がある。\n\n| Phase | ファイル | 内容 |\n|-------|----------|------|\n| 1 | `requirements.md` | EARS 形式の要件ドキュメント |\n| 1.5 | `gap-analysis.md` | 要件と既存コードベースのギャップ分析 |\n| 2 | `design.md` | 技術設計（アーキテクチャ、コンポーネント、データモデル） |\n| 2 | `research.md` | 発見ログ（調査結果と設計判断の根拠） |\n| 2.5 | `design-review.md` | 設計レビュー結果（GO/NO-GO 判定） |\n| 3 | `tasks.md` | 実装タスクリスト（実装中に進捗が更新される） |\n\n\n## Steering（プロジェクトメモリ管理）\n\nSDD ワークフローとは別に、`.kiro/steering/` をプロジェクトメモリとして管理するピースを提供する。\n\n| ピース | 内容 |\n|--------|------|\n| `cc-sdd-steering` | コアsteeringファイル（product.md / tech.md / structure.md）の生成・同期 |\n| `cc-sdd-steering-custom` | ドメイン固有のカスタムsteeringファイルの作成 |\n\n### steering\n\nコードベースを分析し、プロジェクトの目的・技術スタック・構造パターンを `.kiro/steering/` に記録する。初回実行時はブートストラップモード、以降はコードとの乖離を検出するシンクモードで動作する。\n\nコードがまだないグリーンフィールドプロジェクトでは、プレースホルダ付きのひな型が生成されるので、開発者が方針を記入して使う。\n\n```bash\nnpm run cc-sdd:steering -- \"steeringを同期\"\n\n# グリーンフィールド: プロダクト方針・技術選定を事前指定\nnpm run cc-sdd:steering -- \"TypeScript + Express のREST APIサーバー、PostgreSQL\"\n```\n\n### steering-custom\n\nアーキテクチャ方針、API 標準、テスト戦略など、特定ドメインのsteeringファイルを作成する。`.takt/knowledge/steering-custom-template-files/` にテンプレートが用意されている。\n\n```bash\nnpm run cc-sdd:steering:custom -- \"architecture\"\n# .takt/knowledge/steering-custom-template-files/{name}.mdの{name}を指定する\n```\n\n利用可能なテンプレート：\n\n| テンプレート | 内容 |\n|-------------|------|\n| `architecture` | アーキテクチャスタイル（ヘキサゴナル、クリーンアーキテクチャ等）、レイヤー境界、依存ルール |\n| `api-standards` | エンドポイントパターン、リクエスト/レスポンス形式、バージョニング |\n| `testing` | テスト構成、テスト種別、カバレッジ |\n| `security` | 認証パターン、入力検証、シークレット管理 |\n| `database` | スキーマ設計、マイグレーション、クエリパターン |\n| `error-handling` | エラー型、ロギング、リトライ戦略 |\n| `authentication` | 認証フロー、権限管理、セッション管理 |\n| `deployment` | CI/CD、環境構成、ロールバック手順 |\n\n#### グリーンフィールド対応（コードがまだないプロジェクト）\n\n`cc-sdd:steering` と `cc-sdd:steering-custom` の両方がグリーンフィールドプロジェクトに対応している。コードベースが空の状態でもひな型を生成できる。テンプレートの構造をベースに、プレースホルダ（`[選択肢]`、`[理由]` 等）を含んだsteeringファイルが生成されるので、開発者が方針を記入して使う。\n\n方針を事前に指定したい場合は、コマンドに続けて記述する：\n\n```bash\n# コアsteering（product.md / tech.md / structure.md）のひな型を生成\nnpm run cc-sdd:steering -- \"steeringを生成\"\n\n# プロダクト方針・技術選定を事前指定\nnpm run cc-sdd:steering -- \"TypeScript + Express のREST APIサーバー、PostgreSQL\"\n\n# カスタムsteering: アーキテクチャ方針を指定\nnpm run cc-sdd:steering:custom -- \"architecture: ヘキサゴナルアーキテクチャ、アクターモデル\"\n\n# カスタムsteering: テスト戦略を指定\nnpm run cc-sdd:steering:custom -- \"testing: Vitest、E2Eは Playwright、カバレッジ80%以上\"\n\n# カスタムsteering: DB方針を指定\nnpm run cc-sdd:steering:custom -- \"database: PostgreSQL、Prisma ORM、マイグレーションは自動\"\n\n# カスタムsteering: 方針なしでひな型だけ生成（後で手動記入）\nnpm run cc-sdd:steering:custom -- \"testing\"\n```\n\n生成されたsteeringファイルは設計フェーズ（`sdd:design`, `sdd:validate-design` 等）で自動的に参照される。\n\n## OpenSpec 互換ワークフロー\n\nSDD ワークフローとは別に、OpenSpec ベースの変更管理ワークフローを提供する。提案 → 実装 → アーカイブの各フェーズで構造化された変更を管理する。\n\n| ピース | 内容 |\n|--------|------|\n| `opsx-propose` | 変更を作成し、全アーティファクト（提案書、設計書、タスク）を生成 |\n| `opsx-apply` | 変更のタスクを実装 |\n| `opsx-archive` | 完了した変更をアーカイブ |\n| `opsx-full` | propose → apply → archive を一括自動実行 |\n| `opsx-explore` | 対話的な探索と思考（読み取り専用、full には含まれない） |\n\n### フルオート実行\n\n```bash\nnpm run opsx:full -- \"変更の説明\"\n```\n\n### フェーズ別実行\n\n```bash\n# 変更を作成しアーティファクトを生成\nnpm run opsx:propose -- \"change-name\"\n\n# タスクを実装\nnpm run opsx:apply -- \"change-name\"\n\n# 完了した変更をアーカイブ\nnpm run opsx:archive -- \"change-name\"\n\n# 対話的な探索（独立した思考モード）\nnpm run opsx:explore\n```\n\n### OpenSpec 設定\n\n`openspec/config.yaml` でスキーマとオプションのプロジェクトコンテキストを定義する：\n\n```yaml\nschema: spec-driven\n\n# オプション: アーティファクト作成時にAIに提示するプロジェクトコンテキスト\n# context: |\n#   技術スタック: TypeScript, React, Node.js\n\n# オプション: アーティファクト単位のルール\n# rules:\n#   proposal:\n#     - 提案書は500語以内にする\n```\n\n変更は `openspec/changes/\u003cname\u003e/` に保存され、`openspec/changes/archive/` にアーカイブされる。\n\n## プロジェクト構造\n\n```\n.takt/\n├── en/                      # 英語版ファセット・ピース\n│   ├── pieces/              # Piece definitions (workflow YAML)\n│   ├── personas/            # Persona facets\n│   ├── policies/            # Policy facets\n│   ├── instructions/        # Instruction facets\n│   ├── knowledge/           # Knowledge facets\n│   └── output-contracts/    # Output contract facets\n└── ja/                      # 日本語版ファセット・ピース\n    ├── pieces/              # ピース定義（ワークフロー YAML）\n    ├── personas/            # ペルソナファセット\n    ├── policies/            # ポリシーファセット\n    ├── instructions/        # インストラクションファセット\n    ├── knowledge/           # ナレッジファセット\n    └── output-contracts/    # 出力契約ファセット\nreferences/\n└── okite-ai/                # AI ルール集（submodule）\nscripts/\n├── takt.sh                  # takt 実行ラッパー\n└── opsx-cli.sh              # OpenSpec CLI（変更管理）\n```\n\n## 影響を受けたツール\n\n本プロジェクトは以下のプロジェクトにインスパイアされている：\n\n- [Kiro](https://github.com/kirodotdev/Kiro) - Amazon による SDD ベースの AI 開発環境\n- [cc-sdd](https://github.com/gotalab/cc-sdd) - 複数の AI コーディングエージェントに対応した SDD ツール\n- [OpenSpec](https://github.com/Fission-AI/OpenSpec) - AI コーディングアシスタント向け軽量 SDD フレームワーク\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fj5ik2o%2Ftakt-sdd","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fj5ik2o%2Ftakt-sdd","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fj5ik2o%2Ftakt-sdd/lists"}