fix: strip skills: from agent frontmatter for Gemini compatibility (#1045)
* fix: remove dangling skills: from agent frontmatter and strip in Gemini converter (closes #1023, closes #953, closes #930) Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * fix: invert skills frontmatter test to assert absence (fixes CI) The PR deliberately removed skills: from agent frontmatter (breaks Gemini CLI), but the test still asserted its presence. Inverted the assertion to ensure skills: stays removed. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -3,8 +3,6 @@ name: gsd-codebase-mapper
|
||||
description: Explores codebase and writes structured analysis documents. Spawned by map-codebase with a focus area (tech, arch, quality, concerns). Writes documents directly to reduce orchestrator context load.
|
||||
tools: Read, Bash, Grep, Glob, Write
|
||||
color: cyan
|
||||
skills:
|
||||
- gsd-mapper-workflow
|
||||
# hooks:
|
||||
# PostToolUse:
|
||||
# - matcher: "Write|Edit"
|
||||
|
||||
@@ -3,8 +3,6 @@ name: gsd-debugger
|
||||
description: Investigates bugs using scientific method, manages debug sessions, handles checkpoints. Spawned by /gsd:debug orchestrator.
|
||||
tools: Read, Write, Edit, Bash, Grep, Glob, WebSearch
|
||||
color: orange
|
||||
skills:
|
||||
- gsd-debugger-workflow
|
||||
# hooks:
|
||||
# PostToolUse:
|
||||
# - matcher: "Write|Edit"
|
||||
|
||||
@@ -3,8 +3,6 @@ name: gsd-executor
|
||||
description: Executes GSD plans with atomic commits, deviation handling, checkpoint protocols, and state management. Spawned by execute-phase orchestrator or execute-plan command.
|
||||
tools: Read, Write, Edit, Bash, Grep, Glob
|
||||
color: yellow
|
||||
skills:
|
||||
- gsd-executor-workflow
|
||||
# hooks:
|
||||
# PostToolUse:
|
||||
# - matcher: "Write|Edit"
|
||||
|
||||
@@ -3,8 +3,6 @@ name: gsd-integration-checker
|
||||
description: Verifies cross-phase integration and E2E flows. Checks that phases connect properly and user workflows complete end-to-end.
|
||||
tools: Read, Bash, Grep, Glob
|
||||
color: blue
|
||||
skills:
|
||||
- gsd-integration-workflow
|
||||
---
|
||||
|
||||
<role>
|
||||
|
||||
@@ -9,8 +9,6 @@ tools:
|
||||
- Glob
|
||||
- Grep
|
||||
color: "#8B5CF6"
|
||||
skills:
|
||||
- gsd-nyquist-auditor-workflow
|
||||
---
|
||||
|
||||
<role>
|
||||
|
||||
@@ -3,8 +3,6 @@ name: gsd-phase-researcher
|
||||
description: Researches how to implement a phase before planning. Produces RESEARCH.md consumed by gsd-planner. Spawned by /gsd:plan-phase orchestrator.
|
||||
tools: Read, Write, Bash, Grep, Glob, WebSearch, WebFetch, mcp__context7__*
|
||||
color: cyan
|
||||
skills:
|
||||
- gsd-researcher-workflow
|
||||
# hooks:
|
||||
# PostToolUse:
|
||||
# - matcher: "Write|Edit"
|
||||
|
||||
@@ -3,8 +3,6 @@ name: gsd-plan-checker
|
||||
description: Verifies plans will achieve phase goal before execution. Goal-backward analysis of plan quality. Spawned by /gsd:plan-phase orchestrator.
|
||||
tools: Read, Bash, Glob, Grep
|
||||
color: green
|
||||
skills:
|
||||
- gsd-plan-checker-workflow
|
||||
---
|
||||
|
||||
<role>
|
||||
|
||||
@@ -3,8 +3,6 @@ name: gsd-planner
|
||||
description: Creates executable phase plans with task breakdown, dependency analysis, and goal-backward verification. Spawned by /gsd:plan-phase orchestrator.
|
||||
tools: Read, Write, Bash, Glob, Grep, WebFetch, mcp__context7__*
|
||||
color: green
|
||||
skills:
|
||||
- gsd-planner-workflow
|
||||
# hooks:
|
||||
# PostToolUse:
|
||||
# - matcher: "Write|Edit"
|
||||
|
||||
@@ -3,8 +3,6 @@ name: gsd-project-researcher
|
||||
description: Researches domain ecosystem before roadmap creation. Produces files in .planning/research/ consumed during roadmap creation. Spawned by /gsd:new-project or /gsd:new-milestone orchestrators.
|
||||
tools: Read, Write, Bash, Grep, Glob, WebSearch, WebFetch, mcp__context7__*
|
||||
color: cyan
|
||||
skills:
|
||||
- gsd-researcher-workflow
|
||||
# hooks:
|
||||
# PostToolUse:
|
||||
# - matcher: "Write|Edit"
|
||||
|
||||
@@ -3,8 +3,6 @@ name: gsd-research-synthesizer
|
||||
description: Synthesizes research outputs from parallel researcher agents into SUMMARY.md. Spawned by /gsd:new-project after 4 researcher agents complete.
|
||||
tools: Read, Write, Bash
|
||||
color: purple
|
||||
skills:
|
||||
- gsd-synthesizer-workflow
|
||||
# hooks:
|
||||
# PostToolUse:
|
||||
# - matcher: "Write|Edit"
|
||||
|
||||
@@ -3,8 +3,6 @@ name: gsd-roadmapper
|
||||
description: Creates project roadmaps with phase breakdown, requirement mapping, success criteria derivation, and coverage validation. Spawned by /gsd:new-project orchestrator.
|
||||
tools: Read, Write, Bash, Glob, Grep
|
||||
color: purple
|
||||
skills:
|
||||
- gsd-roadmapper-workflow
|
||||
# hooks:
|
||||
# PostToolUse:
|
||||
# - matcher: "Write|Edit"
|
||||
|
||||
@@ -3,8 +3,6 @@ name: gsd-verifier
|
||||
description: Verifies phase goal achievement through goal-backward analysis. Checks codebase delivers what phase promised, not just that tasks completed. Creates VERIFICATION.md report.
|
||||
tools: Read, Write, Bash, Grep, Glob
|
||||
color: green
|
||||
skills:
|
||||
- gsd-verifier-workflow
|
||||
# hooks:
|
||||
# PostToolUse:
|
||||
# - matcher: "Write|Edit"
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
*
|
||||
* Validates that all agent .md files have correct frontmatter fields:
|
||||
* - Anti-heredoc instruction present in file-writing agents
|
||||
* - skills: field in all agents
|
||||
* - skills: field absent from all agents (breaks Gemini CLI)
|
||||
* - Commented hooks: pattern in file-writing agents
|
||||
* - Spawn type consistency across workflows
|
||||
*/
|
||||
@@ -62,29 +62,17 @@ describe('HDOC: anti-heredoc instruction', () => {
|
||||
|
||||
// ─── Skills Frontmatter ──────────────────────────────────────────────────────
|
||||
|
||||
describe('SKILL: skills frontmatter', () => {
|
||||
describe('SKILL: skills frontmatter absent', () => {
|
||||
for (const agent of ALL_AGENTS) {
|
||||
test(`${agent} has skills: in frontmatter`, () => {
|
||||
test(`${agent} does not have skills: in frontmatter`, () => {
|
||||
const content = fs.readFileSync(path.join(AGENTS_DIR, agent + '.md'), 'utf-8');
|
||||
const frontmatter = content.split('---')[1] || '';
|
||||
assert.ok(
|
||||
frontmatter.includes('skills:'),
|
||||
`${agent} missing skills: in frontmatter`
|
||||
!frontmatter.includes('skills:'),
|
||||
`${agent} has skills: in frontmatter — skills: breaks Gemini CLI and must be removed`
|
||||
);
|
||||
});
|
||||
}
|
||||
|
||||
test('skill references follow naming convention', () => {
|
||||
for (const agent of ALL_AGENTS) {
|
||||
const content = fs.readFileSync(path.join(AGENTS_DIR, agent + '.md'), 'utf-8');
|
||||
const frontmatter = content.split('---')[1] || '';
|
||||
const skillLines = frontmatter.split('\n').filter(l => l.trim().startsWith('- gsd-'));
|
||||
for (const line of skillLines) {
|
||||
const skillName = line.trim().replace('- ', '');
|
||||
assert.match(skillName, /^gsd-[\w-]+-workflow$/, `Invalid skill name: ${skillName}`);
|
||||
}
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
// ─── Hooks Frontmatter ───────────────────────────────────────────────────────
|
||||
|
||||
Reference in New Issue
Block a user