Setup Steps Defined
Copilot Coding Agent projects SHOULD define a steps: array in their configuration to specify workspace setup commands. These steps run before the agent starts working — without them, the agent may fail on projects that require dependency installation, database setup, or build steps.
LowcopilotstructureHook Command Has Field
Hook handlers with "type": "command" in .github/hooks/*.json or VS Code hook config MUST include a "command" field containing the shell command to execute. Without it, Copilot has no command to run and the hook fails silently.
HighcopilotstructureHook Handler Has Type
Each hook handler object in .github/hooks/*.json or VS Code hook config MUST contain a "type" field set to command. The VS Code Copilot hooks reference states each hook entry must have type: "command". Without a type field, Copilot cannot dispatch the handler and the hook silently does nothing.
HighcopilotstructureHook Valid Event Types
Hook event keys in .github/hooks/*.json or VS Code hook config MUST use recognized Copilot event type names. The VS Code Copilot doc lists eight events in PascalCase: SessionStart, UserPromptSubmit, PreToolUse, PostToolUse, PreCompact, SubagentStart, SubagentStop, Stop. Unrecognized event names — including camelCase variants like preToolUse — are silently ignored, so the hook never fires.
HighcopilotstructurePath Scope Declared
Scoped .github/copilot-instructions.md files MUST include an applyTo field in their YAML frontmatter to declare which file patterns the instructions target. Without applyTo, Copilot applies the instructions globally, which defeats the purpose of scoped instruction files and can cause irrelevant guidance to appear in unrelated contexts. The slug aligns with the path-scope-declared family used by Claude (paths:) and Cursor (globs:); Copilot's frontmatter key is applyTo: per the VS Code Copilot docs.
Highcopilotstructure