docs: update Learning Hub with CLI v1.0.15-v1.0.18 features

- automating-with-hooks.md: Add PermissionRequest and notification hook
  events to the event reference table; document permissionDecision 'allow'
  return value for preToolUse; add PermissionRequest and notification
  practical examples
- creating-effective-skills.md: Document built-in CLI skills (v1.0.17)
  that ship with the CLI without configuration
- using-copilot-coding-agent.md: Add Critic agent best-practice tip
  (v1.0.18, experimental mode for Claude models)

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
This commit is contained in:
github-actions[bot]
2026-04-06 19:43:39 +00:00
committed by GitHub
parent 5f3d66c380
commit 26145da67f
3 changed files with 57 additions and 4 deletions

View File

@@ -3,7 +3,7 @@ title: 'Automating with Hooks'
description: 'Learn how to use hooks to automate lifecycle events like formatting, linting, and governance checks during Copilot agent sessions.'
authors:
- GitHub Copilot Learning Hub Team
lastUpdated: 2026-04-01
lastUpdated: 2026-04-06
estimatedReadingTime: '8 minutes'
tags:
- hooks
@@ -98,8 +98,10 @@ Hooks can trigger on several lifecycle events:
| `subagentStart` | A subagent is spawned by the main agent | Inject additional context into the subagent's prompt, log subagent launches |
| `subagentStop` | A subagent completes before returning results | Audit subagent outputs, log subagent activity |
| `errorOccurred` | An error occurs during agent execution | Log errors for debugging, send notifications, track error patterns |
| `PermissionRequest` | A tool permission prompt is about to be shown to the user | Programmatically approve or deny tool permission requests without user interaction |
| `notification` | Shell command completes, a permission prompt fires, an elicitation dialog appears, or the agent finishes | Send async notifications, integrate with alerting systems, trigger external workflows |
> **Key insight**: The `preToolUse` hook is the most powerful — it can **approve or deny** individual tool executions. This enables fine-grained security policies like blocking specific shell commands or requiring approval for sensitive file operations.
> **Key insight**: The `preToolUse` hook is the most powerful — it can **approve or deny** individual tool executions. This enables fine-grained security policies like blocking specific shell commands or requiring approval for sensitive file operations. To **silently approve** a tool without showing the user a permission prompt, return `{"permissionDecision": "allow"}` from your hook script — this suppresses the interactive approval dialog entirely.
### sessionStart additionalContext
@@ -295,6 +297,28 @@ Block dangerous commands before they execute:
The `preToolUse` hook receives JSON input with details about the tool being called. Your script can inspect this input and exit with a non-zero code to **deny** the tool execution, or exit with zero to **approve** it.
### Programmatic Permission Approval with PermissionRequest
The `PermissionRequest` hook fires when a tool permission prompt is about to be shown to the user. Unlike `preToolUse` (which runs before every tool call), `PermissionRequest` specifically targets the interactive permission dialog — letting your scripts **silently approve or deny** without user interaction:
```json
{
"version": 1,
"hooks": {
"PermissionRequest": [
{
"type": "command",
"bash": "./scripts/auto-approve-safe-tools.sh",
"cwd": ".",
"timeoutSec": 5
}
]
}
}
```
Your script receives JSON describing the permission request and can output `{"permissionDecision": "allow"}` to approve silently, or exit non-zero to deny. This is useful for CI environments or trusted workflows where you want to auto-approve a known-safe set of tools without pausing for user input.
### Governance Audit
Scan user prompts for potential security threats and log session activity:
@@ -337,6 +361,28 @@ Scan user prompts for potential security threats and log session activity:
This pattern is useful for enterprise environments that need to audit AI interactions for compliance.
### Async Notifications with the notification Event
The `notification` hook fires **asynchronously** (unlike all other hooks, which run synchronously) when any of these occur: a shell command completes, a permission prompt fires, an elicitation dialog appears, or the agent finishes. Because it's async, it doesn't block the agent:
```json
{
"version": 1,
"hooks": {
"notification": [
{
"type": "command",
"bash": "./scripts/notify-external.sh",
"cwd": ".",
"timeoutSec": 10
}
]
}
}
```
Use `notification` for integrating with external alerting systems, dashboards, or workflow triggers where you want to react to agent activity without slowing down the agent itself.
### Notification on Session End
Send a Slack or Teams notification when an agent session completes:

View File

@@ -3,7 +3,7 @@ title: 'Creating Effective Skills'
description: 'Master the art of writing reusable, shareable skill folders that deliver consistent results across your team.'
authors:
- GitHub Copilot Learning Hub Team
lastUpdated: 2026-02-26
lastUpdated: 2026-04-06
estimatedReadingTime: '9 minutes'
tags:
- skills
@@ -47,6 +47,12 @@ Skills are folders containing a `SKILL.md` file and optional bundled assets. The
- Skills work with standard Copilot tools and bundle their own assets; agents may require MCP servers or custom integrations
- Use skills for repeatable tasks; use agents for complex multi-step workflows that need persistent state
### Built-in Skills
Starting with CLI v1.0.17, GitHub Copilot CLI ships with **built-in skills** that are available without any configuration. The first built-in skill provides a guide for customizing the Copilot cloud agent's environment (`.github/copilot-setup-steps.yml`). These built-in skills are automatically available to the agent — you don't need to copy or install them. As the CLI evolves, more built-in skills will be added to cover common development workflows.
You can still add your own custom skills alongside built-in ones; they coexist without conflict.
## Anatomy of a Skill
Every effective skill has two parts: a `SKILL.md` file with frontmatter and instructions, plus optional bundled assets.

View File

@@ -3,7 +3,7 @@ title: 'Using the Copilot Coding Agent'
description: 'Learn how to use GitHub Copilot coding agent to autonomously work on issues, generate pull requests, and automate development tasks.'
authors:
- GitHub Copilot Learning Hub Team
lastUpdated: 2026-03-25
lastUpdated: 2026-04-06
estimatedReadingTime: '12 minutes'
tags:
- coding-agent
@@ -355,6 +355,7 @@ See [Automating with Hooks](../automating-with-hooks/) for configuration details
- **Create skills for repeatable tasks**: If your team frequently does a specific type of work (migrations, API endpoints, test suites), create a skill with step-by-step guidance the agent can follow automatically.
- **Use custom agents for specialized roles**: Create focused agent profiles for different types of work — a security reviewer, a test specialist, or an infrastructure expert.
- **Define hooks for formatting**: Hooks ensure the agent's code meets your style requirements automatically, reducing review friction.
- **Enable the Critic agent for higher-stakes work**: When using Claude models in experimental mode, the Critic agent automatically reviews plans and complex implementations using a complementary model to catch errors early — before they make it into a PR. This is especially useful for non-trivial tasks where a second set of eyes can prevent wasted review cycles.
### Choosing the Right Tasks