From 3c13903dcd57aa806e7b3cfb8ac43e079a1c8d2f Mon Sep 17 00:00:00 2001 From: Tom Boucher Date: Wed, 1 Jul 2026 12:51:04 -0400 Subject: [PATCH] feat(#1866): agent-side self-load of configured agent_skills MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Each of the 22 consumer agents now self-loads its configured agent_skills in its mandatory init step, so .planning/config.json agent_skills. reaches the agent on every runtime — including Cursor and /gsd-autonomous, where Skill()-delegated workflow bash init did not reliably execute. - gsd-core/references/agent-skills-bootstrap.md: shared contract (query + Read + dedup guard that skips when is already in the prompt, so Claude's orchestrator-side injection never doubles) - 22 agents/gsd-*.md: one self-load line naming the agent's own type - gsd-core/workflows/autonomous.md: note that delegated agents self-load - tests/agent-skills-bootstrap.test.cjs: regression + parity (CONSUMER_AGENTS bijection + fast-check property) — Generative-Fix-Divergence guard - docs: ADR-1866, CONFIGURATION dual-injection How It Works, INVENTORY row, Changed changeset Closes #1866 --- .changeset/serene-lemurs-march.md | 5 + agents/gsd-advisor-researcher.md | 2 + agents/gsd-assumptions-analyzer.md | 2 + agents/gsd-code-fixer.md | 2 + agents/gsd-code-reviewer.md | 2 + agents/gsd-codebase-mapper.md | 2 + agents/gsd-debugger.md | 2 + agents/gsd-doc-writer.md | 2 + agents/gsd-eval-auditor.md | 2 + agents/gsd-executor.md | 2 + agents/gsd-integration-checker.md | 2 + agents/gsd-nyquist-auditor.md | 2 + agents/gsd-phase-researcher.md | 2 + agents/gsd-plan-checker.md | 2 + agents/gsd-planner.md | 2 + agents/gsd-project-researcher.md | 2 + agents/gsd-research-synthesizer.md | 2 + agents/gsd-roadmapper.md | 2 + agents/gsd-security-auditor.md | 2 + agents/gsd-ui-auditor.md | 2 + agents/gsd-ui-checker.md | 2 + agents/gsd-ui-researcher.md | 2 + agents/gsd-verifier.md | 6 +- docs/CONFIGURATION.md | 8 +- docs/INVENTORY-MANIFEST.json | 3 +- docs/INVENTORY.md | 1 + ...66-agent-skills-dual-injection-contract.md | 60 +++++++++ gsd-core/references/agent-skills-bootstrap.md | 60 +++++++++ gsd-core/workflows/autonomous.md | 2 + tests/agent-size-baseline.json | 44 +++---- tests/agent-skills-bootstrap.test.cjs | 124 ++++++++++++++++++ .../golden-install-parity/antigravity.json | 47 +++---- .../golden-install-parity/augment.json | 47 +++---- .../golden-install-parity/claude.json | 47 +++---- .../fixtures/golden-install-parity/cline.json | 47 +++---- .../golden-install-parity/codebuddy.json | 47 +++---- .../fixtures/golden-install-parity/codex.json | 91 ++++++------- .../golden-install-parity/copilot.json | 47 +++---- .../golden-install-parity/cursor.json | 47 +++---- .../golden-install-parity/gemini.json | 47 +++---- .../golden-install-parity/hermes.json | 47 +++---- .../fixtures/golden-install-parity/kilo.json | 47 +++---- .../fixtures/golden-install-parity/kimi.json | 47 +++---- .../golden-install-parity/opencode.json | 47 +++---- .../fixtures/golden-install-parity/qwen.json | 47 +++---- .../fixtures/golden-install-parity/trae.json | 47 +++---- .../golden-install-parity/windsurf.json | 47 +++---- tests/workflow-size-baseline.json | 2 +- 48 files changed, 736 insertions(+), 417 deletions(-) create mode 100644 .changeset/serene-lemurs-march.md create mode 100644 docs/adr/1866-agent-skills-dual-injection-contract.md create mode 100644 gsd-core/references/agent-skills-bootstrap.md create mode 100644 tests/agent-skills-bootstrap.test.cjs diff --git a/.changeset/serene-lemurs-march.md b/.changeset/serene-lemurs-march.md new file mode 100644 index 000000000..8f2b0a678 --- /dev/null +++ b/.changeset/serene-lemurs-march.md @@ -0,0 +1,5 @@ +--- +type: Changed +pr: 1868 +--- +**GSD subagents now self-load configured agent_skills regardless of orchestrator bash** — projects that map skills via `.planning/config.json` `agent_skills.` no longer silently lose them on `/gsd-autonomous` or Cursor, where `Skill()`-delegated workflow bash init did not reliably run. Each of the 22 consumer agents queries its own type at init and reads the listed skills, with a dedup guard so runtimes that also inject orchestrator-side (Claude Code) never carry two copies. (#1866) diff --git a/agents/gsd-advisor-researcher.md b/agents/gsd-advisor-researcher.md index 13cdd2ec8..b6fcf61c7 100644 --- a/agents/gsd-advisor-researcher.md +++ b/agents/gsd-advisor-researcher.md @@ -19,6 +19,8 @@ Spawned by `discuss-phase` via `Task()`. You do NOT present output directly to t @~/.claude/gsd-core/references/untrusted-input-boundary.md +**agent_skills:** self-load per @~/.claude/gsd-core/references/agent-skills-bootstrap.md + @~/.claude/gsd-core/references/research-documentation-lookup.md diff --git a/agents/gsd-assumptions-analyzer.md b/agents/gsd-assumptions-analyzer.md index ccfbd2b76..364baa2b4 100644 --- a/agents/gsd-assumptions-analyzer.md +++ b/agents/gsd-assumptions-analyzer.md @@ -20,6 +20,8 @@ Spawned by `discuss-phase-assumptions` via `Task()`. You do NOT present output d @~/.claude/gsd-core/references/untrusted-input-boundary.md +**agent_skills:** self-load per @~/.claude/gsd-core/references/agent-skills-bootstrap.md + Agent receives via prompt: diff --git a/agents/gsd-code-fixer.md b/agents/gsd-code-fixer.md index 1b89dd79c..0d0470b95 100644 --- a/agents/gsd-code-fixer.md +++ b/agents/gsd-code-fixer.md @@ -24,6 +24,8 @@ Before fixing code, discover project context: **Project instructions:** Read `./CLAUDE.md` if it exists in the working directory. Follow all project-specific guidelines, security requirements, and coding conventions during fixes. **Project skills:** Check `.claude/skills/` or `.agents/skills/` directory if either exists: + +**agent_skills:** self-load per @~/.claude/gsd-core/references/agent-skills-bootstrap.md 1. List available skills (subdirectories) 2. Read `SKILL.md` for each skill (lightweight index ~130 lines) 3. Load specific `rules/*.md` files as needed during implementation diff --git a/agents/gsd-code-reviewer.md b/agents/gsd-code-reviewer.md index 0ecc81549..36220ed4f 100644 --- a/agents/gsd-code-reviewer.md +++ b/agents/gsd-code-reviewer.md @@ -40,6 +40,8 @@ Before reviewing, discover project context: **Project instructions:** Read `./CLAUDE.md` if it exists in the working directory. Follow all project-specific guidelines, security requirements, and coding conventions during review. **Project skills:** Check `.claude/skills/` or `.agents/skills/` directory if either exists: + +**agent_skills:** self-load per @~/.claude/gsd-core/references/agent-skills-bootstrap.md 1. List available skills (subdirectories) 2. Read `SKILL.md` for each skill (lightweight index ~130 lines) 3. Load specific `rules/*.md` files as needed during review diff --git a/agents/gsd-codebase-mapper.md b/agents/gsd-codebase-mapper.md index 4897c3040..5a92d75e7 100644 --- a/agents/gsd-codebase-mapper.md +++ b/agents/gsd-codebase-mapper.md @@ -29,6 +29,8 @@ If the prompt contains a `` block, you MUST use the `Read` too **Context budget:** Load project skills first (lightweight). Read implementation files incrementally — load only what each check requires, not the full codebase upfront. **Project skills:** Check `.claude/skills/` or `.agents/skills/` directory if either exists: + +**agent_skills:** self-load per @~/.claude/gsd-core/references/agent-skills-bootstrap.md 1. List available skills (subdirectories) 2. Read `SKILL.md` for each skill (lightweight index ~130 lines) 3. Load specific `rules/*.md` files as needed during implementation diff --git a/agents/gsd-debugger.md b/agents/gsd-debugger.md index 565ea6508..ab6e8f2d2 100644 --- a/agents/gsd-debugger.md +++ b/agents/gsd-debugger.md @@ -40,6 +40,8 @@ Your job: Find the root cause through hypothesis testing, maintain debug file st - Load `rules/*.md` as needed during **investigation and fix**. - Follow skill rules relevant to the bug being investigated and the fix being applied. +**agent_skills:** self-load per @~/.claude/gsd-core/references/agent-skills-bootstrap.md + @~/.claude/gsd-core/references/debugger-philosophy.md diff --git a/agents/gsd-doc-writer.md b/agents/gsd-doc-writer.md index d594b7bb3..85f26c23e 100644 --- a/agents/gsd-doc-writer.md +++ b/agents/gsd-doc-writer.md @@ -34,6 +34,8 @@ If the prompt contains a `` block, you MUST use the `Read` too **Context budget:** Load project skills first (lightweight). Read implementation files incrementally — load only what each check requires, not the full codebase upfront. **Project skills:** Check `.claude/skills/` or `.agents/skills/` directory if either exists: + +**agent_skills:** self-load per @~/.claude/gsd-core/references/agent-skills-bootstrap.md 1. List available skills (subdirectories) 2. Read `SKILL.md` for each skill (lightweight index ~130 lines) 3. Load specific `rules/*.md` files as needed during implementation diff --git a/agents/gsd-eval-auditor.md b/agents/gsd-eval-auditor.md index 4b0f96282..47d899c39 100644 --- a/agents/gsd-eval-auditor.md +++ b/agents/gsd-eval-auditor.md @@ -39,6 +39,8 @@ Read `~/.claude/gsd-core/references/ai-evals.md` before auditing. This is your s **Context budget:** Load project skills first (lightweight). Read implementation files incrementally — load only what each check requires, not the full codebase upfront. **Project skills:** Check `.claude/skills/` or `.agents/skills/` directory if either exists: + +**agent_skills:** self-load per @~/.claude/gsd-core/references/agent-skills-bootstrap.md 1. List available skills (subdirectories) 2. Read `SKILL.md` for each skill (lightweight index ~130 lines) 3. Load specific `rules/*.md` files as needed during implementation diff --git a/agents/gsd-executor.md b/agents/gsd-executor.md index d86e4a990..2169d1d9e 100644 --- a/agents/gsd-executor.md +++ b/agents/gsd-executor.md @@ -64,6 +64,8 @@ Before executing, discover project context: - Load `rules/*.md` as needed during **implementation**. - Follow skill rules relevant to the task you are about to commit. +**agent_skills:** self-load per @~/.claude/gsd-core/references/agent-skills-bootstrap.md + **CLAUDE.md enforcement:** If `./CLAUDE.md` exists, treat its directives as hard constraints during execution. Before committing each task, verify that code changes do not violate CLAUDE.md rules (forbidden patterns, required conventions, mandated tools). If a task action would contradict a CLAUDE.md directive, apply the CLAUDE.md rule — it takes precedence over plan instructions. Document any CLAUDE.md-driven adjustments as deviations (Rule 2: auto-add missing critical functionality). diff --git a/agents/gsd-integration-checker.md b/agents/gsd-integration-checker.md index ab324b012..8908c5db4 100644 --- a/agents/gsd-integration-checker.md +++ b/agents/gsd-integration-checker.md @@ -35,6 +35,8 @@ Every expected cross-phase connection must resolve to WIRED (verified end-to-end **Context budget:** Load project skills first (lightweight). Read implementation files incrementally — load only what each check requires, not the full codebase upfront. **Project skills:** Check `.claude/skills/` or `.agents/skills/` directory if either exists: + +**agent_skills:** self-load per @~/.claude/gsd-core/references/agent-skills-bootstrap.md 1. List available skills (subdirectories) 2. Read `SKILL.md` for each skill (lightweight index ~130 lines) 3. Load specific `rules/*.md` files as needed during implementation diff --git a/agents/gsd-nyquist-auditor.md b/agents/gsd-nyquist-auditor.md index 862fef52a..c2bdabaab 100644 --- a/agents/gsd-nyquist-auditor.md +++ b/agents/gsd-nyquist-auditor.md @@ -51,6 +51,8 @@ Read ALL files from ``. Extract: **Context budget:** Load project skills first (lightweight). Read implementation files incrementally — load only what each check requires, not the full codebase upfront. **Project skills:** Check `.claude/skills/` or `.agents/skills/` directory if either exists: + +**agent_skills:** self-load per @~/.claude/gsd-core/references/agent-skills-bootstrap.md 1. List available skills (subdirectories) 2. Read `SKILL.md` for each skill (lightweight index ~130 lines) 3. Load specific `rules/*.md` files as needed during implementation diff --git a/agents/gsd-phase-researcher.md b/agents/gsd-phase-researcher.md index c57a853a7..341f95e8a 100644 --- a/agents/gsd-phase-researcher.md +++ b/agents/gsd-phase-researcher.md @@ -50,6 +50,8 @@ Before researching, discover project context: - Load `rules/*.md` as needed during **research**. - Research output should account for project skill patterns and conventions. +**agent_skills:** self-load per @~/.claude/gsd-core/references/agent-skills-bootstrap.md + **CLAUDE.md enforcement:** If `./CLAUDE.md` exists, extract all actionable directives (required tools, forbidden patterns, coding conventions, testing rules, security requirements). Include a `## Project Constraints (from CLAUDE.md)` section in RESEARCH.md listing these directives so the planner can verify compliance. Treat CLAUDE.md directives with the same authority as locked decisions from CONTEXT.md — research should not recommend approaches that contradict them. diff --git a/agents/gsd-plan-checker.md b/agents/gsd-plan-checker.md index 290ec87ce..6109ef96f 100644 --- a/agents/gsd-plan-checker.md +++ b/agents/gsd-plan-checker.md @@ -54,6 +54,8 @@ Before verifying, discover project context: **Project instructions:** Read `./CLAUDE.md` if it exists in the working directory. Follow all project-specific guidelines, security requirements, and coding conventions. **Project skills:** Check `.claude/skills/` or `.agents/skills/` directory if either exists: + +**agent_skills:** self-load per @~/.claude/gsd-core/references/agent-skills-bootstrap.md 1. List available skills (subdirectories) 2. Read `SKILL.md` for each skill (lightweight index ~130 lines) 3. Load specific `rules/*.md` files as needed during verification diff --git a/agents/gsd-planner.md b/agents/gsd-planner.md index b830fa049..538304948 100644 --- a/agents/gsd-planner.md +++ b/agents/gsd-planner.md @@ -46,6 +46,8 @@ Before planning, discover project context: **Project skills:** @~/.claude/gsd-core/references/project-skills-discovery.md - Load `rules/*.md` as needed during **planning**. - Ensure plans account for project skill patterns and conventions. + +**agent_skills:** self-load per @~/.claude/gsd-core/references/agent-skills-bootstrap.md diff --git a/agents/gsd-project-researcher.md b/agents/gsd-project-researcher.md index eb55cc2be..a4fbcbcba 100644 --- a/agents/gsd-project-researcher.md +++ b/agents/gsd-project-researcher.md @@ -34,6 +34,8 @@ Your files feed the roadmap: @~/.claude/gsd-core/references/untrusted-input-boundary.md +**agent_skills:** self-load per @~/.claude/gsd-core/references/agent-skills-bootstrap.md + @~/.claude/gsd-core/references/research-documentation-lookup.md diff --git a/agents/gsd-research-synthesizer.md b/agents/gsd-research-synthesizer.md index d34dfc13e..6d346db8a 100644 --- a/agents/gsd-research-synthesizer.md +++ b/agents/gsd-research-synthesizer.md @@ -34,6 +34,8 @@ If the prompt contains a `` block, you MUST use the `Read` too @~/.claude/gsd-core/references/untrusted-input-boundary.md +**agent_skills:** self-load per @~/.claude/gsd-core/references/agent-skills-bootstrap.md + Your SUMMARY.md is consumed by the gsd-roadmapper agent which uses it to: diff --git a/agents/gsd-roadmapper.md b/agents/gsd-roadmapper.md index 4971cceb7..f2608f0f6 100644 --- a/agents/gsd-roadmapper.md +++ b/agents/gsd-roadmapper.md @@ -26,6 +26,8 @@ If the prompt contains a `` block, you MUST use the `Read` too **Context budget:** Load project skills first (lightweight). Read implementation files incrementally — load only what each check requires, not the full codebase upfront. **Project skills:** Check `.claude/skills/` or `.agents/skills/` directory if either exists: + +**agent_skills:** self-load per @~/.claude/gsd-core/references/agent-skills-bootstrap.md 1. List available skills (subdirectories) 2. Read `SKILL.md` for each skill (lightweight index ~130 lines) 3. Load specific `rules/*.md` files as needed during implementation diff --git a/agents/gsd-security-auditor.md b/agents/gsd-security-auditor.md index 80377d38d..234573fa0 100644 --- a/agents/gsd-security-auditor.md +++ b/agents/gsd-security-auditor.md @@ -51,6 +51,8 @@ Read ALL files from ``. Extract: **Context budget:** Load project skills first (lightweight). Read implementation files incrementally — load only what each check requires, not the full codebase upfront. **Project skills:** Check `.claude/skills/` or `.agents/skills/` directory if either exists: + +**agent_skills:** self-load per @~/.claude/gsd-core/references/agent-skills-bootstrap.md 1. List available skills (subdirectories) 2. Read `SKILL.md` for each skill (lightweight index ~130 lines) 3. Load specific `rules/*.md` files as needed during implementation diff --git a/agents/gsd-ui-auditor.md b/agents/gsd-ui-auditor.md index f30d28a35..9111177f2 100644 --- a/agents/gsd-ui-auditor.md +++ b/agents/gsd-ui-auditor.md @@ -49,6 +49,8 @@ Before auditing, discover project context: **Project instructions:** Read `./CLAUDE.md` if it exists in the working directory. Follow all project-specific guidelines. **Project skills:** Check `.claude/skills/` or `.agents/skills/` directory if either exists: + +**agent_skills:** self-load per @~/.claude/gsd-core/references/agent-skills-bootstrap.md 1. List available skills (subdirectories) 2. Read `SKILL.md` for each skill 3. Do NOT load full `AGENTS.md` files (100KB+ context cost) diff --git a/agents/gsd-ui-checker.md b/agents/gsd-ui-checker.md index b59e4f85e..69c77bd50 100644 --- a/agents/gsd-ui-checker.md +++ b/agents/gsd-ui-checker.md @@ -30,6 +30,8 @@ Before verifying, discover project context: **Project instructions:** Read `./CLAUDE.md` if it exists in the working directory. Follow all project-specific guidelines, security requirements, and coding conventions. **Project skills:** Check `.claude/skills/` or `.agents/skills/` directory if either exists: + +**agent_skills:** self-load per @~/.claude/gsd-core/references/agent-skills-bootstrap.md 1. List available skills (subdirectories) 2. Read `SKILL.md` for each skill (lightweight index ~130 lines) 3. Load specific `rules/*.md` files as needed during verification diff --git a/agents/gsd-ui-researcher.md b/agents/gsd-ui-researcher.md index 93611e340..9b5869f5f 100644 --- a/agents/gsd-ui-researcher.md +++ b/agents/gsd-ui-researcher.md @@ -39,6 +39,8 @@ Before researching, discover project context: **Project instructions:** Read `./CLAUDE.md` if it exists in the working directory. Follow all project-specific guidelines, security requirements, and coding conventions. **Project skills:** Check `.claude/skills/` or `.agents/skills/` directory if either exists: + +**agent_skills:** self-load per @~/.claude/gsd-core/references/agent-skills-bootstrap.md 1. List available skills (subdirectories) 2. Read `SKILL.md` for each skill (lightweight index ~130 lines) 3. Load specific `rules/*.md` files as needed during research diff --git a/agents/gsd-verifier.md b/agents/gsd-verifier.md index b30969917..6e613c782 100644 --- a/agents/gsd-verifier.md +++ b/agents/gsd-verifier.md @@ -52,14 +52,16 @@ Before verifying, discover project context: **Project skills:** @~/.claude/gsd-core/references/project-skills-discovery.md - Load `rules/*.md` as needed during **verification**. - Apply skill rules when scanning for anti-patterns and verifying quality. + +**agent_skills:** self-load per @~/.claude/gsd-core/references/agent-skills-bootstrap.md **Task completion ≠ Goal achievement** -A task "create chat component" can be marked complete when the component is a placeholder. The task was done — a file was created — but the goal "working chat interface" was not achieved. +A "create chat component" task can be complete with a placeholder file — task done, goal "working chat interface" missed. -Goal-backward verification starts from the outcome and works backwards: +Start from the outcome and work backwards: 1. What must be TRUE for the goal to be achieved? 2. What must EXIST for those truths to hold? diff --git a/docs/CONFIGURATION.md b/docs/CONFIGURATION.md index ee9b49ab5..088d3779e 100644 --- a/docs/CONFIGURATION.md +++ b/docs/CONFIGURATION.md @@ -528,7 +528,13 @@ The `Skill` tool is granted to consumer agents deliberately and is instruction-b ### How It Works -At spawn time, workflows call `gsd-tools query agent-skills ` (or legacy `node gsd-tools.cjs agent-skills `) to load configured skills. If skills exist for the agent type, they are injected as an `` block in the Task() prompt. +Skills reach a consumer agent through **two cooperating seams** (dual injection — see [ADR 1866](adr/1866-agent-skills-dual-injection-contract.md)): + +1. **Orchestrator-side (primary on Claude Code).** At spawn time, workflows call `gsd-tools query agent-skills ` (or legacy `node gsd-tools.cjs agent-skills `) in their bash init and interpolate the resulting `` block into the `Task()`/`Agent()` prompt. This is established across ~25 workflows. + +2. **Agent-side self-load (durable fallback).** Each of the 22 consumer agents also self-loads in its own mandatory init step — it runs `gsd_run query agent-skills ` and `Read`s every listed `SKILL.md` per [`gsd-core/references/agent-skills-bootstrap.md`](../gsd-core/references/agent-skills-bootstrap.md). This is the path that works on every runtime, including **Cursor**, where `Skill()`-delegated workflow bash init does not reliably execute and `/gsd-autonomous` delegates via flat `Skill()` calls. + +**Dedup guard.** If an agent's prompt already contains an `` block (orchestrator already injected one), the agent skips self-load — so on runtimes where both seams run (Claude Code), the prompt never carries two copies. `query agent-skills` is read-only and idempotent: it exits 0 with an empty block when nothing is configured for the type, so self-load is zero-overhead for unconfigured agents. For project-relative and global personal skills, entries appear as `@`-includes: diff --git a/docs/INVENTORY-MANIFEST.json b/docs/INVENTORY-MANIFEST.json index 0395aa953..93c5e7f5b 100644 --- a/docs/INVENTORY-MANIFEST.json +++ b/docs/INVENTORY-MANIFEST.json @@ -200,6 +200,7 @@ ], "references": [ "agent-contracts.md", + "agent-skills-bootstrap.md", "ai-evals.md", "ai-frameworks.md", "artifact-types.md", @@ -325,9 +326,9 @@ "docs.cjs", "drift.cjs", "edge-probe.cjs", + "embedding-adapter.cjs", "eval-command-router.cjs", "eval.cjs", - "embedding-adapter.cjs", "external-descriptor-trust.cjs", "fallow-runner.cjs", "federated-config.cjs", diff --git a/docs/INVENTORY.md b/docs/INVENTORY.md index 8db0f0946..5678bde88 100644 --- a/docs/INVENTORY.md +++ b/docs/INVENTORY.md @@ -292,6 +292,7 @@ Full roster at `gsd-core/references/*.md`. References are shared knowledge docum | `common-bug-patterns.md` | Common bug patterns for code review and verification. | | `debugger-philosophy.md` | Evergreen debugging disciplines loaded by `gsd-debugger`. | | `mandatory-initial-read.md` | Shared required-reading boilerplate injected into agent prompts. | +| `agent-skills-bootstrap.md` | Shared agent_skills self-load contract (query + Read + dedup guard) injected into all 22 consumer agents. | | `project-skills-discovery.md` | Shared project-skills-discovery boilerplate injected into agent prompts. | | `research-documentation-lookup.md` | Shared documentation-lookup protocol (Context7 MCP + guarded CLI fallback) injected into all researcher agents. | | `research-philosophy.md` | Shared research philosophy (training-as-hypothesis, honest reporting, investigation-not-confirmation) injected into researcher agents. | diff --git a/docs/adr/1866-agent-skills-dual-injection-contract.md b/docs/adr/1866-agent-skills-dual-injection-contract.md new file mode 100644 index 000000000..1e5e45464 --- /dev/null +++ b/docs/adr/1866-agent-skills-dual-injection-contract.md @@ -0,0 +1,60 @@ +# ADR 1866: agent_skills dual injection — orchestrator-side + agent-side self-load + +- **Status:** Accepted +- **Date:** 2026-07-01 +- **Issue:** [#1866](https://github.com/open-gsd/gsd-core/issues/1866) + +## Context + +The documented `agent_skills` injection contract ([Agent Skills Injection](../CONFIGURATION.md#agent-skills-injection)) is **orchestrator-side**: at spawn time, the *workflow* calls `gsd-tools query agent-skills ` in its bash init and interpolates the resulting `` block into the `Task()`/`Agent()` prompt. This is established across ~25 workflows and was extended to the review family by #991 / PR #1005. + +Three gaps make orchestrator-side injection insufficient on its own: + +1. **`/gsd-autonomous`** delegates plan/execute/review via flat `Skill()` invocations and resolves no `agent_skills` itself — it relies on the delegated workflow's bash init running. On runtimes where `Skill()`-delegated workflow bash does not reliably execute (Cursor; assessed in #1600 / #1601 — "Phase C+D per-platform plugin skill model assessment, all N/A"), the configured skills never reach the consumer agent. +2. **GSD agent definitions** (`agents/gsd-*.md`) discover project skills via `project-skills-discovery.md` but never call `query agent-skills` for the `agent_skills` config map. +3. The gap is **invisible**: output still looks successful, so users who configure `agent_skills` in `.planning/config.json` see no error — the skills are silently ignored (same failure class as #991). + +`cmdAgentSkills` (`src/init.cts`) is read-only and idempotent — it exits 0 with an empty block when nothing is configured for a type. So an agent re-invoking it at its own init is safe and zero-overhead for unconfigured types. + +## Decision + +Adopt a **dual injection** contract. The orchestrator-side path stays as-is (no removal from the ~25 workflows); each of the 22 consumer agents *additionally* self-loads in its mandatory init step. + +- A shared reference, [`gsd-core/references/agent-skills-bootstrap.md`](../../gsd-core/references/agent-skills-bootstrap.md), owns the contract: the query, the `Read` step, the per-runtime coverage matrix, and the **dedup guard**. +- Each consumer agent file carries one self-load line naming its own type (e.g. `query agent-skills gsd-executor`) and `@`-including the shared reference. +- **Dedup guard (load-bearing):** if the agent's prompt already contains an `` block, self-load is skipped. On runtimes where orchestrator-side injection also runs (Claude Code), this prevents the prompt from carrying two copies — a real context-cost regression that the guard closes. + +### Why not orchestrator-side only (Lens A) + +Extending `autonomous.md` to resolve skills itself (the #991 pattern) fixes the *autonomous-orchestrator* gap but not the deeper one: on Cursor, the agent *definition* is what the runtime loads, and the workflow bash init is the unreliable seam. Agent-side self-load moves the resolution to the agent definition, which is the surface Cursor actually consumes. We retain the autonomous.md documentation note (the workflow no longer needs per-delegation injection) but do not duplicate injection code there. + +### Why not remove orchestrator-side injection + +The ~25 workflows' injection is the proven, tested path on Claude Code and remains the primary channel there. Removing it would regress the runtime that works today. The dual contract keeps both; the dedup guard makes coexistence cost-free. + +## Coverage + +| Skill form | Orchestrator-side | Agent self-load | +|---|---|---| +| Project-relative path | all runtimes | all runtimes | +| `global:` | all runtimes | all runtimes | +| `global::` | Claude only (Skill-tool directive) | Claude only — **not closeable on Cursor** (#1601); no plugin/Skill-tool model exists there | + +The `global:plugin:skill` gap on Cursor is **out of scope** for this ADR — it is a runtime limitation, not an injection-contract one. + +## Drift guard + +Three surfaces share the consumer-agent set: the `CONSUMER_AGENTS` list in `tests/agent-skills.test.cjs`, the agents carrying the bootstrap, and the `query agent-skills ` calls in workflows. `tests/agent-skills-bootstrap.test.cjs` asserts the bijection between `CONSUMER_AGENTS` and agents-with-bootstrap (Generative-Fix-Divergence, `CLAUDE.md`), with a `fast-check` property test over the agent file set. Any new consumer agent added without the bootstrap (or vice versa) fails CI. + +## Consequences + +- **Positive:** `agent_skills` config reaches consumer agents on every runtime regardless of orchestrator bash discipline; the `/gsd-autonomous` + Cursor path works without project-level workarounds. +- **Negative:** Two injection seams to maintain. Mitigated by the dedup guard (no double-load) and the bijection drift-guard test (no silent desync). +- **Neutral:** The documented contract in `CONFIGURATION.md` is updated to describe both paths. + +## References + +- #991 / PR #1005 — orchestrator-side injection precedent (review family) +- #1258 / #1243 / PR #1261 — cross-runtime skill mapping epic & Claude plugin-skill consumption +- #1366 / #1374 / #1400 / #1410 / #1415 / #1424 / #1425 — `agent_skills` resolver hardening (cwd-drift, diagnostics, provenance, flush) +- #1600 / #1601 — per-platform plugin skill model assessment (Cursor N/A) diff --git a/gsd-core/references/agent-skills-bootstrap.md b/gsd-core/references/agent-skills-bootstrap.md new file mode 100644 index 000000000..77413c134 --- /dev/null +++ b/gsd-core/references/agent-skills-bootstrap.md @@ -0,0 +1,60 @@ +# Agent Skills Self-Load (Bootstrap) + +> **Shared contract.** Every `agent_skills` consumer agent self-loads its configured +> skills in its mandatory init step, so a project's `.planning/config.json` +> `agent_skills.` mapping reaches the agent that actually does the work — +> even when the orchestrator did not run bash init (e.g. a runtime whose `Skill()` +> delegation does not reliably execute the delegated workflow's bash, such as Cursor; +> see open-gsd/gsd-core#1600 / #1601). This is the durable counterpart to the +> orchestrator-side injection documented under +> [Agent Skills Injection](../../docs/CONFIGURATION.md#agent-skills-injection). + +## When to run + +In your mandatory init step — right after `mandatory-initial-read.md` / the +`Project skills` discovery, before any other work. + +## Steps + +1. **Dedup guard (MANDATORY).** Look at your own prompt. If it already contains an + `` block, the orchestrator already injected one — **skip self-load + entirely.** Loading a second copy wastes context on runtimes where orchestrator-side + injection also runs (e.g. Claude Code). The guard is what keeps the two seams from + doubling the block. + +2. **Query your configured skills.** Use **your own agent type** — the `name:` value in + your frontmatter (e.g. an agent whose frontmatter says `name: gsd-executor` queries + `gsd-executor`). The query is read-only and idempotent — it exits 0 with an empty + block when nothing is configured for your type: + + ```bash + _AGENT_SKILLS=$(gsd_run query agent-skills 2>/dev/null || true) + ``` + + The runtime `gsd_run` resolver is the standard one from + `_runtime-launcher.snippet.sh`; your own init already defines it. + +3. **Read every listed skill.** The block emits entries as `@/SKILL.md` + includes — `Read` each one before starting work. If the block is empty, there is + nothing to do (zero overhead). + +## What self-load does and does not cover + +| Skill form | Self-loads? | Notes | +|---|---|---| +| Project-relative path (`skills/my-skill`) | ✅ everywhere | `Read` the `@`-include | +| Global personal (`global:`) | ✅ everywhere | resolves to the runtime global skills dir, then `Read` | +| Plugin-provided (`global::`) | Claude only | emitted as a Skill-tool directive on Claude; **skipped with a warning on all other runtimes** — the plugin/Skill-tool model has no equivalent elsewhere (#1601, #1258). Not closeable on Cursor. | + +## Notes + +- **Idempotent and read-only.** `query agent-skills` never mutates state; calling it + twice (once by the orchestrator, once by the agent) is harmless because the dedup + guard suppresses the second load. +- **No new config keys.** This reuses the existing `agent_skills` map and the existing + `buildAgentSkillsBlock` / `cmdAgentSkills` machinery (`src/init.cts`). The 22 consumer + agent types are mirrored in `tests/agent-skills.test.cjs` (`CONSUMER_AGENTS`) and + guarded against drift by `tests/agent-skills-bootstrap.test.cjs`. +- **Checkers / read-only agents.** Bash is universal across consumer agents, so + self-load works for plan-checkers, verifiers, and auditors too; the bootstrap assumes + no tool an agent lacks. diff --git a/gsd-core/workflows/autonomous.md b/gsd-core/workflows/autonomous.md index 7a9de7e26..73b33d9da 100644 --- a/gsd-core/workflows/autonomous.md +++ b/gsd-core/workflows/autonomous.md @@ -114,6 +114,8 @@ If `TO_PHASE` is set, display: `Stopping after phase ${TO_PHASE}` If `INTERACTIVE` is set, display: `Mode: Interactive (discuss inline, plan+execute inline — background on Codex only)` If `PLAN_STRATEGY` is `converge`, display: `Planning: Plan-review convergence enabled` +**Agent skills (delegated agents self-load):** This workflow delegates plan/execute/review via flat `Skill()` invocations rather than resolving `agent_skills` itself. Each consumer agent (`gsd-planner`, `gsd-executor`, `gsd-plan-checker`, `gsd-verifier`, …) self-loads its configured `.planning/config.json` `agent_skills` in its own mandatory init step per `@~/.claude/gsd-core/references/agent-skills-bootstrap.md`. This is the durable path that works on every runtime — including Cursor, where `Skill()`-delegated workflow bash init does not reliably execute. No per-delegation injection is needed here. See open-gsd/gsd-core#1866. + diff --git a/tests/agent-size-baseline.json b/tests/agent-size-baseline.json index 307170c00..6060f7b28 100644 --- a/tests/agent-size-baseline.json +++ b/tests/agent-size-baseline.json @@ -1,36 +1,36 @@ { - "gsd-advisor-researcher.md": 4603, + "gsd-advisor-researcher.md": 4693, "gsd-ai-researcher.md": 5909, - "gsd-assumptions-analyzer.md": 4556, - "gsd-code-fixer.md": 36506, - "gsd-code-reviewer.md": 16780, - "gsd-codebase-mapper.md": 21395, + "gsd-assumptions-analyzer.md": 4646, + "gsd-code-fixer.md": 36596, + "gsd-code-reviewer.md": 16870, + "gsd-codebase-mapper.md": 21485, "gsd-debug-session-manager.md": 14159, - "gsd-debugger.md": 51220, + "gsd-debugger.md": 51310, "gsd-doc-classifier.md": 7689, "gsd-doc-synthesizer.md": 9782, "gsd-doc-verifier.md": 12403, - "gsd-doc-writer.md": 38834, + "gsd-doc-writer.md": 38924, "gsd-domain-researcher.md": 6998, - "gsd-eval-auditor.md": 12362, + "gsd-eval-auditor.md": 12452, "gsd-eval-planner.md": 7008, - "gsd-executor.md": 43343, + "gsd-executor.md": 43433, "gsd-framework-selector.md": 6778, - "gsd-integration-checker.md": 15148, + "gsd-integration-checker.md": 15238, "gsd-intel-updater.md": 18122, "gsd-mempalace-curator.md": 4160, - "gsd-nyquist-auditor.md": 7255, + "gsd-nyquist-auditor.md": 7345, "gsd-pattern-mapper.md": 12487, - "gsd-phase-researcher.md": 40698, - "gsd-plan-checker.md": 44646, - "gsd-planner.md": 48023, - "gsd-project-researcher.md": 22074, - "gsd-research-synthesizer.md": 13713, - "gsd-roadmapper.md": 22183, - "gsd-security-auditor.md": 8891, - "gsd-ui-auditor.md": 17159, - "gsd-ui-checker.md": 11088, - "gsd-ui-researcher.md": 19332, + "gsd-phase-researcher.md": 40788, + "gsd-plan-checker.md": 44736, + "gsd-planner.md": 48113, + "gsd-project-researcher.md": 22164, + "gsd-research-synthesizer.md": 13803, + "gsd-roadmapper.md": 22273, + "gsd-security-auditor.md": 8981, + "gsd-ui-auditor.md": 17249, + "gsd-ui-checker.md": 11178, + "gsd-ui-researcher.md": 19422, "gsd-user-profiler.md": 8516, - "gsd-verifier.md": 49124 + "gsd-verifier.md": 49117 } diff --git a/tests/agent-skills-bootstrap.test.cjs b/tests/agent-skills-bootstrap.test.cjs new file mode 100644 index 000000000..dfd65d98f --- /dev/null +++ b/tests/agent-skills-bootstrap.test.cjs @@ -0,0 +1,124 @@ +// allow-test-rule: source-text-is-the-product see #1866 +// Agent .md files are the installed AI agents — the self-load instruction IS the deployed +// behavior. Checking text content IS checking what runs in production. Same exemption basis +// as tests/agent-skills-awareness.test.cjs (agent_skills is a config/state contract). +'use strict'; + +const { describe, test } = require('node:test'); +const assert = require('node:assert/strict'); +const fs = require('fs'); +const path = require('path'); +const fc = require('fast-check'); + +const AGENTS_DIR = path.join(__dirname, '..', 'agents'); +const REFS_DIR = path.join(__dirname, '..', 'gsd-core', 'references'); +const BOOTSTRAP_REF = 'agent-skills-bootstrap.md'; +const BOOTSTRAP_PATH = path.join(REFS_DIR, BOOTSTRAP_REF); + +// The 22 agent_skills consumer agents. This MUST stay in sync with the +// CONSUMER_AGENTS list in tests/agent-skills.test.cjs ("all 22 agent_skills +// consumer agents"). The parity test below enforces the bijection between +// this list and the set of agent files that carry the self-load bootstrap +// (Generative-Fix-Divergence guard — CLAUDE.md "Generative Fix Divergence"). +const CONSUMER_AGENTS = [ + 'gsd-advisor-researcher', + 'gsd-assumptions-analyzer', + 'gsd-code-fixer', + 'gsd-code-reviewer', + 'gsd-codebase-mapper', + 'gsd-debugger', + 'gsd-doc-writer', + 'gsd-eval-auditor', + 'gsd-executor', + 'gsd-integration-checker', + 'gsd-nyquist-auditor', + 'gsd-phase-researcher', + 'gsd-plan-checker', + 'gsd-planner', + 'gsd-project-researcher', + 'gsd-research-synthesizer', + 'gsd-roadmapper', + 'gsd-security-auditor', + 'gsd-ui-auditor', + 'gsd-ui-checker', + 'gsd-ui-researcher', + 'gsd-verifier', +]; + +function readAgent(name) { + return fs.readFileSync(path.join(AGENTS_DIR, `${name}.md`), 'utf8'); +} + +function allAgentFiles() { + return fs.readdirSync(AGENTS_DIR).filter((f) => f.endsWith('.md')); +} + +describe('agent_skills self-load bootstrap', () => { + test('bootstrap reference file exists at gsd-core/references/', () => { + assert.ok(fs.existsSync(BOOTSTRAP_PATH), `missing bootstrap reference: ${BOOTSTRAP_PATH}`); + }); + + test('bootstrap documents the dedup guard + frontmatter-name query', () => { + assert.ok(fs.existsSync(BOOTSTRAP_PATH), 'bootstrap missing'); + const content = fs.readFileSync(BOOTSTRAP_PATH, 'utf8'); + assert.ok(//.test(content), 'bootstrap must name the block'); + // Dedup guard (C2): must instruct the agent to skip self-load when the + // orchestrator already injected an block, so the prompt + // never carries two copies on runtimes where orchestrator injection runs. + assert.ok(/skip/i.test(content) && /already/i.test(content), + 'bootstrap must document the dedup guard (skip when already present)'); + // The bootstrap uses the agent's own frontmatter name as the query type — + // there is no per-agent name baked into each agent file (keeps each file + // small and the wording uniform). Assert the bootstrap says so. + assert.ok(/frontmatter/i.test(content) && /query agent-skills/i.test(content), + 'bootstrap must instruct query agent-skills using the frontmatter name'); + }); + + describe('every consumer agent carries the self-load bootstrap reference', () => { + for (const name of CONSUMER_AGENTS) { + test(`${name} @-includes the bootstrap reference`, () => { + const content = readAgent(name); + assert.ok( + content.includes(BOOTSTRAP_REF), + `${name} must @-include references/${BOOTSTRAP_REF} (self-load contract)` + ); + }); + } + }); + + test('parity: set of agents referencing the bootstrap == CONSUMER_AGENTS (bijection)', () => { + const withBootstrap = allAgentFiles() + .filter((f) => + fs.readFileSync(path.join(AGENTS_DIR, f), 'utf8').includes(BOOTSTRAP_REF)) + .map((f) => f.replace(/\.md$/, '')); + + const consumer = new Set(CONSUMER_AGENTS); + const bootstrap = new Set(withBootstrap); + const missing = [...consumer].filter((a) => !bootstrap.has(a)); + const extra = [...bootstrap].filter((a) => !consumer.has(a)); + assert.deepStrictEqual( + { missing, extra }, + { missing: [], extra: [] }, + `bootstrap presence must exactly match CONSUMER_AGENTS (Generative-Fix-Divergence)\n` + + ` missing bootstrap: ${missing.join(', ') || '(none)'}\n` + + ` extra bootstrap: ${extra.join(', ') || '(none)'}` + ); + }); + + test('property (fast-check): for any sampled agent file, bootstrap-presence iff consumer-status', () => { + const files = allAgentFiles(); + fc.assert( + fc.property(fc.shuffledSubarray(files, { minLength: 1 }), (sample) => { + for (const f of sample) { + const stem = f.replace(/\.md$/, ''); + const content = fs.readFileSync(path.join(AGENTS_DIR, f), 'utf8'); + const hasBootstrap = content.includes(BOOTSTRAP_REF); + const isConsumer = CONSUMER_AGENTS.includes(stem); + if (hasBootstrap !== isConsumer) return false; + } + return true; + }), + { numRuns: 60 } + ); + }); +}); diff --git a/tests/fixtures/golden-install-parity/antigravity.json b/tests/fixtures/golden-install-parity/antigravity.json index 9a6d91904..fb44f1a2e 100644 --- a/tests/fixtures/golden-install-parity/antigravity.json +++ b/tests/fixtures/golden-install-parity/antigravity.json @@ -1,40 +1,40 @@ { ".gsd-profile": "0e716a5fef4e6dc1", ".gsd/defaults.json": "560664b045e645cb", - "agents/gsd-advisor-researcher.md": "a281144575a6dc09", + "agents/gsd-advisor-researcher.md": "45af60c237748ee1", "agents/gsd-ai-researcher.md": "ba8898d9e739a501", - "agents/gsd-assumptions-analyzer.md": "e2e0ad497cedd460", - "agents/gsd-code-fixer.md": "5b688699cecbb3a8", - "agents/gsd-code-reviewer.md": "0d4c658a2fec15a7", - "agents/gsd-codebase-mapper.md": "e26b6aeb89836631", + "agents/gsd-assumptions-analyzer.md": "00a02fdcbaa8d833", + "agents/gsd-code-fixer.md": "d8b6c16731f3b3d0", + "agents/gsd-code-reviewer.md": "a700d295bbf110a9", + "agents/gsd-codebase-mapper.md": "afdae82284cb21b4", "agents/gsd-debug-session-manager.md": "88a3726efbc28eed", - "agents/gsd-debugger.md": "ba550c0c2f51679e", + "agents/gsd-debugger.md": "bbefb65861d9d8ef", "agents/gsd-doc-classifier.md": "6dde566846b268b0", "agents/gsd-doc-synthesizer.md": "6286afdbd9a74fe0", "agents/gsd-doc-verifier.md": "888c6ac870cb91a6", - "agents/gsd-doc-writer.md": "f1581580739a7a36", + "agents/gsd-doc-writer.md": "d4400c8dab4a9efc", "agents/gsd-domain-researcher.md": "1db46cac3f4d9889", - "agents/gsd-eval-auditor.md": "3b89138f0f573739", + "agents/gsd-eval-auditor.md": "62560f29308426d9", "agents/gsd-eval-planner.md": "3d10fd11147f6857", - "agents/gsd-executor.md": "2ddfb93dd7b80f20", + "agents/gsd-executor.md": "fc8279d68ee0acd8", "agents/gsd-framework-selector.md": "daa62c79619c76bf", - "agents/gsd-integration-checker.md": "e3f0c93ce7e93f36", + "agents/gsd-integration-checker.md": "0643cd2d779b131c", "agents/gsd-intel-updater.md": "c2a053ffbe79cc74", "agents/gsd-mempalace-curator.md": "a7269018acb973ce", - "agents/gsd-nyquist-auditor.md": "bac98abeecf6530f", + "agents/gsd-nyquist-auditor.md": "805a1404d03629f1", "agents/gsd-pattern-mapper.md": "e62ee90d39084802", - "agents/gsd-phase-researcher.md": "bbe33441c3979e75", - "agents/gsd-plan-checker.md": "20c36e148de1ba7a", - "agents/gsd-planner.md": "2c2b8eb93d8e03c1", - "agents/gsd-project-researcher.md": "b53b3e44fafe4cb0", - "agents/gsd-research-synthesizer.md": "f9cc330e679d5def", - "agents/gsd-roadmapper.md": "8c3748caf7cd57d7", - "agents/gsd-security-auditor.md": "c4913863961b0dcf", - "agents/gsd-ui-auditor.md": "f09aef81bfcfd412", - "agents/gsd-ui-checker.md": "dbbe694a26265473", - "agents/gsd-ui-researcher.md": "8c7e91c85e7099f5", + "agents/gsd-phase-researcher.md": "cbb4b284487af598", + "agents/gsd-plan-checker.md": "1db919c3b317c2e3", + "agents/gsd-planner.md": "ee43904ee3d880d7", + "agents/gsd-project-researcher.md": "6caac1da8969c8cd", + "agents/gsd-research-synthesizer.md": "50dc93f1034141ac", + "agents/gsd-roadmapper.md": "7a8465ac6d4dd29e", + "agents/gsd-security-auditor.md": "2ce13af25179dd10", + "agents/gsd-ui-auditor.md": "f777f9c7bf62788c", + "agents/gsd-ui-checker.md": "9c113a9c6b63385c", + "agents/gsd-ui-researcher.md": "3c85adc5c3f76f40", "agents/gsd-user-profiler.md": "25d65f6458454764", - "agents/gsd-verifier.md": "5902e27c7091f4b1", + "agents/gsd-verifier.md": "d2bd23b62f95a64f", "gsd-core/VERSION": "ef0deccd81a6723c", "gsd-core/bin/check-latest-version.cjs": "e4a224058c8f4d74", "gsd-core/bin/gsd-tools.cjs": "5cf26d5f9e588cf8", @@ -48,6 +48,7 @@ "gsd-core/contexts/research.md": "b3285d8e7209cc3b", "gsd-core/contexts/review.md": "dc578fdd74bbea11", "gsd-core/references/agent-contracts.md": "ff65e633c656c0d2", + "gsd-core/references/agent-skills-bootstrap.md": "51b5d0ba5b1e98d9", "gsd-core/references/ai-evals.md": "b5afa786b938671e", "gsd-core/references/ai-frameworks.md": "425dd69c629230e7", "gsd-core/references/artifact-types.md": "e176817364a7cbf4", @@ -199,7 +200,7 @@ "gsd-core/workflows/audit-fix.md": "9787a0ef00be649c", "gsd-core/workflows/audit-milestone.md": "5e73ad8112a9b9b4", "gsd-core/workflows/audit-uat.md": "777262a63dcaacdc", - "gsd-core/workflows/autonomous.md": "443c5f64043df8ae", + "gsd-core/workflows/autonomous.md": "63c2fff9373e2f2c", "gsd-core/workflows/check-todos.md": "f6a93906922dd939", "gsd-core/workflows/cleanup.md": "53aa20672fe253bd", "gsd-core/workflows/code-review-fix.md": "715d98a6ff5931e2", diff --git a/tests/fixtures/golden-install-parity/augment.json b/tests/fixtures/golden-install-parity/augment.json index 6975698bf..04a11625a 100644 --- a/tests/fixtures/golden-install-parity/augment.json +++ b/tests/fixtures/golden-install-parity/augment.json @@ -1,40 +1,40 @@ { ".gsd-profile": "0e716a5fef4e6dc1", ".gsd/defaults.json": "560664b045e645cb", - "agents/gsd-advisor-researcher.md": "7dfdadd98ec1cccc", + "agents/gsd-advisor-researcher.md": "e5be2680b690c198", "agents/gsd-ai-researcher.md": "f3baf9025a5bc4b1", - "agents/gsd-assumptions-analyzer.md": "dc5e9973ff0740d7", - "agents/gsd-code-fixer.md": "88482f4ae6550082", - "agents/gsd-code-reviewer.md": "c96795dcb3072466", - "agents/gsd-codebase-mapper.md": "57432984d78ad147", + "agents/gsd-assumptions-analyzer.md": "b3219da6b194fdef", + "agents/gsd-code-fixer.md": "2a98aadb20311108", + "agents/gsd-code-reviewer.md": "bc8a6f2e1f787ff5", + "agents/gsd-codebase-mapper.md": "85ea778ad9cf7e66", "agents/gsd-debug-session-manager.md": "69fe2698d5a997c6", - "agents/gsd-debugger.md": "6fb189777b25c9f0", + "agents/gsd-debugger.md": "97c64f1db2fe85a3", "agents/gsd-doc-classifier.md": "f61cb0fad0d4f243", "agents/gsd-doc-synthesizer.md": "043847ebefbb9b7c", "agents/gsd-doc-verifier.md": "b3433e0db51e1c60", - "agents/gsd-doc-writer.md": "ac68cddd32591ca3", + "agents/gsd-doc-writer.md": "376011bd99026bf7", "agents/gsd-domain-researcher.md": "671c9ea949889c4a", - "agents/gsd-eval-auditor.md": "5b37acd7d551a166", + "agents/gsd-eval-auditor.md": "cd2a5727472ad0ab", "agents/gsd-eval-planner.md": "a4a5b4b3f7828ba3", - "agents/gsd-executor.md": "1e64e29a5a6627e4", + "agents/gsd-executor.md": "89962f48c322e4b1", "agents/gsd-framework-selector.md": "4b77eebbe9288d80", - "agents/gsd-integration-checker.md": "f6a85843ce7160bd", + "agents/gsd-integration-checker.md": "fa53e2d78be1de74", "agents/gsd-intel-updater.md": "f8ac501c61557a17", "agents/gsd-mempalace-curator.md": "63676937f8970bf3", - "agents/gsd-nyquist-auditor.md": "4b04783b66dc87d5", + "agents/gsd-nyquist-auditor.md": "230e6667411ccf2f", "agents/gsd-pattern-mapper.md": "43c6021cf7caabfa", - "agents/gsd-phase-researcher.md": "612c14156eb2bc7e", - "agents/gsd-plan-checker.md": "9897ddeef3f85f08", - "agents/gsd-planner.md": "9a6a34c04282c471", - "agents/gsd-project-researcher.md": "d381c3efdbc90143", - "agents/gsd-research-synthesizer.md": "76913d1fefa9017e", - "agents/gsd-roadmapper.md": "33361cec9e3e0da1", - "agents/gsd-security-auditor.md": "91f42f9b3c811499", - "agents/gsd-ui-auditor.md": "fe8e959f969e7d92", - "agents/gsd-ui-checker.md": "4cf947a98db6410e", - "agents/gsd-ui-researcher.md": "3f8646572e9c3ec1", + "agents/gsd-phase-researcher.md": "e74332bb76436bc9", + "agents/gsd-plan-checker.md": "58cce5e740351df3", + "agents/gsd-planner.md": "826ead38c4c06b79", + "agents/gsd-project-researcher.md": "327c1d656be67b01", + "agents/gsd-research-synthesizer.md": "c457ba87f906d6d9", + "agents/gsd-roadmapper.md": "bb2f57695dbab32c", + "agents/gsd-security-auditor.md": "f22374cc1db28dca", + "agents/gsd-ui-auditor.md": "dcd5712e6b160a53", + "agents/gsd-ui-checker.md": "8a20715a400435f9", + "agents/gsd-ui-researcher.md": "e64ad536d309cecf", "agents/gsd-user-profiler.md": "622220df0654b6bf", - "agents/gsd-verifier.md": "4046b8d4ca23e342", + "agents/gsd-verifier.md": "40f4b7fbc3564419", "commands/gsd-add-tests.md": "3608d0cf4b515103", "commands/gsd-ai-integration-phase.md": "70843d4904743f7e", "commands/gsd-audit-fix.md": "1b805946362c4f19", @@ -117,6 +117,7 @@ "gsd-core/contexts/research.md": "b3285d8e7209cc3b", "gsd-core/contexts/review.md": "dc578fdd74bbea11", "gsd-core/references/agent-contracts.md": "ff65e633c656c0d2", + "gsd-core/references/agent-skills-bootstrap.md": "5ab875054b1adda9", "gsd-core/references/ai-evals.md": "b5afa786b938671e", "gsd-core/references/ai-frameworks.md": "f827de93dde124eb", "gsd-core/references/artifact-types.md": "a6d2e1f9453ffbf5", @@ -268,7 +269,7 @@ "gsd-core/workflows/audit-fix.md": "eaead7ea85761e5b", "gsd-core/workflows/audit-milestone.md": "fe7185bb70eafdb9", "gsd-core/workflows/audit-uat.md": "ca6f1f0ef174f793", - "gsd-core/workflows/autonomous.md": "6a69708c184ac6a7", + "gsd-core/workflows/autonomous.md": "1184e5864e201889", "gsd-core/workflows/check-todos.md": "1e3026abe782bd36", "gsd-core/workflows/cleanup.md": "5cf0772521c192a4", "gsd-core/workflows/code-review-fix.md": "b442c670f8c1fe93", diff --git a/tests/fixtures/golden-install-parity/claude.json b/tests/fixtures/golden-install-parity/claude.json index 231e8fd2e..5d9c979a3 100644 --- a/tests/fixtures/golden-install-parity/claude.json +++ b/tests/fixtures/golden-install-parity/claude.json @@ -1,39 +1,39 @@ { ".gsd-profile": "0e716a5fef4e6dc1", - "agents/gsd-advisor-researcher.md": "bfee29d91fae7482", + "agents/gsd-advisor-researcher.md": "7cdfe98e2baf606e", "agents/gsd-ai-researcher.md": "fa68db1fb2c6ee8a", - "agents/gsd-assumptions-analyzer.md": "6790335368de9256", - "agents/gsd-code-fixer.md": "0b1249729381feaa", - "agents/gsd-code-reviewer.md": "dc0f53798e7be5bf", - "agents/gsd-codebase-mapper.md": "061507e9ffa4eb98", + "agents/gsd-assumptions-analyzer.md": "f94fdd67f70b4a5d", + "agents/gsd-code-fixer.md": "78f5897024da1fcc", + "agents/gsd-code-reviewer.md": "d626a828e8de3648", + "agents/gsd-codebase-mapper.md": "8c2e9f2ce3aedf78", "agents/gsd-debug-session-manager.md": "808092282a01943f", - "agents/gsd-debugger.md": "e3911b3005058023", + "agents/gsd-debugger.md": "77b44e85f02fbec7", "agents/gsd-doc-classifier.md": "4740eb4c4f6ac294", "agents/gsd-doc-synthesizer.md": "135bbdfb9053cbd8", "agents/gsd-doc-verifier.md": "4232dcf9076e3566", - "agents/gsd-doc-writer.md": "4bc840f73065eec8", + "agents/gsd-doc-writer.md": "8cb62907c6458111", "agents/gsd-domain-researcher.md": "f8be56555689a970", - "agents/gsd-eval-auditor.md": "a8f01cf6028bb351", + "agents/gsd-eval-auditor.md": "88be0494a906eda5", "agents/gsd-eval-planner.md": "112f6730f23854e3", - "agents/gsd-executor.md": "b46c52658b58525f", + "agents/gsd-executor.md": "426f3d410f619c23", "agents/gsd-framework-selector.md": "c350ee693cb1aa4e", - "agents/gsd-integration-checker.md": "a58d2e3e8dd86496", + "agents/gsd-integration-checker.md": "c8b4e65dee89c8ea", "agents/gsd-intel-updater.md": "9fadfebd08f15244", "agents/gsd-mempalace-curator.md": "61c387c3fd9bae78", - "agents/gsd-nyquist-auditor.md": "635fe8a78cff4cd4", + "agents/gsd-nyquist-auditor.md": "0bc0cdad7b3a0013", "agents/gsd-pattern-mapper.md": "b45b5e106775bec1", - "agents/gsd-phase-researcher.md": "c4e3719ee6b48cbd", - "agents/gsd-plan-checker.md": "6de9fa5a3e560fdf", - "agents/gsd-planner.md": "8c7db54ca9fe4ddb", - "agents/gsd-project-researcher.md": "09d8937aac2ee4be", - "agents/gsd-research-synthesizer.md": "4e93a673dd201b11", - "agents/gsd-roadmapper.md": "ae1a13e63babc134", - "agents/gsd-security-auditor.md": "9490f73c1434f91b", - "agents/gsd-ui-auditor.md": "00b1f627ae48d783", - "agents/gsd-ui-checker.md": "dd06843892f6b0c8", - "agents/gsd-ui-researcher.md": "85d7d6cc36388435", + "agents/gsd-phase-researcher.md": "5199acbf1770da2e", + "agents/gsd-plan-checker.md": "a5b4e7222feef68f", + "agents/gsd-planner.md": "7c2ae8b93b81cea4", + "agents/gsd-project-researcher.md": "3e94e963ccd268ae", + "agents/gsd-research-synthesizer.md": "f18c06f041f7a775", + "agents/gsd-roadmapper.md": "8a7f1f1256a6aed5", + "agents/gsd-security-auditor.md": "4f9fc3f654af4944", + "agents/gsd-ui-auditor.md": "40c0dcc15bcfb9fb", + "agents/gsd-ui-checker.md": "6e94b43fd459e10e", + "agents/gsd-ui-researcher.md": "02c2d7582e8bbc44", "agents/gsd-user-profiler.md": "003276f85792cfda", - "agents/gsd-verifier.md": "76bcf41aa9fd9b53", + "agents/gsd-verifier.md": "d62ffb1f520520c0", "gsd-core/VERSION": "ef0deccd81a6723c", "gsd-core/bin/check-latest-version.cjs": "e4a224058c8f4d74", "gsd-core/bin/gsd-tools.cjs": "74594e8bf36e5580", @@ -47,6 +47,7 @@ "gsd-core/contexts/research.md": "b3285d8e7209cc3b", "gsd-core/contexts/review.md": "dc578fdd74bbea11", "gsd-core/references/agent-contracts.md": "ff65e633c656c0d2", + "gsd-core/references/agent-skills-bootstrap.md": "5ab875054b1adda9", "gsd-core/references/ai-evals.md": "b5afa786b938671e", "gsd-core/references/ai-frameworks.md": "f827de93dde124eb", "gsd-core/references/artifact-types.md": "8bd01fd75a2ba70e", @@ -198,7 +199,7 @@ "gsd-core/workflows/audit-fix.md": "eaead7ea85761e5b", "gsd-core/workflows/audit-milestone.md": "5e9a35af57344e04", "gsd-core/workflows/audit-uat.md": "69dbdec25cae2f12", - "gsd-core/workflows/autonomous.md": "62d751d0fe6f14bc", + "gsd-core/workflows/autonomous.md": "69f12f004f1233a4", "gsd-core/workflows/check-todos.md": "fa637b6cc9be647c", "gsd-core/workflows/cleanup.md": "5cf0772521c192a4", "gsd-core/workflows/code-review-fix.md": "a416c764425cbb61", diff --git a/tests/fixtures/golden-install-parity/cline.json b/tests/fixtures/golden-install-parity/cline.json index 6c2890f3e..0110d7b73 100644 --- a/tests/fixtures/golden-install-parity/cline.json +++ b/tests/fixtures/golden-install-parity/cline.json @@ -4,40 +4,40 @@ ".clinerules/hooks/PreToolUse": "7271c83ab8a80911", ".gsd-profile": "0e716a5fef4e6dc1", ".gsd/defaults.json": "560664b045e645cb", - "agents/gsd-advisor-researcher.md": "7dfdadd98ec1cccc", + "agents/gsd-advisor-researcher.md": "e5be2680b690c198", "agents/gsd-ai-researcher.md": "49ebcbe6985b86c9", - "agents/gsd-assumptions-analyzer.md": "dc5e9973ff0740d7", - "agents/gsd-code-fixer.md": "b62fa87001d3cf5a", - "agents/gsd-code-reviewer.md": "f99a29f8982b8b51", - "agents/gsd-codebase-mapper.md": "3051a6f4183fe312", + "agents/gsd-assumptions-analyzer.md": "b3219da6b194fdef", + "agents/gsd-code-fixer.md": "353b89de3bbb4737", + "agents/gsd-code-reviewer.md": "e5ec12d4d409e800", + "agents/gsd-codebase-mapper.md": "e5b7941bdda53c91", "agents/gsd-debug-session-manager.md": "fc39ba45364ee4fd", - "agents/gsd-debugger.md": "fe69ba5bf548ccaa", + "agents/gsd-debugger.md": "dc92b6a909139c62", "agents/gsd-doc-classifier.md": "f7c361b91cc71a15", "agents/gsd-doc-synthesizer.md": "f4e6ca19363e4b0f", "agents/gsd-doc-verifier.md": "b60290c9d9f6d8d2", - "agents/gsd-doc-writer.md": "b0e9c568797e254a", + "agents/gsd-doc-writer.md": "27655a8cfdeb97ee", "agents/gsd-domain-researcher.md": "0fecdaea86466a56", - "agents/gsd-eval-auditor.md": "8d09ffc9c7659c5e", + "agents/gsd-eval-auditor.md": "90b5d1909977df61", "agents/gsd-eval-planner.md": "3ddea88a69b4da3f", - "agents/gsd-executor.md": "c6debb092b85f6fe", + "agents/gsd-executor.md": "765e9764af71bcda", "agents/gsd-framework-selector.md": "564669d479433f15", - "agents/gsd-integration-checker.md": "3d9a78f08e4782ff", + "agents/gsd-integration-checker.md": "1bbbdd3d420b994e", "agents/gsd-intel-updater.md": "b084fd8df5f13f2a", "agents/gsd-mempalace-curator.md": "63676937f8970bf3", - "agents/gsd-nyquist-auditor.md": "80b109317fa4b60e", + "agents/gsd-nyquist-auditor.md": "4f9bba7b9762835d", "agents/gsd-pattern-mapper.md": "b526065fd2efa19c", - "agents/gsd-phase-researcher.md": "4c08ebba29e6e3f3", - "agents/gsd-plan-checker.md": "914d727ddc4cf8d9", - "agents/gsd-planner.md": "1011d56c5f9d1bf4", - "agents/gsd-project-researcher.md": "0028e4e6e66ad2b2", - "agents/gsd-research-synthesizer.md": "3bfa11826d592a32", - "agents/gsd-roadmapper.md": "2b86616f59bbeca2", - "agents/gsd-security-auditor.md": "297a35752df57ebd", - "agents/gsd-ui-auditor.md": "dc3af368e2f85abb", - "agents/gsd-ui-checker.md": "35a6b14813aa03ff", - "agents/gsd-ui-researcher.md": "878c7d0e82fa861a", + "agents/gsd-phase-researcher.md": "56b77237e2d044bb", + "agents/gsd-plan-checker.md": "3a2bc105b4220859", + "agents/gsd-planner.md": "5a3e05392dbfce2f", + "agents/gsd-project-researcher.md": "5a9192efdc45fd11", + "agents/gsd-research-synthesizer.md": "4b9faffa7936b36c", + "agents/gsd-roadmapper.md": "bbb23d3097911516", + "agents/gsd-security-auditor.md": "c35c8ec2f85b331f", + "agents/gsd-ui-auditor.md": "9338efa31b9b7b99", + "agents/gsd-ui-checker.md": "6ed8cd036613da1c", + "agents/gsd-ui-researcher.md": "7496c0d22e818603", "agents/gsd-user-profiler.md": "622220df0654b6bf", - "agents/gsd-verifier.md": "0a437cf3ed90693f", + "agents/gsd-verifier.md": "5645dfb20b787f01", "gsd-core/VERSION": "ef0deccd81a6723c", "gsd-core/bin/check-latest-version.cjs": "e4a224058c8f4d74", "gsd-core/bin/gsd-tools.cjs": "74594e8bf36e5580", @@ -51,6 +51,7 @@ "gsd-core/contexts/research.md": "b3285d8e7209cc3b", "gsd-core/contexts/review.md": "dc578fdd74bbea11", "gsd-core/references/agent-contracts.md": "ff65e633c656c0d2", + "gsd-core/references/agent-skills-bootstrap.md": "59f782556e4e611f", "gsd-core/references/ai-evals.md": "b5afa786b938671e", "gsd-core/references/ai-frameworks.md": "f827de93dde124eb", "gsd-core/references/artifact-types.md": "a6d2e1f9453ffbf5", @@ -202,7 +203,7 @@ "gsd-core/workflows/audit-fix.md": "85a83f15012e220d", "gsd-core/workflows/audit-milestone.md": "7e68a0d33382fbca", "gsd-core/workflows/audit-uat.md": "2ab2975014fbb210", - "gsd-core/workflows/autonomous.md": "c4d9da6056aeb782", + "gsd-core/workflows/autonomous.md": "cf705fcbc207e84a", "gsd-core/workflows/check-todos.md": "ab6239efbf42077b", "gsd-core/workflows/cleanup.md": "869f953fb25e57a7", "gsd-core/workflows/code-review-fix.md": "40d723ec1c6b45d1", diff --git a/tests/fixtures/golden-install-parity/codebuddy.json b/tests/fixtures/golden-install-parity/codebuddy.json index fe0ef19df..93329c034 100644 --- a/tests/fixtures/golden-install-parity/codebuddy.json +++ b/tests/fixtures/golden-install-parity/codebuddy.json @@ -1,40 +1,40 @@ { ".gsd-profile": "0e716a5fef4e6dc1", ".gsd/defaults.json": "560664b045e645cb", - "agents/gsd-advisor-researcher.md": "7dfdadd98ec1cccc", + "agents/gsd-advisor-researcher.md": "e5be2680b690c198", "agents/gsd-ai-researcher.md": "93ca6e24f4fd3681", - "agents/gsd-assumptions-analyzer.md": "dc5e9973ff0740d7", - "agents/gsd-code-fixer.md": "645c70ed0155f7c4", - "agents/gsd-code-reviewer.md": "372137acc4155b5f", - "agents/gsd-codebase-mapper.md": "7e2293c462389be3", + "agents/gsd-assumptions-analyzer.md": "b3219da6b194fdef", + "agents/gsd-code-fixer.md": "2230fda7f06a3906", + "agents/gsd-code-reviewer.md": "5342fcc0da974696", + "agents/gsd-codebase-mapper.md": "b995bf01af0193d2", "agents/gsd-debug-session-manager.md": "d7c0e160cbf76c68", - "agents/gsd-debugger.md": "f1936c442c12bf30", + "agents/gsd-debugger.md": "fdf0aee402605636", "agents/gsd-doc-classifier.md": "095e804a82f4a47f", "agents/gsd-doc-synthesizer.md": "2a78fe239d00389c", "agents/gsd-doc-verifier.md": "e74d930905a782ea", - "agents/gsd-doc-writer.md": "9a9e66be3981411a", + "agents/gsd-doc-writer.md": "ed5678dd38c83716", "agents/gsd-domain-researcher.md": "1c1a800108a2b225", - "agents/gsd-eval-auditor.md": "380ed8b15f07a680", + "agents/gsd-eval-auditor.md": "3d3e9336c01e90fe", "agents/gsd-eval-planner.md": "4ebdd7fe9cbb0cfe", - "agents/gsd-executor.md": "11e5d8ae52c08196", + "agents/gsd-executor.md": "0ccab15e5ef8f0be", "agents/gsd-framework-selector.md": "7726fccc86bfeb50", - "agents/gsd-integration-checker.md": "239c6bbd19c6895b", + "agents/gsd-integration-checker.md": "2d8339790bbb2dc3", "agents/gsd-intel-updater.md": "ec317a56d4abc4d3", "agents/gsd-mempalace-curator.md": "63676937f8970bf3", - "agents/gsd-nyquist-auditor.md": "50cee88d38c797a3", + "agents/gsd-nyquist-auditor.md": "42676eea063d2ec5", "agents/gsd-pattern-mapper.md": "92cfa2e6c2a06bf3", - "agents/gsd-phase-researcher.md": "3d1aa51cbea008e7", - "agents/gsd-plan-checker.md": "f747da9c3126c918", - "agents/gsd-planner.md": "04a0281878973985", - "agents/gsd-project-researcher.md": "78294b9bb8bbbd42", - "agents/gsd-research-synthesizer.md": "d75fb540f0e01f08", - "agents/gsd-roadmapper.md": "956125a1f6774aae", - "agents/gsd-security-auditor.md": "6401d8f6f966ac2d", - "agents/gsd-ui-auditor.md": "a2730bb158f93cd4", - "agents/gsd-ui-checker.md": "68ee3eb209c9f0d6", - "agents/gsd-ui-researcher.md": "507ed07fc9ba7d33", + "agents/gsd-phase-researcher.md": "09657cecf0374c21", + "agents/gsd-plan-checker.md": "ad4ff5b285bffd57", + "agents/gsd-planner.md": "7573900da2449268", + "agents/gsd-project-researcher.md": "defda280dac420e7", + "agents/gsd-research-synthesizer.md": "6c3b691dba5395c6", + "agents/gsd-roadmapper.md": "20b69eff61a7a9fa", + "agents/gsd-security-auditor.md": "d3b8f44034a76c9d", + "agents/gsd-ui-auditor.md": "a26bbc733817959b", + "agents/gsd-ui-checker.md": "30aa8e8efa880bd0", + "agents/gsd-ui-researcher.md": "e1faa0ad884633ba", "agents/gsd-user-profiler.md": "622220df0654b6bf", - "agents/gsd-verifier.md": "b3983159ba46fcbf", + "agents/gsd-verifier.md": "1f0f65332e5fbbf8", "commands/gsd-add-tests.md": "aa65032141557fb7", "commands/gsd-ai-integration-phase.md": "373053d7cd887aa9", "commands/gsd-audit-fix.md": "c21ef925131fade7", @@ -117,6 +117,7 @@ "gsd-core/contexts/research.md": "b3285d8e7209cc3b", "gsd-core/contexts/review.md": "dc578fdd74bbea11", "gsd-core/references/agent-contracts.md": "ff65e633c656c0d2", + "gsd-core/references/agent-skills-bootstrap.md": "5ab875054b1adda9", "gsd-core/references/ai-evals.md": "b5afa786b938671e", "gsd-core/references/ai-frameworks.md": "f827de93dde124eb", "gsd-core/references/artifact-types.md": "a6d2e1f9453ffbf5", @@ -268,7 +269,7 @@ "gsd-core/workflows/audit-fix.md": "eaead7ea85761e5b", "gsd-core/workflows/audit-milestone.md": "fe7185bb70eafdb9", "gsd-core/workflows/audit-uat.md": "ca6f1f0ef174f793", - "gsd-core/workflows/autonomous.md": "6a69708c184ac6a7", + "gsd-core/workflows/autonomous.md": "1184e5864e201889", "gsd-core/workflows/check-todos.md": "1e3026abe782bd36", "gsd-core/workflows/cleanup.md": "5cf0772521c192a4", "gsd-core/workflows/code-review-fix.md": "b442c670f8c1fe93", diff --git a/tests/fixtures/golden-install-parity/codex.json b/tests/fixtures/golden-install-parity/codex.json index 2350487c5..346834c7a 100644 --- a/tests/fixtures/golden-install-parity/codex.json +++ b/tests/fixtures/golden-install-parity/codex.json @@ -1,74 +1,74 @@ { ".gsd-profile": "0e716a5fef4e6dc1", ".gsd/defaults.json": "560664b045e645cb", - "agents/gsd-advisor-researcher.md": "08c87f08c10f9fe8", - "agents/gsd-advisor-researcher.toml": "fff34ae5730d3925", + "agents/gsd-advisor-researcher.md": "3995e081531dd043", + "agents/gsd-advisor-researcher.toml": "144f037c79aa9c26", "agents/gsd-ai-researcher.md": "9deaf29ae170faff", "agents/gsd-ai-researcher.toml": "5a16e952628fdeb0", - "agents/gsd-assumptions-analyzer.md": "90b8d8021543a3d2", - "agents/gsd-assumptions-analyzer.toml": "058cfdb3f9bd0ef2", - "agents/gsd-code-fixer.md": "3d41cafa29f1288d", - "agents/gsd-code-fixer.toml": "7e5727b2950d8b66", - "agents/gsd-code-reviewer.md": "ecd9b3a7a4f6de8e", - "agents/gsd-code-reviewer.toml": "bf69f37605310411", - "agents/gsd-codebase-mapper.md": "4c7b89630170e50c", - "agents/gsd-codebase-mapper.toml": "aad6b8ef6039aca7", + "agents/gsd-assumptions-analyzer.md": "21ee3cd4095f7cf8", + "agents/gsd-assumptions-analyzer.toml": "9460360826f33ab1", + "agents/gsd-code-fixer.md": "2b98fffbdf9484b8", + "agents/gsd-code-fixer.toml": "04266b0cb2978cfb", + "agents/gsd-code-reviewer.md": "854d93fb1e91fca4", + "agents/gsd-code-reviewer.toml": "66420d6e6ffd14eb", + "agents/gsd-codebase-mapper.md": "cf8f8550b44aec35", + "agents/gsd-codebase-mapper.toml": "a4609f3ac66c2081", "agents/gsd-debug-session-manager.md": "a4433f8cac0ae81c", "agents/gsd-debug-session-manager.toml": "8b45a8660607e1ae", - "agents/gsd-debugger.md": "3b039fd7673e02d3", - "agents/gsd-debugger.toml": "1a0752ab636ae3b2", + "agents/gsd-debugger.md": "7ee37c67fb1becbe", + "agents/gsd-debugger.toml": "0824394ba49b977f", "agents/gsd-doc-classifier.md": "0ee2bcb95b247ef8", "agents/gsd-doc-classifier.toml": "8b94b5c8b02c133a", "agents/gsd-doc-synthesizer.md": "2a3fbfce6cf5e671", "agents/gsd-doc-synthesizer.toml": "823930fa132ce21b", "agents/gsd-doc-verifier.md": "42d07e55a2e571ce", "agents/gsd-doc-verifier.toml": "c0b7ac150730b954", - "agents/gsd-doc-writer.md": "04f7c8d02df44244", - "agents/gsd-doc-writer.toml": "07e6ee2d0c308a7c", + "agents/gsd-doc-writer.md": "0a3557268f169722", + "agents/gsd-doc-writer.toml": "d21d67f9ba074156", "agents/gsd-domain-researcher.md": "bafef7d698ccb928", "agents/gsd-domain-researcher.toml": "a49ddec9005b4bf5", - "agents/gsd-eval-auditor.md": "e3073afb63f67657", - "agents/gsd-eval-auditor.toml": "e67cf6a252b7bcd3", + "agents/gsd-eval-auditor.md": "0e3aa386f7eb654f", + "agents/gsd-eval-auditor.toml": "531377421cf4f8f8", "agents/gsd-eval-planner.md": "73f2ad2ff2797a51", "agents/gsd-eval-planner.toml": "09468ad1a34ac468", - "agents/gsd-executor.md": "1eb8527fd57aad12", - "agents/gsd-executor.toml": "d18b3f8577d3bbbc", + "agents/gsd-executor.md": "02615587b68428f2", + "agents/gsd-executor.toml": "ff4c05dd572de82b", "agents/gsd-framework-selector.md": "ebae32430887d2e0", "agents/gsd-framework-selector.toml": "637e4e021b7ec380", - "agents/gsd-integration-checker.md": "6670fb75b8c87ff7", - "agents/gsd-integration-checker.toml": "233a924946673207", + "agents/gsd-integration-checker.md": "9cc875676cf7d741", + "agents/gsd-integration-checker.toml": "53f3cfac6fbd6447", "agents/gsd-intel-updater.md": "097c1a4b90b28ba0", "agents/gsd-intel-updater.toml": "07f8098bd5e0e65e", "agents/gsd-mempalace-curator.md": "159f24243bf3acfb", "agents/gsd-mempalace-curator.toml": "30bcaf1ca0b926db", - "agents/gsd-nyquist-auditor.md": "54160990e73c205d", - "agents/gsd-nyquist-auditor.toml": "fd27a7a7c5e79f50", + "agents/gsd-nyquist-auditor.md": "554dbb4a01760a9d", + "agents/gsd-nyquist-auditor.toml": "b3d7214b42fb67fa", "agents/gsd-pattern-mapper.md": "efbcfa7c5de4027f", "agents/gsd-pattern-mapper.toml": "48a17baa3d7d142c", - "agents/gsd-phase-researcher.md": "b86a0a50667adb08", - "agents/gsd-phase-researcher.toml": "c6e22db2fc92789a", - "agents/gsd-plan-checker.md": "41056ff7b3009633", - "agents/gsd-plan-checker.toml": "aa452ed8c4ae585f", - "agents/gsd-planner.md": "975d25062341bb78", - "agents/gsd-planner.toml": "d1436204f6ed4701", - "agents/gsd-project-researcher.md": "06ae50c62d4b826e", - "agents/gsd-project-researcher.toml": "10effe5cac601065", - "agents/gsd-research-synthesizer.md": "befa4887698e4aae", - "agents/gsd-research-synthesizer.toml": "4b3e626d3c16094f", - "agents/gsd-roadmapper.md": "cb10c3a3dc2340ad", - "agents/gsd-roadmapper.toml": "a9765ce5fa9e8121", - "agents/gsd-security-auditor.md": "91a3d5c406e49965", - "agents/gsd-security-auditor.toml": "61b0622381966c0e", - "agents/gsd-ui-auditor.md": "d59452c406406811", - "agents/gsd-ui-auditor.toml": "4979cd66a16e3f2b", - "agents/gsd-ui-checker.md": "5d11e1c7cf9b539e", - "agents/gsd-ui-checker.toml": "ec6b8919fd153ae3", - "agents/gsd-ui-researcher.md": "129a5f325546260f", - "agents/gsd-ui-researcher.toml": "ffe2ca0b232df3df", + "agents/gsd-phase-researcher.md": "d34ec667b611aa51", + "agents/gsd-phase-researcher.toml": "da31585e405a30e7", + "agents/gsd-plan-checker.md": "3f282936630b20d2", + "agents/gsd-plan-checker.toml": "2d5ec87349e4af25", + "agents/gsd-planner.md": "179f4a6e8d1ab77c", + "agents/gsd-planner.toml": "1f28070c37c44060", + "agents/gsd-project-researcher.md": "6bba76aaa1afa85d", + "agents/gsd-project-researcher.toml": "b727993c5d18f584", + "agents/gsd-research-synthesizer.md": "2f99bfaa351236e3", + "agents/gsd-research-synthesizer.toml": "bab1d2e3848c1c91", + "agents/gsd-roadmapper.md": "e15d82d7781dbff3", + "agents/gsd-roadmapper.toml": "0b17f618eafe9be8", + "agents/gsd-security-auditor.md": "a4008a6b1d01833b", + "agents/gsd-security-auditor.toml": "42f529475bd28c22", + "agents/gsd-ui-auditor.md": "abbf560bc8d5069c", + "agents/gsd-ui-auditor.toml": "5e9dd62a12a16a1e", + "agents/gsd-ui-checker.md": "bf7bf8cc301c65a1", + "agents/gsd-ui-checker.toml": "d0a084e82a9ae52d", + "agents/gsd-ui-researcher.md": "1f19197bcf8385a8", + "agents/gsd-ui-researcher.toml": "48032d9873cc82f7", "agents/gsd-user-profiler.md": "1bf5033c929181c1", "agents/gsd-user-profiler.toml": "b9c244bb8fbf8140", - "agents/gsd-verifier.md": "3471118de7e985c7", - "agents/gsd-verifier.toml": "68f4dcc6c0311e00", + "agents/gsd-verifier.md": "7c616980dbe8a81a", + "agents/gsd-verifier.toml": "c994bfe9f1379872", "config.toml": "a34316b9ac61a620", "gsd-core/VERSION": "ef0deccd81a6723c", "gsd-core/bin/check-latest-version.cjs": "e4a224058c8f4d74", @@ -83,6 +83,7 @@ "gsd-core/contexts/research.md": "b3285d8e7209cc3b", "gsd-core/contexts/review.md": "dc578fdd74bbea11", "gsd-core/references/agent-contracts.md": "ff65e633c656c0d2", + "gsd-core/references/agent-skills-bootstrap.md": "51b5d0ba5b1e98d9", "gsd-core/references/ai-evals.md": "b5afa786b938671e", "gsd-core/references/ai-frameworks.md": "425dd69c629230e7", "gsd-core/references/artifact-types.md": "3218cafb0c92dc32", @@ -234,7 +235,7 @@ "gsd-core/workflows/audit-fix.md": "eaead7ea85761e5b", "gsd-core/workflows/audit-milestone.md": "28afeeab183e254f", "gsd-core/workflows/audit-uat.md": "b3b503e9f80dc9f5", - "gsd-core/workflows/autonomous.md": "b371d3c2ccaa0f42", + "gsd-core/workflows/autonomous.md": "b6a3fba06ebef11f", "gsd-core/workflows/check-todos.md": "d847aa758e18d698", "gsd-core/workflows/cleanup.md": "b990139192ab7c08", "gsd-core/workflows/code-review-fix.md": "3311f5fa61f8a90b", diff --git a/tests/fixtures/golden-install-parity/copilot.json b/tests/fixtures/golden-install-parity/copilot.json index 2f6fb144d..a53c65c59 100644 --- a/tests/fixtures/golden-install-parity/copilot.json +++ b/tests/fixtures/golden-install-parity/copilot.json @@ -1,40 +1,40 @@ { ".gsd-profile": "0e716a5fef4e6dc1", ".gsd/defaults.json": "560664b045e645cb", - "agents/gsd-advisor-researcher.agent.md": "0cd523fc827d40fd", + "agents/gsd-advisor-researcher.agent.md": "ecd72019cd5634c4", "agents/gsd-ai-researcher.agent.md": "65c846c74f17a74b", - "agents/gsd-assumptions-analyzer.agent.md": "2d812e0bb0a04885", - "agents/gsd-code-fixer.agent.md": "32434a73c367faec", - "agents/gsd-code-reviewer.agent.md": "a0f0b6eafca6cf05", - "agents/gsd-codebase-mapper.agent.md": "c0d3dfa3fd9d3d8b", + "agents/gsd-assumptions-analyzer.agent.md": "cdabed4777a842fe", + "agents/gsd-code-fixer.agent.md": "5a2e0c49f3bb49b4", + "agents/gsd-code-reviewer.agent.md": "fa1e7c421c78eae1", + "agents/gsd-codebase-mapper.agent.md": "949bc73f2a7ea44d", "agents/gsd-debug-session-manager.agent.md": "dcfe78dafab52ae8", - "agents/gsd-debugger.agent.md": "0f7931c3e5c9f03c", + "agents/gsd-debugger.agent.md": "86512dfcc01a26ff", "agents/gsd-doc-classifier.agent.md": "c5025847cf6f968a", "agents/gsd-doc-synthesizer.agent.md": "16cebf04d8998356", "agents/gsd-doc-verifier.agent.md": "0230208ae7ab1a08", - "agents/gsd-doc-writer.agent.md": "a5aba58ecf1a6870", + "agents/gsd-doc-writer.agent.md": "37ea4932a4b80355", "agents/gsd-domain-researcher.agent.md": "b06738b093df1cb9", - "agents/gsd-eval-auditor.agent.md": "6a7c7662aeb002a0", + "agents/gsd-eval-auditor.agent.md": "b30590bbf86d755d", "agents/gsd-eval-planner.agent.md": "14751876fc2b5f16", - "agents/gsd-executor.agent.md": "2ace688fe21cb778", + "agents/gsd-executor.agent.md": "e7a796fd01443ad6", "agents/gsd-framework-selector.agent.md": "cafeec0b3489be45", - "agents/gsd-integration-checker.agent.md": "f962228d14a39fd1", + "agents/gsd-integration-checker.agent.md": "30439b804927acc7", "agents/gsd-intel-updater.agent.md": "21ea4bd0bb45cc2f", "agents/gsd-mempalace-curator.agent.md": "bbb2c654e8fbf8fb", - "agents/gsd-nyquist-auditor.agent.md": "f90fdd2c63936a90", + "agents/gsd-nyquist-auditor.agent.md": "6463a50d90ada125", "agents/gsd-pattern-mapper.agent.md": "b1f488b0fa6a2395", - "agents/gsd-phase-researcher.agent.md": "a18855397c24b86d", - "agents/gsd-plan-checker.agent.md": "f425e78f7eaf2cfe", - "agents/gsd-planner.agent.md": "d67b2cf058055a82", - "agents/gsd-project-researcher.agent.md": "9cd4739389195a5f", - "agents/gsd-research-synthesizer.agent.md": "0ce237545afd492f", - "agents/gsd-roadmapper.agent.md": "03c946e0acc5d6b7", - "agents/gsd-security-auditor.agent.md": "8f858bb272471d04", - "agents/gsd-ui-auditor.agent.md": "d15ec6632ca12699", - "agents/gsd-ui-checker.agent.md": "4e46f787d6420062", - "agents/gsd-ui-researcher.agent.md": "9dd2acff7b24230e", + "agents/gsd-phase-researcher.agent.md": "27882fb95b2e4b4a", + "agents/gsd-plan-checker.agent.md": "f59df0a7c77e3853", + "agents/gsd-planner.agent.md": "9a1a6fe5c2aabab6", + "agents/gsd-project-researcher.agent.md": "5201a4a17353dbac", + "agents/gsd-research-synthesizer.agent.md": "85449c6adf0cae4f", + "agents/gsd-roadmapper.agent.md": "322048cf8ddcb4e5", + "agents/gsd-security-auditor.agent.md": "6f6a88b35dc2a24b", + "agents/gsd-ui-auditor.agent.md": "92f50549e84ef482", + "agents/gsd-ui-checker.agent.md": "c9958f2587b24156", + "agents/gsd-ui-researcher.agent.md": "8af4f969852166d1", "agents/gsd-user-profiler.agent.md": "ae16a248e18dd42b", - "agents/gsd-verifier.agent.md": "6fe2c4f008ebfa22", + "agents/gsd-verifier.agent.md": "ad067649b80e65dc", "copilot-instructions.md": "1fb04111759f1645", "gsd-core/VERSION": "ef0deccd81a6723c", "gsd-core/bin/check-latest-version.cjs": "e4a224058c8f4d74", @@ -49,6 +49,7 @@ "gsd-core/contexts/research.md": "b3285d8e7209cc3b", "gsd-core/contexts/review.md": "dc578fdd74bbea11", "gsd-core/references/agent-contracts.md": "ff65e633c656c0d2", + "gsd-core/references/agent-skills-bootstrap.md": "51b5d0ba5b1e98d9", "gsd-core/references/ai-evals.md": "b5afa786b938671e", "gsd-core/references/ai-frameworks.md": "425dd69c629230e7", "gsd-core/references/artifact-types.md": "f992de8b2b1a4420", @@ -200,7 +201,7 @@ "gsd-core/workflows/audit-fix.md": "bd88277e075ec47f", "gsd-core/workflows/audit-milestone.md": "3c1624402b54073d", "gsd-core/workflows/audit-uat.md": "eccd8feb247425b0", - "gsd-core/workflows/autonomous.md": "44ba4186752758c0", + "gsd-core/workflows/autonomous.md": "9a91017ca1ccbaf1", "gsd-core/workflows/check-todos.md": "4cdc0f448c772fbf", "gsd-core/workflows/cleanup.md": "a67cfbd98eca5b86", "gsd-core/workflows/code-review-fix.md": "84d5f91b2856a1f2", diff --git a/tests/fixtures/golden-install-parity/cursor.json b/tests/fixtures/golden-install-parity/cursor.json index 85475bf29..b1a2a8264 100644 --- a/tests/fixtures/golden-install-parity/cursor.json +++ b/tests/fixtures/golden-install-parity/cursor.json @@ -1,40 +1,40 @@ { ".gsd-profile": "0e716a5fef4e6dc1", ".gsd/defaults.json": "560664b045e645cb", - "agents/gsd-advisor-researcher.md": "7dfdadd98ec1cccc", + "agents/gsd-advisor-researcher.md": "e5be2680b690c198", "agents/gsd-ai-researcher.md": "abfc97706f16aaaf", - "agents/gsd-assumptions-analyzer.md": "dc5e9973ff0740d7", - "agents/gsd-code-fixer.md": "d5ccf417e00a2a30", - "agents/gsd-code-reviewer.md": "208cc79888f4afc3", - "agents/gsd-codebase-mapper.md": "a1930b15964fb5dc", + "agents/gsd-assumptions-analyzer.md": "b3219da6b194fdef", + "agents/gsd-code-fixer.md": "d2f341335c66c524", + "agents/gsd-code-reviewer.md": "f29d6edbac0a01b6", + "agents/gsd-codebase-mapper.md": "d49c91fdab4efc70", "agents/gsd-debug-session-manager.md": "b5ea52be3681f202", - "agents/gsd-debugger.md": "de22db5ea3c6dc40", + "agents/gsd-debugger.md": "a5eb6f3a2e90c7fb", "agents/gsd-doc-classifier.md": "5807f1f7cfa40c42", "agents/gsd-doc-synthesizer.md": "0897098024c17ccd", "agents/gsd-doc-verifier.md": "9934ec11845d41c3", - "agents/gsd-doc-writer.md": "9569af1e7da67c7a", + "agents/gsd-doc-writer.md": "73b55c50c0a6bd61", "agents/gsd-domain-researcher.md": "56395dbdabf076f6", - "agents/gsd-eval-auditor.md": "fedfa9dacc1a710c", + "agents/gsd-eval-auditor.md": "4910c64c0c2d14d5", "agents/gsd-eval-planner.md": "2049dac060d00eda", - "agents/gsd-executor.md": "eac0eacad4443ec2", + "agents/gsd-executor.md": "b9c28781b6ed98ac", "agents/gsd-framework-selector.md": "4b77eebbe9288d80", - "agents/gsd-integration-checker.md": "cc0411b5ccc430f5", + "agents/gsd-integration-checker.md": "5da30584d06b878c", "agents/gsd-intel-updater.md": "7f509a2fb5acb0fe", "agents/gsd-mempalace-curator.md": "63676937f8970bf3", - "agents/gsd-nyquist-auditor.md": "f8a86a8bcdbb1a5d", + "agents/gsd-nyquist-auditor.md": "e18b0209cea56a2e", "agents/gsd-pattern-mapper.md": "1229c215677f740d", - "agents/gsd-phase-researcher.md": "e0002e198c1b927e", - "agents/gsd-plan-checker.md": "7a86d4b29de90549", - "agents/gsd-planner.md": "a83fd27f2d1fee34", - "agents/gsd-project-researcher.md": "e2f0675c872e369b", - "agents/gsd-research-synthesizer.md": "78dc4c71aed61878", - "agents/gsd-roadmapper.md": "9522c4b2ecc008ae", - "agents/gsd-security-auditor.md": "4980804a2e09047a", - "agents/gsd-ui-auditor.md": "a4f174ae28efc879", - "agents/gsd-ui-checker.md": "66b380ffcdfec7b5", - "agents/gsd-ui-researcher.md": "fe237aa42ccd9ad2", + "agents/gsd-phase-researcher.md": "ea4e3a03cd0ece30", + "agents/gsd-plan-checker.md": "0f7794651b1d8dba", + "agents/gsd-planner.md": "24fb0a6b37560086", + "agents/gsd-project-researcher.md": "b21a16c82741f50f", + "agents/gsd-research-synthesizer.md": "05177de6f4102b0f", + "agents/gsd-roadmapper.md": "d28e7d4bac46dde2", + "agents/gsd-security-auditor.md": "5ff44ee432387d93", + "agents/gsd-ui-auditor.md": "d824acc3b2a18c53", + "agents/gsd-ui-checker.md": "9f0a288ad2c6f56f", + "agents/gsd-ui-researcher.md": "7017298eddc0c835", "agents/gsd-user-profiler.md": "622220df0654b6bf", - "agents/gsd-verifier.md": "7bacf6ef32186213", + "agents/gsd-verifier.md": "eb16a39ea9a0f843", "commands/gsd-add-tests.md": "1f89b16ab2cca426", "commands/gsd-ai-integration-phase.md": "3ccac39673ffb92c", "commands/gsd-audit-fix.md": "d88502ffa2151cec", @@ -117,6 +117,7 @@ "gsd-core/contexts/research.md": "b3285d8e7209cc3b", "gsd-core/contexts/review.md": "dc578fdd74bbea11", "gsd-core/references/agent-contracts.md": "ff65e633c656c0d2", + "gsd-core/references/agent-skills-bootstrap.md": "3d62d178004db5cc", "gsd-core/references/ai-evals.md": "b5afa786b938671e", "gsd-core/references/ai-frameworks.md": "f827de93dde124eb", "gsd-core/references/artifact-types.md": "8bd01fd75a2ba70e", @@ -268,7 +269,7 @@ "gsd-core/workflows/audit-fix.md": "eaead7ea85761e5b", "gsd-core/workflows/audit-milestone.md": "5e9a35af57344e04", "gsd-core/workflows/audit-uat.md": "69dbdec25cae2f12", - "gsd-core/workflows/autonomous.md": "c51a8b19aa869149", + "gsd-core/workflows/autonomous.md": "147e36b1795c149c", "gsd-core/workflows/check-todos.md": "a993c1e7b0eff1f6", "gsd-core/workflows/cleanup.md": "2bd6ad5f107fe439", "gsd-core/workflows/code-review-fix.md": "c62547be55f13dcd", diff --git a/tests/fixtures/golden-install-parity/gemini.json b/tests/fixtures/golden-install-parity/gemini.json index 42ce2d1ab..9e9883856 100644 --- a/tests/fixtures/golden-install-parity/gemini.json +++ b/tests/fixtures/golden-install-parity/gemini.json @@ -1,40 +1,40 @@ { ".gsd-profile": "0e716a5fef4e6dc1", ".gsd/defaults.json": "560664b045e645cb", - "agents/gsd-advisor-researcher.md": "b8974f54d6cd2667", + "agents/gsd-advisor-researcher.md": "44245524f341f64d", "agents/gsd-ai-researcher.md": "abb231823ae8d226", - "agents/gsd-assumptions-analyzer.md": "94f13d08cbd6f01b", - "agents/gsd-code-fixer.md": "f09f115629154f10", - "agents/gsd-code-reviewer.md": "3b3b7e95c56c6938", - "agents/gsd-codebase-mapper.md": "1c4c8fdcecf34d47", + "agents/gsd-assumptions-analyzer.md": "395f29ee7b10fbb9", + "agents/gsd-code-fixer.md": "afc266fabeba96b7", + "agents/gsd-code-reviewer.md": "64de9ad808aa1880", + "agents/gsd-codebase-mapper.md": "5f1cd143513ce959", "agents/gsd-debug-session-manager.md": "e79b81434bd8b6ee", - "agents/gsd-debugger.md": "159427e280bb849e", + "agents/gsd-debugger.md": "04ce5f7d8202698f", "agents/gsd-doc-classifier.md": "e2774e90fbf7d637", "agents/gsd-doc-synthesizer.md": "f9350f45ec29bd78", "agents/gsd-doc-verifier.md": "2ec24cbe0582bbe6", - "agents/gsd-doc-writer.md": "c0c01f730f866273", + "agents/gsd-doc-writer.md": "1ad9b8ac7f2e96de", "agents/gsd-domain-researcher.md": "ba1b6b24e2f8a952", - "agents/gsd-eval-auditor.md": "4ac9c6b9a952c0c3", + "agents/gsd-eval-auditor.md": "115214236cd73d96", "agents/gsd-eval-planner.md": "ad757b253472269e", - "agents/gsd-executor.md": "e62fee7c05dd1636", + "agents/gsd-executor.md": "da7adfe75afc5d1c", "agents/gsd-framework-selector.md": "1254f9adc2e95e4b", - "agents/gsd-integration-checker.md": "adc00e1a88278110", + "agents/gsd-integration-checker.md": "e337990c0a4117b1", "agents/gsd-intel-updater.md": "3111fd1028d155b5", "agents/gsd-mempalace-curator.md": "ab78cc2c2e75c992", - "agents/gsd-nyquist-auditor.md": "dff34a7e2d844d6c", + "agents/gsd-nyquist-auditor.md": "b7bbcab5929559b3", "agents/gsd-pattern-mapper.md": "43a2ba37b24acdb2", - "agents/gsd-phase-researcher.md": "0161476db8048a22", - "agents/gsd-plan-checker.md": "3586ddf3d32a6708", - "agents/gsd-planner.md": "8e1515e240e0c8ab", - "agents/gsd-project-researcher.md": "545faffa64ffc15d", - "agents/gsd-research-synthesizer.md": "f23808b1e9387c2d", - "agents/gsd-roadmapper.md": "5a951f07136be592", - "agents/gsd-security-auditor.md": "3c2557ee3a5e3250", - "agents/gsd-ui-auditor.md": "82e9c855984e31ec", - "agents/gsd-ui-checker.md": "cb122369806c5467", - "agents/gsd-ui-researcher.md": "e1422e3b0f142f74", + "agents/gsd-phase-researcher.md": "2f6b14864918df18", + "agents/gsd-plan-checker.md": "1fba4fc736554af7", + "agents/gsd-planner.md": "07472a59265e30e1", + "agents/gsd-project-researcher.md": "fc319b62dc1d843d", + "agents/gsd-research-synthesizer.md": "ac7cc32c30dcb6f6", + "agents/gsd-roadmapper.md": "fb1cd15a1ae9496e", + "agents/gsd-security-auditor.md": "eed800c19f595c2c", + "agents/gsd-ui-auditor.md": "efdad9ad8bdc9216", + "agents/gsd-ui-checker.md": "7fbf366a9a423588", + "agents/gsd-ui-researcher.md": "95a245ab29ecd158", "agents/gsd-user-profiler.md": "d6cb5430d841cea6", - "agents/gsd-verifier.md": "e52203ef59021e9c", + "agents/gsd-verifier.md": "6754b501e3f5f638", "commands/gsd/add-tests.toml": "297ba4d4c285fd99", "commands/gsd/ai-integration-phase.toml": "411ba33b9a7d9e78", "commands/gsd/audit-fix.toml": "f4a198a455f668a9", @@ -117,6 +117,7 @@ "gsd-core/contexts/research.md": "b3285d8e7209cc3b", "gsd-core/contexts/review.md": "dc578fdd74bbea11", "gsd-core/references/agent-contracts.md": "ff65e633c656c0d2", + "gsd-core/references/agent-skills-bootstrap.md": "5ab875054b1adda9", "gsd-core/references/ai-evals.md": "b5afa786b938671e", "gsd-core/references/ai-frameworks.md": "f827de93dde124eb", "gsd-core/references/artifact-types.md": "a6d2e1f9453ffbf5", @@ -268,7 +269,7 @@ "gsd-core/workflows/audit-fix.md": "eaead7ea85761e5b", "gsd-core/workflows/audit-milestone.md": "fe7185bb70eafdb9", "gsd-core/workflows/audit-uat.md": "ca6f1f0ef174f793", - "gsd-core/workflows/autonomous.md": "c1bbd56f92dda773", + "gsd-core/workflows/autonomous.md": "cec1819b64329a25", "gsd-core/workflows/check-todos.md": "34b3034a31e7dbe5", "gsd-core/workflows/cleanup.md": "e73b3969f5c10dcf", "gsd-core/workflows/code-review-fix.md": "b442c670f8c1fe93", diff --git a/tests/fixtures/golden-install-parity/hermes.json b/tests/fixtures/golden-install-parity/hermes.json index c24ba6aa3..2d656d36b 100644 --- a/tests/fixtures/golden-install-parity/hermes.json +++ b/tests/fixtures/golden-install-parity/hermes.json @@ -1,40 +1,40 @@ { ".gsd-profile": "0e716a5fef4e6dc1", ".gsd/defaults.json": "560664b045e645cb", - "agents/gsd-advisor-researcher.md": "5a0c65ccc25ddfbe", + "agents/gsd-advisor-researcher.md": "f3f0a55854689045", "agents/gsd-ai-researcher.md": "72f67082f35c9da1", - "agents/gsd-assumptions-analyzer.md": "a8982fc704f7ec81", - "agents/gsd-code-fixer.md": "434ebbd947f07070", - "agents/gsd-code-reviewer.md": "1652918c20f42662", - "agents/gsd-codebase-mapper.md": "2d50f93ac1c0d3d5", + "agents/gsd-assumptions-analyzer.md": "f11a80795163bb5d", + "agents/gsd-code-fixer.md": "58a5ef0369ba21f8", + "agents/gsd-code-reviewer.md": "5ef947ca5baed775", + "agents/gsd-codebase-mapper.md": "feccaeeacd05e34b", "agents/gsd-debug-session-manager.md": "6dd3555fa4ea8e93", - "agents/gsd-debugger.md": "0b4e9ac3601a6fb5", + "agents/gsd-debugger.md": "ecf2d6736db0c33e", "agents/gsd-doc-classifier.md": "5de2a66c751b2d58", "agents/gsd-doc-synthesizer.md": "8e6fb8220f777022", "agents/gsd-doc-verifier.md": "d3d8457bdd44bf10", - "agents/gsd-doc-writer.md": "82672f7a8a3ac381", + "agents/gsd-doc-writer.md": "2858a8335170e85c", "agents/gsd-domain-researcher.md": "d4c07520f650ffd5", - "agents/gsd-eval-auditor.md": "95459532da30ab80", + "agents/gsd-eval-auditor.md": "254220230f69ac46", "agents/gsd-eval-planner.md": "03448fc9c5774b56", - "agents/gsd-executor.md": "060d166bdb2a1ffc", + "agents/gsd-executor.md": "d9191c634ec67129", "agents/gsd-framework-selector.md": "ea9981d65d6b3429", - "agents/gsd-integration-checker.md": "342ddf68d898df2c", + "agents/gsd-integration-checker.md": "35b4f2969d279871", "agents/gsd-intel-updater.md": "03e143f85ab105ed", "agents/gsd-mempalace-curator.md": "576b8d0db51bc462", - "agents/gsd-nyquist-auditor.md": "354bd95e897a2946", + "agents/gsd-nyquist-auditor.md": "8bfde4a9a36318aa", "agents/gsd-pattern-mapper.md": "cea092600aeb3978", - "agents/gsd-phase-researcher.md": "8d871d027ca41ec0", - "agents/gsd-plan-checker.md": "73ac6ffdef0c20cb", - "agents/gsd-planner.md": "1a60305d2a5daa3e", - "agents/gsd-project-researcher.md": "cc7e3bcb4f8ee30c", - "agents/gsd-research-synthesizer.md": "698d8c2f680b5a8d", - "agents/gsd-roadmapper.md": "3c19e19c06a1ba96", - "agents/gsd-security-auditor.md": "101f145e5f9e5724", - "agents/gsd-ui-auditor.md": "145b9c807012374c", - "agents/gsd-ui-checker.md": "32b2605c7254f959", - "agents/gsd-ui-researcher.md": "87cf9eebc37c4a37", + "agents/gsd-phase-researcher.md": "2b5e6805717399d9", + "agents/gsd-plan-checker.md": "8019a01df555f1e1", + "agents/gsd-planner.md": "c944474b7dd450d4", + "agents/gsd-project-researcher.md": "95e860350a6c1b7c", + "agents/gsd-research-synthesizer.md": "418dbd61eee9308d", + "agents/gsd-roadmapper.md": "64dce5d5f9fa5654", + "agents/gsd-security-auditor.md": "e4d35ada4ea67d7f", + "agents/gsd-ui-auditor.md": "86797e85f718dfac", + "agents/gsd-ui-checker.md": "c56fa63fb94ded5f", + "agents/gsd-ui-researcher.md": "fff7c2920da4b8af", "agents/gsd-user-profiler.md": "ca3bf75581f211a0", - "agents/gsd-verifier.md": "c1d1448bf31039ec", + "agents/gsd-verifier.md": "c5916e463df6306e", "gsd-core/VERSION": "ef0deccd81a6723c", "gsd-core/bin/check-latest-version.cjs": "e4a224058c8f4d74", "gsd-core/bin/gsd-tools.cjs": "74594e8bf36e5580", @@ -48,6 +48,7 @@ "gsd-core/contexts/research.md": "b3285d8e7209cc3b", "gsd-core/contexts/review.md": "dc578fdd74bbea11", "gsd-core/references/agent-contracts.md": "ff65e633c656c0d2", + "gsd-core/references/agent-skills-bootstrap.md": "892f086e846cd8e4", "gsd-core/references/ai-evals.md": "b5afa786b938671e", "gsd-core/references/ai-frameworks.md": "f827de93dde124eb", "gsd-core/references/artifact-types.md": "8bd01fd75a2ba70e", @@ -199,7 +200,7 @@ "gsd-core/workflows/audit-fix.md": "5aded4cc2682502b", "gsd-core/workflows/audit-milestone.md": "c36d1c46d4aecca7", "gsd-core/workflows/audit-uat.md": "5e93ef61f91ad0c0", - "gsd-core/workflows/autonomous.md": "6f4df1e9a17a71c4", + "gsd-core/workflows/autonomous.md": "9bcaed473e38a7a5", "gsd-core/workflows/check-todos.md": "8807759cc4df46c0", "gsd-core/workflows/cleanup.md": "6380894e67d2435d", "gsd-core/workflows/code-review-fix.md": "5090840d834ec31a", diff --git a/tests/fixtures/golden-install-parity/kilo.json b/tests/fixtures/golden-install-parity/kilo.json index e8f847f9b..7ce93078a 100644 --- a/tests/fixtures/golden-install-parity/kilo.json +++ b/tests/fixtures/golden-install-parity/kilo.json @@ -1,40 +1,40 @@ { ".gsd-profile": "0e716a5fef4e6dc1", ".gsd/defaults.json": "560664b045e645cb", - "agents/gsd-advisor-researcher.md": "3f23cbf011be54b4", + "agents/gsd-advisor-researcher.md": "3296fc4edef47f2e", "agents/gsd-ai-researcher.md": "9607993fbaafe9ba", - "agents/gsd-assumptions-analyzer.md": "e638c7dbe0dd8405", - "agents/gsd-code-fixer.md": "dfe11ff351e10d8a", - "agents/gsd-code-reviewer.md": "501bb541628df0b9", - "agents/gsd-codebase-mapper.md": "1b5538846f0c743d", + "agents/gsd-assumptions-analyzer.md": "567d823ccd036b39", + "agents/gsd-code-fixer.md": "a4444d9f58a53613", + "agents/gsd-code-reviewer.md": "922c08885bc78662", + "agents/gsd-codebase-mapper.md": "0ccbf6a685804979", "agents/gsd-debug-session-manager.md": "5fd509a86b1335b7", - "agents/gsd-debugger.md": "52c4715abce6ddb3", + "agents/gsd-debugger.md": "11e791e0509959b1", "agents/gsd-doc-classifier.md": "dd7670f4fb345994", "agents/gsd-doc-synthesizer.md": "1e987faef95a8c71", "agents/gsd-doc-verifier.md": "8016f792d0766b77", - "agents/gsd-doc-writer.md": "5b54aa02048cb1a0", + "agents/gsd-doc-writer.md": "72a21cf92542f6c0", "agents/gsd-domain-researcher.md": "a3874d80bcbc7380", - "agents/gsd-eval-auditor.md": "c3295817a354d799", + "agents/gsd-eval-auditor.md": "d8c45cef7ddf4360", "agents/gsd-eval-planner.md": "3db12cde12aeb2c1", - "agents/gsd-executor.md": "053c4c953130bee2", + "agents/gsd-executor.md": "a0433cb715722dd5", "agents/gsd-framework-selector.md": "ad5f2c6b9bec6270", - "agents/gsd-integration-checker.md": "a350dd0503ff992d", + "agents/gsd-integration-checker.md": "c503e2f4a3d8ec05", "agents/gsd-intel-updater.md": "b8eb72873ded3c14", "agents/gsd-mempalace-curator.md": "6461da48ed937556", - "agents/gsd-nyquist-auditor.md": "2cdb16a2b095b5e5", + "agents/gsd-nyquist-auditor.md": "7bc3cc159c7be987", "agents/gsd-pattern-mapper.md": "6a5408fd11d70391", - "agents/gsd-phase-researcher.md": "46374922b18d5b94", - "agents/gsd-plan-checker.md": "c61432fb8d9b72f6", - "agents/gsd-planner.md": "5b0cb992023412a2", - "agents/gsd-project-researcher.md": "b433211bb78ebb23", - "agents/gsd-research-synthesizer.md": "941b85961b58758d", - "agents/gsd-roadmapper.md": "5304db525ad7a243", - "agents/gsd-security-auditor.md": "2f39af0364f31cf5", - "agents/gsd-ui-auditor.md": "cee3fb0c241faaa3", - "agents/gsd-ui-checker.md": "2a6c5551e354414b", - "agents/gsd-ui-researcher.md": "384af56f90784422", + "agents/gsd-phase-researcher.md": "46c7ca1f62f9e02b", + "agents/gsd-plan-checker.md": "a4e32c58903176ef", + "agents/gsd-planner.md": "dc90faf53dc728ce", + "agents/gsd-project-researcher.md": "e6251b65176972c7", + "agents/gsd-research-synthesizer.md": "c56fc6fd7f96c95c", + "agents/gsd-roadmapper.md": "277e0a3252553ab7", + "agents/gsd-security-auditor.md": "0113435969e869c4", + "agents/gsd-ui-auditor.md": "9b988b95d28e56ed", + "agents/gsd-ui-checker.md": "e27fd54c34ce79b8", + "agents/gsd-ui-researcher.md": "79ab871e0be9e889", "agents/gsd-user-profiler.md": "b8cb09319c517701", - "agents/gsd-verifier.md": "0cd3672d8ad81dd0", + "agents/gsd-verifier.md": "b3d833b6ede458ef", "command/gsd-add-tests.md": "c314f9a6be312bfa", "command/gsd-ai-integration-phase.md": "bbab86a540e00db5", "command/gsd-audit-fix.md": "4106e9dce9b71585", @@ -117,6 +117,7 @@ "gsd-core/contexts/research.md": "b3285d8e7209cc3b", "gsd-core/contexts/review.md": "dc578fdd74bbea11", "gsd-core/references/agent-contracts.md": "ff65e633c656c0d2", + "gsd-core/references/agent-skills-bootstrap.md": "51b5d0ba5b1e98d9", "gsd-core/references/ai-evals.md": "b5afa786b938671e", "gsd-core/references/ai-frameworks.md": "425dd69c629230e7", "gsd-core/references/artifact-types.md": "8bd01fd75a2ba70e", @@ -268,7 +269,7 @@ "gsd-core/workflows/audit-fix.md": "eaead7ea85761e5b", "gsd-core/workflows/audit-milestone.md": "5e9a35af57344e04", "gsd-core/workflows/audit-uat.md": "69dbdec25cae2f12", - "gsd-core/workflows/autonomous.md": "6ebf93b8ed1155f3", + "gsd-core/workflows/autonomous.md": "141625e98f4c6a41", "gsd-core/workflows/check-todos.md": "cde0a3025828bad8", "gsd-core/workflows/cleanup.md": "d124682912dab9f6", "gsd-core/workflows/code-review-fix.md": "a416c764425cbb61", diff --git a/tests/fixtures/golden-install-parity/kimi.json b/tests/fixtures/golden-install-parity/kimi.json index 3aa712a3b..693465732 100644 --- a/tests/fixtures/golden-install-parity/kimi.json +++ b/tests/fixtures/golden-install-parity/kimi.json @@ -3,21 +3,21 @@ ".gsd/defaults.json": "560664b045e645cb", "agents/gsd.md": "60fee7782ae4f2c6", "agents/gsd.yaml": "253a23ddda06c6c2", - "agents/subagents/gsd-advisor-researcher.md": "20bd45ab94df7931", + "agents/subagents/gsd-advisor-researcher.md": "81bdc6cbd8fcde40", "agents/subagents/gsd-advisor-researcher.yaml": "662ced4837207406", "agents/subagents/gsd-ai-researcher.md": "f4cd2f17d2c3e35f", "agents/subagents/gsd-ai-researcher.yaml": "59edec2a11eb0a27", - "agents/subagents/gsd-assumptions-analyzer.md": "e88e552aae9d3b90", + "agents/subagents/gsd-assumptions-analyzer.md": "507b93a7d3375ad3", "agents/subagents/gsd-assumptions-analyzer.yaml": "e7da772d8c7e3723", - "agents/subagents/gsd-code-fixer.md": "ee1ff10914839eff", + "agents/subagents/gsd-code-fixer.md": "eadf06afc4609b2a", "agents/subagents/gsd-code-fixer.yaml": "41147d668c7e75cb", - "agents/subagents/gsd-code-reviewer.md": "702bb1240d755c20", + "agents/subagents/gsd-code-reviewer.md": "27cee6e8adae57da", "agents/subagents/gsd-code-reviewer.yaml": "5f2398f56018f50d", - "agents/subagents/gsd-codebase-mapper.md": "39530e6f19156b36", + "agents/subagents/gsd-codebase-mapper.md": "04c7528a13fa3de7", "agents/subagents/gsd-codebase-mapper.yaml": "bce1c6d15f55c477", "agents/subagents/gsd-debug-session-manager.md": "54f87b28876dec1b", "agents/subagents/gsd-debug-session-manager.yaml": "aab147717b5082e7", - "agents/subagents/gsd-debugger.md": "e786e8eb395bc494", + "agents/subagents/gsd-debugger.md": "9f0811545e99c8b9", "agents/subagents/gsd-debugger.yaml": "6d02d7feb90cad43", "agents/subagents/gsd-doc-classifier.md": "7810ff57b2dba86b", "agents/subagents/gsd-doc-classifier.yaml": "a4e9cf7025b57503", @@ -25,51 +25,51 @@ "agents/subagents/gsd-doc-synthesizer.yaml": "b4cfc60e11571632", "agents/subagents/gsd-doc-verifier.md": "6b6eb3998d2167c8", "agents/subagents/gsd-doc-verifier.yaml": "7200c09cefcd7667", - "agents/subagents/gsd-doc-writer.md": "067f34dc1387652f", + "agents/subagents/gsd-doc-writer.md": "7021d4512cd1afac", "agents/subagents/gsd-doc-writer.yaml": "166fa569d11adb9f", "agents/subagents/gsd-domain-researcher.md": "c29b96a2c40f6e96", "agents/subagents/gsd-domain-researcher.yaml": "269e21863e94f29f", - "agents/subagents/gsd-eval-auditor.md": "7c8e1106f1d53717", + "agents/subagents/gsd-eval-auditor.md": "8a8f48ed1249e9cd", "agents/subagents/gsd-eval-auditor.yaml": "e3d868bd5fefe938", "agents/subagents/gsd-eval-planner.md": "70f8c5727bfb9876", "agents/subagents/gsd-eval-planner.yaml": "df8499f7af297ec2", - "agents/subagents/gsd-executor.md": "362cf321f6d13907", + "agents/subagents/gsd-executor.md": "a1fdc7f4ac29888a", "agents/subagents/gsd-executor.yaml": "e29422986636fd64", "agents/subagents/gsd-framework-selector.md": "a15b7aa1e0576e16", "agents/subagents/gsd-framework-selector.yaml": "fb52c31cde27b0e3", - "agents/subagents/gsd-integration-checker.md": "6cd492199a92e0f8", + "agents/subagents/gsd-integration-checker.md": "6939640ba16c3f3b", "agents/subagents/gsd-integration-checker.yaml": "3500c65ccbbe432d", "agents/subagents/gsd-intel-updater.md": "8ffa8767b2270472", "agents/subagents/gsd-intel-updater.yaml": "01445ee99bec4b31", "agents/subagents/gsd-mempalace-curator.md": "34b7476d313bfda4", "agents/subagents/gsd-mempalace-curator.yaml": "28dd095c371ada3b", - "agents/subagents/gsd-nyquist-auditor.md": "5e6335c615801f1c", + "agents/subagents/gsd-nyquist-auditor.md": "d9dbd1e92e2598c2", "agents/subagents/gsd-nyquist-auditor.yaml": "48ad300fa775dd5d", "agents/subagents/gsd-pattern-mapper.md": "eb2d4e838aaeb10c", "agents/subagents/gsd-pattern-mapper.yaml": "d1e537e77f953fd4", - "agents/subagents/gsd-phase-researcher.md": "fd8438c9b723e4a9", + "agents/subagents/gsd-phase-researcher.md": "5982ab9a29eba637", "agents/subagents/gsd-phase-researcher.yaml": "7633c8e82617e7cc", - "agents/subagents/gsd-plan-checker.md": "6352e38b8546a89e", + "agents/subagents/gsd-plan-checker.md": "dc5bc8d2e11f7ecf", "agents/subagents/gsd-plan-checker.yaml": "8295181071121db8", - "agents/subagents/gsd-planner.md": "df8c0ab06f9221f3", + "agents/subagents/gsd-planner.md": "4b815f7e76f56a01", "agents/subagents/gsd-planner.yaml": "2e83ee194bcd7fbd", - "agents/subagents/gsd-project-researcher.md": "50528d1cc19f2fc1", + "agents/subagents/gsd-project-researcher.md": "bbae5f6e13917635", "agents/subagents/gsd-project-researcher.yaml": "ce12586b0347e2dc", - "agents/subagents/gsd-research-synthesizer.md": "eefaa59ac7af07cf", + "agents/subagents/gsd-research-synthesizer.md": "1f937a27044c1f7b", "agents/subagents/gsd-research-synthesizer.yaml": "898104ab3bb0b81a", - "agents/subagents/gsd-roadmapper.md": "2edc9acf9c0c7515", + "agents/subagents/gsd-roadmapper.md": "62359d6876022b48", "agents/subagents/gsd-roadmapper.yaml": "679772cb14f3a015", - "agents/subagents/gsd-security-auditor.md": "853395f34fdb22ab", + "agents/subagents/gsd-security-auditor.md": "e621d1ee6b7aee6c", "agents/subagents/gsd-security-auditor.yaml": "fe8a4345cc13571d", - "agents/subagents/gsd-ui-auditor.md": "41011606fddfd8f8", + "agents/subagents/gsd-ui-auditor.md": "e4a319070959ebbc", "agents/subagents/gsd-ui-auditor.yaml": "3fc98c1d9e8f10fd", - "agents/subagents/gsd-ui-checker.md": "f78439004e23919a", + "agents/subagents/gsd-ui-checker.md": "271da1ad4fe7a102", "agents/subagents/gsd-ui-checker.yaml": "c42316006654fae3", - "agents/subagents/gsd-ui-researcher.md": "3b22f426c83ac46c", + "agents/subagents/gsd-ui-researcher.md": "34f41bc770a55199", "agents/subagents/gsd-ui-researcher.yaml": "15e215874bc2c37d", "agents/subagents/gsd-user-profiler.md": "c16f94e09e433394", "agents/subagents/gsd-user-profiler.yaml": "645826a29d079159", - "agents/subagents/gsd-verifier.md": "1536f3fa5a2d4419", + "agents/subagents/gsd-verifier.md": "780a100f92c45751", "agents/subagents/gsd-verifier.yaml": "2d2bd6b37626f382", "gsd-core/VERSION": "ef0deccd81a6723c", "gsd-core/bin/check-latest-version.cjs": "e4a224058c8f4d74", @@ -84,6 +84,7 @@ "gsd-core/contexts/research.md": "b3285d8e7209cc3b", "gsd-core/contexts/review.md": "dc578fdd74bbea11", "gsd-core/references/agent-contracts.md": "ff65e633c656c0d2", + "gsd-core/references/agent-skills-bootstrap.md": "5ab875054b1adda9", "gsd-core/references/ai-evals.md": "b5afa786b938671e", "gsd-core/references/ai-frameworks.md": "f827de93dde124eb", "gsd-core/references/artifact-types.md": "a6d2e1f9453ffbf5", @@ -235,7 +236,7 @@ "gsd-core/workflows/audit-fix.md": "eaead7ea85761e5b", "gsd-core/workflows/audit-milestone.md": "fe7185bb70eafdb9", "gsd-core/workflows/audit-uat.md": "ca6f1f0ef174f793", - "gsd-core/workflows/autonomous.md": "6a69708c184ac6a7", + "gsd-core/workflows/autonomous.md": "1184e5864e201889", "gsd-core/workflows/check-todos.md": "1e3026abe782bd36", "gsd-core/workflows/cleanup.md": "5cf0772521c192a4", "gsd-core/workflows/code-review-fix.md": "b442c670f8c1fe93", diff --git a/tests/fixtures/golden-install-parity/opencode.json b/tests/fixtures/golden-install-parity/opencode.json index 9e81018ad..62db158a6 100644 --- a/tests/fixtures/golden-install-parity/opencode.json +++ b/tests/fixtures/golden-install-parity/opencode.json @@ -1,40 +1,40 @@ { ".gsd-profile": "0e716a5fef4e6dc1", ".gsd/defaults.json": "560664b045e645cb", - "agents/gsd-advisor-researcher.md": "fc4eba63daf0b1ee", + "agents/gsd-advisor-researcher.md": "6955bcd8ca353de0", "agents/gsd-ai-researcher.md": "28a05307dad84020", - "agents/gsd-assumptions-analyzer.md": "cc0dbbd41e0a77a5", - "agents/gsd-code-fixer.md": "aa353a2a42b27981", - "agents/gsd-code-reviewer.md": "70deeb7ac7caf384", - "agents/gsd-codebase-mapper.md": "b9fd529aca682ccb", + "agents/gsd-assumptions-analyzer.md": "45c01017e84ba193", + "agents/gsd-code-fixer.md": "eb9fa698f827f23f", + "agents/gsd-code-reviewer.md": "2249774416314c57", + "agents/gsd-codebase-mapper.md": "948612acd505e87f", "agents/gsd-debug-session-manager.md": "09c805b7283633fd", - "agents/gsd-debugger.md": "610a3ff965f9fb6a", + "agents/gsd-debugger.md": "535cc597dcc0cade", "agents/gsd-doc-classifier.md": "cd4169adec56c26f", "agents/gsd-doc-synthesizer.md": "47a8b52fe974a810", "agents/gsd-doc-verifier.md": "65bbc2ae6b9ace29", - "agents/gsd-doc-writer.md": "b7acb2d8238c44c4", + "agents/gsd-doc-writer.md": "0696a8cdc0028917", "agents/gsd-domain-researcher.md": "71250e759ca9e723", - "agents/gsd-eval-auditor.md": "8975c9f3bca95bd5", + "agents/gsd-eval-auditor.md": "d9c7034244882d86", "agents/gsd-eval-planner.md": "60bddb70a937f796", - "agents/gsd-executor.md": "bcdc3f8bc334190a", + "agents/gsd-executor.md": "e185b21a5df49e0d", "agents/gsd-framework-selector.md": "1c0a10355e787675", - "agents/gsd-integration-checker.md": "69cfb2bbdfa56e28", + "agents/gsd-integration-checker.md": "a9de5928e5a5c649", "agents/gsd-intel-updater.md": "f9ef2797738b7f09", "agents/gsd-mempalace-curator.md": "aa7cf2c611057735", - "agents/gsd-nyquist-auditor.md": "b9b9e935503e63a5", + "agents/gsd-nyquist-auditor.md": "7a7e0d1cbafd6b63", "agents/gsd-pattern-mapper.md": "7c6d1d9817a9c1e7", - "agents/gsd-phase-researcher.md": "c206f5e7333fb2c9", - "agents/gsd-plan-checker.md": "f2c99e85291ce71b", - "agents/gsd-planner.md": "7a49c1bee3578da4", - "agents/gsd-project-researcher.md": "c70f9cf0d5593f09", - "agents/gsd-research-synthesizer.md": "a534bc0eaf1ac03b", - "agents/gsd-roadmapper.md": "6b8bdf6015939351", - "agents/gsd-security-auditor.md": "404f38e52ba883ff", - "agents/gsd-ui-auditor.md": "b040c900e8de2368", - "agents/gsd-ui-checker.md": "b98b00e586610657", - "agents/gsd-ui-researcher.md": "7ff5c528bef6af09", + "agents/gsd-phase-researcher.md": "6461af91c55b5227", + "agents/gsd-plan-checker.md": "5e9ec0d98f9a0059", + "agents/gsd-planner.md": "b4bc4916aadd24e0", + "agents/gsd-project-researcher.md": "f1d486fc0a3ff905", + "agents/gsd-research-synthesizer.md": "e0c2d9957431a1e1", + "agents/gsd-roadmapper.md": "1658a40b20d8b575", + "agents/gsd-security-auditor.md": "e36e436c0d5c26d5", + "agents/gsd-ui-auditor.md": "e810012e685b2466", + "agents/gsd-ui-checker.md": "5fd0ed65262dc194", + "agents/gsd-ui-researcher.md": "18dd700b1ac6d86a", "agents/gsd-user-profiler.md": "d825b4c0a6431f8b", - "agents/gsd-verifier.md": "47816fa1ba8a9b8b", + "agents/gsd-verifier.md": "e245bfb493a5c069", "command/gsd-add-tests.md": "b9cd93ed01945f75", "command/gsd-ai-integration-phase.md": "9d4bc4dcce7f1ee0", "command/gsd-audit-fix.md": "5615403843d5e491", @@ -117,6 +117,7 @@ "gsd-core/contexts/research.md": "b3285d8e7209cc3b", "gsd-core/contexts/review.md": "dc578fdd74bbea11", "gsd-core/references/agent-contracts.md": "ff65e633c656c0d2", + "gsd-core/references/agent-skills-bootstrap.md": "51b5d0ba5b1e98d9", "gsd-core/references/ai-evals.md": "b5afa786b938671e", "gsd-core/references/ai-frameworks.md": "425dd69c629230e7", "gsd-core/references/artifact-types.md": "218c55caf8aff6df", @@ -268,7 +269,7 @@ "gsd-core/workflows/audit-fix.md": "c7878f1dff04adf1", "gsd-core/workflows/audit-milestone.md": "99f0b884c9208dde", "gsd-core/workflows/audit-uat.md": "e530acf37fd9c699", - "gsd-core/workflows/autonomous.md": "dacf6c73407fe29c", + "gsd-core/workflows/autonomous.md": "5d4373ad0a20f69b", "gsd-core/workflows/check-todos.md": "42806d03eacf9ff6", "gsd-core/workflows/cleanup.md": "daca0c4f1d531a02", "gsd-core/workflows/code-review-fix.md": "618c850533bd5c9e", diff --git a/tests/fixtures/golden-install-parity/qwen.json b/tests/fixtures/golden-install-parity/qwen.json index 6a43f2677..c1bc320ff 100644 --- a/tests/fixtures/golden-install-parity/qwen.json +++ b/tests/fixtures/golden-install-parity/qwen.json @@ -1,40 +1,40 @@ { ".gsd-profile": "0e716a5fef4e6dc1", ".gsd/defaults.json": "560664b045e645cb", - "agents/gsd-advisor-researcher.md": "5a0c65ccc25ddfbe", + "agents/gsd-advisor-researcher.md": "f3f0a55854689045", "agents/gsd-ai-researcher.md": "72f67082f35c9da1", - "agents/gsd-assumptions-analyzer.md": "a8982fc704f7ec81", - "agents/gsd-code-fixer.md": "f6da5df6c2cc1b14", - "agents/gsd-code-reviewer.md": "0f586b04f8628cc2", - "agents/gsd-codebase-mapper.md": "397ae2efb6e00487", + "agents/gsd-assumptions-analyzer.md": "f11a80795163bb5d", + "agents/gsd-code-fixer.md": "aa8fb3a712ee0573", + "agents/gsd-code-reviewer.md": "f70ee630a166fec8", + "agents/gsd-codebase-mapper.md": "b2885ffa8bb75d47", "agents/gsd-debug-session-manager.md": "c88ad88c7a9fff8b", - "agents/gsd-debugger.md": "dc5a6e749f132d67", + "agents/gsd-debugger.md": "89d03f3bd515f045", "agents/gsd-doc-classifier.md": "5de2a66c751b2d58", "agents/gsd-doc-synthesizer.md": "8e6fb8220f777022", "agents/gsd-doc-verifier.md": "3767850df78f4a36", - "agents/gsd-doc-writer.md": "7d9e39254bba203a", + "agents/gsd-doc-writer.md": "10962b6bd4212379", "agents/gsd-domain-researcher.md": "d4c07520f650ffd5", - "agents/gsd-eval-auditor.md": "8d70a305103219ac", + "agents/gsd-eval-auditor.md": "0d3c7822c91197fc", "agents/gsd-eval-planner.md": "03448fc9c5774b56", - "agents/gsd-executor.md": "b672a6f59a043f9e", + "agents/gsd-executor.md": "068085ceca836fbd", "agents/gsd-framework-selector.md": "ea9981d65d6b3429", - "agents/gsd-integration-checker.md": "599ae0380d5218fc", + "agents/gsd-integration-checker.md": "33fd537b862eb944", "agents/gsd-intel-updater.md": "22cc46f64ad4c336", "agents/gsd-mempalace-curator.md": "576b8d0db51bc462", - "agents/gsd-nyquist-auditor.md": "61be7d5ed9aeb520", + "agents/gsd-nyquist-auditor.md": "7fb0ecf639c1cdfe", "agents/gsd-pattern-mapper.md": "9ab071c3ffc1cf46", - "agents/gsd-phase-researcher.md": "e1df6362eba320a5", - "agents/gsd-plan-checker.md": "9e5a435b15b9274a", - "agents/gsd-planner.md": "d75b6e16d5338166", - "agents/gsd-project-researcher.md": "d8140745d468c79a", - "agents/gsd-research-synthesizer.md": "94365f77f72611f4", - "agents/gsd-roadmapper.md": "5dd0803e15660e85", - "agents/gsd-security-auditor.md": "f1554fb939be79fc", - "agents/gsd-ui-auditor.md": "4d8388dfe33496b1", - "agents/gsd-ui-checker.md": "7a383f6a3fbba34b", - "agents/gsd-ui-researcher.md": "67596ca5ee2f4547", + "agents/gsd-phase-researcher.md": "7ecc077c36ebad64", + "agents/gsd-plan-checker.md": "7807baf92b84e721", + "agents/gsd-planner.md": "3dd52fdc04d450d9", + "agents/gsd-project-researcher.md": "fda710ba13e4117d", + "agents/gsd-research-synthesizer.md": "b425f746df47c2ac", + "agents/gsd-roadmapper.md": "604b25c6687811f4", + "agents/gsd-security-auditor.md": "f85447e5b5300feb", + "agents/gsd-ui-auditor.md": "cc46d104cbc49079", + "agents/gsd-ui-checker.md": "8f140c80fc193e13", + "agents/gsd-ui-researcher.md": "14f711963a71322a", "agents/gsd-user-profiler.md": "ca3bf75581f211a0", - "agents/gsd-verifier.md": "4bc6c8e197ee56e0", + "agents/gsd-verifier.md": "7286d42f73e54be1", "gsd-core/VERSION": "ef0deccd81a6723c", "gsd-core/bin/check-latest-version.cjs": "e4a224058c8f4d74", "gsd-core/bin/gsd-tools.cjs": "74594e8bf36e5580", @@ -48,6 +48,7 @@ "gsd-core/contexts/research.md": "b3285d8e7209cc3b", "gsd-core/contexts/review.md": "dc578fdd74bbea11", "gsd-core/references/agent-contracts.md": "ff65e633c656c0d2", + "gsd-core/references/agent-skills-bootstrap.md": "be09755fed7ad856", "gsd-core/references/ai-evals.md": "b5afa786b938671e", "gsd-core/references/ai-frameworks.md": "f827de93dde124eb", "gsd-core/references/artifact-types.md": "8bd01fd75a2ba70e", @@ -199,7 +200,7 @@ "gsd-core/workflows/audit-fix.md": "75f9d02e6924913c", "gsd-core/workflows/audit-milestone.md": "49d1978340cf89ef", "gsd-core/workflows/audit-uat.md": "b38b4e18e2abd51b", - "gsd-core/workflows/autonomous.md": "df74d15ceddb0190", + "gsd-core/workflows/autonomous.md": "4bdc47f26319ac48", "gsd-core/workflows/check-todos.md": "7fc4a39f3e83dde7", "gsd-core/workflows/cleanup.md": "804c5d481279f008", "gsd-core/workflows/code-review-fix.md": "7d6caed073170b2a", diff --git a/tests/fixtures/golden-install-parity/trae.json b/tests/fixtures/golden-install-parity/trae.json index 5467cd575..578521f22 100644 --- a/tests/fixtures/golden-install-parity/trae.json +++ b/tests/fixtures/golden-install-parity/trae.json @@ -1,40 +1,40 @@ { ".gsd-profile": "0e716a5fef4e6dc1", ".gsd/defaults.json": "560664b045e645cb", - "agents/gsd-advisor-researcher.md": "7dfdadd98ec1cccc", + "agents/gsd-advisor-researcher.md": "e5be2680b690c198", "agents/gsd-ai-researcher.md": "abfc97706f16aaaf", - "agents/gsd-assumptions-analyzer.md": "dc5e9973ff0740d7", - "agents/gsd-code-fixer.md": "b64e97f0427daa68", - "agents/gsd-code-reviewer.md": "1a7ab7a2b76b6227", - "agents/gsd-codebase-mapper.md": "9bee4506eb5ff300", + "agents/gsd-assumptions-analyzer.md": "b3219da6b194fdef", + "agents/gsd-code-fixer.md": "31fa8ab0d217788c", + "agents/gsd-code-reviewer.md": "338c46ab59c4e45f", + "agents/gsd-codebase-mapper.md": "8529d8a1ede8bbfb", "agents/gsd-debug-session-manager.md": "410e3739329bd9ac", - "agents/gsd-debugger.md": "4d6ce9b022df2a89", + "agents/gsd-debugger.md": "956c3207a43f973f", "agents/gsd-doc-classifier.md": "5807f1f7cfa40c42", "agents/gsd-doc-synthesizer.md": "0897098024c17ccd", "agents/gsd-doc-verifier.md": "e51e50892963ccc7", - "agents/gsd-doc-writer.md": "a7367a8f99991382", + "agents/gsd-doc-writer.md": "b0c3ad805b789226", "agents/gsd-domain-researcher.md": "b80f76874c04e515", - "agents/gsd-eval-auditor.md": "220e0002679f7aa2", + "agents/gsd-eval-auditor.md": "96df1d4a9cd553a0", "agents/gsd-eval-planner.md": "22334fde85723c9d", - "agents/gsd-executor.md": "63ab2c73cc093f60", + "agents/gsd-executor.md": "1c51c3b9547eadd4", "agents/gsd-framework-selector.md": "7726fccc86bfeb50", - "agents/gsd-integration-checker.md": "7c3dbd934a2a189b", + "agents/gsd-integration-checker.md": "7cd2072984411c7f", "agents/gsd-intel-updater.md": "2751bbd33912aa1b", "agents/gsd-mempalace-curator.md": "63676937f8970bf3", - "agents/gsd-nyquist-auditor.md": "5fb6cc4fef7ef276", + "agents/gsd-nyquist-auditor.md": "58efbed3b81b5ede", "agents/gsd-pattern-mapper.md": "b5d7a4abb1baecb9", - "agents/gsd-phase-researcher.md": "6d71f5c878fd1107", - "agents/gsd-plan-checker.md": "e2f092bafa6f2646", - "agents/gsd-planner.md": "e5913ce6c4887d8d", - "agents/gsd-project-researcher.md": "729378aedf68e404", - "agents/gsd-research-synthesizer.md": "27e70b07a4502b86", - "agents/gsd-roadmapper.md": "867a8ea6a533dce1", - "agents/gsd-security-auditor.md": "8303af19808131fb", - "agents/gsd-ui-auditor.md": "1513c76befcf221f", - "agents/gsd-ui-checker.md": "843c1deeaa1cb5e7", - "agents/gsd-ui-researcher.md": "e09f0f7034eaa366", + "agents/gsd-phase-researcher.md": "2ba0dab43912f28a", + "agents/gsd-plan-checker.md": "bc56265bcba1b002", + "agents/gsd-planner.md": "6ba7e6a042dbfc3c", + "agents/gsd-project-researcher.md": "16165f30baea2a06", + "agents/gsd-research-synthesizer.md": "9694b191aecc5f73", + "agents/gsd-roadmapper.md": "493ef92b42b12cf4", + "agents/gsd-security-auditor.md": "fbd3798eec23651b", + "agents/gsd-ui-auditor.md": "771ae08260534d5c", + "agents/gsd-ui-checker.md": "8573715bebbd4782", + "agents/gsd-ui-researcher.md": "70ad13e7de7b0da7", "agents/gsd-user-profiler.md": "622220df0654b6bf", - "agents/gsd-verifier.md": "3065cc4cf897078d", + "agents/gsd-verifier.md": "2fef6afe676b0e34", "gsd-core/VERSION": "ef0deccd81a6723c", "gsd-core/bin/check-latest-version.cjs": "e4a224058c8f4d74", "gsd-core/bin/gsd-tools.cjs": "5cf26d5f9e588cf8", @@ -48,6 +48,7 @@ "gsd-core/contexts/research.md": "b3285d8e7209cc3b", "gsd-core/contexts/review.md": "dc578fdd74bbea11", "gsd-core/references/agent-contracts.md": "ff65e633c656c0d2", + "gsd-core/references/agent-skills-bootstrap.md": "18d1ff7c7fa0bab1", "gsd-core/references/ai-evals.md": "b5afa786b938671e", "gsd-core/references/ai-frameworks.md": "f827de93dde124eb", "gsd-core/references/artifact-types.md": "8bd01fd75a2ba70e", @@ -199,7 +200,7 @@ "gsd-core/workflows/audit-fix.md": "493e4abe4f701662", "gsd-core/workflows/audit-milestone.md": "26b2428d9a8df7b2", "gsd-core/workflows/audit-uat.md": "f02cd45df6304b06", - "gsd-core/workflows/autonomous.md": "e2b5525089396882", + "gsd-core/workflows/autonomous.md": "b615e91ac7c248bd", "gsd-core/workflows/check-todos.md": "e4209530a4132312", "gsd-core/workflows/cleanup.md": "78080ff25ba43f8c", "gsd-core/workflows/code-review-fix.md": "4eebfb7f1612b441", diff --git a/tests/fixtures/golden-install-parity/windsurf.json b/tests/fixtures/golden-install-parity/windsurf.json index c98664752..0d5e089e8 100644 --- a/tests/fixtures/golden-install-parity/windsurf.json +++ b/tests/fixtures/golden-install-parity/windsurf.json @@ -1,40 +1,40 @@ { ".gsd-profile": "0e716a5fef4e6dc1", ".gsd/defaults.json": "560664b045e645cb", - "agents/gsd-advisor-researcher.md": "7dfdadd98ec1cccc", + "agents/gsd-advisor-researcher.md": "e5be2680b690c198", "agents/gsd-ai-researcher.md": "abfc97706f16aaaf", - "agents/gsd-assumptions-analyzer.md": "dc5e9973ff0740d7", - "agents/gsd-code-fixer.md": "8a0a2d602e2e553b", - "agents/gsd-code-reviewer.md": "b9eae8c588ca34fc", - "agents/gsd-codebase-mapper.md": "5212f81b9bdddf4e", + "agents/gsd-assumptions-analyzer.md": "b3219da6b194fdef", + "agents/gsd-code-fixer.md": "4d66f7e056369896", + "agents/gsd-code-reviewer.md": "efc0d2dee321c654", + "agents/gsd-codebase-mapper.md": "cfa2bbfaf264e1fd", "agents/gsd-debug-session-manager.md": "40edd70065aa07bb", - "agents/gsd-debugger.md": "643fa461a0249194", + "agents/gsd-debugger.md": "107754fc10a1aafa", "agents/gsd-doc-classifier.md": "5807f1f7cfa40c42", "agents/gsd-doc-synthesizer.md": "0897098024c17ccd", "agents/gsd-doc-verifier.md": "ede2f297b73b5a86", - "agents/gsd-doc-writer.md": "6b5d454ed7ca8fcb", + "agents/gsd-doc-writer.md": "0109294817e475a8", "agents/gsd-domain-researcher.md": "56395dbdabf076f6", - "agents/gsd-eval-auditor.md": "7ae0c5e3ab6871f6", + "agents/gsd-eval-auditor.md": "8a2cab3ae8b4674b", "agents/gsd-eval-planner.md": "2049dac060d00eda", - "agents/gsd-executor.md": "b78eb2bdf8d83ab3", + "agents/gsd-executor.md": "93ad20ee189e0669", "agents/gsd-framework-selector.md": "4b77eebbe9288d80", - "agents/gsd-integration-checker.md": "2ee5c85edce7842a", + "agents/gsd-integration-checker.md": "4ffb37fb230c2b90", "agents/gsd-intel-updater.md": "16ee6795da80a7c0", "agents/gsd-mempalace-curator.md": "63676937f8970bf3", - "agents/gsd-nyquist-auditor.md": "8c02fb3e41caed29", + "agents/gsd-nyquist-auditor.md": "0ef8609fd897e399", "agents/gsd-pattern-mapper.md": "ada0c169daa2f0ec", - "agents/gsd-phase-researcher.md": "43d0390c4468a8eb", - "agents/gsd-plan-checker.md": "9dc374ed91d8cdcf", - "agents/gsd-planner.md": "13e2861f9c325194", - "agents/gsd-project-researcher.md": "5c708d9ccacf40b6", - "agents/gsd-research-synthesizer.md": "7afe0b71bf76a91f", - "agents/gsd-roadmapper.md": "befd552019727d2d", - "agents/gsd-security-auditor.md": "092271a639d991a6", - "agents/gsd-ui-auditor.md": "e9b377d2a0f5185d", - "agents/gsd-ui-checker.md": "bd8e9be4c75dcdcf", - "agents/gsd-ui-researcher.md": "f04d24e6459bd23d", + "agents/gsd-phase-researcher.md": "bf5104cc11b973e9", + "agents/gsd-plan-checker.md": "15ebf7ea032c6de2", + "agents/gsd-planner.md": "f508c186b837b3f0", + "agents/gsd-project-researcher.md": "3fbfb4b098966e64", + "agents/gsd-research-synthesizer.md": "beb116fe6df1b376", + "agents/gsd-roadmapper.md": "fb62e1e3de84b5f9", + "agents/gsd-security-auditor.md": "13b660e2d336ed8e", + "agents/gsd-ui-auditor.md": "20cc99872e9b998b", + "agents/gsd-ui-checker.md": "b9c38249bff35478", + "agents/gsd-ui-researcher.md": "e31fa75e26f957f2", "agents/gsd-user-profiler.md": "622220df0654b6bf", - "agents/gsd-verifier.md": "e6353ed8a4baaa32", + "agents/gsd-verifier.md": "b16b34a580941124", "gsd-core/VERSION": "ef0deccd81a6723c", "gsd-core/bin/check-latest-version.cjs": "e4a224058c8f4d74", "gsd-core/bin/gsd-tools.cjs": "5cf26d5f9e588cf8", @@ -48,6 +48,7 @@ "gsd-core/contexts/research.md": "b3285d8e7209cc3b", "gsd-core/contexts/review.md": "dc578fdd74bbea11", "gsd-core/references/agent-contracts.md": "ff65e633c656c0d2", + "gsd-core/references/agent-skills-bootstrap.md": "849977da771f2b06", "gsd-core/references/ai-evals.md": "b5afa786b938671e", "gsd-core/references/ai-frameworks.md": "f827de93dde124eb", "gsd-core/references/artifact-types.md": "8bd01fd75a2ba70e", @@ -199,7 +200,7 @@ "gsd-core/workflows/audit-fix.md": "e1ad3e58979d9eef", "gsd-core/workflows/audit-milestone.md": "e578d1ce71b172e6", "gsd-core/workflows/audit-uat.md": "0f779101b40c7229", - "gsd-core/workflows/autonomous.md": "605f4563acd39ae4", + "gsd-core/workflows/autonomous.md": "afb9649e6d9b3860", "gsd-core/workflows/check-todos.md": "ad2ff17a672e7101", "gsd-core/workflows/cleanup.md": "edc0bc375acdb563", "gsd-core/workflows/code-review-fix.md": "aa750f6d1abd3b9f", diff --git a/tests/workflow-size-baseline.json b/tests/workflow-size-baseline.json index 7477a9b82..255f8e2ad 100644 --- a/tests/workflow-size-baseline.json +++ b/tests/workflow-size-baseline.json @@ -8,7 +8,7 @@ "audit-fix.md": 10988, "audit-milestone.md": 17637, "audit-uat.md": 7425, - "autonomous.md": 41790, + "autonomous.md": 42430, "check-todos.md": 9431, "cleanup.md": 9897, "code-review-fix.md": 23890,