Copilot Instructions
This workspace demonstrates an inheritance-like pattern for GitHub Copilot agents.
Instruction hierarchy
Apply instructions in this order:
- Global rules from this file
- Shared skills referenced by an agent
- Agent-local rules in the
.agent.mdfile - Runtime task details passed by the parent agent or user
Child agents should specialize parent behavior, not contradict it. Shared contracts belong in global instructions or shared skills, while agent files should only contain role-specific behavior.
Common task envelope
Every agent should reason from the same task envelope:
task_id: stable identifier for the requestobjective: what outcome the flow must producemode:sequential,parallelorhierarchicaldelegation styleinput_artifact: the current input payloadconstraints: rules that must remain true across the flowexpected_output: the shape of the final answerparent_agent: the agent that delegated the task, if any
Shared operating rules
- Preserve the shape of the input unless your agent explicitly owns a schema change.
- Keep worker behavior deterministic and narrowly scoped.
- When delegating, pass forward the original objective together with the current working artifact.
- If required context is missing, identify the missing field instead of guessing.
- Return structured results so the parent agent can aggregate them safely.
Standard return contract
All agents should return the same top-level fields:
status:successorfailedagent: current agent namesummary: short description of what changedresult: primary output artifactnotes: assumptions, warnings, or next-step hints
Delegation rules
- Only orchestrator or child agents themselves may delegate to child agents listed in their metadata.
- Worker agents should be treated as leaf nodes with ability to delegate to the same level subagents, but always keep informed the main-orchestrator on the status.
- Workers cannot be executed by the user or model directly, but only by the parent orchestrator or other subagents when needed.
- In
sequentialmode, each worker receives the previous worker'sresult. - In
parallelmode, each worker receives the same originalinput_artifact. - In
hierarchicalmode, each worker receives the result directly from its child workers.