From ce550a127b7dc972651bd15b9f09979a2c38688f Mon Sep 17 00:00:00 2001 From: tanaka takashi Date: Wed, 12 Aug 2026 00:02:23 +0900 Subject: feat: harden Python workflow and structured planning Replace the uv-specific skill with a portable Python skill and rewrite the default user system prompt as a concise, structured Markdown execution policy. Normalize a single fenced structured-JSON response, retry invalid skill selection with think disabled, validate selected skill output, and make coding plans keep editing and verification in one task. Document the file_edit patch payload, expose that contract in the tool catalog, and convert malformed patch input into a retryable tool failure instead of terminating the agent task. Update configuration and runtime tests for the Python skill, exact tool catalog, structured-output retry, and implementation-and-verification planning guidance. Verified with 82 Agent.Core tests and an agent-mcp Python scheduling scenario with 49 passing unittest cases. --- tests/Agent.Core.Tests/ConfigurationTests.cs | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (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 f6db9f2..64b2d85 100644 --- a/tests/Agent.Core.Tests/ConfigurationTests.cs +++ b/tests/Agent.Core.Tests/ConfigurationTests.cs @@ -139,14 +139,14 @@ public sealed class ConfigurationTests // Legacy single markdown — should be ignored (not loaded). directory.File("skills/legacy.md", "legacy skill"); // Standard skill directory with frontmatter. - directory.File("skills/python-via-uv/SKILL.md", "---\nname: python-via-uv\ndescription: Python execution skill.\n---\n# Python via uv\nInstructions here."); + directory.File("skills/python/SKILL.md", "---\nname: python\ndescription: Python execution skill.\n---\n# Python\nInstructions here."); // Non-SKILL.md files in skill directory should not be loaded as skills. - directory.File("skills/python-via-uv/reference.md", "must not be loaded as a skill"); + directory.File("skills/python/reference.md", "must not be loaded as a skill"); var skills = SkillLoader.Load(Path.Combine(directory.Path, "skills")); Assert.Single(skills); - Assert.Equal("python-via-uv", skills[0].Name); + Assert.Equal("python", skills[0].Name); Assert.Equal("Python execution skill.", skills[0].Description); Assert.Contains("Instructions here.", skills[0].Instructions); } -- cgit v1.2.3