./resolve-issue.gnougo-flow.yaml
v0.1.0
version: 1
name: resolve-code-issue
skill:
description: Inspects a code project and asks Copilot for a focused change proposal.
tags: [code, issue, copilot]
inputs:
project_root: { type: string, required: true }
issue: { type: string, required: true }
outputs:
suggestion: { type: object }
workflows:
main:
inputs:
project_root: { type: string, required: true }
issue: { type: string, required: true }
search_term:
type: string
required: false
default: TODO
steps:
- id: discover_code_tools
type: mcp.list
input:
servers: [GnOuGo.GithubCopilot.Mcp]
include: [tools]
- id: project_summary
type: mcp.call
input:
server: GnOuGo.GithubCopilot.Mcp
kind: tool
method: code_project_summary
request:
projectRoot: "${data.inputs.project_root}"
- id: search_context
type: mcp.call
input:
server: GnOuGo.GithubCopilot.Mcp
kind: tool
method: code_search_text
request:
projectRoot: "${data.inputs.project_root}"
query: "${data.inputs.search_term}"
glob: "**/*"
caseSensitive: false
- id: build_task
type: workflow.call
input:
ref: { kind: local, name: build_copilot_task }
args:
issue: "${data.inputs.issue}"
project_summary: "${data.steps.project_summary.response}"
search_results: "${data.steps.search_context.response}"
- id: suggest_change
type: mcp.call
input:
server: GnOuGo.GithubCopilot.Mcp
kind: tool
method: code_suggest_change
request:
projectRoot: "${data.inputs.project_root}"
task: "${data.steps.build_task.outputs.task}"
outputs:
suggestion: "${data.steps.suggest_change.response}"
discovered_tools: "${len(data.steps.discover_code_tools.tools)}"
build_copilot_task:
inputs:
issue: { type: string, required: true }
project_summary: { type: object, required: true }
search_results: { type: object, required: true }
steps:
- id: render_task
type: template.render
input:
engine: mustache
template: |
Resolve this issue without unrelated changes:
{{issue}}
Project summary: {{project}}
Search context: {{search}}
data:
issue: "${data.inputs.issue}"
project: "${json(data.inputs.project_summary)}"
search: "${json(data.inputs.search_results)}"
mode: text
outputs:
task: "${data.steps.render_task.text}"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: issue, project_root, search_term"/]
n3_discover_code_tools[("discover_code_tools - mcp.list")]
n4_project_summary[("project_summary - mcp.call")]
n5_search_context[("search_context - mcp.call")]
n6_build_task[["build_task - workflow.call - local: build_copilot_task"]]
n7_suggest_change[("suggest_change - mcp.call")]
n8_outputs[/"Outputs: discovered_tools, suggestion"/]
n0_start --> n2_inputs
n3_discover_code_tools --> n4_project_summary
n4_project_summary --> n5_search_context
n5_search_context --> n6_build_task
n6_build_task --> n7_suggest_change
n2_inputs --> n3_discover_code_tools
n7_suggest_change --> n8_outputs
n8_outputs --> n1_end
build_copilot_task
Local sub-workflow
flowchart TD
n0_start(("Start"))
n1_end(("End"))
n2_inputs[/"Inputs: issue, project_summary, search_results"/]
n3_render_task[/"render_task - template.render"/]
n4_outputs[/"Outputs: task"/]
n0_start --> n2_inputs
n2_inputs --> n3_render_task
n3_render_task --> n4_outputs
n4_outputs --> n1_end