{
  "global": {
    "process_preference": {
      "interaction_mode": "interact-with-human"
    }
  },
  "stage_order": [
    "ideation",
    "requirement",
    "implement",
    "validation",
    "feedback"
  ],
  "stages": {
    "ideation": {
      "type": "shared",
      "next_stage": "requirement",
      "actions": {
        "compose_idea": {
          "optional": false,
          "deliverables": [
            "$output:raw-ideas",
            "$output-folder:ideas-folder",
            "$output:kb-references"
          ],
          "next_actions_suggested": [
            "refine_idea",
            "reference_uiux"
          ]
        },
        "reference_uiux": {
          "optional": true,
          "deliverables": [
            "$output:uiux-reference"
          ],
          "next_actions_suggested": [
            "design_mockup",
            "refine_idea"
          ]
        },
        "refine_idea": {
          "optional": false,
          "action_context": {
            "raw-ideas": {
              "required": true,
              "candidates": "ideas-folder"
            },
            "uiux-reference": {
              "required": false
            }
          },
          "deliverables": [
            "$output:refined-idea",
            "$output-folder:refined-ideas-folder"
          ],
          "next_actions_suggested": [
            "design_mockup",
            "requirement_gathering"
          ]
        },
        "design_mockup": {
          "optional": true,
          "action_context": {
            "refined-idea": {
              "required": true,
              "candidates": "refined-ideas-folder"
            },
            "uiux-reference": {
              "required": false
            }
          },
          "deliverables": [
            "$output:mockup-html",
            "$output-folder:mockups-folder"
          ],
          "next_actions_suggested": [
            "requirement_gathering"
          ]
        }
      }
    },
    "requirement": {
      "type": "shared",
      "next_stage": "implement",
      "actions": {
        "requirement_gathering": {
          "optional": false,
          "action_context": {
            "refined-idea": {
              "required": true,
              "candidates": "refined-ideas-folder"
            },
            "mockup-html": {
              "required": false
            }
          },
          "deliverables": [
            "$output:requirement-doc",
            "$output-folder:requirements-folder"
          ],
          "next_actions_suggested": [
            "feature_breakdown"
          ]
        },
        "feature_breakdown": {
          "optional": false,
          "action_context": {
            "requirement-doc": {
              "required": true,
              "candidates": "requirements-folder"
            }
          },
          "deliverables": [
            "$output:features-list",
            "$output-folder:breakdown-folder"
          ],
          "next_actions_suggested": []
        }
      }
    },
    "implement": {
      "type": "per_feature",
      "next_stage": "validation",
      "actions": {
        "feature_refinement": {
          "optional": false,
          "action_context": {
            "requirement-doc": {
              "required": true,
              "candidates": "requirements-folder"
            },
            "features-list": {
              "required": true
            }
          },
          "deliverables": [
            "$output:specification",
            "$output-folder:feature-docs-folder"
          ],
          "next_actions_suggested": [
            "technical_design"
          ]
        },
        "technical_design": {
          "optional": false,
          "action_context": {
            "specification": {
              "required": true,
              "candidates": "feature-docs-folder"
            }
          },
          "deliverables": [
            "$output:tech-design",
            "$output-folder:feature-docs-folder"
          ],
          "next_actions_suggested": [
            "implementation"
          ]
        },
        "implementation": {
          "optional": false,
          "action_context": {
            "tech-design": {
              "required": true,
              "candidates": "feature-docs-folder"
            },
            "specification": {
              "required": true,
              "candidates": "feature-docs-folder"
            }
          },
          "deliverables": [
            "$output:impl-files",
            "$output-folder:impl-folder"
          ],
          "next_actions_suggested": [
            "acceptance_testing"
          ]
        }
      }
    },
    "validation": {
      "type": "per_feature",
      "next_stage": "feedback",
      "actions": {
        "acceptance_testing": {
          "optional": false,
          "action_context": {
            "specification": {
              "required": true,
              "candidates": "feature-docs-folder"
            },
            "impl-files": {
              "required": true,
              "candidates": "impl-folder"
            }
          },
          "deliverables": [
            "$output:test-report",
            "$output-folder:test-folder"
          ],
          "next_actions_suggested": [
            "code_refactor"
          ]
        },
        "code_refactor": {
          "optional": false,
          "action_context": {
            "tech-design": {
              "required": true,
              "candidates": "feature-docs-folder"
            },
            "test-report": {
              "required": false,
              "candidates": "test-folder"
            },
            "specification": {
              "required": true,
              "candidates": "feature-docs-folder"
            }
          },
          "deliverables": [
            "$output:refactor-report"
          ],
          "next_actions_suggested": [
            "feature_closing"
          ]
        },
        "feature_closing": {
          "optional": false,
          "action_context": {
            "specification": {
              "required": true,
              "candidates": "feature-docs-folder"
            },
            "refactor-report": {
              "required": false
            }
          },
          "deliverables": [
            "$output:closing-report"
          ],
          "next_actions_suggested": [
            "human_playground",
            "change_request"
          ]
        }
      }
    },
    "feedback": {
      "type": "per_feature",
      "next_stage": null,
      "actions": {
        "human_playground": {
          "optional": true,
          "action_context": {
            "specification": {
              "required": true,
              "candidates": "feature-docs-folder"
            },
            "impl-files": {
              "required": false,
              "candidates": "impl-folder"
            }
          },
          "deliverables": [
            "$output:playground-url"
          ],
          "next_actions_suggested": [
            "change_request"
          ]
        },
        "change_request": {
          "optional": true,
          "action_context": {
            "closing-report": {
              "required": false
            },
            "specification": {
              "required": true,
              "candidates": "feature-docs-folder"
            }
          },
          "deliverables": [
            "$output:cr-doc",
            "$output-folder:cr-folder"
          ],
          "next_actions_suggested": []
        }
      }
    }
  }
}
