Skip to content

feat: Agent Skills global scope + frontmatter, Copilot excludeAgent value + skill allowed-tools - #1775

Merged
dyoshikawa merged 1 commit into
mainfrom
resolve-scrap-issues-20260608-7
Jun 9, 2026
Merged

feat: Agent Skills global scope + frontmatter, Copilot excludeAgent value + skill allowed-tools#1775
dyoshikawa merged 1 commit into
mainfrom
resolve-scrap-issues-20260608-7

Conversation

@dyoshikawa

Copy link
Copy Markdown
Owner

Summary

Batch follow-up of maintainer-scrap upstream issues, all primary-source verified.

#1684 — Agent Skills: global scope + optional standard frontmatter (fully resolved)

  • Global scope — the agentsskills target now supports the standard personal/global location ~/.agents/skills/ (supportsGlobal: true; getSettablePaths no longer throws on global; the relative path is the same and the resolution root is supplied by the processor).
  • Standard optional frontmatterlicense, compatibility, metadata, and allowed-tools are now passed through generation/import via a new rulesync agentsskills skill section, instead of being dropped.

#1686 — GitHub Copilot: excludeAgent value + skill allowed-tools (partial)

  • excludeAgent value drift — the documented values are code-review and cloud-agent, but the schema only accepted coding-agent. Now accepts cloud-agent (the current value) while keeping coding-agent as a deprecated alias so existing configs still import.
  • Skill allowed-tools — added the optional allowed-tools frontmatter to the copilot skill namespace (CopilotSkill + the rulesync copilot skill section), mirroring the sibling skill blocks.

Remaining #1686 follow-ups: the missing hook events (agentStop/subagentStop), and global scope for subagents (~/.copilot/agents) and skills (~/.copilot/skills). This PR does not close #1686.

Validation evidence (primary sources)

Test plan

  • pnpm cicheck — green (fmt, oxlint, typecheck, 5990 unit tests, sync-skill-docs, cspell, secretlint).
  • New unit tests: agentsskills global path + frontmatter round-trip; Copilot cloud-agent acceptance; Copilot skill allowed-tools round-trip.
  • E2E: added agentsskills to the global-mode skills happy-path. e2e-skills passes in full. (Note: e2e-rules has one pre-existing, unrelated environmental flake — a test asserting stderr === "" that trips on a Node DEP0205 module.register() deprecation warning from tsx; it is independent of this change.)

Note on the third newest issue (#1687, Copilot CLI)

Deferred: #1687 (Copilot CLI hooks agentStop/cwd/env + new http/prompt hook types + a new skills adapter) is a larger effort that extends the canonical hook model (new http type, per-hook cwd/env) and overlaps #1686 on the shared Copilot hook-event set, so it warrants a dedicated, coherent change rather than a partial here.

Linked issues

🤖 Generated with Claude Code

…alue + skill allowed-tools

Batch follow-up of maintainer-scrap upstream issues:

#1684 (Agent Skills): support the standard personal/global location ~/.agents/skills/ for the agentsskills target (supportsGlobal: true; getSettablePaths no longer throws on global), and pass the spec-standard optional frontmatter (license, compatibility, metadata, allowed-tools) through generation/import via a new rulesync agentsskills skill section.

#1686 (GitHub Copilot): accept the documented excludeAgent value cloud-agent (keeping coding-agent as a deprecated alias) in the copilot rule + rulesync rule schemas; add allowed-tools to the copilot skill frontmatter (CopilotSkill + rulesync copilot section). (The Copilot hook events, global subagents, and global skills remain follow-ups.)

Closes #1684

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@dyoshikawa
dyoshikawa merged commit f31838f into main Jun 9, 2026
10 checks passed
@dyoshikawa
dyoshikawa deleted the resolve-scrap-issues-20260608-7 branch June 9, 2026 03:01
dyoshikawa pushed a commit that referenced this pull request Jun 9, 2026
Resolve conflicts from upstream Goose hooks (#1770) and Agent Skills (#1775):
- src/types/hooks.ts: keep both new HookEvent members (workspaceOpen + messageDisplay)
- src/features/skills/rulesync-skill.ts: keep both new skill sections (cursor + agentsskills) in schema and input type
- docs/reference/file-formats.md: merge the hook matrix to 16 columns (incl. Goose),
  re-applying #1774's changes (workspaceOpen row, deepagents notification, Factory Droid
  permissionRequest/setup cleanup) on top of the upstream messageDisplay row; regenerate
  skills/rulesync/file-formats.md via the docs sync script

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
dyoshikawa pushed a commit that referenced this pull request Jun 9, 2026
Resolve conflicts from upstream Agent Skills (#1775):
- src/features/skills/rulesync-skill.ts: keep both new skill sections (rovodev + agentsskills) in schema and input type
- docs/reference/file-formats.md: re-apply #1772's frontmatter examples (roo command `mode`,
  rovodev skill block) onto the upstream version; regenerate skills/rulesync/file-formats.md

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
dyoshikawa pushed a commit that referenced this pull request Jun 9, 2026
…view findings

Resolve conflicts from upstream Agent Skills (#1775):
- src/features/skills/skills-processor.test.ts: keep both new global targets (agentsskills + amp), ordered to match skillsProcessorToolTargetsGlobal
- docs/reference/supported-tools.md: re-apply #1771's Amp Skills (✅ 🌏) cell onto the upstream matrix; regenerate skills/rulesync/supported-tools.md

Address PR #1771 review findings (mid severity):
- src/features/takt-shared.ts: extract the shared unsafe-name predicate into isUnsafeTaktName(), removing the duplication between assertSafeTaktName() and prependTaktExtends() (behavior-preserving)
- src/e2e/e2e-skills.spec.ts: add amp to the global-mode skills E2E matrix (~/.config/agents/skills/), restoring Tool x Feature happy-path coverage for the newly global-capable target

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

2 participants