GitHub Copilot

This guide covers using Flow with GitHub Copilot. You will learn:

  • How to install the Flow harness for Copilot
  • Where Flow writes its files in a Copilot project
  • How to invoke Flow's skills

Overview

GitHub Copilot has no native skills concept, so Flow adapts to the mechanism Copilot does provide: custom agents and prompt files. The harness docs index becomes a managed block in .github/copilot-instructions.md, and every Flow skill is installed as a custom agent paired with a prompt file.

This page covers only the Copilot specifics. If you have not added the Flow package to your project yet, start with the Installation guide.

Installing for Copilot

Run the harness installer and select GitHub Copilot at the agent prompt:

node ace flow:install

Flow detects Copilot automatically when a .github/copilot-instructions.md file or a .github/agents directory is present, so it is usually pre-selected. To target it directly and skip the agent prompt, pass the --agent flag:

node ace flow:install --agent=copilot

Where Flow writes its files

Installing for Copilot adds the following to your project:

  • .flow/docs/ holds the harness docs. This location is the same for every agent.
  • .github/copilot-instructions.md gains the managed harness block: the docs index and the project facts. Flow upserts this block between comment markers and leaves the rest of the file untouched.
  • .github/agents/ gains one flow.<skill>.agent.md file per installed skill. This file is the skill's full definition.
  • .github/prompts/ gains a companion flow.<skill>.prompt.md file per skill. This stub is what surfaces the skill as a slash command.

The .flow/docs/ directory and the installed flow. agent and prompt files are added to .gitignore, because the harness is regenerated by re-running the installer.

Invoking skills

Each skill's prompt file surfaces in Copilot Chat as a slash command named after the skill. The skill installed as flow.brief is invoked as /flow.brief:

/flow.brief checkout-redesign

Every spec-driven workflow skill follows the same /flow.<name> pattern: /flow.blueprint, /flow.assert, /flow.build, /flow.sync, /flow.archive. Invoking a skill explicitly is the intended way to drive the workflow: it keeps you in control of when each step runs and lets you review the result before advancing.

Next steps

Terms & License Agreement