docs: update Learning Hub for CLI v1.0.71-1.0.72 features

- automating-with-hooks.md: document stop_hook_active flag for agentStop
  hooks (v1.0.72) and the 8-consecutive-block limit to prevent infinite loops
- working-with-canvas-extensions.md: add canvas support in CLI (v1.0.71),
  update prerequisites to include CLI users
- installing-and-using-plugins.md: document direct skill installation via
  copilot plugins install --skill (v1.0.72) with project scope support

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
This commit is contained in:
github-actions[bot]
2026-07-21 21:04:25 +00:00
committed by GitHub
parent ecf0f5a9f4
commit 1cb3e5a62a
3 changed files with 51 additions and 5 deletions
@@ -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-07-13
lastUpdated: 2026-07-21
estimatedReadingTime: '8 minutes'
tags:
- hooks
@@ -369,6 +369,25 @@ Run ESLint after the agent finishes responding and block if there are errors:
If the lint command exits with a non-zero status, the action is blocked.
#### Preventing agentStop loops (v1.0.72+)
An `agentStop` hook that **always blocks** would previously cause the CLI to loop indefinitely. Starting with v1.0.72, the CLI automatically ends the turn after **8 consecutive blocks** and passes a `stop_hook_active` flag to the hook input, so your script can detect a forced continuation and self-limit.
```bash
#!/usr/bin/env bash
# scripts/lint-and-stop.sh
INPUT=$(cat)
# Detect forced continuation — skip the blocking check to avoid looping
if echo "$INPUT" | jq -e '.stop_hook_active == true' > /dev/null 2>&1; then
exit 0
fi
npx eslint . --max-warnings 0
```
This pattern lets your `agentStop` hook enforce quality checks without locking the agent in an infinite retry loop.
### Security Gating with preToolUse
Block dangerous commands before they execute. Use the `matcher` field to target only the `bash` tool, so the hook doesn't fire for file edits or other tools:
@@ -3,7 +3,7 @@ title: 'Installing and Using Plugins'
description: 'Learn how to find, install, and manage plugins that extend GitHub Copilot CLI with reusable agents, skills, hooks, and integrations.'
authors:
- GitHub Copilot Learning Hub Team
lastUpdated: 2026-07-13
lastUpdated: 2026-07-21
estimatedReadingTime: '8 minutes'
tags:
- plugins
@@ -182,6 +182,31 @@ Pinning to a SHA guarantees that everyone on the team installs plugins from exac
- **Change control** — review and approve plugin updates before rolling them out team-wide
- **Stability** — prevent breaking changes in upstream marketplaces from impacting your team without notice
## Installing Skills Directly (v1.0.72+)
As of v1.0.72, you can install individual skills without creating or installing a full plugin. This is useful when you find a single useful skill and don't want to install an entire plugin:
```bash
# Install a skill from a local directory
copilot plugins install --skill ./path/to/my-skill/
# Install a skill from a URL
copilot plugins install --skill https://raw.githubusercontent.com/owner/repo/main/skills/my-skill/SKILL.md
# Install a skill into the current project (repository scope)
copilot plugins install --skill ./path/to/my-skill/ --scope project
```
Or from within an interactive session:
```
/plugins install --skill https://example.com/skills/my-skill/SKILL.md
```
Skills installed this way are available immediately and appear in `copilot skill list`. Use `copilot plugins remove --skill <name>` to uninstall them.
> **Tip**: Skills from this repository can be installed individually this way. Browse the [Skills Directory](../../skills/) for available skills and use the raw GitHub URL of a skill's `SKILL.md` to install it directly.
## Installing Plugins
### From Copilot CLI
@@ -3,7 +3,7 @@ title: 'Working with Canvas Extensions'
description: 'Create and iterate on GitHub Copilot app canvases using /create-canvas, then shape them into reusable project or personal extensions.'
authors:
- GitHub Copilot Learning Hub Team
lastUpdated: 2026-06-17
lastUpdated: 2026-07-21
estimatedReadingTime: '8 minutes'
tags:
- copilot-app
@@ -14,14 +14,16 @@ relatedArticles:
- ./agents-and-subagents.md
- ./using-copilot-coding-agent.md
prerequisites:
- Access to the GitHub Copilot app
- Access to the GitHub Copilot app or GitHub Copilot CLI (v1.0.71+)
- Basic familiarity with GitHub Copilot agent sessions
---
Canvas extensions give you shared, interactive work surfaces inside the GitHub Copilot app. Instead of keeping all progress in chat, you can move work into a visible artifact (such as a board, document, checklist, or browser-oriented surface) that both people and agents can update.
Canvas extensions give you shared, interactive work surfaces inside the GitHub Copilot app and GitHub Copilot CLI. Instead of keeping all progress in chat, you can move work into a visible artifact (such as a board, document, checklist, or browser-oriented surface) that both people and agents can update.
This guide explains what canvases can do, how to create one with `/create-canvas`, and how to use patterns from this repository as reference implementations.
> **CLI support (v1.0.71+)**: Canvas extensions are now available in the GitHub Copilot CLI in addition to the Copilot app. Create and interact with canvases directly from terminal sessions — the same `/create-canvas` skill and extension structure work across both surfaces.
## What canvases can do
A canvas is a bidirectional surface: