From 51f49f1dcc1191dfbe7dfea3e906c79a2efa1470 Mon Sep 17 00:00:00 2001 From: Twisha Bansal Date: Tue, 10 Mar 2026 20:45:00 +0530 Subject: [PATCH 1/4] feat(skills): add additional-notes flag to generate skills command --- cmd/internal/skills/command.go | 8 +++++--- cmd/internal/skills/generator.go | 8 ++++++-- cmd/internal/skills/generator_test.go | 3 ++- 3 files changed, 13 insertions(+), 6 deletions(-) diff --git a/cmd/internal/skills/command.go b/cmd/internal/skills/command.go index 8c732bb4f133..072891696420 100644 --- a/cmd/internal/skills/command.go +++ b/cmd/internal/skills/command.go @@ -37,8 +37,9 @@ type skillsCmd struct { name string description string toolset string - outputDir string - licenseHeader string + outputDir string + licenseHeader string + additionalNotes string } // NewCommand creates a new Command. @@ -57,6 +58,7 @@ func NewCommand(opts *internal.ToolboxOptions) *cobra.Command { cmd.Flags().StringVar(&cmd.toolset, "toolset", "", "Name of the toolset to convert into a skill. If not provided, all tools will be included.") cmd.Flags().StringVar(&cmd.outputDir, "output-dir", "skills", "Directory to output generated skills") cmd.Flags().StringVar(&cmd.licenseHeader, "license-header", "", "Optional license header to prepend to generated node scripts.") + cmd.Flags().StringVar(&cmd.additionalNotes, "additional-notes", "", "Additional notes to add under the Usage section of the generated SKILL.md") _ = cmd.MarkFlagRequired("name") _ = cmd.MarkFlagRequired("description") @@ -185,7 +187,7 @@ func run(cmd *skillsCmd, opts *internal.ToolboxOptions) error { } // Generate SKILL.md - skillContent, err := generateSkillMarkdown(cmd.name, cmd.description, allTools, parser.EnvVars) + skillContent, err := generateSkillMarkdown(cmd.name, cmd.description, cmd.additionalNotes, allTools, parser.EnvVars) if err != nil { errMsg := fmt.Errorf("error generating SKILL.md content: %w", err) opts.Logger.ErrorContext(ctx, errMsg.Error()) diff --git a/cmd/internal/skills/generator.go b/cmd/internal/skills/generator.go index 1d56fd62a3a7..a51333e24d35 100644 --- a/cmd/internal/skills/generator.go +++ b/cmd/internal/skills/generator.go @@ -38,7 +38,9 @@ All scripts can be executed using Node.js. Replace ` + "`" + `` + "` **PowerShell:** ` + "`" + `node /scripts/.js '{\"\": \"\"}'` + "`" + ` - +{{if .AdditionalNotes}} +{{.AdditionalNotes}} +{{end}} ## Scripts {{range .Tools}} @@ -61,13 +63,14 @@ type toolTemplateData struct { type skillTemplateData struct { SkillName string SkillDescription string + AdditionalNotes string Tools []toolTemplateData } // generateSkillMarkdown generates the content of the SKILL.md file. // It includes usage instructions and a reference section for each tool in the skill, // detailing its description and parameters. -func generateSkillMarkdown(skillName, skillDescription string, toolsMap map[string]tools.Tool, envVars map[string]string) (string, error) { +func generateSkillMarkdown(skillName, skillDescription, additionalNotes string, toolsMap map[string]tools.Tool, envVars map[string]string) (string, error) { var toolsData []toolTemplateData // Order tools based on name @@ -96,6 +99,7 @@ func generateSkillMarkdown(skillName, skillDescription string, toolsMap map[stri data := skillTemplateData{ SkillName: skillName, SkillDescription: skillDescription, + AdditionalNotes: additionalNotes, Tools: toolsData, } diff --git a/cmd/internal/skills/generator_test.go b/cmd/internal/skills/generator_test.go index 333cd2e79ac7..3c8ad2dfde04 100644 --- a/cmd/internal/skills/generator_test.go +++ b/cmd/internal/skills/generator_test.go @@ -183,7 +183,7 @@ func TestGenerateSkillMarkdown(t *testing.T) { }, } - got, err := generateSkillMarkdown("MySkill", "My Description", toolsMap, nil) + got, err := generateSkillMarkdown("MySkill", "My Description", "Some extra notes", toolsMap, nil) if err != nil { t.Fatalf("generateSkillMarkdown() error = %v", err) } @@ -197,6 +197,7 @@ func TestGenerateSkillMarkdown(t *testing.T) { "`node /scripts/.js '{\"\": \"\"}'`", "**PowerShell:**", "`node /scripts/.js '{\"\": \"\"}'`", + "Some extra notes", "## Scripts", "### tool1", "First tool", From 529cb3c88119106568edb8e834e3114690f59b17 Mon Sep 17 00:00:00 2001 From: Twisha Bansal Date: Tue, 10 Mar 2026 20:56:40 +0530 Subject: [PATCH 2/4] add docs --- docs/en/how-to/generate_skill.md | 4 +++- docs/en/reference/cli.md | 1 + 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/docs/en/how-to/generate_skill.md b/docs/en/how-to/generate_skill.md index c3be924ce2ce..076a835c07f5 100644 --- a/docs/en/how-to/generate_skill.md +++ b/docs/en/how-to/generate_skill.md @@ -28,7 +28,8 @@ toolbox skills-generate \ --toolset \ --description \ --output-dir \ - --license-header + --license-header \ + --additional-notes ``` - ``: Can be `--tools-file`, `--tools-files`, `--tools-folder`, and `--prebuilt`. See the [CLI Reference](../reference/cli.md) for details. @@ -37,6 +38,7 @@ toolbox skills-generate \ - `--toolset`: (Optional) Name of the toolset to convert into a skill. If not provided, all tools will be included. - `--output-dir`: (Optional) Directory to output generated skills (default: "skills"). - `--license-header`: (Optional) Optional license header to prepend to generated node scripts. +- `--additional-notes`: (Optional) Additional notes to add under the Usage section of the generated SKILL.md. {{< notice note >}} **Note:** The `` must follow the Agent Skill [naming convention](https://agentskills.io/specification): it must contain only lowercase alphanumeric characters and hyphens, cannot start or end with a hyphen, and cannot contain consecutive hyphens (e.g., `my-skill`, `data-processing`). diff --git a/docs/en/reference/cli.md b/docs/en/reference/cli.md index 7c292afa0634..41c179b49517 100644 --- a/docs/en/reference/cli.md +++ b/docs/en/reference/cli.md @@ -71,6 +71,7 @@ toolbox skills-generate --name --description --toolset Date: Tue, 10 Mar 2026 21:18:42 +0530 Subject: [PATCH 3/4] lint fix --- cmd/internal/skills/command.go | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/cmd/internal/skills/command.go b/cmd/internal/skills/command.go index 072891696420..b6847f3f9789 100644 --- a/cmd/internal/skills/command.go +++ b/cmd/internal/skills/command.go @@ -34,9 +34,9 @@ import ( // skillsCmd is the command for generating skills. type skillsCmd struct { *cobra.Command - name string - description string - toolset string + name string + description string + toolset string outputDir string licenseHeader string additionalNotes string From ad96de2824d6ae21013b05640c46f22148cda7d3 Mon Sep 17 00:00:00 2001 From: Twisha Bansal <58483338+twishabansal@users.noreply.github.com> Date: Tue, 10 Mar 2026 21:19:17 +0530 Subject: [PATCH 4/4] Update cmd/internal/skills/generator.go Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com> --- cmd/internal/skills/generator.go | 1 + 1 file changed, 1 insertion(+) diff --git a/cmd/internal/skills/generator.go b/cmd/internal/skills/generator.go index a51333e24d35..c19541f04b84 100644 --- a/cmd/internal/skills/generator.go +++ b/cmd/internal/skills/generator.go @@ -41,6 +41,7 @@ All scripts can be executed using Node.js. Replace ` + "`" + `` + "` {{if .AdditionalNotes}} {{.AdditionalNotes}} {{end}} + ## Scripts {{range .Tools}}