From 8c52537fad1988f0b552aef80cfc1ce0dea99c48 Mon Sep 17 00:00:00 2001 From: drvoss Date: Thu, 20 Aug 2026 10:12:22 +0900 Subject: [PATCH 1/2] docs: apply 2026-08-19 monthly updates --- guides/copilot-vs-claude-code.md | 2 +- skills/README.md | 32 ++++++++++++------- .../sub-agent-sandboxing/SKILL.md | 12 ++++--- skills/development/skill-creator/SKILL.md | 14 ++++++++ skills/workflow/using-git-worktrees/SKILL.md | 24 ++++++++------ 5 files changed, 57 insertions(+), 27 deletions(-) diff --git a/guides/copilot-vs-claude-code.md b/guides/copilot-vs-claude-code.md index 0e39614..4d0b98b 100644 --- a/guides/copilot-vs-claude-code.md +++ b/guides/copilot-vs-claude-code.md @@ -55,7 +55,7 @@ unique capabilities. | Session Resume | ✅ events.jsonl | ⚠️ Similar | Both support session continuation | | **Code Intelligence** | | | | | LSP Support | ✅ First-class | ❌ None | Language-aware navigation | -| Code Search | ✅ ripgrep + glob | ✅ ripgrep + glob | Similar capabilities | +| Code Search | ✅ tgrep in large monorepos + glob | ✅ ripgrep + glob | Similar capabilities | | GitHub Code Search | ✅ Native | ⚠️ MCP required | Search across all GitHub repos | | **Multi-AI Orchestration** | | | | | Multi-AI Hub | ⚠️ Community pattern (shell + MCP) | ❌ Claude only | Copilot can act as a hub via shell scripting and MCP — not a built-in native feature | diff --git a/skills/README.md b/skills/README.md index fb9e62a..9d6e8fc 100644 --- a/skills/README.md +++ b/skills/README.md @@ -50,21 +50,29 @@ All skills in this repository follow the **[agentskills.io](https://agentskills. ## Installing Skills > **Installation destination is not runtime discovery.** A third-party installer such as `ctx7` -> may copy files to a "universal" destination such as `.agents/skills`, but that convention can -> differ from the paths a CLI scans natively. Confirm loading with the target CLI. Antigravity -> sources currently disagree between `.agent/skills` and `.agents/skills`, so treat that -> singular/plural path as unconfirmed rather than a portable rule. +> may copy files to a "universal" destination, but that convention can differ from the paths a CLI +> scans natively. Confirm loading with the target CLI. Antigravity sources currently disagree +> between `.agent/skills` and `.agents/skills`, so treat that singular/plural path as unconfirmed +> for Antigravity rather than as a portable rule. Copilot CLI does natively discover +> `.agents/skills/` as described below. ### GitHub Copilot CLI -```bash -# Install a single skill (project-level) -# Copy each skill directory to: .github/skills//SKILL.md -# Example: skills/development/fix-build-errors/ -> .github/skills/fix-build-errors/ - -# Install user-level (available in all projects) -# Copy to: ~/.copilot/skills///SKILL.md -``` +Copilot CLI discovers skills from these locations in priority order: + +1. `.github/skills/` in the project +2. `.agents/skills/` in the project (alternative project location) +3. `.claude/skills/` in the project (Claude-compatible location) +4. `.github/skills/` in parent directories (for monorepos) +5. `~/.copilot/skills/` for personal skills +6. `~/.agents/skills/` for personal skills shared across agents +7. Plugin directories +8. Additional comma-separated directories from `COPILOT_SKILLS_DIRS` +9. Skills built into the CLI +10. Organization or enterprise skills projected through the AHP relay and fetched when invoked + +Copy each skill directory beneath the chosen location, for example +`.github/skills//SKILL.md` or `~/.copilot/skills///SKILL.md`. ### Codex CLI diff --git a/skills/copilot-exclusive/sub-agent-sandboxing/SKILL.md b/skills/copilot-exclusive/sub-agent-sandboxing/SKILL.md index 9ecf3d5..c9873cf 100644 --- a/skills/copilot-exclusive/sub-agent-sandboxing/SKILL.md +++ b/skills/copilot-exclusive/sub-agent-sandboxing/SKILL.md @@ -130,11 +130,13 @@ if it excludes a required permission, report the failure explicitly. CLI v1.0.77 release notes document that this managed floor can be delivered through native macOS and Windows MDM settings. -CLI v1.0.78 also documents `allowDevToolCaches`, enabled by default, so sandboxed builds can use -development-tool caches, registries, and installation locations without additional setup. Set it -to `false` for tighter isolation. The release notes do not define exact directories or access -modes, so verify them in the installed runtime. Because the default broadens the sandbox surface -and can expose registry access, include it in the supply-chain review described by +CLI v1.0.79 documents `allowDevToolAccess`, enabled by default, so sandboxed builds can use +development-tool caches, config, registries, and installation locations without additional setup. +Set it to `false` for tighter isolation. The former `allowDevToolCaches` key is no longer read and +is silently ignored, so an existing `false` opt-out under that name reverts to the default (on). +The release notes do not define exact directories or access modes, so verify them in the installed +runtime. Because the default broadens the sandbox surface and can expose registry access, include +it in the supply-chain review described by [`agent-supply-chain`](../../security/agent-supply-chain/SKILL.md). ## Who Owns This Sandbox? diff --git a/skills/development/skill-creator/SKILL.md b/skills/development/skill-creator/SKILL.md index 81197b0..2ed750a 100644 --- a/skills/development/skill-creator/SKILL.md +++ b/skills/development/skill-creator/SKILL.md @@ -62,6 +62,20 @@ Ask (or determine from context): to load a skill. If it is vague, the skill may be correct but still fail to trigger when the user actually needs it. +### Skill frontmatter reference + +Only `name` and `description` are selection signals. The other fields control behavior after a +skill is selected or invoked. + +| Field | Type | Required | Description | +|-------|------|:--------:|-------------| +| `name` | string | Yes | Unique identifier using only letters, numbers, and hyphens; maximum 64 characters | +| `description` | string | Yes | What the skill does and when to use it; maximum 1024 characters | +| `argument-hint` | string | No | Expected argument hint shown in the skill picker, such as `"[target] [mode]"` | +| `allowed-tools` | string or string[] | No | Tools automatically allowed while the skill is active; `"*"` allows all tools | +| `user-invocable` | boolean | No | Whether users can invoke `/SKILL-NAME`; defaults to `true` | +| `disable-model-invocation` | boolean | No | Whether to prevent automatic model invocation; defaults to `false` | + ### 2. Generate the SKILL.md Use this template as a base and fill in the gathered information. diff --git a/skills/workflow/using-git-worktrees/SKILL.md b/skills/workflow/using-git-worktrees/SKILL.md index ab93a98..6e47d31 100644 --- a/skills/workflow/using-git-worktrees/SKILL.md +++ b/skills/workflow/using-git-worktrees/SKILL.md @@ -206,19 +206,25 @@ Operational rules: ## Runtime Notes -### GitHub Copilot CLI: Create a Worktree In-Session +### GitHub Copilot CLI: Experimental Worktree Entry Points -Copilot CLI provides three create-and-switch surfaces; none is a dedicated way to enter an -already-existing worktree: +Copilot CLI's worktree feature is experimental and provides three entry points: | Command | Behavior | |---------|----------| -| `/worktree [branch\|task]` | Create a worktree from `HEAD`, switch to it, and leave uncommitted changes in the original checkout | -| `/move [branch\|task]` | Create a worktree, move the current uncommitted changes into it, and switch to it | -| `/new-worktree` | **Experimental:** create a worktree, switch to it, and start a new conversation there | - -Use these when creation inside the session is the desired operation. For an existing checkout, -keep using the explicit path-boundary flow in [For Copilot Orchestrators](#for-copilot-orchestrators-direct-agents-into-the-right-worktree). +| `/worktree [branch\|task]` | Create a worktree for an optional branch or task and switch to it | +| `/worktree new [PROMPT]` | Start a new conversation in a newly created Git worktree, optionally using the prompt | +| `-w`, `--worktree[=NAME]` | Create or reuse an isolated worktree under `.worktrees/`, optionally with a name | + +All three branch from the current checkout (`HEAD`) by default. This became consistent in CLI +v1.0.79; previously, `--worktree` started from the remote default branch. To retain that older +baseline intentionally, set `worktreeBaseRef` to `"defaultBranch"` so new worktrees branch from +the remote default branch instead. + +`--worktree` conflicts with `--resume`, `--continue`, and `--connect`; do not combine those flags. +Use these entry points when creation inside the session is the desired operation. For an existing +checkout, keep using the explicit path-boundary flow in +[For Copilot Orchestrators](#for-copilot-orchestrators-direct-agents-into-the-right-worktree). The Git-native `git worktree add` workflow remains the stable default. ### Claude Code: Enter an Existing Worktree From eb9a0d4aff9eb5b573f595a6c7015e96e5eefa68 Mon Sep 17 00:00:00 2001 From: drvoss Date: Thu, 20 Aug 2026 13:03:50 +0900 Subject: [PATCH 2/2] docs: restore /move row and correct /worktree new naming --- guides/copilot-vs-claude-code.md | 2 +- skills/workflow/using-git-worktrees/SKILL.md | 14 ++++++++------ 2 files changed, 9 insertions(+), 7 deletions(-) diff --git a/guides/copilot-vs-claude-code.md b/guides/copilot-vs-claude-code.md index 4d0b98b..8b99027 100644 --- a/guides/copilot-vs-claude-code.md +++ b/guides/copilot-vs-claude-code.md @@ -48,7 +48,7 @@ unique capabilities. | SQL Task Tracking | ✅ Built-in SQLite | ❌ File-based | Query todos, track state with SQL | | Todo Dependencies | ✅ SQL dependency graph | ❌ Manual tracking | Automatically find "ready" tasks | | Context compression hook | ✅ `preCompact` hook (notification-only, cannot block) | ✅ `PreCompact` hook (v2.1.105) | Both expose a compaction-lifecycle hook; Copilot's is observe-only, Claude's can act before compaction | -| Existing worktree entry | ⚠️ No command for entering an existing worktree; `/worktree`, `/move`, and experimental `/new-worktree` create and switch instead | ✅ `EnterWorktree` (v2.1.105) | Claude has a first-class existing-entry tool; Copilot has first-class create-and-switch surfaces | +| Existing worktree entry | ⚠️ No command for entering an existing worktree; the experimental `/worktree`, `/worktree new`, and `/move` create and switch instead | ✅ `EnterWorktree` (v2.1.105) | Claude has a first-class existing-entry tool; Copilot has first-class create-and-switch surfaces | | **Memory & State** | | | | | Session Database | ✅ SQL built-in | ❌ None | Structured state that survives compaction | | Cross-Session Memory | ✅ `session_store` read-only DB (experimental) | ⚠️ `CLAUDE.md` + hooks + memory files | Both approaches are evolving; Claude Code has more options | diff --git a/skills/workflow/using-git-worktrees/SKILL.md b/skills/workflow/using-git-worktrees/SKILL.md index 6e47d31..483eb3a 100644 --- a/skills/workflow/using-git-worktrees/SKILL.md +++ b/skills/workflow/using-git-worktrees/SKILL.md @@ -208,18 +208,20 @@ Operational rules: ### GitHub Copilot CLI: Experimental Worktree Entry Points -Copilot CLI's worktree feature is experimental and provides three entry points: +Copilot CLI's worktree feature is experimental and provides these entry points: | Command | Behavior | |---------|----------| -| `/worktree [branch\|task]` | Create a worktree for an optional branch or task and switch to it | +| `/worktree [branch\|task]` | Create a worktree for an optional branch or task and switch to it, leaving uncommitted changes behind | | `/worktree new [PROMPT]` | Start a new conversation in a newly created Git worktree, optionally using the prompt | +| `/move [branch\|task]` | Move the current uncommitted changes into a new worktree and switch to it | | `-w`, `--worktree[=NAME]` | Create or reuse an isolated worktree under `.worktrees/`, optionally with a name | -All three branch from the current checkout (`HEAD`) by default. This became consistent in CLI -v1.0.79; previously, `--worktree` started from the remote default branch. To retain that older -baseline intentionally, set `worktreeBaseRef` to `"defaultBranch"` so new worktrees branch from -the remote default branch instead. +`/worktree`, `/worktree new`, and `--worktree` branch from the current checkout (`HEAD`) by +default. This became consistent in CLI v1.0.79; previously, `--worktree` started from the remote +default branch. To retain that older baseline intentionally, set `worktreeBaseRef` to +`"defaultBranch"` so new worktrees branch from the remote default branch instead. The reference +does not document `worktreeBaseRef` for `/move`. `--worktree` conflicts with `--resume`, `--continue`, and `--connect`; do not combine those flags. Use these entry points when creation inside the session is the desired operation. For an existing