{
  "scenario": "auto-compose-commit",
  "locale": "en-US",
  "version": "1.4.0",
  "syntax": "handlebars",
  "syntaxVersion": "1.0",
  "author": "PCode Team",
  "description": "AI auto compose commit prompt (analyze all uncommitted changes, intelligently group and generate multi-commits, English version)",
  "image": {
    "stageStyleKey": "commit-modular-infographic",
    "artStyle": "模块化信息图风",
    "displayMode": "infographic-grid",
    "aspectRatio": "16:9",
    "alt": "AI auto compose commit prompt (analyze all uncommitted changes, intelligently group and generate multi-commits, English version)",
    "stageStyleLabel": "Modular commit infographic",
    "promptDirection": "提交分组、变更打包、节奏组织"
  },
  "lastModified": "2026-03-29",
  "tags": [
    "ai-commit",
    "multi-commit",
    "CustomExecutor"
  ],
  "parameters": [
    {
      "name": "projectPath",
      "type": "string",
      "required": true,
      "description": "Absolute path to project root directory, AI will use this path to get all uncommitted file changes and analyze them"
    },
    {
      "name": "needPush",
      "type": "boolean",
      "required": false,
      "default": false,
      "description": "Whether to push to remote after commits are created. When true, the system will attempt to push after all commits are made, with fastforward safety check. When false, only local commits will be created."
    },
    {
      "name": "pullRebaseBeforePush",
      "type": "boolean",
      "required": false,
      "default": false,
      "description": "Whether push-enabled current-branch runs should execute git pull --rebase before attempting the remote push."
    },
    {
      "name": "targetBranchMode",
      "type": "string",
      "required": false,
      "default": "current",
      "description": "Target branch strategy: current (stay on current branch), new-custom (create a custom-named branch from current), ai-generated-new (create an AI-named branch from current)."
    },
    {
      "name": "targetBranchName",
      "type": "string",
      "required": false,
      "description": "Custom target branch name, provided only when targetBranchMode=new-custom."
    },
    {
      "name": "repositoryPath",
      "type": "string",
      "required": false,
      "description": "Relative MonoSpecs sub-repository path used to validate and execute branch-related operations in the correct repository."
    },
    {
      "name": "gitProfileName",
      "type": "string",
      "required": false,
      "description": "Selected Git identity name injected from the frontend Git profile picker and used for both Author and Committer when composing commits."
    },
    {
      "name": "gitProfileEmail",
      "type": "string",
      "required": false,
      "description": "Selected Git identity email injected from the frontend Git profile picker and used for both Author and Committer when composing commits."
    },
    {
      "name": "signedOffByEnabled",
      "type": "boolean",
      "required": false,
      "default": true,
      "description": "Whether this auto compose run must generate commits with Git-standard Signed-off-by trailers."
    },
    {
      "name": "coAuthoredByTrailer",
      "type": "string",
      "required": false,
      "description": "Effective Co-Authored-By trailer for this run when the mode requires a trailer."
    },
    {
      "name": "coAuthoredBySource",
      "type": "string",
      "required": false,
      "description": "Where the effective Co-Authored-By trailer came from: project, global, default, or custom."
    },
    {
      "name": "coAuthoredByMode",
      "type": "string",
      "required": false,
      "default": "default",
      "description": "Effective Co-Authored-By mode for this run: default, custom, or none."
    },
    {
      "name": "coAuthoredByName",
      "type": "string",
      "required": false,
      "description": "Effective Co-Authored-By display name when custom mode is active."
    },
    {
      "name": "coAuthoredByEmail",
      "type": "string",
      "required": false,
      "description": "Effective Co-Authored-By email when custom mode is active."
    },
    {
      "name": "coAuthoredByIsCustom",
      "type": "boolean",
      "required": false,
      "description": "Whether the current run uses a custom Co-Authored-By trailer."
    },
    {
      "name": "coAuthoredByIsNone",
      "type": "boolean",
      "required": false,
      "description": "Whether the current run should skip Co-Authored-By entirely."
    }
  ],
  "dungeon": {
    "enabled": true,
    "scriptKey": "autotask.auto-compose-commit",
    "groupKey": "autotask",
    "sortOrder": 110,
    "displayNameKey": "hero.dungeon.catalog.autotask.autoComposeCommit.name",
    "descriptionKey": "hero.dungeon.catalog.autotask.autoComposeCommit.description",
    "displayName": "Auto Compose Commit",
    "description": "Runtime member routing for auto compose commit tasks."
  }
}
