Skip to content

Copilot agent ignores exact APM skill invocation form and still emits skill(name) #27555

@theletterf

Description

@theletterf

Summary

In a gh-aw workflow using:

  • engine: copilot
  • APM-imported skills via shared/apm.md
  • a prompt that explicitly instructs the agent to invoke skills using the exact form skill(skill: <name>)

…the Copilot agent still emits the shorthand form skill(<name>), which then fails with Skill not found.

At the same time, the APM job succeeds and the restored bundle clearly contains the skills.

This makes it look like either:

  1. the Copilot runtime is ignoring the requested invocation syntax and rewriting it to the wrong call shape, or
  2. the skill tool contract for APM-restored skills under Copilot is different from what the prompt/runtime suggests.

What we verified

APM succeeds

The workflow imports skills through APM, and the APM pack/unpack steps succeed. The bundle contents show the expected skills are present:

AW_APM_PACKAGES: ["elastic/elastic-docs-skills/skills/review/docs-check-style", ...]
...
[+] github.com/elastic/elastic-docs-skills/skills/review/docs-check-style
...
skills/: applies-to-tagging, content-type-checker, docs-check-style, flag-jargon-skill, frontmatter-audit

The prompt explicitly instructs exact-name invocation

The released workflow prompt tells the Copilot agent to use:

- `skill(skill: docs-check-style)`
- `skill(skill: docs-flag-jargon-skill)`
- `skill(skill: docs-frontmatter-audit)`
- `skill(skill: docs-content-type-checker)`
- `skill(skill: docs-applies-to-tagging)`

It also explicitly says:

Do not guess alternate invocation formats.

The runtime still emits the old shorthand form

In the agent log, the model says:

Now let me run the docs skills in parallel to review the changed content.
✗ skill(docs-check-style) Skill not found: docs-check-style

So despite the updated prompt, the runtime behavior is still:

  • emitting skill(docs-check-style)
  • not skill(skill: docs-check-style)
  • and failing with Skill not found

Environment

Why I think this is a gh-aw/runtime issue

This does not look like an APM packaging failure:

  • the APM job completes successfully,
  • the unpacked bundle contains the skills,
  • and the prompt delivered to the agent includes the exact invocation syntax.

But the agent still uses the wrong call shape at runtime.

Expected behavior

One of these should be true:

  1. If skill(skill: docs-check-style) is the correct invocation form for Copilot + APM-restored skills, the agent should actually emit that call and succeed.
  2. If a different invocation form is required, the runtime/tooling/docs should expose that clearly so workflows can instruct the agent correctly.

Actual behavior

The Copilot agent ignores the explicit prompt guidance and emits skill(docs-check-style), which fails with Skill not found.

Request

Could you clarify / investigate:

  • what the correct runtime invocation shape is for APM-restored skills under engine: copilot, and
  • whether the Copilot agent/runtime is incorrectly normalizing skill(skill: ...) into skill(...)?

If helpful, I can provide the exact private workflow logs and the full released workflow source that produced this behavior.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions