* fix(#1041): route all source agents through the canonical multi-runtime gsd-tools resolver Source agents/*.md (gsd-planner, gsd-executor, gsd-verifier, gsd-plan-checker, gsd-intel-updater, gsd-debugger, …) called bare "gsd-tools …" in shell blocks. On a shim-only install — where gsd-tools.cjs exists under the runtime home but gsd-tools is NOT on PATH — those calls fail with "command not found" and the agent silently skips init/state/validate/commit ceremony, deferring to the orchestrator or bypassing GSD bookkeeping entirely. were never migrated, so it persisted on Claude Code and every other runtime that consumes the source agents directly. Only gsd-phase-researcher.md carried a resolver — and a stale, claude-only truncated one. Fix (all runtimes): - Inject the canonical multi-runtime gsd_run preamble (byte-equal to _runtime-launcher.snippet.sh — claude/codex/cursor/gemini/copilot/windsurf/ augment/trae/qwen/cline/opencode/kilo/hermes/antigravity homes) at the top of the first gsd_run block of all 12 gsd-tools-calling agents, and rewrite every command-position bare gsd-tools to gsd_run. - Upgrade gsd-phase-researcher.md's stale resolver to the canonical one. - Extend scripts/sync-runtime-launcher.cjs to maintain agents/ in parity (the sync caught and corrected a mis-placed preamble during development). - Extend the bare-gsd-tools (#2851) and launcher-parity (#373) regression guards to agents/ so no runtime can silently regress. Closes #1041 Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> * chore(#1041): backfill changeset PR number to 1045 Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> --------- Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
150 lines
5.8 KiB
JavaScript
150 lines
5.8 KiB
JavaScript
#!/usr/bin/env node
|
|
'use strict';
|
|
|
|
/**
|
|
* research-profiles.cjs — hand-authored profile table for the 7 researcher agents.
|
|
*
|
|
* Each profile field is derived verbatim from the agent's current committed state so
|
|
* that the initial --check in gen-research-agents.cjs is green by construction.
|
|
*
|
|
* Fields:
|
|
* name — verbatim frontmatter `name:` value
|
|
* description — verbatim frontmatter `description:` value
|
|
* color — verbatim frontmatter `color:` value
|
|
* tools — verbatim frontmatter `tools:` value (single string, comma-separated)
|
|
* requiredIncludes — @~/.claude/gsd-core/references/<file>.md strings the body MUST contain
|
|
* requiredSeamCalls — `gsd_run query <cmd>` strings the body MUST contain
|
|
* outputContract — strings the body MUST contain (output path, return marker, etc.)
|
|
*/
|
|
|
|
const PROFILES = [
|
|
{
|
|
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.',
|
|
color: 'cyan',
|
|
tools:
|
|
'Read, Write, Bash, Grep, Glob, WebSearch, WebFetch, mcp__context7__*, mcp__firecrawl__*, mcp__exa__*, mcp__tavily__*, mcp__ref__*, mcp__jina__*',
|
|
requiredIncludes: [
|
|
'@~/.claude/gsd-core/references/research-documentation-lookup.md',
|
|
'@~/.claude/gsd-core/references/research-philosophy.md',
|
|
'@~/.claude/gsd-core/references/research-verification-protocol.md',
|
|
],
|
|
requiredSeamCalls: [
|
|
'gsd_run query research-plan',
|
|
'gsd_run query research-store put',
|
|
'gsd_run query classify-confidence',
|
|
],
|
|
outputContract: [
|
|
'.planning/research/',
|
|
'## RESEARCH COMPLETE',
|
|
],
|
|
},
|
|
{
|
|
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.',
|
|
color: 'cyan',
|
|
tools:
|
|
'Read, Write, Edit, Bash, Grep, Glob, WebSearch, WebFetch, mcp__context7__*, mcp__firecrawl__*, mcp__exa__*, mcp__tavily__*, mcp__ref__*, mcp__jina__*',
|
|
requiredIncludes: [
|
|
'@~/.claude/gsd-core/references/research-documentation-lookup.md',
|
|
'@~/.claude/gsd-core/references/research-philosophy.md',
|
|
'@~/.claude/gsd-core/references/research-verification-protocol.md',
|
|
],
|
|
requiredSeamCalls: [
|
|
'gsd_run query research-plan',
|
|
'gsd_run query research-store put',
|
|
'gsd_run query classify-confidence',
|
|
'gsd_run query package-legitimacy check',
|
|
],
|
|
outputContract: [
|
|
'.planning/phases/XX-name/{phase_num}-RESEARCH.md',
|
|
'## RESEARCH COMPLETE',
|
|
],
|
|
},
|
|
{
|
|
name: 'gsd-advisor-researcher',
|
|
description:
|
|
'Researches a single gray area decision and returns a structured comparison table with rationale. Spawned by discuss-phase advisor mode.',
|
|
color: 'cyan',
|
|
tools: 'Read, Bash, Grep, Glob, WebSearch, WebFetch, mcp__context7__*',
|
|
requiredIncludes: [
|
|
'@~/.claude/gsd-core/references/research-documentation-lookup.md',
|
|
],
|
|
requiredSeamCalls: [],
|
|
outputContract: [
|
|
'| Option | Pros | Cons | Complexity | Recommendation |',
|
|
'**Rationale:**',
|
|
],
|
|
},
|
|
{
|
|
name: 'gsd-ai-researcher',
|
|
description:
|
|
'Researches a chosen AI framework\'s official docs to produce implementation-ready guidance — best practices, syntax, core patterns, and pitfalls distilled for the specific use case. Writes the Framework Quick Reference and Implementation Guidance sections of AI-SPEC.md. Spawned by /gsd:ai-integration-phase orchestrator.',
|
|
color: 'green',
|
|
tools:
|
|
'Read, Write, Edit, Bash, Grep, Glob, WebFetch, WebSearch, mcp__context7__*',
|
|
requiredIncludes: [
|
|
'@~/.claude/gsd-core/references/research-documentation-lookup.md',
|
|
],
|
|
requiredSeamCalls: [],
|
|
outputContract: [
|
|
'AI-SPEC.md',
|
|
'Section 3',
|
|
'Section 4',
|
|
],
|
|
},
|
|
{
|
|
name: 'gsd-domain-researcher',
|
|
description:
|
|
'Researches the business domain and real-world application context of the AI system being built. Surfaces domain expert evaluation criteria, industry-specific failure modes, regulatory context, and what "good" looks like for practitioners in this field — before the eval-planner turns it into measurable rubrics. Spawned by /gsd:ai-integration-phase orchestrator.',
|
|
color: 'purple',
|
|
tools:
|
|
'Read, Write, Edit, Bash, Grep, Glob, WebSearch, WebFetch, mcp__context7__*',
|
|
requiredIncludes: [
|
|
'@~/.claude/gsd-core/references/research-documentation-lookup.md',
|
|
],
|
|
requiredSeamCalls: [],
|
|
outputContract: [
|
|
'AI-SPEC.md',
|
|
'Section 1b',
|
|
],
|
|
},
|
|
{
|
|
name: 'gsd-ui-researcher',
|
|
description:
|
|
'Produces UI-SPEC.md design contract for frontend phases. Reads upstream artifacts, detects design system state, asks only unanswered questions. Spawned by /gsd:ui-phase orchestrator.',
|
|
color: 'purple',
|
|
tools:
|
|
'Read, Write, Edit, Bash, Grep, Glob, WebSearch, WebFetch, mcp__context7__*, mcp__firecrawl__*, mcp__exa__*, mcp__tavily__*, mcp__ref__*, mcp__jina__*',
|
|
requiredIncludes: [
|
|
'@~/.claude/gsd-core/references/research-documentation-lookup.md',
|
|
],
|
|
requiredSeamCalls: [
|
|
'gsd_run query commit',
|
|
],
|
|
outputContract: [
|
|
'UI-SPEC.md',
|
|
'## UI-SPEC COMPLETE',
|
|
],
|
|
},
|
|
{
|
|
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.',
|
|
color: 'purple',
|
|
tools: 'Read, Write, Bash',
|
|
requiredIncludes: [],
|
|
requiredSeamCalls: [
|
|
'gsd_run query commit',
|
|
],
|
|
outputContract: [
|
|
'.planning/research/SUMMARY.md',
|
|
'## SYNTHESIS COMPLETE',
|
|
],
|
|
},
|
|
];
|
|
|
|
module.exports = { PROFILES };
|