You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Ported the .NET skills prompt placeholder change from upstream so custom Go skill instruction prompts only require {skills}. The default prompt now embeds the resource/script guidance directly, and custom prompts no longer substitute {resource_instructions} or {script_instructions}.
Yes. Previously custom SkillsInstructionPrompt templates had to include {skills}, {resource_instructions}, and {script_instructions}, and all three placeholders were substituted. Now only {skills} is required and substituted; {resource_instructions} and {script_instructions} remain literal in custom prompts. This matches the upstream .NET experimental API change and is acceptable while the Go SDK is in beta.
Tests and Examples
go test ./agent/skills
Updated skills provider tests to cover optional omission of resource/script placeholders and literal rendering when those tokens appear in custom prompts.
Notes
Skipped broader upstream candidates such as tool approval defaults, detailed skill script errors, explicit available resource/script generation, archive-type MCP skills, and declarative workflow JSON/AOT because they are larger or touch different semantics. An existing untracked .github/agents/port-candidate-selector.agent.md file was left untouched and not included in this PR.
This was originally intended as a pull request, but GitHub Actions is not permitted to create or approve pull requests in this repository.
The changes have been pushed to branch dotnet-port-skill-prompt-placeholders-44535914bdd82bcb.
To fix the permissions issue, go to Settings → Actions → General and enable Allow GitHub Actions to create and approve pull requests. See also: gh-aw FAQ
Show patch preview (146 of 146 lines)
From 7bd444dae0e267a6243177d4ff470537983d9b25 Mon Sep 17 00:00:00 2001
From: "github-actions[bot]" <github-actions[bot]@users.noreply.github.com>
Date: Fri, 26 Jun 2026 06:45:56 +0000
Subject: [PATCH] Align skill prompt placeholder handling with .NET
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
---
agent/skills/provider.go | 23 +++++++----------------
agent/skills/provider_test.go | 21 ++-------------------
agent/skills/skills_test.go | 17 ++++++++++++++++-
3 files changed, 25 insertions(+), 36 deletions(-)
diff --git a/agent/skills/provider.go b/agent/skills/provider.go
index 2ba0d4f21..e15739d29 100644
--- a/agent/skills/provider.go+++ b/agent/skills/provider.go@@ -20,9 +20,7 @@ import (
)
const (
- skillsPlaceholder = "{skills}"- resourceInstructionsPlaceholder = "{resource_instructions}"- scriptInstructionsPlaceholder = "{script_instructions}"+ skillsPlaceholder = "{skills}"
)
const defaultSkillsInstructionPrompt = `You have access to skills containing domain-specific knowledge and capabilities.
@@ -35,8 +33,9 @@ Each skill provides specialized instructions, reference documents, and assets fo
When a task aligns with a skill's domain, follow these steps in exact order:
- Use ` + "`load_skill`" + ` to retrieve the skill's instructions.
- Follow the provided guidance.
-{resource_instructions}-{script_instructions}+- Use ` + "`read_skill_resource`" + ` to read any referenced resources, using the name exactly as listed+ (e.g. ` + "`\"style-guide\"`" + ` not ` + "`\"style-guide.md\"`" + `, ` + "`\"references/FAQ.md\"`" + ` not ` + "`\"FAQ.md\"`" + `).+- Use ` + "`run_skill_script`" + ` to run referenced scripts, using the name exactly as listed.
Only load what is needed, when it is needed.`
// ContextProviderOptions configures a skills-backed agent.ContextProvider.
@@ -58,8 +57,7 @@ type ContextProviderOptions struct {
// SkillsInstructionPrompt is a custom system prompt template.
// Wh
... (truncated)
Summary
Ported the .NET skills prompt placeholder change from upstream so custom Go skill instruction prompts only require
{skills}. The default prompt now embeds the resource/script guidance directly, and custom prompts no longer substitute{resource_instructions}or{script_instructions}.Ported .NET PRs
Upstream commit: microsoft/agent-framework@d0be98d.
Breaking Changes
Yes. Previously custom
SkillsInstructionPrompttemplates had to include{skills},{resource_instructions}, and{script_instructions}, and all three placeholders were substituted. Now only{skills}is required and substituted;{resource_instructions}and{script_instructions}remain literal in custom prompts. This matches the upstream .NET experimental API change and is acceptable while the Go SDK is in beta.Tests and Examples
go test ./agent/skillsNotes
Skipped broader upstream candidates such as tool approval defaults, detailed skill script errors, explicit available resource/script generation, archive-type MCP skills, and declarative workflow JSON/AOT because they are larger or touch different semantics. An existing untracked
.github/agents/port-candidate-selector.agent.mdfile was left untouched and not included in this PR.Note
This was originally intended as a pull request, but GitHub Actions is not permitted to create or approve pull requests in this repository.
The changes have been pushed to branch
dotnet-port-skill-prompt-placeholders-44535914bdd82bcb.Click here to create the pull request
To fix the permissions issue, go to Settings → Actions → General and enable Allow GitHub Actions to create and approve pull requests. See also: gh-aw FAQ
Show patch preview (146 of 146 lines)