spec-workflow-init

Development workflow generator — Generate issue-to-pr-workflow.md for your project. Creates a project-specific development workflow through interactive dialogue, covering branch strategy, quality gates, development style, and optional sub-agent definitions. English triggers: "Generate workflow", "Create development workflow", "Setup issue-to-PR flow" 日本語トリガー: 「ワークフローを生成」「開発フローを作成」「Issue-to-PRフローを設定」

Safety Notice

This listing is imported from skills.sh public index metadata. Review upstream SKILL.md and repository scripts before running.

Copy this and send it to your AI assistant to learn

Install skill "spec-workflow-init" with this command: npx skills add anyoneanderson/agent-skills/anyoneanderson-agent-skills-spec-workflow-init

spec-workflow-init — Development Workflow Generator

Generate a project-specific issue-to-pr-workflow.md through interactive dialogue. The workflow serves as a playbook for spec-implement and development agents.

Language Rules

  1. Auto-detect input language → output in the same language
  2. Japanese input → Japanese output, use references/workflow-template.ja.md
  3. English input → English output, use references/workflow-template.md
  4. Explicit override takes priority (e.g., "in English", "日本語で")

Sub-agent template selection (when generating agent definitions):

  • English → references/agents/claude/workflow-*.md
  • Japanese → references/agents/claude/workflow-*.ja.md
  • Codex templates: English → references/agents/codex/workflow-*.toml, Japanese → references/agents/codex/workflow-*.ja.toml

Execution Flow

Step 1: Initial Checks

  1. Verify Git repository:

    git rev-parse --is-inside-work-tree 2>/dev/null
    

    If not a Git repo, warn and skip branch detection. Continue with other checks.

  2. Check current directory:

    pwd
    ls -la
    
  3. Detect existing workflow file:

    find . -name "issue-to-pr-workflow.md" -maxdepth 3 2>/dev/null
    

    If found and --force is not set, show the existing file path and proceed to Step 7 (idempotency handling).

Step 2: Environment Detection

Run the following checks to auto-detect the project environment:

Package manager:

ls pnpm-lock.yaml yarn.lock package-lock.json bun.lockb 2>/dev/null

Container usage:

ls docker-compose.yml docker-compose.yaml Dockerfile 2>/dev/null

CI/CD service:

ls -d .github/workflows .gitlab-ci.yml .circleci 2>/dev/null

Branch information:

git branch -r 2>/dev/null | head -10

Language, framework, and scripts:

cat package.json 2>/dev/null | grep -A 50 '"scripts"'
cat package.json 2>/dev/null | grep -A 30 '"dependencies"'
ls go.mod requirements.txt pyproject.toml 2>/dev/null

Database:

ls prisma/schema.prisma 2>/dev/null
grep -l "postgres\|mysql\|mongo" docker-compose.yml 2>/dev/null

Lint tools:

ls .eslintrc* biome.json 2>/dev/null

Coding rules file:

find . -name "coding-rules.md" -maxdepth 3 2>/dev/null

Present the detection results to the user in a summary table:

Detected project environment:
  Language/FW:       {detected}
  Package Manager:   {detected}
  Container:         {detected}
  Test:              {detected}
  CI/CD:             {detected}
  Branch:            {detected}
  Database:          {detected}
  Lint:              {detected}
  Coding Rules:      {detected or "Not found"}

Ask the user to confirm or correct the detection results before proceeding.

Step 3: Interactive Dialogue

Gather workflow configuration through AskUserQuestion rounds.

Round 1: Output Path

question: "Where to save issue-to-pr-workflow.md?" / "issue-to-pr-workflow.md の出力先は?"
header: "Output"
options:
  - "docs/issue-to-pr-workflow.md (Recommended)" / "docs ディレクトリ直下(推奨)"
  - "docs/development/issue-to-pr-workflow.md" / "docs/development 配下"

Round 2: Branch Strategy

Q1:
question: "Base branch (PR target)?" / "ベースブランチ(PRターゲット)は?"
header: "Branch"
options:
  - "develop (Recommended)" / "feature → develop → main(Git Flow)"
  - "main" / "feature → main(GitHub Flow)"
  - "trunk" / "Short-lived branches → main(Trunk-based)"

Q2:
question: "Feature branch naming convention?" / "featureブランチの命名規則は?"
header: "Naming"
options:
  - "feature/{issue}-{slug} (Recommended)" / "e.g. feature/42-add-auth"
  - "{issue}-{slug}" / "e.g. 42-add-auth"
  - "{type}/{issue}-{slug}" / "e.g. fix/42-login-bug, feat/43-dashboard"

Round 3: Quality Gates

question: "Quality gates before PR creation?" / "PR作成前の品質ゲートは?"
header: "Gates"
multiSelect: true
options:
  - "All tests must pass (Recommended)" / "テスト全パス(推奨)"
  - "Lint and type check must pass" / "Lint / Typecheckパス"
  - "Coverage threshold" / "カバレッジ基準"

Round 4: Development Style

question: "Select your development style" / "開発スタイルを選択してください"
header: "Style"
options:
  - "Implementation First (Recommended)" / "実装 → レビュー → テスト → テストレビュー → 品質ゲート → PR"
  - "TDD" / "テスト(RED) → 実装(GREEN) → リファクタ → レビュー → 品質ゲート → PR"
  - "BDD" / "E2Eシナリオ → テスト(RED) → 実装(GREEN) → レビュー → 品質ゲート → PR"

Round 5: E2E Test Level

question: "E2E test scope?" / "E2Eテストの範囲は?"
header: "E2E"
options:
  - "API level only (Recommended)" / "supertest等でリクエスト→レスポンスを検証"
  - "API + Browser E2E" / "上記 + Playwrightでクリティカルパスを検証"

Round 6: Parallel Execution

question: "Use parallel execution for implementation and tests?" / "実装とテストの並列実行を使いますか?"
header: "Parallel"
options:
  - "Sequential (Recommended)" / "メインエージェントが全工程を順番に実行(安全・シンプル)"
  - "Parallel" / "実装とテストコード生成を並行して実行(高速・要エージェント分離)"

Round 7: Agent Targets (only if Parallel selected)

Ask which agent definitions to generate. Do NOT decide targets based on .claude/ / .codex/ directory detection.

question: "Which agent definitions should be generated?" / "どのエージェント定義を生成しますか?"
header: "Agents"
options:
  - "Both Claude + Codex (Recommended)" / "Claude と Codex の両方を生成"
  - "Claude only" / "Claude のみ生成"
  - "Codex only" / "Codex のみ生成"
  - "Skip generation" / "生成しない"

Additional Questions (project-type specific):

  • Docker project: "Run all commands inside Docker?" / "Docker内で全コマンドを実行しますか?"
  • Next.js project: "Include build check in workflow?" / "ビルド確認をワークフローに含めますか?"

Step 4: Workflow Generation

  1. Select template based on Language Rules:

    • English → references/workflow-template.md
    • Japanese → references/workflow-template.ja.md
  2. Read the template and replace placeholders with collected values:

    • {package_manager}, {container_tool}, {database}, {test_framework}, etc.
    • {pr_target}, {branch_naming}, {dev_style}
    • {test_command}, {lint_command}, {typecheck_command}, {build_command}
    • {e2e_test_command}, {browser_e2e_command}, {coverage_command}
    • {timestamp} → current date/time
  3. Select development style sections:

    • Implementation First → keep {if_implementation_first}...{end_implementation_first}, remove TDD/BDD blocks
    • TDD → keep {if_tdd}...{end_tdd}, remove others
    • BDD → keep {if_bdd}...{end_bdd}, remove others
  4. Handle conditional sections:

    • Browser E2E not selected → remove {if_browser_e2e}...{end_browser_e2e} blocks
    • Parallel not selected → remove {if_parallel}...{end_parallel} blocks
    • If agent targets include Claude → keep {if_claude_agents}...{end_claude_agents}, otherwise remove
    • If agent targets include Codex → keep {if_codex_agents}...{end_codex_agents}, otherwise remove
    • If agent generation is skipped → keep {if_no_agent_files}...{end_no_agent_files}, otherwise remove
    • No typecheck command → remove {if_typecheck}...{end_typecheck}
    • No build command → remove {if_build}...{end_build}
  5. Clean up remaining placeholders and conditional markers

  6. Create output directory if needed:

    mkdir -p {output_directory}
    
  7. Write the file to the specified output path

Step 5: Idempotency Handling

If an existing workflow file is detected (from Step 1 or during generation):

  1. Without --force: Show a warning with the existing file path

    question: "Existing workflow found at {path}. Overwrite?" / "既存のワークフローが {path} に見つかりました。上書きしますか?"
    header: "Overwrite"
    options:
      - "Yes, overwrite" / "はい、上書きする"
      - "No, cancel" / "いいえ、キャンセル"
    
  2. With --force: Overwrite without confirmation

Step 6: Sub-Agent Generation

Skip this step if the user did not select parallel execution or selected "Skip generation" in Round 7.

Step 6a: Claude Code agents (when Round 7 selection includes Claude):

  1. Select template language based on Language Rules:

    • English → references/agents/claude/workflow-*.md
    • Japanese → references/agents/claude/workflow-*.ja.md
  2. Read each template and replace placeholders:

    • {coding_rules_path} → detected path (e.g., docs/coding-rules.md)
    • {workflow_path} → output path from Step 3 (e.g., docs/issue-to-pr-workflow.md)
    • {test_command}, {lint_command}, {typecheck_command}, {build_command}
    • {e2e_test_command}, {browser_e2e_command}, {coverage_command}
    • {dev_style} → selected development style
    • {branch_naming} → selected naming convention
  3. Create directory and write files:

    mkdir -p .claude/agents
    
    • .claude/agents/workflow-implementer.md
    • .claude/agents/workflow-reviewer.md
    • .claude/agents/workflow-tester.md
  4. If files already exist, ask for overwrite confirmation (same as Step 5)

Step 6b: Codex agents (when Round 7 selection includes Codex):

  1. Select template language based on Language Rules:

    • English → references/agents/codex/workflow-*.toml
    • Japanese → references/agents/codex/workflow-*.ja.toml
  2. Read each TOML template and replace placeholders in developer_instructions:

    • Same variables as Claude Code agents
  3. Create directory and write files:

    mkdir -p .codex/agents
    
    • .codex/agents/workflow-implementer.toml
    • .codex/agents/workflow-reviewer.toml
    • .codex/agents/workflow-tester.toml
  4. Update .codex/config.toml:

    • Create file if it doesn't exist
    • Add or update agent sections in config.toml:
      [agents.workflow-implementer]
      config_file = "agents/workflow-implementer.toml"
      
      [agents.workflow-reviewer]
      config_file = "agents/workflow-reviewer.toml"
      
      [agents.workflow-tester]
      config_file = "agents/workflow-tester.toml"
      
    • Add [features] multi_agent = true if not present
  5. If files already exist, ask for overwrite confirmation

Step 7: AGENTS.md / CLAUDE.md Reference Update

  1. Check for convention files:

    ls AGENTS.md CLAUDE.md 2>/dev/null
    
  2. If CLAUDE.md is a symlink to AGENTS.md, update only AGENTS.md:

    readlink CLAUDE.md 2>/dev/null
    
  3. If at least one file exists, ask for confirmation:

    question: "Add workflow reference to AGENTS.md / CLAUDE.md?" / "AGENTS.md / CLAUDE.md にワークフローの参照を追記しますか?"
    header: "Update"
    options:
      - "Yes, add reference (Recommended)" / "はい、参照を追記する(推奨)"
      - "No, skip" / "いいえ、スキップ"
    
  4. If approved, append the following section (adapt language to match output):

    English:

    ## Development Workflow
    
    Follow the development workflow for Issue → Implementation → PR:
    - [{workflow_path}]({workflow_path}) — Development workflow generated by spec-workflow-init
    

    Japanese:

    ## Development Workflow
    
    開発フロー(Issue → 実装 → PR)は以下のファイルに従ってください:
    - [{workflow_path}]({workflow_path}) — spec-workflow-init で生成された開発ワークフロー
    
  5. If neither file exists, output a warning:

    "Warning: Neither AGENTS.md nor CLAUDE.md found. Skipping reference update."
    / "警告: AGENTS.md も CLAUDE.md も見つかりません。参照追記をスキップします。"
    

Options

OptionDescription
--forceOverwrite existing files without confirmation

Error Handling

ErrorDetectionResponse
Not a Git repositorygit rev-parse failsWarn and skip branch detection. Continue with other checks
No package.jsonls package.json failsSkip package manager / test / lint detection. Gather via dialogue
Write permission errormkdir -p or file write failsShow error and re-ask output path via AskUserQuestion
Network error (git branch -r)Command timeout or non-zero exitSkip remote branches. Use local branches only. Gather via dialogue
Existing file conflictFile found at output pathWithout --force: show warning and ask to overwrite. With --force: overwrite

Usage Examples

# Generate workflow with dialogue
"Generate development workflow"
「開発ワークフローを生成」

# Generate with force overwrite
"Create workflow --force"
「ワークフロー生成 --force」

# After spec-rules-init
"Now create the development workflow"
「次に開発フローを作って」

Post-Completion Actions

After generating the workflow:

question: "Workflow generated. What's next?" / "ワークフローを生成しました。次のアクションは?"
options:
  - "Run spec-implement" / "spec-implement を実行する"
    description: "Start implementing with the generated workflow" / "生成したワークフローで実装を開始"
  - "Review and customize" / "レビューしてカスタマイズ"
    description: "Open the generated file and make adjustments" / "生成されたファイルを開いて調整"
  - "Done for now" / "完了"
    description: "Finish without further action" / "追加アクションなしで完了"

Source Transparency

This detail page is rendered from real SKILL.md content. Trust labels are metadata-based hints, not a safety guarantee.

Related Skills

Related by shared tags or category signals.

Automation

spec-generator

No summary provided by upstream source.

Repository SourceNeeds Review
Automation

spec-to-issue

No summary provided by upstream source.

Repository SourceNeeds Review
Automation

spec-inspect

No summary provided by upstream source.

Repository SourceNeeds Review
Automation

spec-implement

No summary provided by upstream source.

Repository SourceNeeds Review