./create-pull-request.gnougo-flow.yaml
v0.1.0
version: 1
name: pull-request-readiness
skill:
description: Reviews Git state and requests human approval before pull-request preparation.
tags: [git, pull-request, human-review]
inputs:
project_root: { type: string, required: true }
include_staged: { type: boolean, required: false }
outputs:
approval: { type: string }
workflows:
main:
inputs:
project_root: { type: string, required: true }
include_staged:
type: boolean
required: false
default: false
steps:
- id: discover_git_tools
type: mcp.list
input:
servers: [GnOuGo.Git.Mcp]
include: [tools]
- id: git_policy
type: mcp.call
input:
server: GnOuGo.Git.Mcp
kind: tool
method: git_get_policy
request: {}
- id: inspect_repository
type: sequence
steps:
- id: repository_info
type: mcp.call
input:
server: GnOuGo.Git.Mcp
kind: tool
method: git_repository_info
request:
projectRoot: "${data.inputs.project_root}"
- id: status
type: mcp.call
input:
server: GnOuGo.Git.Mcp
kind: tool
method: git_status
request:
projectRoot: "${data.inputs.project_root}"
- id: diff
type: mcp.call
input:
server: GnOuGo.Git.Mcp
kind: tool
method: git_diff
request:
projectRoot: "${data.inputs.project_root}"
staged: "${data.inputs.include_staged}"
- id: approval
type: human.input
input:
mode: confirm
prompt: Review the Git status and diff before creating a pull request.
context: "${json(data.steps.inspect_repository)}"
choices: [approve, reject]
- id: finish
type: emit
input:
message: Pull-request readiness review completed.
level: response
outputs:
approval: "${data.steps.approval.response}"
repository_snapshot: "${data.steps.inspect_repository}"
git_policy: "${data.steps.git_policy.response}"
discovered_tools: "${len(data.steps.discover_git_tools.tools)}"Semantic view
Workflow graph
✓ Semantically valid
Generated from the validated YAML with GnOuGo.Flow.Mermaid. Emit steps are hidden to keep the execution graph focused.
flowchart TD
n0_start(("Start"))
n1_end(("End"))
n2_inputs[/"Inputs: include_staged, project_root"/]
n3_discover_git_tools[("discover_git_tools - mcp.list")]
n4_git_policy[("git_policy - mcp.call")]
n5_inspect_repository(["inspect_repository - sequence"])
n6_repository_info[("repository_info - mcp.call")]
n7_status[("status - mcp.call")]
n8_diff[("diff - mcp.call")]
n9_approval[/"approval - human.input"\]
n10_outputs[/"Outputs: approval, discovered_tools, git_policy, repository_snapshot"/]
n0_start --> n2_inputs
n3_discover_git_tools --> n4_git_policy
n6_repository_info --> n7_status
n7_status --> n8_diff
n5_inspect_repository -->|steps| n6_repository_info
n4_git_policy --> n5_inspect_repository
n8_diff --> n9_approval
n2_inputs --> n3_discover_git_tools
n9_approval --> n10_outputs
n10_outputs --> n1_end