From 6394dfcc50fb1804ab07be309d940017eb11ef7d Mon Sep 17 00:00:00 2001 From: tanaka takashi Date: Mon, 10 Aug 2026 00:57:30 +0900 Subject: feat(skills): add uv-assisted Python workflow Add a concise Japanese companion prompt that asks the model to be approachable, clarify uncertainty, select available skills and tools, verify results, and report the next useful action without adding excessive context. Add the standard skills/python-via-uv/SKILL.md package and UI metadata. The workflow uses uv python find offline to resolve an interpreter, then asks the Broker to launch the separately approved Python executable. It deliberately avoids uv run because the v1 OS child-process restriction must reject descendants created directly by uv. Support standard skills//SKILL.md directories while retaining legacy top-level Markdown loading. Skip reparse-point skill directories, load deterministically, package the complete skills tree, and avoid loading nested reference Markdown as independent skills. Validation: skill-creator quick_validate PASS; uv 0.11.23 resolved Python and the two-stage Python execution printed UV_BROKER_TWO_STAGE_OK. Release build passed with 0 warnings/errors; Core tests passed 49/49 with skip 0. The 1.0.0 Bundle and manifest were regenerated with the prompt and Skill. --- tests/Agent.Core.Tests/ConfigurationTests.cs | 13 +++++++++++++ 1 file changed, 13 insertions(+) (limited to 'tests/Agent.Core.Tests/ConfigurationTests.cs') diff --git a/tests/Agent.Core.Tests/ConfigurationTests.cs b/tests/Agent.Core.Tests/ConfigurationTests.cs index 7ef4afb..2c52b0c 100644 --- a/tests/Agent.Core.Tests/ConfigurationTests.cs +++ b/tests/Agent.Core.Tests/ConfigurationTests.cs @@ -42,6 +42,19 @@ public sealed class ConfigurationTests Assert.Equal("http", result.Transport); } + [Fact] + public void SkillLoader_supports_legacy_markdown_and_standard_skill_directories() + { + using var directory = new TestDirectory(); + directory.File("skills/legacy.md", "legacy skill"); + directory.File("skills/python-via-uv/SKILL.md", "standard skill"); + directory.File("skills/python-via-uv/reference.md", "must not be loaded as a skill"); + + string[] skills = SkillLoader.Load(Path.Combine(directory.Path, "skills")); + + Assert.Equal(["legacy skill", "standard skill"], skills); + } + private static string CreateValidConfiguration(TestDirectory directory) { directory.File("prompts/user-system.md", string.Empty); -- cgit v1.2.3