From 1cb3e5a62a698e3218cf9161e2061b5842eeb7bb Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Tue, 21 Jul 2026 21:04:25 +0000 Subject: [PATCH] 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> --- .../learning-hub/automating-with-hooks.md | 21 ++++++++++++++- .../installing-and-using-plugins.md | 27 ++++++++++++++++++- .../working-with-canvas-extensions.md | 8 +++--- 3 files changed, 51 insertions(+), 5 deletions(-) diff --git a/website/src/content/docs/learning-hub/automating-with-hooks.md b/website/src/content/docs/learning-hub/automating-with-hooks.md index 8864598f5..8001d44a1 100644 --- a/website/src/content/docs/learning-hub/automating-with-hooks.md +++ b/website/src/content/docs/learning-hub/automating-with-hooks.md @@ -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: diff --git a/website/src/content/docs/learning-hub/installing-and-using-plugins.md b/website/src/content/docs/learning-hub/installing-and-using-plugins.md index 4733a4ba2..2d962362f 100644 --- a/website/src/content/docs/learning-hub/installing-and-using-plugins.md +++ b/website/src/content/docs/learning-hub/installing-and-using-plugins.md @@ -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 ` 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 diff --git a/website/src/content/docs/learning-hub/working-with-canvas-extensions.md b/website/src/content/docs/learning-hub/working-with-canvas-extensions.md index 2c577027c..1620b88bc 100644 --- a/website/src/content/docs/learning-hub/working-with-canvas-extensions.md +++ b/website/src/content/docs/learning-hub/working-with-canvas-extensions.md @@ -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: