feat: add shared template system for multi-platform agent generation#43
Conversation
|
original prompt: |
|
Caution Review failedThe pull request is closed. 📝 WalkthroughWalkthroughAdds a template-driven agent generation system: shared agent templates + platform configs, a PowerShell generator and common helpers with tests, CI validation and weekly drift detection, many new governance/planning docs and templates, editorial alignment across agent markdown, and installer/discovery updates. No public API changes. Changes
Sequence Diagram(s)mermaid Estimated code review effort🎯 4 (Complex) | ⏱️ ~45 minutes Files/areas to scrutinize:
Possibly related issues
Possibly related PRs
Flag: verify generator YAML/frontmatter edge cases and drift-detector thresholds before merge — false-positive drift alerts or YAML serialization differences will break CI and contributor workflows. Pre-merge checks and finishing touches❌ Failed checks (1 inconclusive)
✅ Passed checks (2 passed)
📜 Recent review detailsConfiguration used: Path: .coderabbit.yaml Review profile: CHILL Plan: Pro 📒 Files selected for processing (4)
Comment |
There was a problem hiding this comment.
Actionable comments posted: 6
🧹 Nitpick comments (2)
.agents/planning/implementation-plan-agent-consolidation.md (1)
16-30: QA verdict wording is contradictory; clarify "Needs Changes" vs. "Proceed with QA Conditions".Line 16 marks QA verdict as "Needs Changes," but line 20 approves proceeding "with QA Conditions." The implementation doesn't actually block on QA concerns—they're deferred to task execution time (lines 24–29).
Recommend revising line 16 to say "Approved (with implementation-time conditions)" to avoid confusion. The current wording suggests the plan should not be approved.
- | QA | **Needs Changes** | Test specifications required | + | QA | **Approved** | Implementation-time test specification required |.agents/roadmap/product-roadmap.md (1)
88-88: Minor grammar issue: fix "dependencies" wording.Line 88 reads "all 3 epics but PR #41 is referenced" - should be "all 3 P0 epics, with PR references" for clarity.
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (13)
.agents/analysis/ideation-agent-templating.md(1 hunks).agents/architecture/2-variant-consolidation-review.md(1 hunks).agents/critique/001-agent-templating-critique.md(1 hunks).agents/planning/implementation-plan-agent-consolidation.md(1 hunks).agents/planning/prd-agent-consolidation.md(1 hunks).agents/planning/tasks-agent-consolidation.md(1 hunks).agents/qa/001-agent-consolidation-test-strategy-review.md(1 hunks).agents/roadmap/epic-agent-consolidation.md(1 hunks).agents/roadmap/product-roadmap.md(1 hunks).serena/memories/epic-2-variant-consolidation.md(1 hunks).serena/memories/prd-agent-consolidation-context.md(1 hunks).serena/memories/research-agent-templating-2025-12-15.md(1 hunks).serena/memories/roadmap-v1.1-prioritization.md(1 hunks)
🧰 Additional context used
📓 Path-based instructions (2)
**/.agents/**/*.md
📄 CodeRabbit inference engine (.agents/governance/interview-response-template.md)
Primary deliverables from agents should be saved to
.agents/[category]/[pattern].mdwith naming convention[PREFIX]-NNN-[description].md
Files:
.agents/architecture/2-variant-consolidation-review.md.agents/planning/prd-agent-consolidation.md.agents/planning/implementation-plan-agent-consolidation.md.agents/critique/001-agent-templating-critique.md.agents/planning/tasks-agent-consolidation.md.agents/qa/001-agent-consolidation-test-strategy-review.md.agents/roadmap/product-roadmap.md.agents/roadmap/epic-agent-consolidation.md.agents/analysis/ideation-agent-templating.md
.agents/**
⚙️ CodeRabbit configuration file
Agent configuration files. Only flag security issues or broken cross-references. Ignore style, formatting, and structure.
Files:
.agents/architecture/2-variant-consolidation-review.md.agents/planning/prd-agent-consolidation.md.agents/planning/implementation-plan-agent-consolidation.md.agents/critique/001-agent-templating-critique.md.agents/planning/tasks-agent-consolidation.md.agents/qa/001-agent-consolidation-test-strategy-review.md.agents/roadmap/product-roadmap.md.agents/roadmap/epic-agent-consolidation.md.agents/analysis/ideation-agent-templating.md
🪛 LanguageTool
.agents/planning/prd-agent-consolidation.md
[grammar] ~205-~205: Use a hyphen to join words.
Context: ...t extensions (.agent.md) ### FR-4: CI Generated File Validation 1. The CI wor...
(QB_NEW_EN_HYPHEN)
[uncategorized] ~411-~411: The official name of this software platform is spelled with a capital “H”.
Context: ...ssue template for drift alerts | 0.5h | .github/ISSUE_TEMPLATE/drift-alert.md | | Docu...
(GITHUB)
.agents/critique/001-agent-templating-critique.md
[style] ~56-~56: Three successive sentences begin with the same word. Consider rewording the sentence or use a thesaurus to find a synonym.
Context: ...he current git history shows 2 commits. What triggers the concern about synchronizat...
(ENGLISH_WORD_REPEAT_BEGINNING_RULE)
.agents/planning/tasks-agent-consolidation.md
[grammar] ~355-~355: Use a hyphen to join words.
Context: ...Description* Validate that all 3 proof of concept agents generate byte-identica...
(QB_NEW_EN_HYPHEN)
[grammar] ~355-~355: Use a hyphen to join words.
Context: ...scription** Validate that all 3 proof of concept agents generate byte-identical o...
(QB_NEW_EN_HYPHEN)
[uncategorized] ~435-~435: The official name of this software platform is spelled with a capital “H”.
Context: ...s. Acceptance Criteria - [ ] File `.github/workflows/validate-generated-agents.yml...
(GITHUB)
[uncategorized] ~600-~600: The official name of this software platform is spelled with a capital “H”.
Context: ...t. Acceptance Criteria - [ ] File .github/workflows/drift-detection.yml exists -...
(GITHUB)
[uncategorized] ~636-~636: The official name of this software platform is spelled with a capital “H”.
Context: ...n. Acceptance Criteria - [ ] File .github/ISSUE_TEMPLATE/drift-alert.md exists -...
(GITHUB)
.agents/roadmap/product-roadmap.md
[grammar] ~88-~88: Ensure spelling is correct
Context: ...ne drift patterns #### Dependencies - None blocking (builds on existing file struct...
(QB_NEW_EN_ORTHOGRAPHY_ERROR_IDS_1)
[style] ~194-~194: Consider an alternative for the often overused word ‘important’.
Context: ...ve) | 2-Variant Consolidation | | Not Important | - | Full Templating | **Recommenda...
(NOT_IMPORTANT)
.agents/analysis/ideation-agent-templating.md
[uncategorized] ~63-~63: The official name of this software platform is spelled with a capital “H”.
Context: ...* | WebSearch, WebFetch, Task | vscode, github.vscode-, ms-vscode. | shell, agent | ...
(GITHUB)
[uncategorized] ~212-~212: Did you mean the formatting language “Markdown” (= proper noun)?
Context: ...builds - Tags (<% %>) can be noisy in markdown Example: ```ejs --- <% if (platfor...
(MARKDOWN_NNP)
🔍 Remote MCP GitHub Copilot
Let me compile the comprehensive review context now based on the gathered information:
Summary of Additional Context Found
I've gathered comprehensive context to support your PR review. Here's what I found:
Repository Overview [::GitHub Copilot::] [::DeepWiki::]
The rjmurillo/ai-agents repository is a multi-agent system for software development with 18 specialized agents deployed across three platforms: VS Code, GitHub Copilot CLI, and Claude Code. The repository uses PowerShell as its primary scripting language.
PR #43 Status and Content
The PR is currently in draft status with 13 files added (3,257 additions) and no deletions. The PR description uses a template with empty sections and no concrete change descriptions.
Files added (13 total):
- Analysis & Research: Ideation research on agent templating system (512 lines)
- Architecture: Architecture review for 2-variant consolidation (205 lines)
- Critique: Validation critique on agent templating (138 lines)
- Planning: PRD, implementation plan, task breakdown for consolidation (482 + 189 + 783 lines)
- QA: Test strategy review (350 lines)
- Roadmap: Product roadmap and epic documentation (229 + 218 lines)
- Serena Memories: Context summaries for decision tracking (4 files, 150 lines total)
Related Work: PR #32 Connection
PR #32 was closed on 2025-12-15 and introduced a comprehensive Ideation Workflow system with a 4-phase pipeline (Research, Validation, Epic/PRD Creation, Implementation Review). This PR #43 follows the ideation workflow that PR #32 established, demonstrating the system in action.
Core Initiative: 2-Variant Agent Consolidation
The PR documents a major initiative to consolidate agent files:
- Current state: 18 agents × 3 platforms = 54 separate files
- Target state: 18 agents × 1 shared source + 2 platform variants = 36 files (33% reduction)
- Scope: Consolidate VS Code and Copilot CLI (which are 99%+ identical); keep Claude separate
- Phase 1 (4-6 hours): Build-time generation from shared sources with platform-specific frontmatter
- Phase 2 (4-8 hours): Weekly CI drift detection comparing Claude vs shared variants, with 90-day data collection to inform future full templating decisions
Key Technical Decisions
- Build Script Approach: PowerShell-based generation script reading shared sources and applying platform-specific transformations
- Templating Deferral: Full LiquidJS templating (20-31 hours) deferred to v1.2+ pending 90-day drift data, following the 80/20 principle
- CI Integration: GitHub Actions workflow that validates generated files match sources, blocking PRs with manual edits
Quality Concerns from Reviews
The QA review identifies specific gaps requiring attention:
- Test file creation (Generate-Agents.Tests.ps1) mentioned but no test cases specified in task breakdown
- Byte-identical comparison methodology undefined (handling of line endings, encoding, whitespace)
- QA effort for PoC validation estimated at 30 minutes but likely needs 1.5 hours for thorough testing
- No regression tests specified for agent functionality post-migration
Strategic Context
The epic has a RICE score of 9.6 (reach: 3 users/quarter, impact: 2 high, confidence: 80%, effort: 0.5 person-months), prioritized as P1 for v1.1 release. The Critic review flagged the 80-90% overlap claim as partially unverified (VS Code/Copilot CLI are 99%+ identical, but Claude/VS Code ~60-70%), requiring escalation to high-level advisor for strategic conflict resolution.
🔇 Additional comments (14)
.agents/critique/001-agent-templating-critique.md (2)
1-139: Missing critical foundation document referenced by critique and all downstream planning.The critique references
.agents/analysis/ideation-agent-templating.mdas the source document being reviewed (line 32), but this file is not provided in the PR. All critique findings depend on its content. Without the ideation document, downstream reviewers cannot verify the critique's analysis of overlap percentages, time estimates, and specialist disagreements.Confirm whether
.agents/analysis/ideation-agent-templating.mdis included in this PR. If not, it must be added for the critique to be self-contained and reviewable.
19-44: Governance flow issue: "NEEDS REVISION" verdict does not align with "Approved with Conditions" in implementation plan.This critique issues a NEEDS REVISION verdict (line 5) and routes to
high-level-advisorfor escalation (line 128), identifying critical unresolved conflicts between specialists. However, the Implementation Plan document (lines 5–6) states "Approved with Conditions" and proceeds with task assignment.Either:
- The escalation to high-level-advisor should block the implementation plan, or
- The high-level-advisor resolved the conflict (not documented in provided files), enabling conditional approval.
Clarify the decision flow: Was the high-level-advisor input collected before the Implementation Plan was approved? If so, add a section to this critique documenting the resolution.
.serena/memories/research-agent-templating-2025-12-15.md (1)
1-38: Memory document status conflicts with critique verdict.This memory (line 5) marks the research as "Complete - Recommend Proceed," but the companion critique document marks it "NEEDS REVISION" requiring escalation. These status markers should align.
Either update this memory's status to reflect the escalation requirement, or document how the "Proceed" recommendation was reaffirmed after critique review.
.agents/planning/implementation-plan-agent-consolidation.md (1)
162-167: Quality gate "byte-identical outputs" is incomplete without methodology definition.Line 163 specifies: "PoC Validation (TASK-012): 3 agents generate byte-identical outputs." However, the critique and QA review both note that "byte-comparison methodology undefined (handling of line endings, encoding, whitespace)" (external context + QA review line 101).
This quality gate cannot be verified without defining what "byte-identical" means:
- Are line endings normalized (CRLF vs LF)?
- What encoding (UTF-8 BOM vs no BOM)?
- Are trailing spaces acceptable?
Confirm the PRD amendment (line 28) will document the byte-comparison methodology before TASK-012 execution.
.serena/memories/prd-agent-consolidation-context.md (1)
1-44: PRD context memory references main PRD document that is not provided.Line 8 references
.agents/planning/prd-agent-consolidation.mdas the main PRD location, but this file is not included in the PR files provided. This memory alone cannot be reviewed independently; the main PRD is required.Confirm whether
.agents/planning/prd-agent-consolidation.mdis included in this PR. If not, provide it for review..serena/memories/roadmap-v1.1-prioritization.md (1)
1-42: LGTM. Prioritization decision is sound. P1 rating justified by RICE score, and deferral of full templating to v1.2+ pending drift data is pragmatic application of 80/20 principle..agents/roadmap/product-roadmap.md (2)
13-35: Verify v1.0 completion status and PR references.The roadmap claims v1.0 is Complete (line 13) with all P0 epics done:
- Unified Install Script: "Complete (PR #41)"
- Multi-Agent Impact Analysis: "Complete (PR #40)"
- Agent Parity: "Complete"
But this PR #43 is dated 2025-12-16 and references planning for Pre-PR Security Gate (v1.1 item, line 200). Verify PR #41 and #40 are actually merged before marking v1.0 complete.
71-78: Assumptions table appropriately identifies untested hypotheses.Assumptions section correctly flags "90-day data collection sufficient to identify drift patterns" as Untested (line 76). This supports the deferred full-templating decision—data will inform the v1.2+ decision.
.agents/architecture/2-variant-consolidation-review.md (2)
1-202: Thorough architecture review with sound risk assessment.Review correctly identifies build-time generation as appropriate for the problem, validates file structure against existing patterns, and assesses risk mitigations. Approved verdict is well-justified.
Recommendations (generated file headers, JSON drift output for automation) improve implementation quality without blocking approval.
85-88: PowerShell-Yaml dependency concern: ensure fallback is documented.Line 85 flags PowerShell-Yaml as an external dependency that "may not be present in all environments." Recommendation at line 87 suggests "document the dependency clearly" and "provide fallback regex parsing."
Verify that the implementation script (referenced but not provided in this PR) includes:
- Dependency documentation in script header
- Actual regex fallback code if PowerShell-Yaml is unavailable
- Clear error message directing users to install the module
.agents/roadmap/epic-agent-consolidation.md (1)
1-215: Epic planning is comprehensive and well-structured.User story is clear, success metrics are measurable, scope boundaries explicit, and assumptions appropriately flagged. RICE score (9.6) and P1 priority are justified. Phased delivery with acceptance criteria enables implementation team to validate completion.
Opportunity cost analysis (lines 178-192) honestly addresses the Pre-PR Security Gate delay trade-off.
.agents/analysis/ideation-agent-templating.md (1)
1-512: Comprehensive research document approved.The templating analysis is thorough, well-structured, and provides clear reasoning for the LiquidJS recommendation. CVA methodology is sound. Effort estimate (20-31 hours) and phased migration path are realistic.
.agents/qa/001-agent-consolidation-test-strategy-review.md (1)
1-350: QA review identifies actionable gaps; recommendations should be incorporated.The review correctly identifies test specification gaps and provides concrete Pester examples. High-priority items (explicit test file creation, byte-comparison methodology, QA effort adjustment) should be addressed in the task breakdown before implementation starts. This document properly flags risks.
Confirm that the high-priority recommendations (lines 291-307) have been or will be integrated into the task breakdown to ensure test strategy is defined before build script implementation begins.
.agents/planning/prd-agent-consolidation.md (1)
1-445: PRD structure and requirements are comprehensive and well-defined.The PRD clearly articulates problem statement, goals, user stories with INVEST criteria, and functional/non-functional requirements. Design sections include concrete transformation examples and phase breakdown. Risks and mitigations are documented. Fix the file path references and this is ready for implementation.
Implements Phase 1 Milestones 1.1-1.3 of agent consolidation: - Add templates directory with shared agent sources (analyst, implementer, orchestrator) - Add platform configs (vscode.yaml, copilot-cli.yaml) for frontmatter transformation - Add build/Generate-Agents.ps1 for build-time agent generation - Add comprehensive Pester tests (23 tests) in build/tests/ - Normalize orchestrator.agent.md content to match VS Code version Quality Gate Results: - Byte-identical output: PASSED (3/3 agents) - Build performance: PASSED (0.14s for 3 agents) - Test coverage: PASSED (23/23 tests) Usage: pwsh build/Generate-Agents.ps1 # Generate all agents pwsh build/Generate-Agents.ps1 -Validate # CI validation mode 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Complete TASK-013: Migrate remaining 15 agents to templates/agents/. Changes: - Add 15 new shared templates (architect through task-generator) - Fix broken markdown code fences in multiple agents - Normalize agent invocation syntax for platform-neutrality - Regenerate all VS Code and Copilot CLI agent files Content normalizations applied: - Fixed unclosed/malformed code fences in architect, critic, devops, explainer, planner, qa, retrospective, security, skillbook, task-generator - Normalized pr-comment-responder agent invocation syntax All 18 agents now generate from single source of truth. Run: pwsh build/Generate-Agents.ps1 -Validate 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
There was a problem hiding this comment.
Actionable comments posted: 1
🧹 Nitpick comments (2)
build/Generate-Agents.ps1 (2)
295-309: Verify tool field mapping handles all platform name variations.Lines 296-298 build tool field keys:
$toolsKey = "tools_$($platformName -replace '-', '')"→ "tools_copilotcli" for "copilot-cli"$toolsKeyAlt = "tools_$($platformName -replace '-cli$', '')"→ "tools_copilot" for "copilot-cli"Shared templates use
tools_copilot(nottools_copilotcli). Logic tries both keys and falls back to generictoolsfield. This works but is fragile if platform naming changes.Consider documenting the expected tool field naming convention in platform config files or centralizing the key mapping logic.
366-376: Handoff syntax conversion uses specific patterns.Regex patterns convert between:
- VS Code:
`#runSubagent with subagentType=$1`and#runSubagent with subagentType={agent_name}- Copilot CLI:
`/agent $1`and/agent [agent_name]Patterns handle backtick-wrapped inline code and plain text placeholders. Works for current templates but won't catch variations (e.g., different whitespace, multiline).
If handoff patterns evolve, consider documenting the expected formats in templates or adding validation to catch unsupported patterns early.
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (8)
build/Generate-Agents.ps1(1 hunks)build/tests/Generate-Agents.Tests.ps1(1 hunks)src/copilot-cli/orchestrator.agent.md(2 hunks)templates/agents/analyst.shared.md(1 hunks)templates/agents/implementer.shared.md(1 hunks)templates/agents/orchestrator.shared.md(1 hunks)templates/platforms/copilot-cli.yaml(1 hunks)templates/platforms/vscode.yaml(1 hunks)
✅ Files skipped from review due to trivial changes (1)
- templates/platforms/vscode.yaml
🧰 Additional context used
📓 Path-based instructions (6)
**/*.md
📄 CodeRabbit inference engine (.agents/architecture/ADR-001-markdown-linting.md)
**/*.md: Add language identifiers to all fenced code blocks (MD040). Use appropriate language identifiers:csharpfor C#,powershellfor PowerShell,bashfor shell,jsonfor JSON,yamlfor YAML,markdownfor Markdown,textfor plain text or generic/pseudo code
Wrap generic types in backticks to escape angle brackets (e.g.,ArrayPool<T>instead of ArrayPool) to comply with MD033 inline HTML restrictions and ensure proper rendering
Add blank lines around code blocks to comply with MD031 markdown linting requirements
Add blank lines around lists to comply with MD032 markdown linting requirements
Add blank lines around headings to comply with MD022 markdown linting requirements
Use ATX-style headings (# Heading) consistently across all markdown documents (MD003)
Use fenced code block style (triple backticks) consistently, with backtick delimiters rather than tildes (MD046, MD048)
Allow only specific HTML elements in markdown:<br>,<kbd>,<sup>,<sub>. Escape or avoid other inline HTML elements to comply with MD033 restrictions
**/*.md: Use skill ID convention format: Skill-[Category]-[Number] for skills and Anti-[Category]-[Number] for anti-patterns
Each skill must follow the required structure: Statement (max 15 words), Context, Atomicity score (0-100%), Evidence, Impact, and Tags
Score skills for atomicity using the scale: 90-100% (Excellent - ready for storage), 70-89% (Good - may need refinement), 50-69% (Acceptable - consider splitting), <50% (Needs Work - too vague)
Tag each skill with one of: helpful (contributed to success), harmful (caused failure), or neutral (no measurable impact)
When citing skills during implementation, use the format: Applying [Skill-ID], Strategy [description], Expected [outcome], Result [actual outcome], Skill Validated [yes/no]
Skills should be atomic learning statements of maximum 15 words
Skills must include measurable outcomes in the Impact field
**/*.md: Always specify language identifiers on fenc...
Files:
templates/agents/orchestrator.shared.mdtemplates/agents/analyst.shared.mdtemplates/agents/implementer.shared.mdsrc/copilot-cli/orchestrator.agent.md
⚙️ CodeRabbit configuration file
**/*.md: Writing Quality: - Grade 9 reading level - Active voice, direct address - Short sentences (under 15 words ideal) - No fluff, filler, or marketing language - Replace adjectives with data where possible - Every sentence must pass the "so what" test
Flag: - Passive voice - Vague language (nearly, some, almost, very) - Jargon without definitions - Broken links and outdated procedures - Inconsistency with code changes in same PR - Missing context for new features or APIs
Ignore (handled by .markdownlint-cli2.yaml): - Markdown formatting and style - Heading level choices - Link formatting variations - Minor punctuation preferences
Files:
templates/agents/orchestrator.shared.mdtemplates/agents/analyst.shared.mdtemplates/agents/implementer.shared.mdsrc/copilot-cli/orchestrator.agent.md
build/**/*.ps1
📄 CodeRabbit inference engine (.agents/security/infrastructure-file-patterns.md)
PowerShell build scripts in build directory (
build/**/*.ps1) should trigger security agent review due to high security implications
Files:
build/tests/Generate-Agents.Tests.ps1build/Generate-Agents.ps1
{build/**/*.ps1,scripts/**/*.sh,Dockerfile*,docker-compose*,**/Controllers/**}
📄 CodeRabbit inference engine (.agents/utilities/security-detection/SKILL.md)
Build scripts (
build/**/*.ps1,scripts/**/*.sh), container configs (Dockerfile*,docker-compose*), and API controllers (**/Controllers/**) require security agent review (HIGH level)
Files:
build/tests/Generate-Agents.Tests.ps1build/Generate-Agents.ps1
**/*.{ps1,psm1,psd1}
📄 CodeRabbit inference engine (.agents/retrospective/2025-12-15-cva-install-scripts.md)
Extract environment variations to .psd1 data files, keeping logic generic rather than hardcoding configuration in scripts
Files:
build/tests/Generate-Agents.Tests.ps1build/Generate-Agents.ps1
**/*.{ps1,psd1}?(@(test|spec))
📄 CodeRabbit inference engine (.agents/retrospective/2025-12-15-install-scripts-session.md)
Use BeforeAll blocks for all variable initialization in Pester 5.x tests; avoid variable assignments outside BeforeAll during Discovery phase
Files:
build/tests/Generate-Agents.Tests.ps1build/Generate-Agents.ps1
{.githooks/**,**/.github/**,**/infrastructure/**,**/config/**,**/*.tf,**/*.yml,**/*.yaml}
📄 CodeRabbit inference engine (.agents/metrics/baseline-report.md)
Infrastructure files (including
.githooks/pre-commit) must receive security review before deployment
Files:
templates/platforms/copilot-cli.yaml
🪛 LanguageTool
templates/agents/orchestrator.shared.md
[style] ~22-~22: Consider using a different verb for a more formal wording.
Context: ...rom one step to the next - Research and fix issues autonomously - Continue until AL...
(FIX_RESOLVE)
[uncategorized] ~92-~92: The official name of this software platform is spelled with a capital “H”.
Context: ...line", "workflow", "deploy", "build", ".github/", ".githooks/" | | Security | Vuln...
(GITHUB)
[uncategorized] ~360-~360: The official name of this software platform is spelled with a capital “H”.
Context: ...ecurity, architect, implementer, qa | | .github/workflows/*, .githooks/* | Infrastru...
(GITHUB)
templates/agents/implementer.shared.md
[style] ~139-~139: To elevate your writing, try using a synonym here.
Context: ...ion) Testability is leverage. Code hard to test reveals deeper problems. **Coh...
(HARD_TO)
[style] ~139-~139: Consider a different adjective to strengthen your wording.
Context: ...s leverage.** Code hard to test reveals deeper problems. Cohesion: Single respons...
(DEEP_PROFOUND)
[style] ~233-~233: To elevate your writing, try using a synonym here.
Context: ...code - Use Moq for mocking - If code is hard to test, identify why: poor encapsulati...
(HARD_TO)
🔍 Remote MCP DeepWiki
Summary of additional repository context relevant to reviewing this PR:
-
Repo purpose & layout — multi‑platform agent system (18 logical agents × 3 platforms = 54 files). Platform agent dirs: vs-code-agents/, copilot-cli/, claude/. Install scripts under scripts/ and outputs written to .agents/ subfolders (analysis, architecture, planning, critique, qa, retrospective, etc.).,
-
Installation & precedence — VS Code supports global (%APPDATA%/prompts or
/.config/...) and per‑repo (.github/agents/) installs; Copilot CLI per‑repo install is required (global user install is broken, see Issue #452); Claude supports global (/.claude/agents/) and per‑repo (.claude/agents/) installs. Per‑repo agents override global. (Install scripts create .agents/ dirs and .gitkeep.) -
Memory system (cloudmcp-manager) — central persistent memory used by agents with five operations: memory-search_nodes, memory-open_nodes, memory-create_entities, memory-add_observations, memory-create_relations. Copilot CLI requires ~/.copilot/mcp-config.json to enable memory; VS Code and Claude auto‑discover. Observations should be 300–1500 chars; entity naming conventions: Feature-, ADR-, Pattern-, Skill-.
-
Consistency & reviews — .github/copilot-code-review.md enforces semantic parity across platform agent files: core identity, numbered responsibilities, handoff protocol, memory protocol, output dirs, constraints, skill citation and atomicity rules must match; frontmatter, tool names, and invocation syntax may differ. The repo contains an explicit agent mapping table and drift detection/PR checklist.
-
CI/Dev workflows & scripts — repository provides PowerShell installers and scripts to scaffold agent files and .agents/ directories; scripts also append copilot/CLAUDE instruction files idempotently. Generate‑Agents.ps1 (mentioned in PR context) and its tests were added in the PR — expect build/Generate-Agents.ps1 and build/tests/Generate-Agents.Tests.ps1 to integrate with these installation/workflow patterns. (Installer behavior and output dirs: see above.)
-
Practical reviewer implications for this PR:
- PR adds many governance/planning docs and build/Generate-Agents.ps1 + tests; these are documentation + tooling additions (no public API changes) but affect install/generation flows and require validating: installer-idempotency, .agents/ structure, MCP config notes for Copilot CLI, and consistency with .github/copilot-code-review.md rules.
- Verify that any new agent templates or handoff examples in the PR follow the repository’s mandatory consistency elements and memory/entity naming conventions so automated reviews won’t flag drift.
- Confirm Generate-Agents script's validate mode and what‑if behavior map to the repo’s validation/CI expectations (it should not conflict with existing install/validation scripts).
🔇 Additional comments (10)
src/copilot-cli/orchestrator.agent.md (2)
224-231: LGTM: Capability matrix enhancements add useful specificity.The expanded "Best For" and "Limitations" columns clarify agent responsibilities (requirements gathering, technical debt assessment, test coverage validation, alignment checks, outcome focus). These additions help route tasks more precisely.
660-660: LGTM: Handoff syntax matches Copilot CLI platform.The
/agent [agent_name]syntax aligns with the Copilot CLI platform configuration (templates/platforms/copilot-cli.yaml specifies handoffSyntax: "/agent"). Platform-specific transformation working as designed.templates/agents/orchestrator.shared.md (1)
1-832: LGTM: Comprehensive orchestrator template with proper platform-agnostic placeholders.The template correctly uses platform-agnostic handoff syntax (
#runSubagent with subagentType={agent_name}on line 660) that will be transformed per platform config. Code blocks have language identifiers (MD040 compliant). Structure follows established conventions for agent templates.templates/agents/implementer.shared.md (1)
1-357: LGTM: Implementer template follows established conventions.Code blocks properly identified with language markers (csharp, text). Template structure aligns with orchestrator and analyst templates. Software Hierarchy of Needs section provides clear guidance for implementation quality.
templates/platforms/copilot-cli.yaml (1)
1-19: LGTM: Copilot CLI platform config correctly specifies platform requirements.Configuration properly sets model: null and includeNameField: true (Copilot CLI requires name field, not model field). Handoff syntax "/agent" matches Copilot CLI conventions. Output directory and file extension appropriate.
templates/agents/analyst.shared.md (1)
1-311: LGTM: Analyst template properly structured with compliant code blocks.All code blocks have appropriate language identifiers (text, bash, markdown). Template provides clear research workflows and analysis types. Consistent with other agent templates in this PR.
build/tests/Generate-Agents.Tests.ps1 (2)
15-107: LGTM: Proper Pester 5.x structure with BeforeAll initialization.All function definitions and variable initialization ($Script:TestTempDir) correctly placed in BeforeAll block, avoiding Discovery phase issues. Test helper functions (Test-PathWithinRoot, Read-YamlFrontmatter, ConvertFrom-SimpleFrontmatter, Convert-HandoffSyntax, Convert-FrontmatterForPlatform) provide good unit test coverage.
116-450: LGTM: Comprehensive test coverage for generator script.Tests cover critical areas: path traversal security (lines 116-146), frontmatter parsing edge cases (lines 148-203), handoff syntax conversion for both platforms (lines 251-292), platform-specific frontmatter transformations (lines 294-360), and integration scaffolding (lines 362-427). Performance test ensures parsing remains fast (lines 429-450).
build/Generate-Agents.ps1 (2)
496-498: LGTM: Line ending normalization ensures consistency.Code normalizes to LF then converts to CRLF to match existing files. Handles mixed line endings in templates correctly.
500-560: LGTM: Validate mode enables CI drift detection.Validate mode regenerates files in-memory and compares to committed versions (lines 500-520). Exits with code 1 if differences found. Matches the drift detection workflow described in external tools context.
TASK-014: Add validate-generated-agents.yml workflow - Triggers on template, src/vs-code-agents, src/copilot-cli changes - Runs Generate-Agents.ps1 -Validate to check consistency - Fails PRs that edit generated files directly - Shows helpful fix instructions on failure TASK-015: Add CONTRIBUTING.md and update README - Document agent template system architecture - Step-by-step guides for modifying and adding agents - Clear warnings about not editing generated files - Useful commands reference 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
There was a problem hiding this comment.
Pull request overview
This PR implements a template-based agent generation system that consolidates VS Code and Copilot CLI agents from 54 files to 36 files (33% reduction) by maintaining a single source of truth in templates/agents/*.shared.md files.
Key Changes
- Template System: New architecture using shared source files that generate platform-specific outputs through build-time transformation
- Generation Script: PowerShell script (
build/Generate-Agents.ps1) with frontmatter transformation, handoff syntax conversion, and path security validation - Platform Configurations: YAML configs defining platform-specific settings (model field, name field, handoff syntax)
Reviewed changes
Copilot reviewed 62 out of 62 changed files in this pull request and generated no comments.
Show a summary per file
| File | Description |
|---|---|
templates/platforms/vscode.yaml |
VS Code platform config: model field required, #runSubagent syntax |
templates/platforms/copilot-cli.yaml |
Copilot CLI platform config: name field required, /agent syntax |
templates/agents/*.shared.md |
Shared agent sources with platform-specific tool arrays (tools_vscode, tools_copilot) |
build/Generate-Agents.ps1 |
Generation script with YAML parsing, frontmatter transformation, and handoff syntax conversion |
build/tests/Generate-Agents.Tests.ps1 |
Pester tests covering security validation, parsing, transformation, and performance |
src/vs-code-agents/*.agent.md |
Generated files with corrected markdown fence syntax (removed nested fences) |
src/copilot-cli/*.agent.md |
Generated files with corrected markdown fence syntax and arrow syntax (-> instead of →) |
.github/workflows/validate-generated-agents.yml |
CI workflow validating generated files match templates |
CONTRIBUTING.md |
New comprehensive guide for template-based agent development |
README.md |
Updated with agent development workflow instructions |
.serena/memories/*.md |
Planning context documenting the design decisions and prioritization |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
There was a problem hiding this comment.
Actionable comments posted: 5
Caution
Some comments are outside the diff and can’t be posted inline due to platform limitations.
⚠️ Outside diff range comments (3)
src/vs-code-agents/task-generator.agent.md (1)
103-147: Add blank lines around the Task List Template code block.The code block at lines 107–147 requires blank lines before and after per MD031/032 markdown linting. Apply:
## Task List Template Save to: `.agents/planning/TASKS-[feature-name].md` + ````markdown # Task Breakdown: [Feature Name] ...
Complexity Guidelines
</blockquote></details> <details> <summary>src/copilot-cli/task-generator.agent.md (1)</summary><blockquote> `103-147`: **Add blank lines around the Task List Template code block.** Same as src/vs-code-agents/task-generator.agent.md — the code block at lines 107–147 needs blank lines before and after per MD031/032. Apply the same fix to both files. </blockquote></details> <details> <summary>templates/agents/independent-thinker.shared.md (1)</summary><blockquote> `1-145`: **Fix blank lines around code blocks (MD031/032).** Add blank lines before and after code blocks: - Line 45–46: blank line before `\`\`\`text` - Line 60–61: blank line before `\`\`\`markdown` - Line 85–86: blank line before `\`\`\`markdown` - Line 116–117: blank line before `\`\`\`text` Run `markdownlint --fix` to auto-resolve. </blockquote></details> </blockquote></details>🧹 Nitpick comments (1)
.github/workflows/validate-generated-agents.yml (1)
80-82: Clarify the "other reasons" message.When validation fails but git diff shows no changes, the message "validation may have failed for other reasons" is vague. Suggest adding examples: "validation may have failed for other reasons (e.g., line-ending differences, YAML parsing errors, path security checks)."
Apply this diff:
- Write-Host "No differences detected in git diff (validation may have failed for other reasons)" + Write-Host "No differences detected in git diff. Validation may have failed for other reasons (e.g., line-ending normalization, YAML parsing, or path checks). Check the validation step output above."📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (41)
.github/workflows/validate-generated-agents.yml(1 hunks)CONTRIBUTING.md(1 hunks)README.md(1 hunks)src/copilot-cli/architect.agent.md(0 hunks)src/copilot-cli/devops.agent.md(0 hunks)src/copilot-cli/explainer.agent.md(0 hunks)src/copilot-cli/planner.agent.md(2 hunks)src/copilot-cli/pr-comment-responder.agent.md(9 hunks)src/copilot-cli/qa.agent.md(0 hunks)src/copilot-cli/retrospective.agent.md(1 hunks)src/copilot-cli/roadmap.agent.md(3 hunks)src/copilot-cli/security.agent.md(0 hunks)src/copilot-cli/skillbook.agent.md(1 hunks)src/copilot-cli/task-generator.agent.md(2 hunks)src/vs-code-agents/architect.agent.md(1 hunks)src/vs-code-agents/critic.agent.md(1 hunks)src/vs-code-agents/devops.agent.md(0 hunks)src/vs-code-agents/independent-thinker.agent.md(0 hunks)src/vs-code-agents/planner.agent.md(2 hunks)src/vs-code-agents/pr-comment-responder.agent.md(11 hunks)src/vs-code-agents/qa.agent.md(1 hunks)src/vs-code-agents/retrospective.agent.md(1 hunks)src/vs-code-agents/roadmap.agent.md(3 hunks)src/vs-code-agents/security.agent.md(0 hunks)src/vs-code-agents/skillbook.agent.md(1 hunks)src/vs-code-agents/task-generator.agent.md(2 hunks)templates/agents/architect.shared.md(1 hunks)templates/agents/critic.shared.md(1 hunks)templates/agents/devops.shared.md(1 hunks)templates/agents/explainer.shared.md(1 hunks)templates/agents/high-level-advisor.shared.md(1 hunks)templates/agents/independent-thinker.shared.md(1 hunks)templates/agents/memory.shared.md(1 hunks)templates/agents/planner.shared.md(1 hunks)templates/agents/pr-comment-responder.shared.md(1 hunks)templates/agents/qa.shared.md(1 hunks)templates/agents/retrospective.shared.md(1 hunks)templates/agents/roadmap.shared.md(1 hunks)templates/agents/security.shared.md(1 hunks)templates/agents/skillbook.shared.md(1 hunks)templates/agents/task-generator.shared.md(1 hunks)💤 Files with no reviewable changes (8)
- src/vs-code-agents/security.agent.md
- src/copilot-cli/architect.agent.md
- src/copilot-cli/devops.agent.md
- src/copilot-cli/explainer.agent.md
- src/vs-code-agents/independent-thinker.agent.md
- src/vs-code-agents/devops.agent.md
- src/copilot-cli/security.agent.md
- src/copilot-cli/qa.agent.md
✅ Files skipped from review due to trivial changes (8)
- src/vs-code-agents/retrospective.agent.md
- src/copilot-cli/skillbook.agent.md
- src/copilot-cli/retrospective.agent.md
- templates/agents/high-level-advisor.shared.md
- templates/agents/planner.shared.md
- CONTRIBUTING.md
- src/vs-code-agents/skillbook.agent.md
- README.md
🧰 Additional context used
📓 Path-based instructions (11)
**/*.md
📄 CodeRabbit inference engine (.agents/architecture/ADR-001-markdown-linting.md)
**/*.md: Add language identifiers to all fenced code blocks (MD040). Use appropriate language identifiers:csharpfor C#,powershellfor PowerShell,bashfor shell,jsonfor JSON,yamlfor YAML,markdownfor Markdown,textfor plain text or generic/pseudo code
Wrap generic types in backticks to escape angle brackets (e.g.,ArrayPool<T>instead of ArrayPool) to comply with MD033 inline HTML restrictions and ensure proper rendering
Add blank lines around code blocks to comply with MD031 markdown linting requirements
Add blank lines around lists to comply with MD032 markdown linting requirements
Add blank lines around headings to comply with MD022 markdown linting requirements
Use ATX-style headings (# Heading) consistently across all markdown documents (MD003)
Use fenced code block style (triple backticks) consistently, with backtick delimiters rather than tildes (MD046, MD048)
Allow only specific HTML elements in markdown:<br>,<kbd>,<sup>,<sub>. Escape or avoid other inline HTML elements to comply with MD033 restrictions
**/*.md: Use skill ID convention format: Skill-[Category]-[Number] for skills and Anti-[Category]-[Number] for anti-patterns
Each skill must follow the required structure: Statement (max 15 words), Context, Atomicity score (0-100%), Evidence, Impact, and Tags
Score skills for atomicity using the scale: 90-100% (Excellent - ready for storage), 70-89% (Good - may need refinement), 50-69% (Acceptable - consider splitting), <50% (Needs Work - too vague)
Tag each skill with one of: helpful (contributed to success), harmful (caused failure), or neutral (no measurable impact)
When citing skills during implementation, use the format: Applying [Skill-ID], Strategy [description], Expected [outcome], Result [actual outcome], Skill Validated [yes/no]
Skills should be atomic learning statements of maximum 15 words
Skills must include measurable outcomes in the Impact field
**/*.md: Always specify language identifiers on fenc...Files:
src/copilot-cli/pr-comment-responder.agent.mdtemplates/agents/memory.shared.mdtemplates/agents/critic.shared.mdtemplates/agents/roadmap.shared.mdtemplates/agents/independent-thinker.shared.mdtemplates/agents/qa.shared.mdsrc/vs-code-agents/task-generator.agent.mdtemplates/agents/architect.shared.mdtemplates/agents/devops.shared.mdtemplates/agents/task-generator.shared.mdtemplates/agents/security.shared.mdsrc/copilot-cli/planner.agent.mdsrc/copilot-cli/roadmap.agent.mdtemplates/agents/skillbook.shared.mdsrc/vs-code-agents/critic.agent.mdsrc/copilot-cli/task-generator.agent.mdtemplates/agents/retrospective.shared.mdsrc/vs-code-agents/architect.agent.mdsrc/vs-code-agents/qa.agent.mdsrc/vs-code-agents/roadmap.agent.mdsrc/vs-code-agents/pr-comment-responder.agent.mdsrc/vs-code-agents/planner.agent.mdtemplates/agents/explainer.shared.mdtemplates/agents/pr-comment-responder.shared.md
⚙️ CodeRabbit configuration file
**/*.md: Writing Quality: - Grade 9 reading level - Active voice, direct address - Short sentences (under 15 words ideal) - No fluff, filler, or marketing language - Replace adjectives with data where possible - Every sentence must pass the "so what" test
Flag: - Passive voice - Vague language (nearly, some, almost, very) - Jargon without definitions - Broken links and outdated procedures - Inconsistency with code changes in same PR - Missing context for new features or APIs
Ignore (handled by .markdownlint-cli2.yaml): - Markdown formatting and style - Heading level choices - Link formatting variations - Minor punctuation preferencesFiles:
src/copilot-cli/pr-comment-responder.agent.mdtemplates/agents/memory.shared.mdtemplates/agents/critic.shared.mdtemplates/agents/roadmap.shared.mdtemplates/agents/independent-thinker.shared.mdtemplates/agents/qa.shared.mdsrc/vs-code-agents/task-generator.agent.mdtemplates/agents/architect.shared.mdtemplates/agents/devops.shared.mdtemplates/agents/task-generator.shared.mdtemplates/agents/security.shared.mdsrc/copilot-cli/planner.agent.mdsrc/copilot-cli/roadmap.agent.mdtemplates/agents/skillbook.shared.mdsrc/vs-code-agents/critic.agent.mdsrc/copilot-cli/task-generator.agent.mdtemplates/agents/retrospective.shared.mdsrc/vs-code-agents/architect.agent.mdsrc/vs-code-agents/qa.agent.mdsrc/vs-code-agents/roadmap.agent.mdsrc/vs-code-agents/pr-comment-responder.agent.mdsrc/vs-code-agents/planner.agent.mdtemplates/agents/explainer.shared.mdtemplates/agents/pr-comment-responder.shared.md**/copilot-cli/pr-comment-responder.agent.md
📄 CodeRabbit inference engine (.agents/retrospective/2025-12-14-pr-comment-responder-gaps.md)
Sync pr-comment-responder.md changes to copilot-cli/pr-comment-responder.agent.md
Files:
src/copilot-cli/pr-comment-responder.agent.md{.github/workflows/*,*/.githooks/*,Dockerfile}
📄 CodeRabbit inference engine (.agents/governance/interviews/security-interview.md)
Review infrastructure code changes including GitHub Actions workflows, git hooks, and Dockerfile for security vulnerabilities
Files:
.github/workflows/validate-generated-agents.yml{.githooks/**,**/.github/**,**/infrastructure/**,**/config/**,**/*.tf,**/*.yml,**/*.yaml}
📄 CodeRabbit inference engine (.agents/metrics/baseline-report.md)
Infrastructure files (including
.githooks/pre-commit) must receive security review before deploymentFiles:
.github/workflows/validate-generated-agents.yml.github/workflows/*
📄 CodeRabbit inference engine (.agents/metrics/dashboard-template.md)
Ensure infrastructure files in GitHub workflows directory are reviewed by agents with target rate of 100%
Implement full CodeRabbit enforcement for CI/CD workflow files in
.github/workflows/directory
.github/workflows/*: Detect files matching.github/workflows/*as infrastructure changes requiring specialist review from devops and security agents
GitHub Actions workflows must include an explicitpermissionsblock with minimally privileged permissions
GitHub Actions workflows must not usepull_request_targettrigger withactions/checkoutaction using pull request head SHA reference, as this creates a dangerous security pattern
GitHub Actions workflows requiring test reporting must explicitly grantchecks: writepermission for dorny/test-reporter compatibility
GitHub Actions workflows must avoid using overly permissivepermissions: write-alland instead use explicit minimal permissionsFiles:
.github/workflows/validate-generated-agents.yml.github/workflows/*.{yml,yaml}
📄 CodeRabbit inference engine (.agents/security/infrastructure-file-patterns.md)
GitHub Actions workflow files (
.github/workflows/*.ymland.github/workflows/*.yaml) should trigger security agent review due to critical security implicationsAdd security detection check to CI/CD pipelines to analyze staged files for infrastructure changes before implementation
.github/workflows/*.{yml,yaml}: Infrastructure files (.github/workflows/) require devops and security agent review before commit
Add pre-commit validation that fails on infrastructure files (.github/workflows/) lacking security review documentation
Infrastructure files must include a security impact analysis document before creation or modification
Retroactive security review is required for quick-fix changes to workflow files made without pre-commit review
Workflow files must validate that all required permissions are explicitly declared and justifiedFiles:
.github/workflows/validate-generated-agents.yml{.github/workflows/**,{.githooks,husky}/**,**/Auth/**,**/Security/**}
📄 CodeRabbit inference engine (.agents/utilities/security-detection/SKILL.md)
CI/CD workflow files (
.github/workflows/*), git hooks (.githooks/*,.husky/*), and authentication code (**/Auth/**,**/Security/**) require security agent review (CRITICAL level)Files:
.github/workflows/validate-generated-agents.yml.github/workflows/*.yml
📄 CodeRabbit inference engine (.agents/analysis/pr41-issue-analysis.md)
.github/workflows/*.yml: Usedotnet-nunitreporter indorny/test-reporter@v1when Pester tests output NUnitXml format
Add explicit permissions block to GitHub Actions workflow jobs, specifying minimal required permissions (e.g.,contents: readandchecks: writefor test reporting workflows)Files:
.github/workflows/validate-generated-agents.yml.github/**/*.yml
📄 CodeRabbit inference engine (.agents/planning/prd-pre-pr-security-gate.md)
Detect files matching
.github/**/*.ymlas infrastructure changes requiring specialist review from devops and security agentsFiles:
.github/workflows/validate-generated-agents.yml.github/workflows/**
⚙️ CodeRabbit configuration file
.github/workflows/**: SECURITY-CRITICAL PATH - ASSERTIVE ENFORCEMENT
Review for: - Authentication and authorization (secrets handling, OIDC) - Credential exposure (env vars, git output, logs) - Injection vulnerabilities (command injection, script injection) - Race conditions (concurrent jobs, artifact operations) - Resource exhaustion (limits on runners, matrix expansions)
Flag: - Unquoted variables in shell commands - Direct use of user input in scripts - Missing error handling and early exit conditions - Hardcoded secrets or credentials - Unsafe use of 3rd party actions
DO NOT IGNORE any security-related findings on this path.Files:
.github/workflows/validate-generated-agents.yml**/vs-code-agents/pr-comment-responder.agent.md
📄 CodeRabbit inference engine (.agents/retrospective/2025-12-14-pr-comment-responder-gaps.md)
Sync pr-comment-responder.md changes to vs-code-agents/pr-comment-responder.agent.md
Files:
src/vs-code-agents/pr-comment-responder.agent.md🪛 LanguageTool
templates/agents/roadmap.shared.md
[style] ~85-~85: Consider an alternative for the often overused word ‘important’.
Context: ...SCHEDULE: Strategy, tech debt | | Not Important | DELEGATE: Interrupts, requests | DE...(NOT_IMPORTANT)
templates/agents/independent-thinker.shared.md
[style] ~131-~131: Consider a different adjective to strengthen your wording.
Context: ...ded | Design decision | | analyst | Deep research required | Investigation | | *...(DEEP_PROFOUND)
templates/agents/architect.shared.md
[style] ~227-~227: Consider a different adjective to strengthen your wording.
Context: ... Verify strategic fit | | analyst | Deep investigation required | Technical rese...(DEEP_PROFOUND)
src/vs-code-agents/pr-comment-responder.agent.md
[uncategorized] ~244-~244: The official name of this software platform is spelled with a capital “H”.
Context: ...---|--------------|-----------|-----| |.github/workflows/*| CI/CD issues | devops | ...(GITHUB)
templates/agents/pr-comment-responder.shared.md
[uncategorized] ~244-~244: The official name of this software platform is spelled with a capital “H”.
Context: ...---|--------------|-----------|-----| |.github/workflows/*| CI/CD issues | devops | ...(GITHUB)
🔍 Remote MCP DeepWiki, GitHub Copilot
Relevant findings to help review PR #43 (concise)
PR adds a full templating system: templates/, platform configs (vscode.yaml, copilot-cli.yaml), many templates for agents, build script build/Generate-Agents.ps1, Pester tests build/tests/Generate-Agents.Tests.ps1, CI workflow .github/workflows/validate-generated-agents.yml, and CONTRIBUTING.md changes explaining workflow. These are the core artifacts to validate for this PR (generation, validation, CI).
Generate-Agents.ps1 details:
- Parses simple YAML frontmatter, converts placeholders, transforms handoff syntax, writes outputs to platform output dirs, includes a -Validate CI mode that normalizes line endings and fails on diffs, and enforces output-path security checks. Validate mode collects differing files and exits non‑zero. Check for dependency notes (no external YAML module required; script uses simple parser). Review for edge cases: YAML parsing robustness, array handling, encoding/line-ending normalization, and PowerShell Core cross-platform behavior.
Tests and QA expectations:
- Pester test suite added covering frontmatter parsing, placeholders, handoff syntax conversion, path security, and an E2E integration fixture. QA documents and tasks (in .agents/qa and .agents/planning) recommend byte-identical validation methodology, baseline capture, and expanded test coverage. Confirm CI uses the script’s -Validate behavior and test coverage/fixtures match expectations.
CI behavior:
- Workflow validate-generated-agents.yml runs on pushes/PRs affecting templates, src/vs-code-agents/, src/copilot-cli/, build/Generate-Agents.ps1. It runs the PowerShell validation script on windows-latest and shows diffs on failure with instructions to fix by regenerating. Ensure runner/platform choice and Git checkout settings (permissions) are suitable and that the validation step reliably lists changed files in both Windows and cross-platform contexts.
Project/process implications called out by planning/roadmap/critique artifacts:
- The design intentionally consolidates VS Code + Copilot CLI into one shared source (2‑variant approach) and leaves Claude separate; many governance docs (PRD, tasks, roadmap, QA, architecture, critic) provide required acceptance criteria (PoC: 3 agents byte-identical, CI gating, drift detection weekly). Critic flagged unresolved specialist disagreement and recommended evaluating diff-linting as a lighter alternative and adding contingency to time estimates. Review scope should include alignment with those acceptance criteria and addressing critique items before merging.
Files/locations to inspect closely in review:
- build/Generate-Agents.ps1 (logic, path checks, YAML parsing, line endings, WhatIf/Validate modes)
- build/tests/Generate-Agents.Tests.ps1 (coverage of edge cases, fixtures)
- templates/platforms/*.yaml (vscode.yaml, copilot-cli.yaml) vs expected platform output differences (name/model/tools/handoff)
- .github/workflows/validate-generated-agents.yml (triggers, runner, failure handling)
- CONTRIBUTING.md and README changes (developer workflow clarity)
- .agents/* planning/qa/critique artifacts for acceptance/gates and unresolved concerns.,
🔇 Additional comments (25)
src/copilot-cli/planner.agent.md (2)
166-166: Good fix: Expanded "Aggregation & Integration" to "Aggregation and Integration".This change improves readability and aligns with common style guidelines. No issues here.
189-204: No issue found. Syntax/agent [agent_name]is correct for copilot-cli platform.Line 190 uses the correct handoff syntax defined in
templates/platforms/copilot-cli.yaml(handoffSyntax: "/agent"). This matches usage in other copilot-cli agent files (e.g., orchestrator.agent.md) and aligns with Generate-Agents.ps1 handoff transformation logic. The syntax is consistent across the codebase.Likely an incorrect or invalid review comment.
templates/agents/explainer.shared.md (3)
6-165: Template content and role clarity are strong.The Explainer Agent template is well-structured: clear mission and responsibilities, actionable process phases, comprehensive clarifying questions, and solid templates for PRD and Explainer documents. The emphasis on INVEST criteria for user stories and Grade 9 reading level guidance is aligned with documentation best practices. Handoff options (planner, critic, implementer) connect cleanly to the broader multi-agent system. Template is ready for generation once frontmatter and path references are validated.
69-73: No action needed. The.agents/planning/directory exists and is documented in CONTRIBUTING.md and README.md as an established convention used across all agent templates. The PRD naming pattern matches the template (PRD-[feature-name].md) and actual artifacts follow this pattern in the repo.
134-147: cloudmcp-manager protocol works across both platforms with correct API patterns.The MCP is available on VS Code and Copilot CLI as declared in the agent tool lists. The query/entity patterns (
memory-search_nodes,memory-create_entities,memory-add_observations) match the documented API schema and are used consistently across all agent templates in the repository.src/copilot-cli/roadmap.agent.md (1)
40-40: Typographical improvements look good.Replacing × with x in the RICE formula and standardizing em-dashes to hyphens in assumption statements improves consistency. These changes are safe.
Also applies to: 65-65, 89-89
src/vs-code-agents/critic.agent.md (1)
94-99: Additions strengthen disagreement detection guidance.The two new bullets properly extend the Signs of Disagreement section with concrete examples from QA and specialist domains. They align with the escalation protocol and Impact Analysis Review criteria established elsewhere in the agent documentation.
src/vs-code-agents/planner.agent.md (1)
189-204: Handoff syntax updated to match VS Code platform config.The change from previous Impact Analysis invocation pattern to
#runSubagent with subagentType={agent_name}aligns with vscode.yaml platform configuration. Syntax is properly documented as a template placeholder.Verify that Copilot CLI platform-specific output (if generated from planner.shared.md template) correctly uses
/agentsyntax instead of#runSubagent, per templates/platforms/copilot-cli.yaml configuration.src/vs-code-agents/roadmap.agent.md (2)
40-40: RICE formula symbol change improves markdown rendering consistency.Replacing × (multiplication symbol) with x (lowercase letter) is a safe improvement; x renders consistently across all markdown parsers while × may not.
65-65: Verify semantic intent of em-dash to hyphen replacements in Assumptions.Lines 65 and 89 replace em-dashes with hyphens in Assumption bullets. Em-dashes typically signal explanatory or parenthetical relationships, while hyphens run concepts together. Confirm these changes preserve intended meaning:
- Line 65: "drift—today's delight becomes tomorrow's baseline" (em-dash explains drift concept)
- Line 89: "dimensions—resist the urgency trap" (em-dash links two related ideas)
If these were style edits without semantic intent, revert to em-dashes for clarity. If intentional, clarify why the compound form is preferred.
Also applies to: 89-89
src/vs-code-agents/architect.agent.md (1)
159-164: Review phase checklists properly structured and actionable.All three checklists (Pre-Planning, Plan/Analysis, Post-Implementation) are well-defined and directly support the review responsibilities described in the Core Mission. Formatting and markdown compliance are correct.
Also applies to: 168-173, 177-182
templates/agents/critic.shared.md (1)
1-219: New Critic shared template is well-structured and complete.Template establishes clear governance for the Critic Agent across platforms. YAML frontmatter properly separates tools_vscode and tools_copilot for platform-specific generation. Review criteria, escalation protocol, and document formats are comprehensive and actionable. Markdown formatting complies with all guidelines.
src/vs-code-agents/qa.agent.md (1)
168-187: Two-Phase QA process clearly delineates pre- and post-implementation responsibilities.Phase 1 (Pre-Implementation) emphasizes upfront test strategy and infrastructure planning. Phase 2 (Post-Implementation) focuses on execution and validation. The addition of the Phase 1 checklist makes the process concrete and actionable. Markdown formatting is consistent.
templates/agents/devops.shared.md (1)
1-235: New DevOps shared template establishes clear CI/CD and infrastructure governance.Template provides comprehensive DevOps impact analysis framework, pipeline standards (GitHub Actions with pinned SHAs, MSBuild CI flags), and infrastructure documentation patterns. YAML code blocks demonstrate concrete best practices. Tools split (tools_vscode/tools_copilot) enables platform-specific generation. Markdown formatting is compliant throughout.
templates/agents/task-generator.shared.md (1)
1-175: New Task Generator shared template provides clear decomposition and task breakdown governance.Template establishes scope distinction between Planner (milestones) and Task Generator (atomic tasks), three-phase decomposition workflow, and concrete task definition format with complexity guidelines (XS-XL). Mermaid diagram example demonstrates dependency visualization. Nested markdown code blocks are properly formatted with correct backtick count. No markdown violations detected.
.github/workflows/validate-generated-agents.yml (2)
45-50: Validation step is clear and direct.Script execution is safe, no injection risks.
34-40: Security posture is solid. Error handling in place. Cross-platform runner optional.Explicit minimal permissions (
contents: read) follow guidelines. Script has$ErrorActionPreference = "Stop"for proper error handling, and workflow usesif: failure()to show diffs on validation failure.Script uses cross-platform PowerShell Core APIs (
System.IO.Path,Join-Path, standard cmdlets)—no Windows-only dependencies found. Running on windows-latest is fine, but the script could run on ubuntu-latest or macos-latest if cross-platform CI validation is desired. This is optional based on dev workflow needs.templates/agents/skillbook.shared.md (1)
1-356: Template structure is comprehensive and markdown compliant.All code blocks have language identifiers, blank lines are in place, and the skill management protocol is well-defined with clear atomicity scoring, deduplication checks, and memory storage patterns.
src/vs-code-agents/pr-comment-responder.agent.md (1)
1-368: Formatting updates improve cross-platform compatibility.Replacing Unicode arrows with ASCII and standardizing agent references maintains consistency with the templating system's platform-specific generation approach.
templates/agents/architect.shared.md (1)
1-248: Comprehensive architectural governance template.Impact analysis workflow, ADR templates, and phased review process provide clear structure for architectural decision-making. Markdown formatting is correct, and the memory protocol integration aligns with the broader agent ecosystem.
templates/agents/pr-comment-responder.shared.md (3)
1-5: Platform-specific tool configurations are well-designed.Frontmatter uses
tools_vscodeandtools_copilotkeys to define platform-specific tool availability. VS Code getsvscodeand GitHub PR extension tools, while Copilot CLI getsshell. This pattern enables clean template consolidation.
6-368: Shared template provides comprehensive PR comment handling protocol.Triage workflow, routing heuristics, and bot-specific patterns are well-defined. Memory integration and completion verification patterns prevent common failure modes. Markdown formatting follows guidelines.
111-111: Handoff syntax transformation is correctly implemented.Template uses
/agentsyntax (Copilot CLI format) as shared template. Generate-Agents.ps1 transforms this to#runSubagentfor VS Code based on platformhandoffSyntaxconfig. TheConvert-HandoffSyntaxfunction (lines 352-376) handles bidirectional conversion and is invoked during processing (line 490). No changes needed.src/copilot-cli/pr-comment-responder.agent.md (1)
1-368: Copilot CLI platform-specific file uses correct syntax.Generated file uses
/agenthandoff syntax andshelltool (line 4), matching Copilot CLI platform requirements. Formatting updates align with VS Code version for consistency.templates/agents/retrospective.shared.md (1)
1-332: Comprehensive retrospective analysis framework.Five-part structure covers diagnostic priority, atomicity scoring, evidence-based tagging, learning extraction, and continuous improvement. Scoring rules (lines 84-92) align with Skillbook template for consistency. Memory protocol integration enables institutional knowledge capture.
Add weekly drift detection to monitor semantic differences between Claude agents and VS Code/Copilot agents (generated from templates). Changes: - build/scripts/Detect-AgentDrift.ps1: Core detection script - Jaccard similarity for semantic comparison - Text, JSON, Markdown output formats - Configurable similarity threshold (default 80%) - Platform-specific syntax normalization - build/scripts/tests/Detect-AgentDrift.Tests.ps1: 33 Pester tests - .github/workflows/drift-detection.yml: Weekly CI workflow - Monday 9 AM UTC schedule - Manual dispatch support - Issue deduplication - .github/ISSUE_TEMPLATE/drift-alert.md: Alert template - templates/README.md: Full documentation 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
There was a problem hiding this comment.
Actionable comments posted: 4
🧹 Nitpick comments (2)
build/scripts/tests/Detect-AgentDrift.Tests.ps1 (2)
24-31: Helper functions duplicated from main script.These functions are copy-pasted from
Detect-AgentDrift.ps1. If the main script changes, tests may pass with outdated logic. Consider dot-sourcing the main script or extracting shared functions to a module.Alternative approach:
BeforeAll { # Import functions from the actual script . (Join-Path $PSScriptRoot "..\Detect-AgentDrift.ps1") -ClaudePath "nonexistent" -VSCodePath "nonexistent" 2>$null # Or extract to a shared module: Import-Module (Join-Path $PSScriptRoot "..\Detect-AgentDrift.psm1") }
354-363: Misleading comment in word length filtering test.Comment references "the", "and", "for" but those words aren't in the test strings. The test itself is correct - it uses only 1-2 character words which get filtered out.
Context "Word length filtering" { It "Ignores words with 2 or fewer characters" { - # Only "the", "and", "for" are 3+ chars, so they should be ignored + # All words here are 1-2 characters, so they get filtered out $text1 = "a is to by" $text2 = "I am at on" - # Both have only short words, so result should be 100 (both empty after filtering) + # Both become empty sets after filtering, yielding 100% similarity $result = Get-SectionSimilarity -Text1 $text1 -Text2 $text2 $result | Should -Be 100.0 }
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (5)
.github/ISSUE_TEMPLATE/drift-alert.md(1 hunks).github/workflows/drift-detection.yml(1 hunks)build/scripts/Detect-AgentDrift.ps1(1 hunks)build/scripts/tests/Detect-AgentDrift.Tests.ps1(1 hunks)templates/README.md(1 hunks)
🧰 Additional context used
📓 Path-based instructions (14)
**/*.md
📄 CodeRabbit inference engine (.agents/architecture/ADR-001-markdown-linting.md)
**/*.md: Add language identifiers to all fenced code blocks (MD040). Use appropriate language identifiers:csharpfor C#,powershellfor PowerShell,bashfor shell,jsonfor JSON,yamlfor YAML,markdownfor Markdown,textfor plain text or generic/pseudo code
Wrap generic types in backticks to escape angle brackets (e.g.,ArrayPool<T>instead of ArrayPool) to comply with MD033 inline HTML restrictions and ensure proper rendering
Add blank lines around code blocks to comply with MD031 markdown linting requirements
Add blank lines around lists to comply with MD032 markdown linting requirements
Add blank lines around headings to comply with MD022 markdown linting requirements
Use ATX-style headings (# Heading) consistently across all markdown documents (MD003)
Use fenced code block style (triple backticks) consistently, with backtick delimiters rather than tildes (MD046, MD048)
Allow only specific HTML elements in markdown:<br>,<kbd>,<sup>,<sub>. Escape or avoid other inline HTML elements to comply with MD033 restrictions
**/*.md: Use skill ID convention format: Skill-[Category]-[Number] for skills and Anti-[Category]-[Number] for anti-patterns
Each skill must follow the required structure: Statement (max 15 words), Context, Atomicity score (0-100%), Evidence, Impact, and Tags
Score skills for atomicity using the scale: 90-100% (Excellent - ready for storage), 70-89% (Good - may need refinement), 50-69% (Acceptable - consider splitting), <50% (Needs Work - too vague)
Tag each skill with one of: helpful (contributed to success), harmful (caused failure), or neutral (no measurable impact)
When citing skills during implementation, use the format: Applying [Skill-ID], Strategy [description], Expected [outcome], Result [actual outcome], Skill Validated [yes/no]
Skills should be atomic learning statements of maximum 15 words
Skills must include measurable outcomes in the Impact field
**/*.md: Always specify language identifiers on fenc...
Files:
templates/README.md
⚙️ CodeRabbit configuration file
**/*.md: Writing Quality: - Grade 9 reading level - Active voice, direct address - Short sentences (under 15 words ideal) - No fluff, filler, or marketing language - Replace adjectives with data where possible - Every sentence must pass the "so what" test
Flag: - Passive voice - Vague language (nearly, some, almost, very) - Jargon without definitions - Broken links and outdated procedures - Inconsistency with code changes in same PR - Missing context for new features or APIs
Ignore (handled by .markdownlint-cli2.yaml): - Markdown formatting and style - Heading level choices - Link formatting variations - Minor punctuation preferences
Files:
templates/README.md
**/README.md
⚙️ CodeRabbit configuration file
**/README.md: Required for Project Root: - Clear project description (one paragraph max) - Quick start instructions - Prerequisites and dependencies - Build and test commands
Flag: - Outdated build instructions - Missing prerequisites - Broken links - Instructions that conflict with actual setup
Files:
templates/README.md
build/**/*.ps1
📄 CodeRabbit inference engine (.agents/security/infrastructure-file-patterns.md)
PowerShell build scripts in build directory (
build/**/*.ps1) should trigger security agent review due to high security implications
Files:
build/scripts/Detect-AgentDrift.ps1build/scripts/tests/Detect-AgentDrift.Tests.ps1
{build/**/*.ps1,scripts/**/*.sh,Dockerfile*,docker-compose*,**/Controllers/**}
📄 CodeRabbit inference engine (.agents/utilities/security-detection/SKILL.md)
Build scripts (
build/**/*.ps1,scripts/**/*.sh), container configs (Dockerfile*,docker-compose*), and API controllers (**/Controllers/**) require security agent review (HIGH level)
Files:
build/scripts/Detect-AgentDrift.ps1build/scripts/tests/Detect-AgentDrift.Tests.ps1
**/*.{ps1,psm1,psd1}
📄 CodeRabbit inference engine (.agents/retrospective/2025-12-15-cva-install-scripts.md)
Extract environment variations to .psd1 data files, keeping logic generic rather than hardcoding configuration in scripts
Files:
build/scripts/Detect-AgentDrift.ps1build/scripts/tests/Detect-AgentDrift.Tests.ps1
**/*.{ps1,psd1}?(@(test|spec))
📄 CodeRabbit inference engine (.agents/retrospective/2025-12-15-install-scripts-session.md)
Use BeforeAll blocks for all variable initialization in Pester 5.x tests; avoid variable assignments outside BeforeAll during Discovery phase
Files:
build/scripts/Detect-AgentDrift.ps1build/scripts/tests/Detect-AgentDrift.Tests.ps1
{.github/workflows/*,*/.githooks/*,Dockerfile}
📄 CodeRabbit inference engine (.agents/governance/interviews/security-interview.md)
Review infrastructure code changes including GitHub Actions workflows, git hooks, and Dockerfile for security vulnerabilities
Files:
.github/workflows/drift-detection.yml
{.githooks/**,**/.github/**,**/infrastructure/**,**/config/**,**/*.tf,**/*.yml,**/*.yaml}
📄 CodeRabbit inference engine (.agents/metrics/baseline-report.md)
Infrastructure files (including
.githooks/pre-commit) must receive security review before deployment
Files:
.github/workflows/drift-detection.yml.github/ISSUE_TEMPLATE/drift-alert.md
.github/workflows/*
📄 CodeRabbit inference engine (.agents/metrics/dashboard-template.md)
Ensure infrastructure files in GitHub workflows directory are reviewed by agents with target rate of 100%
Implement full CodeRabbit enforcement for CI/CD workflow files in
.github/workflows/directory
.github/workflows/*: Detect files matching.github/workflows/*as infrastructure changes requiring specialist review from devops and security agents
GitHub Actions workflows must include an explicitpermissionsblock with minimally privileged permissions
GitHub Actions workflows must not usepull_request_targettrigger withactions/checkoutaction using pull request head SHA reference, as this creates a dangerous security pattern
GitHub Actions workflows requiring test reporting must explicitly grantchecks: writepermission for dorny/test-reporter compatibility
GitHub Actions workflows must avoid using overly permissivepermissions: write-alland instead use explicit minimal permissions
Files:
.github/workflows/drift-detection.yml
.github/workflows/*.{yml,yaml}
📄 CodeRabbit inference engine (.agents/security/infrastructure-file-patterns.md)
GitHub Actions workflow files (
.github/workflows/*.ymland.github/workflows/*.yaml) should trigger security agent review due to critical security implicationsAdd security detection check to CI/CD pipelines to analyze staged files for infrastructure changes before implementation
.github/workflows/*.{yml,yaml}: Infrastructure files (.github/workflows/) require devops and security agent review before commit
Add pre-commit validation that fails on infrastructure files (.github/workflows/) lacking security review documentation
Infrastructure files must include a security impact analysis document before creation or modification
Retroactive security review is required for quick-fix changes to workflow files made without pre-commit review
Workflow files must validate that all required permissions are explicitly declared and justified
Files:
.github/workflows/drift-detection.yml
{.github/workflows/**,{.githooks,husky}/**,**/Auth/**,**/Security/**}
📄 CodeRabbit inference engine (.agents/utilities/security-detection/SKILL.md)
CI/CD workflow files (
.github/workflows/*), git hooks (.githooks/*,.husky/*), and authentication code (**/Auth/**,**/Security/**) require security agent review (CRITICAL level)
Files:
.github/workflows/drift-detection.yml
.github/workflows/*.yml
📄 CodeRabbit inference engine (.agents/analysis/pr41-issue-analysis.md)
.github/workflows/*.yml: Usedotnet-nunitreporter indorny/test-reporter@v1when Pester tests output NUnitXml format
Add explicit permissions block to GitHub Actions workflow jobs, specifying minimal required permissions (e.g.,contents: readandchecks: writefor test reporting workflows)
Files:
.github/workflows/drift-detection.yml
.github/**/*.yml
📄 CodeRabbit inference engine (.agents/planning/prd-pre-pr-security-gate.md)
Detect files matching
.github/**/*.ymlas infrastructure changes requiring specialist review from devops and security agents
Files:
.github/workflows/drift-detection.yml
.github/workflows/**
⚙️ CodeRabbit configuration file
.github/workflows/**: SECURITY-CRITICAL PATH - ASSERTIVE ENFORCEMENT
Review for: - Authentication and authorization (secrets handling, OIDC) - Credential exposure (env vars, git output, logs) - Injection vulnerabilities (command injection, script injection) - Race conditions (concurrent jobs, artifact operations) - Resource exhaustion (limits on runners, matrix expansions)
Flag: - Unquoted variables in shell commands - Direct use of user input in scripts - Missing error handling and early exit conditions - Hardcoded secrets or credentials - Unsafe use of 3rd party actions
DO NOT IGNORE any security-related findings on this path.
Files:
.github/workflows/drift-detection.yml
🪛 LanguageTool
templates/README.md
[uncategorized] ~165-~165: The official name of this software platform is spelled with a capital “H”.
Context: ...Drift.ps1) - Drift detection script - [.github/workflows/validate-generated-agents.yml...
(GITHUB)
[uncategorized] ~165-~165: The official name of this software platform is spelled with a capital “H”.
Context: .../workflows/validate-generated-agents.yml](../.github/workflows/validate-generated-agents.yml...
(GITHUB)
[uncategorized] ~166-~166: The official name of this software platform is spelled with a capital “H”.
Context: ...nerated-agents.yml) - CI validation - [.github/workflows/drift-detection.yml](../.gith...
(GITHUB)
[uncategorized] ~166-~166: The official name of this software platform is spelled with a capital “H”.
Context: ...- .github/workflows/drift-detection.yml - Drift ...
(GITHUB)
.github/ISSUE_TEMPLATE/drift-alert.md
[style] ~20-~20: Using many exclamation marks might seem excessive (in this case: 4 exclamation marks for a text that’s 1253 characters long)
Context: ...---|------------|-------------------| | | | | ### Drift Detail...
(EN_EXCESSIVE_EXCLAMATION)
🔍 Remote MCP DeepWiki
Concise, review‑focused context (from repo wiki)
-
Repo wiki lists the full multi‑platform agent system: 18 logical agents × 3 platforms (VS Code, Copilot CLI, Claude) — a 54‑file matrix. Review must ensure semantic parity across those files.
-
Primary artifacts added by this PR to validate:
- Templates and platform configs: templates/, templates/platforms/vscode.yaml, templates/platforms/copilot-cli.yaml.
- Generator script: build/Generate-Agents.ps1 (generation + -Validate mode that compares generated vs committed files).
- Tests: build/tests/Generate-Agents.Tests.ps1 (Pester unit/integration coverage).
- CI: .github/workflows/validate-generated-agents.yml (calls Generate-Agents.ps1 -Validate on windows-latest).
- Drift detection: build/scripts/Detect-AgentDrift.ps1 + .github/workflows/drift-detection.yml (weekly run + issue creation).
- CONTRIBUTING.md / templates/README.md / templates/README.md explain contributor workflow and regeneration steps.
(Locations and roles summarized in repo wiki.)
-
Key review focal points (concrete checks):
- Generate-Agents.ps1
- YAML/frontmatter parsing robustness (arrays, multi-line, quoting), encoding/line‑ending normalization, path‑escape/security (Test-PathWithinRoot), Validate vs WhatIf behavior, exit codes on diff.
- Cross‑platform PowerShell compatibility (Core vs Windows).
- build/tests/Generate-Agents.Tests.ps1
- Coverage of edge cases: malformed frontmatter, arrays, handoff syntax conversions, placeholder rendering, validate mode comparisons.
- Ensure tests assert expected exit codes and detect regressions in generator logic.
- CI workflow (.github/workflows/validate-generated-agents.yml)
- Triggers include templates/, src/vs-code-agents/, src/copilot-cli/, build/Generate-Agents.ps1 — verify paths match generator behavior.
- Ensure workflow runner, checkout permissions, and failure reporting steps reliably expose diffs and instruct maintainers to regenerate.
- Drift detection (Detect-AgentDrift.ps1 + workflow)
- Validate normalization rules (whitespace, platform‑specific tokens), similarity thresholds, expected sections compared, and output formats (Markdown/JSON) used by workflow to create issues.
- Memory/consistency governance
- PR must respect the repo’s consistency contract: core identity, responsibilities, handoff protocol, memory protocol, output dirs; frontmatter/toolname/invocation syntax allowed differences. Review .github/copilot-code-review.md guidance in PR. (Wiki documents enforcement and mapping.)
- CONTRIBUTING.md / README changes
- Confirm developer workflow instructions match actual script flags, validate step usage, and that guidance warns Copilot CLI global install is broken and recommends per‑repo install.
- Security & CI impact
- Generator must enforce output path containment (already present) and CI should run in a trustworthy environment; validate no secrets or external network calls are introduced by generator/tests.
- Generate-Agents.ps1
-
Quick actionable checklist to run during review:
- Run Generate-Agents.ps1 -Validate locally; compare exit code and produced diff output with CI expectations.
- Run Pester tests: build/tests/Generate-Agents.Tests.ps1.
- Run Detect-AgentDrift.ps1 against sample Claude ↔ VS Code pairs to confirm drift reporting.
- Inspect templates/platforms/*.yaml for platform frontmatter differences (model vs includeNameField etc.) and ensure generator maps fields correctly.
- Confirm .github/workflows/validate-generated-agents.yml and drift workflow have required permissions and reproduce expected failure messages.
Sources used for this summary:
- Repo wiki structure listing and page contents (agent catalog, install/runtime/CI, memory/consistency enforcement, workflows) retrieved via DeepWiki:,
🔇 Additional comments (8)
templates/README.md (1)
1-190: Documentation structure is solid.Clear sections, proper code block language identifiers, and good coverage of the template system workflow. The generation flow diagram and platform transformations table are helpful.
.github/workflows/drift-detection.yml (2)
22-24: Permissions block is properly scoped.Minimal permissions with
contents: readandissues: write. This follows least-privilege principle for a workflow that only needs to read repo content and manage issues.
30-52: Exit code handling looks correct.The
continue-on-error: truecombined with capturingdrift_detectedoutput allows the workflow to proceed to issue management steps regardless of drift status. Exit code 1 for drift, 0 for no drift aligns with the script's documented behavior.build/scripts/tests/Detect-AgentDrift.Tests.ps1 (1)
366-535: Integration tests provide good coverage.Tests cover matching agents, drifted agents, and platform-specific syntax normalization. The temp file setup/teardown is clean.
build/scripts/Detect-AgentDrift.ps1 (4)
101-116: Frontmatter regex works for typical files.The regex handles CRLF/LF and extracts content after frontmatter. Edge case: files with only frontmatter and no trailing content won't match, but this is unlikely for agent files.
206-264: Jaccard similarity implementation is correct.Uses case-insensitive HashSets, filters short words, handles empty input gracefully. The intersection/union calculation follows the standard Jaccard formula.
294-319: Section lists are comprehensive.Good coverage of semantic sections to compare vs platform-specific sections to skip. The skip list prevents false drift detection from Claude-specific tool sections.
522-525: Exit codes align with documented behavior.Exit 1 for drift, exit 0 for success. Matches the synopsis documentation and workflow expectations.
Apply merge strategy to all 18 agent templates: - Merge rule: keep MORE detailed version, ADD Claude-only sections, KEEP valuable template-only sections - Replace cloudmcp-manager MCP syntax with simplified delegation to memory agent - Add missing Claude sections: Architectural Principles (architect), Review Checklist (critic), Verdict Rules (critic), Anti-Patterns (critic), Planning Principles (planner), Output Location (multiple), Context7 docs (analyst) - Update platform configs with memoryPrefix setting - Regenerate all VS Code and Copilot CLI agents from merged templates Memory protocol now delegates to the memory agent rather than embedding complex MCP tool syntax, keeping templates platform-neutral. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Update 12 Claude agents to match content from shared templates: - analyst: Add Analysis Document Format, Handoff Protocol sections - architect: Standardize ADR Format section, add comprehensive structure - critic: Align Core Identity, Mission, Handoff Options with template - explainer: Add PRD/Explainer templates, Process phases, Handoff Options - high-level-advisor: Add Strategic Frameworks, Response Patterns, Handoff Options - independent-thinker: Add Behavioral Principles, Analysis Framework, Response Patterns - memory: Add Key Responsibilities, Handoff Options, expand Execution Mindset - planner: Standardize structure and Execution Mindset - qa: Merge Key Responsibilities, restore Test Quality Standards - retrospective: Add Memory Protocol (cloudmcp-manager), standardize Handoff Protocol - skillbook: Add Integration section, standardize Handoff Protocol - task-generator: Align Scope Distinction, Decomposition Process All 18 agents now pass drift detection (≥80% similarity threshold). Minor expected difference: Claude agents use mcp__ syntax for memory tools, while templates delegate to memory agent. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
There was a problem hiding this comment.
Actionable comments posted: 1
Note
Due to the large number of review comments, Critical, Major severity comments were prioritized as inline comments.
Caution
Some comments are outside the diff and can’t be posted inline due to platform limitations.
⚠️ Outside diff range comments (10)
src/claude/retrospective.md (4)
6-10: Add blank lines before headings to comply with MD022.Lines 8, 12, and 21 are missing blank lines before them. Run
markdownlint --fixto auto-correct these spacing violations.Also applies to: 12-23
35-108: Add blank lines before headings and lists (MD022, MD032).Missing blank lines before:
- Line 35 (Diagnostic Priority Order list)
- Line 65 (Atomicity Scoring heading)
- Line 77 (Quality Thresholds heading)
- Line 86 (Examples heading)
Run
markdownlint --fixto auto-correct.
109-191: Fix malformed code fence closing at line 189.The closing fence at line 189 has a language identifier (
\``text`). Closing fences must be plain. Change line 189 to:\`\`\`Also add blank line before heading at line 109 (MD022).
- \`\`\`text + \`\`\`
193-240: Add blank lines before headings (MD022).Missing blank lines before headings at lines: 193, 201, 203, 224, 233.
Run
markdownlint --fixto auto-correct.src/copilot-cli/qa.agent.md (1)
184-201: Add blank lines before code block (MD031).Code block at line 184 is missing a blank line immediately before it.
Identify upfront and flag missing pieces: + ```markdownsrc/claude/task-generator.md (1)
142-154: Use proper markdown code fence for MCP calls.Lines 146-148 use inline text format for MCP calls instead of code blocks. These should use proper code block formatting with
textlanguage identifier.**Retrieve Patterns:** -```text +```text mcp__cloudmcp-manager__memory-search_nodes with query="task breakdown [feature type]"Store Learnings:
-
text +text
mcp__cloudmcp-manager__memory-add_observations for estimation learningssrc/vs-code-agents/roadmap.agent.md (3)
124-174: Add blank line before Roadmap Document Format code block (MD031).Line 124 needs blank line before it.
Save to: `.agents/roadmap/product-roadmap.md` (single source of truth) + ````markdown
176-215: Add blank line before Epic Definition Format code block (MD031).Line 178 needs blank line before it.
## Epic Definition Format + ```markdown
235-244: Add blank line before Roadmap Review Process code block (MD031).Line 237 needs blank line before it.
## Roadmap Review Process + ```markdownsrc/claude/planner.md (1)
97-110: Claude planner uses outdated memory pattern—update to match delegation approach across all agents.The
src/claude/planner.mdfile (lines 97-110) has explicit MCP calls:mcp__cloudmcp-manager__memory-search_nodes with query="plan [feature type]" mcp__cloudmcp-manager__memory-create_entities for major planning decisionsBut all other agent docs—copilot-cli/planner.agent.md, vs-code-agents/critic.agent.md, copilot-cli/architect.agent.md, and copilot-cli/task-generator.agent.md—delegate to a memory agent with high-level guidance.
Update lines 97-110 to match the delegation pattern used elsewhere:
## Memory Protocol -**Retrieve Context:** +Delegate to **memory** agent for cross-session context: -```text -mcp__cloudmcp-manager__memory-search_nodes with query="plan [feature type]" -``` +- At decision points: Request context retrieval for prior plans +- At milestones: Request storage of major planning decisions - -**Store Plans:** - -```text -mcp__cloudmcp-manager__memory-create_entities for major planning decisions -```
♻️ Duplicate comments (1)
build/Generate-Agents.ps1 (1)
85-103: Path traversal vulnerability still present.The
StartsWithcheck without directory separator anchoring allows bypass. If$resolvedRootisC:\repoand a malicious path isC:\repo_evil\file.txt, the check passes because the string starts withC:\repo. This lets an attacker write files outside the repository root.Apply this fix:
function Test-PathWithinRoot { [CmdletBinding()] param( [Parameter(Mandatory)] [string]$Path, [Parameter(Mandatory)] [string]$Root ) $resolvedPath = [System.IO.Path]::GetFullPath($Path) $resolvedRoot = [System.IO.Path]::GetFullPath($Root) + + # Ensure root ends with directory separator to prevent partial matches + if (-not $resolvedRoot.EndsWith([System.IO.Path]::DirectorySeparatorChar)) { + $resolvedRoot += [System.IO.Path]::DirectorySeparatorChar + } return $resolvedPath.StartsWith($resolvedRoot, [StringComparison]::OrdinalIgnoreCase) }
🟡 Minor comments (21)
templates/agents/high-level-advisor.shared.md-49-69 (1)
49-69: Add blank line before code block (MD031).Line 53 code block needs blank line before it.
### Ruthless Triage + ```markdowntemplates/agents/independent-thinker.shared.md-76-102 (1)
76-102: Add blank line before code block (MD031).Line 78 code block needs blank line before it.
### Alternative Analysis Format + ```markdowntemplates/agents/devops.shared.md-145-157 (1)
145-157: Add blank line before code block (MD031).Line 149 code block needs blank line before it.
### GitHub Actions Best Practices + ```yamltemplates/agents/security.shared.md-208-239 (1)
208-239: Add blank lines before Threat Model Format code block (MD031).Line 212 needs blank line before it.
Save to: `.agents/security/TM-NNN-[feature].md` + ```markdowntemplates/agents/security.shared.md-62-70 (1)
62-70: Add blank lines around Analyze Security Impact code block (MD031).Line 64 needs blank line before it.
#### Analyze Security Impact + ```markdowntemplates/agents/security.shared.md-184-201 (1)
184-201: Add blank lines around Security Checklist code blocks (MD031).Lines 188 and 201 code blocks need blank lines before them.
### Code Review + ```markdown - [ ] Input validation (all user inputs sanitized) [...]Dependency Review
- [ ] Run `dotnet list package --vulnerable`templates/agents/devops.shared.md-170-176 (1)
170-176: Add blank line before code block (MD031).Line 172 code block needs blank line before it.
### Test Configuration + ```yamltemplates/agents/explainer.shared.md-105-132 (1)
105-132: Add blank line before Explainer Template code block (MD031).Line 107 needs blank line before it.
## Explainer Template + ```markdownsrc/claude/task-generator.md-63-70 (1)
63-70: Add blank line before code block (MD031).Line 65 code block needs blank line before it.
### Phase 3: Sequence + ```markdowntemplates/agents/devops.shared.md-159-168 (1)
159-168: Add blank line before code block (MD031).Line 161 code block needs blank line before it.
### Build Configuration + ```yamltemplates/agents/explainer.shared.md-69-103 (1)
69-103: Add blank line before PRD Template code block (MD031).Line 73 needs blank line before it.
Save to: `.agents/planning/PRD-[feature-name].md` + ```markdowntemplates/agents/explainer.shared.md-27-42 (1)
27-42: Add blank line before Phase 1 code block (MD031).Line 28 code block needs blank line before it.
### Phase 1: Gather Information + ```markdowntemplates/agents/explainer.shared.md-35-42 (1)
35-42: Add blank line before Phase 2 code block (MD031).Line 37 code block needs blank line before it.
### Phase 2: Generate Document + ```markdowntemplates/agents/security.shared.md-241-267 (1)
241-267: Add blank lines before Security Report Format code block (MD031).Line 245 needs blank line before it.
Save to: `.agents/security/SR-NNN-[scope].md` + ```markdownsrc/claude/task-generator.md-43-61 (1)
43-61: Add blank line before code block (MD031).Lines 47 and 56 code blocks need blank lines before them.
### Phase 1: Understand Scope + ```markdown - [ ] Read PRD/epic completely - [ ] Identify functional requirements - [ ] Note acceptance criteria - [ ] List technical constraintsPhase 2: Break Down
templates/agents/security.shared.md-73-175 (1)
73-175: Add blank lines before Impact Analysis Deliverable code block (MD031).Line 76 needs blank line before it.
#### Impact Analysis Deliverable + Save to: `.agents/planning/impact-analysis-[feature]-security.md` + ```markdowntemplates/agents/high-level-advisor.shared.md-87-105 (1)
87-105: Add blank line before code block (MD031).Line 89 code block needs blank line before it.
### Continue/Pivot/Cut Framework + ```markdowntemplates/agents/high-level-advisor.shared.md-71-86 (1)
71-86: Add blank line before code block (MD031).Line 73 code block needs blank line before it.
### Priority Stack + ```markdowntemplates/agents/independent-thinker.shared.md-49-74 (1)
49-74: Add blank line before code block (MD031).Line 53 code block needs blank line before it.
### Assumption Challenge Template + ```markdowntemplates/agents/devops.shared.md-29-37 (1)
29-37: Add blank line before code block (MD031).Line 31 code block needs blank line before it.
### Analyze DevOps Impact + ```markdowntemplates/agents/devops.shared.md-182-209 (1)
182-209: Add blank line before code block (MD031).Line 184 code block needs blank line before it.
Save to: `.agents/devops/` + ### Pipeline Documentation
🧹 Nitpick comments (3)
src/claude/memory.md (1)
180-184: Minimal Handoff Options table may warrant expansion.The Handoff Options table contains only one row ("Any agent"). Consider listing specific downstream agents (planner, architect, implementer, etc.) if the memory agent coordinates with particular workflows.
src/vs-code-agents/roadmap.agent.md (1)
38-49: Fix formula formatting for clarity.Line 40 uses lowercase
xfor multiplication. Use×(multiplication sign) or clarify with parentheses for better readability in technical documentation.-**Formula**: `(Reach x Impact x Confidence) / Effort` +**Formula**: `(Reach × Impact × Confidence) / Effort`src/claude/independent-thinker.md (1)
167-175: Handoff Options table: strengthen "Deep research required" description.Line 172 shows:
| **analyst** | Deep research required | Investigation |Static analysis suggests "Deep" is weak. Per coding guidelines (Grade 9 reading level, replace adjectives with data), consider:
- | **analyst** | Deep research required | Investigation | + | **analyst** | Research required (scope >2 domains) | Investigation |Or more directly: "Investigation required" (which is already in the Purpose column, making "Deep research" redundant).
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (60)
build/Generate-Agents.ps1(1 hunks)src/claude/analyst.md(1 hunks)src/claude/architect.md(5 hunks)src/claude/critic.md(4 hunks)src/claude/explainer.md(2 hunks)src/claude/high-level-advisor.md(5 hunks)src/claude/independent-thinker.md(5 hunks)src/claude/memory.md(3 hunks)src/claude/planner.md(3 hunks)src/claude/qa.md(3 hunks)src/claude/retrospective.md(3 hunks)src/claude/skillbook.md(3 hunks)src/claude/task-generator.md(3 hunks)src/copilot-cli/analyst.agent.md(2 hunks)src/copilot-cli/architect.agent.md(2 hunks)src/copilot-cli/critic.agent.md(2 hunks)src/copilot-cli/devops.agent.md(1 hunks)src/copilot-cli/explainer.agent.md(1 hunks)src/copilot-cli/high-level-advisor.agent.md(1 hunks)src/copilot-cli/implementer.agent.md(1 hunks)src/copilot-cli/independent-thinker.agent.md(1 hunks)src/copilot-cli/orchestrator.agent.md(3 hunks)src/copilot-cli/planner.agent.md(4 hunks)src/copilot-cli/pr-comment-responder.agent.md(7 hunks)src/copilot-cli/qa.agent.md(1 hunks)src/copilot-cli/roadmap.agent.md(4 hunks)src/copilot-cli/security.agent.md(1 hunks)src/copilot-cli/task-generator.agent.md(3 hunks)src/vs-code-agents/analyst.agent.md(2 hunks)src/vs-code-agents/architect.agent.md(2 hunks)src/vs-code-agents/critic.agent.md(3 hunks)src/vs-code-agents/devops.agent.md(1 hunks)src/vs-code-agents/explainer.agent.md(1 hunks)src/vs-code-agents/high-level-advisor.agent.md(1 hunks)src/vs-code-agents/implementer.agent.md(1 hunks)src/vs-code-agents/independent-thinker.agent.md(1 hunks)src/vs-code-agents/orchestrator.agent.md(1 hunks)src/vs-code-agents/planner.agent.md(3 hunks)src/vs-code-agents/pr-comment-responder.agent.md(10 hunks)src/vs-code-agents/qa.agent.md(1 hunks)src/vs-code-agents/roadmap.agent.md(4 hunks)src/vs-code-agents/security.agent.md(1 hunks)src/vs-code-agents/task-generator.agent.md(3 hunks)templates/agents/analyst.shared.md(1 hunks)templates/agents/architect.shared.md(1 hunks)templates/agents/critic.shared.md(1 hunks)templates/agents/devops.shared.md(1 hunks)templates/agents/explainer.shared.md(1 hunks)templates/agents/high-level-advisor.shared.md(1 hunks)templates/agents/implementer.shared.md(1 hunks)templates/agents/independent-thinker.shared.md(1 hunks)templates/agents/orchestrator.shared.md(1 hunks)templates/agents/planner.shared.md(1 hunks)templates/agents/pr-comment-responder.shared.md(1 hunks)templates/agents/qa.shared.md(1 hunks)templates/agents/roadmap.shared.md(1 hunks)templates/agents/security.shared.md(1 hunks)templates/agents/task-generator.shared.md(1 hunks)templates/platforms/copilot-cli.yaml(1 hunks)templates/platforms/vscode.yaml(1 hunks)
✅ Files skipped from review due to trivial changes (1)
- templates/agents/planner.shared.md
🚧 Files skipped from review as they are similar to previous changes (7)
- src/copilot-cli/devops.agent.md
- src/vs-code-agents/task-generator.agent.md
- templates/agents/qa.shared.md
- src/copilot-cli/roadmap.agent.md
- templates/agents/task-generator.shared.md
- src/vs-code-agents/security.agent.md
- src/copilot-cli/explainer.agent.md
🧰 Additional context used
📓 Path-based instructions (8)
**/*.md
📄 CodeRabbit inference engine (.agents/architecture/ADR-001-markdown-linting.md)
**/*.md: Add language identifiers to all fenced code blocks (MD040). Use appropriate language identifiers:csharpfor C#,powershellfor PowerShell,bashfor shell,jsonfor JSON,yamlfor YAML,markdownfor Markdown,textfor plain text or generic/pseudo code
Wrap generic types in backticks to escape angle brackets (e.g.,ArrayPool<T>instead of ArrayPool) to comply with MD033 inline HTML restrictions and ensure proper rendering
Add blank lines around code blocks to comply with MD031 markdown linting requirements
Add blank lines around lists to comply with MD032 markdown linting requirements
Add blank lines around headings to comply with MD022 markdown linting requirements
Use ATX-style headings (# Heading) consistently across all markdown documents (MD003)
Use fenced code block style (triple backticks) consistently, with backtick delimiters rather than tildes (MD046, MD048)
Allow only specific HTML elements in markdown:<br>,<kbd>,<sup>,<sub>. Escape or avoid other inline HTML elements to comply with MD033 restrictions
**/*.md: Use skill ID convention format: Skill-[Category]-[Number] for skills and Anti-[Category]-[Number] for anti-patterns
Each skill must follow the required structure: Statement (max 15 words), Context, Atomicity score (0-100%), Evidence, Impact, and Tags
Score skills for atomicity using the scale: 90-100% (Excellent - ready for storage), 70-89% (Good - may need refinement), 50-69% (Acceptable - consider splitting), <50% (Needs Work - too vague)
Tag each skill with one of: helpful (contributed to success), harmful (caused failure), or neutral (no measurable impact)
When citing skills during implementation, use the format: Applying [Skill-ID], Strategy [description], Expected [outcome], Result [actual outcome], Skill Validated [yes/no]
Skills should be atomic learning statements of maximum 15 words
Skills must include measurable outcomes in the Impact field
**/*.md: Always specify language identifiers on fenc...
Files:
src/claude/retrospective.mdsrc/vs-code-agents/planner.agent.mdsrc/claude/skillbook.mdtemplates/agents/roadmap.shared.mdsrc/vs-code-agents/analyst.agent.mdtemplates/agents/critic.shared.mdsrc/copilot-cli/high-level-advisor.agent.mdsrc/vs-code-agents/explainer.agent.mdsrc/vs-code-agents/roadmap.agent.mdsrc/claude/planner.mdsrc/vs-code-agents/critic.agent.mdsrc/claude/qa.mdsrc/copilot-cli/pr-comment-responder.agent.mdsrc/claude/architect.mdsrc/claude/independent-thinker.mdsrc/claude/high-level-advisor.mdsrc/vs-code-agents/devops.agent.mdsrc/copilot-cli/orchestrator.agent.mdsrc/claude/critic.mdsrc/vs-code-agents/independent-thinker.agent.mdsrc/claude/explainer.mdsrc/claude/memory.mdtemplates/agents/analyst.shared.mdsrc/copilot-cli/qa.agent.mdsrc/copilot-cli/architect.agent.mdsrc/copilot-cli/analyst.agent.mdsrc/copilot-cli/security.agent.mdsrc/claude/analyst.mdtemplates/agents/devops.shared.mdsrc/vs-code-agents/architect.agent.mdsrc/claude/task-generator.mdsrc/copilot-cli/implementer.agent.mdsrc/copilot-cli/independent-thinker.agent.mdsrc/vs-code-agents/implementer.agent.mdsrc/vs-code-agents/high-level-advisor.agent.mdtemplates/agents/implementer.shared.mdsrc/vs-code-agents/orchestrator.agent.mdsrc/copilot-cli/critic.agent.mdtemplates/agents/explainer.shared.mdtemplates/agents/high-level-advisor.shared.mdsrc/vs-code-agents/pr-comment-responder.agent.mdtemplates/agents/pr-comment-responder.shared.mdtemplates/agents/architect.shared.mdsrc/copilot-cli/planner.agent.mdsrc/vs-code-agents/qa.agent.mdsrc/copilot-cli/task-generator.agent.mdtemplates/agents/security.shared.mdtemplates/agents/independent-thinker.shared.mdtemplates/agents/orchestrator.shared.md
⚙️ CodeRabbit configuration file
**/*.md: Writing Quality: - Grade 9 reading level - Active voice, direct address - Short sentences (under 15 words ideal) - No fluff, filler, or marketing language - Replace adjectives with data where possible - Every sentence must pass the "so what" test
Flag: - Passive voice - Vague language (nearly, some, almost, very) - Jargon without definitions - Broken links and outdated procedures - Inconsistency with code changes in same PR - Missing context for new features or APIs
Ignore (handled by .markdownlint-cli2.yaml): - Markdown formatting and style - Heading level choices - Link formatting variations - Minor punctuation preferences
Files:
src/claude/retrospective.mdsrc/vs-code-agents/planner.agent.mdsrc/claude/skillbook.mdtemplates/agents/roadmap.shared.mdsrc/vs-code-agents/analyst.agent.mdtemplates/agents/critic.shared.mdsrc/copilot-cli/high-level-advisor.agent.mdsrc/vs-code-agents/explainer.agent.mdsrc/vs-code-agents/roadmap.agent.mdsrc/claude/planner.mdsrc/vs-code-agents/critic.agent.mdsrc/claude/qa.mdsrc/copilot-cli/pr-comment-responder.agent.mdsrc/claude/architect.mdsrc/claude/independent-thinker.mdsrc/claude/high-level-advisor.mdsrc/vs-code-agents/devops.agent.mdsrc/copilot-cli/orchestrator.agent.mdsrc/claude/critic.mdsrc/vs-code-agents/independent-thinker.agent.mdsrc/claude/explainer.mdsrc/claude/memory.mdtemplates/agents/analyst.shared.mdsrc/copilot-cli/qa.agent.mdsrc/copilot-cli/architect.agent.mdsrc/copilot-cli/analyst.agent.mdsrc/copilot-cli/security.agent.mdsrc/claude/analyst.mdtemplates/agents/devops.shared.mdsrc/vs-code-agents/architect.agent.mdsrc/claude/task-generator.mdsrc/copilot-cli/implementer.agent.mdsrc/copilot-cli/independent-thinker.agent.mdsrc/vs-code-agents/implementer.agent.mdsrc/vs-code-agents/high-level-advisor.agent.mdtemplates/agents/implementer.shared.mdsrc/vs-code-agents/orchestrator.agent.mdsrc/copilot-cli/critic.agent.mdtemplates/agents/explainer.shared.mdtemplates/agents/high-level-advisor.shared.mdsrc/vs-code-agents/pr-comment-responder.agent.mdtemplates/agents/pr-comment-responder.shared.mdtemplates/agents/architect.shared.mdsrc/copilot-cli/planner.agent.mdsrc/vs-code-agents/qa.agent.mdsrc/copilot-cli/task-generator.agent.mdtemplates/agents/security.shared.mdtemplates/agents/independent-thinker.shared.mdtemplates/agents/orchestrator.shared.md
{.githooks/**,**/.github/**,**/infrastructure/**,**/config/**,**/*.tf,**/*.yml,**/*.yaml}
📄 CodeRabbit inference engine (.agents/metrics/baseline-report.md)
Infrastructure files (including
.githooks/pre-commit) must receive security review before deployment
Files:
templates/platforms/vscode.yamltemplates/platforms/copilot-cli.yaml
**/copilot-cli/pr-comment-responder.agent.md
📄 CodeRabbit inference engine (.agents/retrospective/2025-12-14-pr-comment-responder-gaps.md)
Sync pr-comment-responder.md changes to copilot-cli/pr-comment-responder.agent.md
Files:
src/copilot-cli/pr-comment-responder.agent.md
build/**/*.ps1
📄 CodeRabbit inference engine (.agents/security/infrastructure-file-patterns.md)
PowerShell build scripts in build directory (
build/**/*.ps1) should trigger security agent review due to high security implications
Files:
build/Generate-Agents.ps1
{build/**/*.ps1,scripts/**/*.sh,Dockerfile*,docker-compose*,**/Controllers/**}
📄 CodeRabbit inference engine (.agents/utilities/security-detection/SKILL.md)
Build scripts (
build/**/*.ps1,scripts/**/*.sh), container configs (Dockerfile*,docker-compose*), and API controllers (**/Controllers/**) require security agent review (HIGH level)
Files:
build/Generate-Agents.ps1
**/*.{ps1,psm1,psd1}
📄 CodeRabbit inference engine (.agents/retrospective/2025-12-15-cva-install-scripts.md)
Extract environment variations to .psd1 data files, keeping logic generic rather than hardcoding configuration in scripts
Files:
build/Generate-Agents.ps1
**/*.{ps1,psd1}?(@(test|spec))
📄 CodeRabbit inference engine (.agents/retrospective/2025-12-15-install-scripts-session.md)
Use BeforeAll blocks for all variable initialization in Pester 5.x tests; avoid variable assignments outside BeforeAll during Discovery phase
Files:
build/Generate-Agents.ps1
**/vs-code-agents/pr-comment-responder.agent.md
📄 CodeRabbit inference engine (.agents/retrospective/2025-12-14-pr-comment-responder-gaps.md)
Sync pr-comment-responder.md changes to vs-code-agents/pr-comment-responder.agent.md
Files:
src/vs-code-agents/pr-comment-responder.agent.md
🪛 LanguageTool
templates/agents/roadmap.shared.md
[style] ~85-~85: Consider an alternative for the often overused word ‘important’.
Context: ...SCHEDULE: Strategy, tech debt | | Not Important | DELEGATE: Interrupts, requests | DE...
(NOT_IMPORTANT)
src/vs-code-agents/analyst.agent.md
[grammar] ~39-~39: Ensure spelling is correct
Context: ...r/repo" ### Library Documentation (Context7) text cloudmcp-manager/upstashconte...
(QB_NEW_EN_ORTHOGRAPHY_ERROR_IDS_1)
src/claude/independent-thinker.md
[style] ~172-~172: Consider a different adjective to strengthen your wording.
Context: ...ded | Design decision | | analyst | Deep research required | Investigation | | *...
(DEEP_PROFOUND)
templates/agents/analyst.shared.md
[grammar] ~39-~39: Ensure spelling is correct
Context: ...r/repo" ### Library Documentation (Context7) text cloudmcp-manager/upstashconte...
(QB_NEW_EN_ORTHOGRAPHY_ERROR_IDS_1)
src/copilot-cli/analyst.agent.md
[grammar] ~39-~39: Ensure spelling is correct
Context: ...r/repo" ### Library Documentation (Context7) text cloudmcp-manager/upstashconte...
(QB_NEW_EN_ORTHOGRAPHY_ERROR_IDS_1)
templates/agents/implementer.shared.md
[style] ~139-~139: To elevate your writing, try using a synonym here.
Context: ...ion) Testability is leverage. Code hard to test reveals deeper problems. **Coh...
(HARD_TO)
[style] ~139-~139: Consider a different adjective to strengthen your wording.
Context: ...s leverage.** Code hard to test reveals deeper problems. Cohesion: Single respons...
(DEEP_PROFOUND)
[style] ~224-~224: To elevate your writing, try using a synonym here.
Context: ...code - Use Moq for mocking - If code is hard to test, identify why: poor encapsulati...
(HARD_TO)
src/vs-code-agents/pr-comment-responder.agent.md
[uncategorized] ~244-~244: The official name of this software platform is spelled with a capital “H”.
Context: ...---|--------------|-----------|-----| | .github/workflows/* | CI/CD issues | devops | ...
(GITHUB)
templates/agents/pr-comment-responder.shared.md
[uncategorized] ~244-~244: The official name of this software platform is spelled with a capital “H”.
Context: ...---|--------------|-----------|-----| | .github/workflows/* | CI/CD issues | devops | ...
(GITHUB)
templates/agents/independent-thinker.shared.md
[style] ~123-~123: Consider a different adjective to strengthen your wording.
Context: ...ded | Design decision | | analyst | Deep research required | Investigation | | *...
(DEEP_PROFOUND)
templates/agents/orchestrator.shared.md
[style] ~22-~22: Consider using a different verb for a more formal wording.
Context: ...rom one step to the next - Research and fix issues autonomously - Continue until AL...
(FIX_RESOLVE)
[uncategorized] ~82-~82: The official name of this software platform is spelled with a capital “H”.
Context: ...line", "workflow", "deploy", "build", ".github/", ".githooks/" | | Security | Vuln...
(GITHUB)
[uncategorized] ~350-~350: The official name of this software platform is spelled with a capital “H”.
Context: ...ecurity, architect, implementer, qa | | .github/workflows/*, .githooks/* | Infrastru...
(GITHUB)
🔇 Additional comments (118)
templates/platforms/copilot-cli.yaml (1)
1-22: LGTM!Platform configuration is valid and appropriate for Copilot CLI transformation. The differences from vscode.yaml (handoff syntax, model field, name field) align with platform-specific requirements.
templates/platforms/vscode.yaml (1)
1-22: LGTM!VS Code platform configuration is valid. Settings are appropriate for the VS Code extension environment.
src/vs-code-agents/devops.agent.md (1)
138-143: LGTM!Memory Protocol delegation is clear and maintains the semantic intent while abstracting implementation details.
src/vs-code-agents/implementer.agent.md (1)
204-209: LGTM!Memory Protocol delegation is consistent with the pattern established across agent files.
templates/agents/orchestrator.shared.md (1)
1-822: LGTM!Orchestrator template is comprehensive and follows all coding guidelines. All code blocks have language identifiers, writing is clear and direct, and multi-platform support via tools_vscode/tools_copilot is well-structured.
templates/agents/implementer.shared.md (1)
1-348: LGTM!Implementer shared template is well-structured with proper multi-platform support. All code blocks have language identifiers, generic types are properly escaped, and technical guidance is clear.
src/copilot-cli/orchestrator.agent.md (1)
1-822: LGTM!Generated Copilot CLI orchestrator agent correctly applies platform transformations. Name field present, model field absent, handoff syntax uses "/agent" pattern, and all code blocks have language identifiers.
src/vs-code-agents/qa.agent.md (2)
152-157: LGTM!Memory Protocol delegation is clear and consistent with the established pattern across agent files.
163-169: LGTM!Phase 1 Pre-Implementation block is well-structured with proper markdown code block formatting and language identifier.
src/claude/memory.md (1)
10-10: Memory agent identity and mission clearly restated.The expanded Core Identity (line 10) and Key Responsibilities (lines 24-29) establish a four-step workflow that emphasizes semantic retrieval, contextual execution, and reasoning-focused summaries. This aligns with the delegation pattern seen across other agent docs in the PR.
Also applies to: 22-29
src/claude/critic.md (3)
32-37: Constraints section clearly limits critic scope.Defining what the critic agent does NOT do (no artifact modification except critiques, no code review, no implementation proposals) prevents role confusion and scope creep. Well-placed early in the document.
78-109: Disagreement Detection & Escalation provides actionable conflict resolution.The protocol includes severity assessment (Minor vs. Major), escalation to high-level-advisor, and a conflict categories table mapping conflict types to resolution owners. This structure supports decision-making without deadlock.
110-157: Review Template is comprehensive and actionable.Structured sections (Verdict, Strengths, Issues, Questions, Recommendations, Approval Conditions) provide a clear artifact format. The embedded Impact Analysis Review section handles multi-specialist scenarios well.
templates/agents/critic.shared.md (2)
1-5: YAML frontmatter declares platform-specific tools.The
tools_vscodeandtools_copilotarrays specify different tool sets per platform. Ensures generated agents receive appropriate integrations without manual post-processing.
109-136: Disagreement Detection & Escalation is appropriately duplicated in shared template.This section mirrors src/claude/critic.md but is necessary here so generated agents (VS Code, Copilot CLI) inherit the same escalation protocol without requiring separate copies.
src/vs-code-agents/pr-comment-responder.agent.md (3)
32-58: Phase 1 gh CLI commands provide explicit enumeration and counting.Fetching PR metadata, ALL reviewers (deduplicated), review comments, issue comments, and storing total counts upfront prevents the "counted only one bot" failure mode. The emphasis on
TOTAL_COMMENTSas a verification anchor is strong.
68-78: Decision tree uses clear ASCII formatting for deterministic routing.The three-branch decision tree (Whether → Strategic, Can-fix-in-one-sentence → Quick Fix, else → Standard) provides no ambiguity. Each path maps to a specific agent with defined responsibilities.
154-170: Completion Verification is mandatory and prevents silent comment loss.The verification script compares
ADDRESSED_COUNTtoTOTAL_COMMENTSand warns if counts diverge. This explicit check prevents the agent from claiming completion when comments remain unaddressed.src/claude/qa.md (3)
10-10: User-outcome QA philosophy prevents test-passing theater.Redefining QA success as "users hit bugs = QA failed" (line 23) aligns testing with business value. The Core Identity emphasizes user perspective over code perspective, shifting mindset away from test count metrics.
Also applies to: 22-23
45-163: Impact Analysis Mode provides structured security analysis for planning phase.The template (lines 62-163) covers Required Test Types, Hard-to-Test Scenarios, Quality Risks, Test Data Requirements, Environment Needs, Coverage Analysis, Automation Strategy, and Estimated Effort. This upfront analysis prevents scope creep during implementation.
268-299: Constraints and Output Location establish clear QA artifact governance.Limiting QA to creating documentation only (not modifying implementation) prevents role confusion. Naming convention
.agents/qa/NNN-[feature]-test-strategy.mdand.agents/qa/NNN-[feature]-test-report.mdsupports artifact tracking and retrieval.src/copilot-cli/high-level-advisor.agent.md (2)
24-40: Behavioral Principles section prevents role creep and sets communication expectations.Declaring what the advisor WILL and WON'T do upfront (e.g., "Won't hedge with 'it depends'") establishes a no-comfort contract. This frames the agent as a decision-forcing function, not a validator.
51-105: Strategic Frameworks provide actionable decision templates.The three patterns (Ruthless Triage, Priority Stack, Continue/Pivot/Cut) are concise, structured, and map directly to markdown output. Each framework includes fields that force specificity (Verdict, Reasoning, Immediate Action, Warning Signs).
src/copilot-cli/security.agent.md (2)
18-57: Six capabilities provide clear scope for security specialist.Organizing around Static Analysis, Secret Detection, Code Quality Audit, Architecture Audit, Best Practices, and Impact Analysis prevents overlap with other agents and establishes a complete security posture framework.
72-175: Impact Analysis template covers attack surface, threat vectors, and compliance.The template includes STRIDE analysis, compliance implications, security testing requirements, dependency scanning, and worst-case impact assessment. This upfront security planning prevents vulnerabilities from being discovered post-implementation.
src/copilot-cli/analyst.agent.md (2)
39-44: Context7 library documentation section enables library resolution and docs retrieval.The addition of this section with
upstashcontext7-mcp-resolve-library-idandupstashcontext7-mcp-get-library-docscalls expands research capability to external library documentation. This supports the "Ideation Research" analysis type that evaluates packages and technologies.
138-231: Feature Request Review and Ideation Research provide thorough pre-implementation validation.Feature Request Review captures user impact signals (GitHub issues, StackOverflow, community discussions), implementation burden, and strategic alignment. Ideation Research covers community health, technical fit, integration complexity, and licensing—enabling data-driven prioritization before design begins.
src/claude/skillbook.md (7)
68-87: Add language identifier to fenced code block (MD040).Line 68 opens a fence without language identifier. Use
`text for generic content blocks.-```markdown +```text ## Deduplication Check
91-106: Specifyjsonlanguage identifier on JSON code block (MD040).-``` +```json { "name": "Skill-[Category]-[Number]",
124-140: Specifyjsonlanguage identifier on JSON code block (MD040).-```json mcp__cloudmcp-manager__memory-create_entitiesThis block mixes JSON with MCP commands. Use
`text instead:-```json +```text mcp__cloudmcp-manager__memory-create_entities
144-155: Specifyjsonlanguage identifier on JSON code block (MD040).-```json +```text mcp__cloudmcp-manager__memory-add_observationsThis block mixes JSON with MCP commands. Use
`text.
183-184: Add blank line before heading (MD022).Line 183 (end of Retirement Criteria section) must have blank line before line 184 (Integration heading).
- [ ] Superseded by higher-rated skill - [ ] Context no longer exists ~## Integration with Other Agents
204-207: Specifytextlanguage identifier and verify blank line spacing (MD040, MD031).The code block at line 204-207 needs language identifier and proper spacing:
+ ~```text ~mcp__cloudmcp-manager__memory-search_nodes ~Query: "skill [task context]" ~``` +
225-233: Add blank line after heading before body text (MD022).Line 225 "Execution Mindset" heading needs blank line after it before line 227 starts body text:
## Execution Mindset ~**Think:** "Only high-quality, proven strategies belong in the skillbook"src/vs-code-agents/orchestrator.agent.md (14)
54-59: Specify language identifier on fenced code block (MD040).Line 54-59 needs language identifier:
-``` +```markdown - [ ] Is this a question (→ direct answer) or a task (→ orchestrate)?
91-95: Specify language identifier on fenced code block (MD040).Line 91-95 needs
`text:-``` +```text Task Type: [Selected Type]
171-177: Specify language identifier on fenced code block (MD040).Line 171-177 needs
`text:-``` +```text CRITICAL: Retrieve memory context using cloudmcp-manager/memory-search_nodes
202-208: Specify language identifier on fenced code block (MD040).Line 202-208 needs
`markdown:-``` +```markdown - [ ] Execute agent delegations step-by-step without asking permission
306-309: Specify language identifier on fenced code block (MD040).Line 306-309 needs
`text:-``` +```text "I disagree with [approach] because [reasons], but I commit to executing
407-430: Specify language identifier on fenced code block (MD040).Line 407-430 needs
`markdown:-``` +```markdown ## Ideation Research: [Topic]
445-486: Specify language identifier on fenced code block (MD040).Line 445-486 needs
`markdown:-``` +```markdown ## Ideation Validation: [Topic]
504-525: Specify language identifier on fenced code block (MD040).Line 504-525 needs
`markdown:-``` +```markdown ## Epic: [Title]
542-593: Specify language identifier on fenced code block (MD040).Line 542-593 needs
`markdown:-``` +```markdown ## Implementation Plan: [Topic]
597-632: Specify language identifier on fenced code block (MD040).Line 597-632 is ASCII diagram. Use
`text:-``` +```text [Vague Idea / Package URL / Incomplete Issue]
722-768: Specify language identifier on fenced code block (MD040).Line 722-768 needs
`markdown:-``` +```markdown ## Handoff: [Topic]
749-751: Specify language identifier on fenced code block (MD040).Line 749-751 needs
`powershell:-``` +```powershell # Commands to verify state--- `778-785`: **Specify language identifier on fenced code block (MD040).** Line 778-785 needs ` ` `markdown: ```diff -``` +```markdown - [ ] ASSESS: Is this agent wrong for this task?
799-820: Specify language identifier on fenced code block (MD040).Line 799-820 needs
`markdown:-``` +```markdown ## Task Summarysrc/vs-code-agents/explainer.agent.md (1)
133-134: Add blank line before heading (MD022).Add blank line before line 134 "Memory Protocol":
- [Link to related documentation]~## Memory Protocol
</blockquote></details> <details> <summary>src/copilot-cli/critic.agent.md (6)</summary><blockquote> `23-24`: **Add blank line before heading (MD022).** ```diff ## Key Responsibilities ~## Review Checklist
52-60: Add blank line before heading (MD022).- **No implementation proposals** - Focus on plan clarity, completeness, and fit - not execution details ~## Memory Protocol
141-196: Specify language identifier on fenced code block (MD040).-``` +```markdown # Critique: [Document Name]
221-229: Specify language identifier on fenced code block (MD040).-``` +```markdown - [ ] Read document under review thoroughly
230-231: Add blank line before heading (MD022).- [ ] Handoff appropriately~## Verdict Rules
--- `260-268`: **Add blank line before heading (MD022).** ```diff [Strategy] ~## Execution Mindsetsrc/vs-code-agents/analyst.agent.md (8)
34-37: Specify language identifier on fenced code block (MD040).### Repository Documentation (DeepWiki) -``` +```bash cognitionai/deepwiki/ask_question with repoName="owner/repo" question="how does X work?"
41-44: Specify language identifier on fenced code block (MD040).### Library Documentation (Context7) -``` +```text cloudmcp-manager/upstashcontext7-mcp-resolve-library-id with libraryName="library-name"
48-61: Specify language identifier on fenced code block (MD040).### GitHub Integration -```bash +```bashThis block is already correctly marked.
95-112: Specify language identifier on fenced code block (MD040).-``` +```markdown ## Root Cause Analysis: [Issue]
116-136: Specify language identifier on fenced code block (MD040).-``` +```markdown ## Research: [Topic]
140-175: Specify language identifier on fenced code block (MD040).-``` +```markdown ## Feature Request Review: [Feature]
182-231: Specify language identifier on fenced code block (MD040).-``` +```markdown ## Ideation Research: [Topic]
245-273: Specify language identifier on fenced code block (MD040).-``` +```markdown # Analysis: [Topic Name]src/vs-code-agents/high-level-advisor.agent.md (5)
48-49: Add blank line before heading (MD022).- Before strategic decisions: Request context retrieval for relevant decisions - After decisions: Request storage of strategic decisions and priority changes ~## Strategic Frameworks
53-69: Specify language identifier on fenced code block (MD040).-``` +```markdown ## Current State
71-85: Specify language identifier on fenced code block (MD040).-``` +```markdown ## P0 - Do Today
88-105: Specify language identifier on fenced code block (MD040).-``` +```markdown ## Situation
139-140: Add blank line before heading (MD022).| **implementer** | Pending / Approved / Concerns | | ~## Execution Mindsettemplates/agents/pr-comment-responder.shared.md (9)
32-58: Specify language identifier on fenced code block (MD040).Use gh CLI commands: -``` +```bash # Fetch PR metadata
68-78: Specify language identifier on fenced code block (MD040).For each comment, classify using this decision tree: -``` +```text Is this about WHETHER to do something? (scope, priority, alternatives)
110-152: Specify language identifier on fenced code block (MD040).For simple fixes, skip orchestrator overhead: -``` +```text /agent implementer Fix this PR review comment (Quick Fix Path):
157-170: Specify language identifier on fenced code block (MD040).Pass classification and context to orchestrator: -``` +```text /agent orchestrator Handle this PR review comment:
182-193: Specify language identifier on fenced code block (MD040).**DO NOT** claim completion until this check passes: -``` +```bash # After processing all comments, verify count
217-280: Specify language identifiers on multiple fenced code blocks (MD040).Line 217-220 needs
`text:-``` +```text # CORRECT: Reply to a specific review comment (creates threaded reply)Line 233 needs
`bash:-``` +```bash @coderabbitai resolve # Batch resolve all comments
252-263: Specify language identifier on fenced code block (MD040).Some comments warrant direct agent routing without full orchestration: | File Pattern | Comment Type | Direct To | Why |This is a table, not a code block.
305-342: Specify language identifier on fenced code block (MD040).Delegate to **memory** agent for cross-session context. Memory is critical for PR comment handling as reviewers (especially bots) have predictable patterns that improve triage accuracy over time. -``` +```markdown ## Deduplication Check
15-16: Add blank lines around section headings and lists (MD031, MD032, MD022).Line 15-16 (frontmatter closes, file content starts): Verify proper spacing after frontmatter before line 6.
This file has numerous spacing issues throughout. Key areas need blank lines:
- Before every
##or###heading- After headings before body text
- Around lists (MD032)
- Before/after code blocks (MD031)
Run
markdownlint --fixto auto-resolve spacing violations per coding guidelines.src/vs-code-agents/planner.agent.md (10)
42-46: Specify language identifier on fenced code block (MD040).### Phase 1: Value Alignment -``` +```markdown - [ ] Present value statement in user story format
50-54: Specify language identifier on fenced code block (MD040).### Phase 2: Context Gathering -``` +```markdown - [ ] Review roadmap for strategic alignment
77-121: Specify language identifier on fenced code block (MD040).Save to: `.agents/planning/NNN-[plan-name]-plan.md` -``` +```markdown # Plan: [Plan Name]
177-193: Specify language identifier on fenced code block (MD040).When consulting specialists, use structured prompts: -``` +```text #runSubagent with subagentType={agent_name} Impact Analysis Request: [Feature/Change Name]
199-239: Specify language identifier on fenced code block (MD040).Each specialist creates: `.agents/planning/impact-analysis-[feature]-[domain].md` -``` +```markdown # Impact Analysis: [Feature] - [Domain]
245-298: Specify language identifier on fenced code block (MD040).After consultations, add to plan: -``` +```markdown ## Impact Analysis Summary
334-340: Specify language identifier on fenced code block (MD040).| Auth complexity | Security: Require MFA | Implementer: Scope too large | Escalate to high-level-advisor |-
+markdown
Note: The critic agent is responsible for escalating major conflicts to high-level-advisor. Unanimous specialist agreement is required for smooth approval.This doesn't look right. Review original spacing. --- `378-386`: **Specify language identifier on fenced code block (MD040).** ```diff ### Phase 1: Value Alignment -``` +```markdown - [ ] Present value statement in user story formatNote: This appears to be duplicate content. Check for copy-paste errors in the plan template sections.
436-452: Specify language identifier on fenced code block (MD040).When plan is complete: -``` +```markdown 1. Save plan document to `.agents/planning/`
352-359: Add blank line before heading (MD022).- **Realistic**: Account for risks and unknowns ~## Output Locationsrc/copilot-cli/qa.agent.md (1)
152-158: Add blank lines around Memory Protocol section.Lines 152-154 and 156-157 need blank lines between the heading and content to comply with markdown standards (MD032).
## Memory protocol -Delegate to **memory** agent for cross-session context: +Delegate to **memory** agent for cross-session context:Likely an incorrect or invalid review comment.
templates/agents/explainer.shared.md (1)
1-5: No issues found. Tools are correctly defined in agent template frontmatter, not in platform config files. The toolms-vscode.vscode-websearchforcopilot/websearchfollows the standard VS Code extension identifier pattern and is used consistently across multiple agent templates (security, roadmap, qa, planner, orchestrator, and others) in both source and generated agent files. Platform configs define only transformation settings, not tool definitions.src/copilot-cli/implementer.agent.md (1)
204-210: Memory protocol delegation is consistent with PR pattern.The shift from explicit cloudmcp-manager memory calls to delegated memory-agent requests aligns with the templating approach. Ensure all agents using this pattern frame requests at consistent lifecycle points (pre-analysis retrieval, post-decision storage).
templates/agents/analyst.shared.md (2)
42-44: Verify tool naming consistency across platform agents.Lines 42–43 use
cloudmcp-manager/upstashcontext7-mcp-*syntax, but src/claude/analyst.md (lines 56–57) usesmcp__context7__*syntax. Confirm which is correct for template generation and ensure consistency across all agent files.
1-302: Markdown structure is compliant with guidelines.Headings, code blocks, and lists all have proper blank-line spacing. Language identifiers are correct (
text,bash,markdown). No MD031/MD032/MD022 violations detected.src/copilot-cli/independent-thinker.agent.md (1)
42-47: Memory protocol delegation is correctly framed.Request/storage pattern at analysis milestones is consistent with memory-agent delegation approach across the PR. Clear lifecycle hooks (before analysis, after analysis) enable proper context management.
templates/agents/roadmap.shared.md (2)
1-254: Markdown formatting is correct throughout.Headings, tables, and code blocks all have proper blank-line spacing per MD031/MD032/MD022. Language identifiers on fenced blocks are accurate. Framework definitions (RICE, KANO, Rumsfeld, Eisenhower) are well-formatted.
101-111: Key Assumptions section strengthens framework rigor.Requiring explicit documentation of user behavior, market timing, dependencies, effort, and success metrics before prioritization is a strong governance practice. Routing untested assumptions to analyst for validation (line 111) ensures evidence-based prioritization.
templates/agents/architect.shared.md (2)
1-255: Architectural governance templates are well-structured.ADR format, Impact Analysis deliverable, and three-phase review process all align with industry best practices. Blank-line spacing, heading hierarchy, and code-block formatting comply with markdown guidelines.
65-69: ADR Alignment table is a strong governance addition.Explicit tracking of ADR status (Aligns/Conflicts/Not Applicable) ensures architectural decisions are linked to impact analysis. This prevents architectural drift during feature implementation.
src/vs-code-agents/architect.agent.md (3)
131-137: Architectural Principles are concrete and actionable.Five principles (Consistency, Simplicity, Testability, Extensibility, Separation) provide clear guards against architectural drift. These should be referenced explicitly in ADR decisions and impact analysis.
157-180: Three-phase review process is well-defined.Pre-Planning, Plan/Analysis, and Post-Implementation phases with markdown checklists create clear checkpoints. Ensures architectural rigor at design, validation, and delivery gates.
220-225: Output Location guidance clarifies artifact placement.Specifying
.agents/architecture/as the edit-only path and defining naming conventions (ADR-NNN, topic-review.md) enables consistent governance artifact discovery and management.src/claude/analyst.md (2)
56-58: Tool naming syntax differs from shared template.Claude analyst uses
mcp__context7__*format (lines 56–57), while templates/agents/analyst.shared.md usescloudmcp-manager/upstashcontext7-mcp-*format. Verify whether these are intentional platform-specific variations or inconsistency that needs resolution.
256-269: Memory Protocol delegation is consistent with broader PR pattern.Shift from explicit memory operations to delegated retrieval/storage at lifecycle milestones aligns with governance-centric refactoring. Ensure tool calls match final resolved names.
src/vs-code-agents/independent-thinker.agent.md (3)
42-47: Memory protocol delegation is consistent across platforms.Pre-analysis retrieval (context) and post-analysis storage (alternatives/challenges) provide clear lifecycle hooks. Matches patterns in copilot-cli and other agents.
51-102: Analysis templates enable structured contrarian feedback.Assumption Challenge Template and Alternative Analysis Format force evidence-based reasoning and discourage opinion-based challenge. Comparison Matrix (lines 95–98) makes tradeoff analysis explicit.
104-116: Response Patterns prevent tone-based rejection of criticism.Concrete phrases ("Let me examine the evidence...", "What evidence supports...") establish collaborative tone while maintaining intellectual independence. Prevents defensive shutdown of valid challenges.
src/vs-code-agents/critic.agent.md (2)
53-66: Ensure blank lines around sections with lists per MD032.Line 53 ("## Constraints") has a bullet list starting immediately at lines 55-58. The closing of this section (line 58) should have a blank line before the next section (line 60 "## Memory Protocol"). Currently line 59 is blank, so this is compliant.
Similarly, the Memory Protocol section (lines 60-66) is a text section. Spacing looks correct.
24-52: Review Checklist structure looks solid.The new Review Checklist section adds four subsections (Completeness, Feasibility, Alignment, Testability) with checkboxes and clear criteria. Each subsection is properly formatted with blank lines and ATX-style headings.
However, verify that markdown linting passes. Per MD032, lists should be surrounded by blank lines. Each checkbox list (lines 28-31, 35-38, 42-45, 48-51) has blank lines before and after, which is compliant.
src/copilot-cli/architect.agent.md (2)
131-138: Architectural Principles section is well-structured.Five clear principles (Consistency, Simplicity, Testability, Extensibility, Separation) properly formatted as bullet list with appropriate spacing per MD032.
146-152: Memory Protocol properly updated to delegation pattern.Updated from explicit cloudmcp-manager calls to "Delegate to memory agent for cross-session context" with pre- and post-review guidance. Aligns with broader memory delegation shift noted in PR summary.
src/copilot-cli/task-generator.agent.md (2)
33-39: Memory Protocol properly delegates to memory agent.Follows the same delegation pattern as other files (architect, planner). Pre-task context retrieval and post-task storage guidance is clear.
99-139: Verify code block fence syntax for the Task List Template.Line 99 opens a code block with 4 backticks and markdown language identifier: ```` markdown
Line 139 closes with 4 backticks (no language identifier):
`This is syntactically correct for quadruple-backtick fences. However, per MD048 (fenced code block style), confirm consistency—single or triple backticks are more common. If the markdown config enforces triple-backtick style, this may violate the rule.
Suggest reducing to triple backticks for consistency with the rest of the codebase:
-````markdown +```markdown # Task Breakdown: [Feature Name] ... -```` +```src/copilot-cli/planner.agent.md (2)
31-37: Memory Protocol properly delegates.Consistent with other copilot-cli and vs-code-agents files using memory agent delegation model with pre- and post-workflow guidance.
344-351: Planning Principles well-structured.Five clear, actionable principles (Incremental, Testable, Sequenced, Scoped, Realistic) with proper spacing and formatting per markdown guidelines.
src/claude/high-level-advisor.md (3)
67-84: Behavioral Principles section is clear and actionable.The "I WILL / I WON'T" structure makes expectations explicit:
- I WILL: Tell hard truths, give direct verdicts, cut through paralysis
- I WON'T: Sugarcoat, hedge, write code, do line-by-line review, validate poor decisions
Proper formatting with blank lines and bullet lists per MD032.
99-155: Strategic Frameworks well-structured.New section adds four framework templates:
- Ruthless Triage (Current State, Real Question, Options, Verdict, Rationale)
- Priority Stack (P0/P1/P2/KILL categorization)
- Continue/Pivot/Cut Framework (Situation, Verdict, Reasoning, Action, Warning Signs)
- Response Patterns (Opinion, Avoidance, Unclear Priority templates)
Each framework is a markdown code block with proper language identifiers and clear guidance. Formatting is compliant with MD031/MD032.
181-188: Handoff Options properly added.New Handoff Options table includes targets for implementer, planner, analyst, and independent-thinker with clear purposes. Aligns with broader agent orchestration pattern.
src/claude/explainer.md (1)
26-33: Target Audience section clearly defines junior developer focus.Explicit requirements (Grade 9 reading level, unambiguous language, no unexplained jargon, explicit requirements) align well with coding guidelines. This drives how documentation should be written.
src/claude/independent-thinker.md (1)
98-151: Analysis Framework templates are comprehensive and well-structured.Two primary templates:
- Assumption Challenge (Evidence For/Against, Alternatives, Uncertainty Level, Recommendation)
- Alternative Analysis (Current Approach, Concerns, Alternatives 1-2, Comparison Matrix, Verdict)
Proper markdown code block formatting with language identifiers and blank lines per MD031. Templates provide clear structure for analyst thinking.
There was a problem hiding this comment.
Actionable comments posted: 16
Caution
Some comments are outside the diff and can’t be posted inline due to platform limitations.
⚠️ Outside diff range comments (12)
src/copilot-cli/independent-thinker.agent.md (2)
53-74: Assumption Challenge Template code block lacks proper blank line spacing.Line 52 needs a blank line before the code block opening fence (MD031).
Apply this diff:
[The assumption being questioned] + ```markdown ## Assumption Under Challenge
77-102: Alternative Analysis Format code block missing blank line before opening fence.Line 77 should have a blank line separator per MD031.
Apply this diff:
### Alternative 1: [Name] [Same structure] + ```markdown ## Current Approachsrc/vs-code-agents/analyst.agent.md (1)
233-239: Tools for Ideation Research list is missing blank line before it per MD032.Line 232-233 transition needs a blank line before the bullet list.
Apply this diff:
If Reject: Document reasoning for future reference
Tools for Ideation Research:
- Microsoft Docs Search - Official Microsoft documentation
</blockquote></details> <details> <summary>src/copilot-cli/analyst.agent.md (1)</summary><blockquote> `232-239`: **Tools for Ideation Research list missing blank line before it per MD032.** Line 232-233 transition needs blank line before bullet list, same as vs-code variant. Apply this diff: ```diff If Reject: Document reasoning for future reference
Tools for Ideation Research:
- Microsoft Docs Search - Official Microsoft documentation
</blockquote></details> <details> <summary>src/vs-code-agents/orchestrator.agent.md (6)</summary><blockquote> `54-59`: **Phase 0 Triage checklist code block lacks blank line before opening fence.** Line 53-54 transition needs blank line before code block per MD031. Apply this diff: ```diff ### Phase 0: Triage (MANDATORY) + ```markdown - [ ] Is this a question (→ direct answer) or a task (→ orchestrate)?
147-167: Classification Summary Template code block needs blank line before opening fence.Line 147-149 needs blank line before code block fence per MD031.
Apply this diff:
Use classification + domains to select the appropriate sequence from **Agent Sequences by Task Type** below. + **Classification Summary Template** (document before proceeding): ```markdown
170-177: Phase 1 Initialization checklist code block needs blank line before fence.Line 170 needs blank line before code block per MD031.
Apply this diff:
### Phase 1: Initialization (MANDATORY) + ```markdown - [ ] CRITICAL: Retrieve memory context using cloudmcp-manager/memory-search_nodes
180-186: Phase 2 Planning code block needs blank line before fence.Apply this diff:
### Phase 2: Planning & Immediate Action + ```markdown - [ ] Research unfamiliar technologies using fetch
200-208: Phase 3 Autonomous Execution code block needs blank line before fence.Apply this diff:
### Phase 3: Autonomous Execution + ```markdown - [ ] Execute agent delegations step-by-step without asking permission
722-768: Handoff Document Template code block formatting issue.Line 722 starts with triple backticks in markdown (correct) but the template block should be marked as
markdownlanguage identifier. Lines show `````markdown opening but content is markdown template showingpowershellblock inside it.This is a nested code block scenario. The outer fence should be marked
markdown:**Location**: `.agents/planning/handoff-[topic].md` + ```markdown ## Handoff: [Topic] ... ### Next Session Quick Start ```powershell # Commands to verify state+src/copilot-cli/implementer.agent.md (1)
28-51: Impact Analysis Mode section needs blank lines before code blocks.Lines 28-50 contain code blocks (lines 34-40, 42-48) that need blank lines before opening fences per MD031.
Apply this diff:
### Analyze Code Impact + ```markdown - [ ] Identify all files/modules requiring changes ...
### Impact Analysis Deliverable + ```markdown # Impact Analysis: [Feature] - Codesrc/copilot-cli/task-generator.agent.md (1)
99-139: Fix malformed code fence: use 3 backticks, not 4. Lines 99 and 139 use `````markdown (4 backticks) and ```` (4 backticks), which breaks markdown fence syntax. Closing fence must never include language identifier.Apply this diff to fix the fence syntax:
-````markdown +```markdown # Task Breakdown: [Feature Name] ## Source @@ -135,7 +135,7 @@ graph TD | Risk | Impact | Mitigation | |------|--------|------------| | [Risk] | [Impact] | [How to handle] | -```` +```
♻️ Duplicate comments (2)
templates/agents/roadmap.shared.md (1)
1-254: Verify blank lines around all headings and lists (MD022/032). Runmarkdownlint --fixto auto-resolve spacing violations before merge. This mirrors the previous review comment on spacing issues.build/Generate-Agents.ps1 (1)
85-103: Path traversal check can be bypassed.
StartsWithcomparison without trailing separator allowsC:\repo_evilto pass validation against rootC:\repo. This was flagged in a previous review.Fix by ensuring root path ends with directory separator:
function Test-PathWithinRoot { [CmdletBinding()] param( [Parameter(Mandatory)] [string]$Path, [Parameter(Mandatory)] [string]$Root ) $resolvedPath = [System.IO.Path]::GetFullPath($Path) $resolvedRoot = [System.IO.Path]::GetFullPath($Root) + + # Ensure root ends with directory separator to prevent prefix attacks + if (-not $resolvedRoot.EndsWith([System.IO.Path]::DirectorySeparatorChar)) { + $resolvedRoot += [System.IO.Path]::DirectorySeparatorChar + } - return $resolvedPath.StartsWith($resolvedRoot, [StringComparison]::OrdinalIgnoreCase) + return $resolvedPath.StartsWith($resolvedRoot, [StringComparison]::OrdinalIgnoreCase) -or + $resolvedPath -eq $resolvedRoot.TrimEnd([System.IO.Path]::DirectorySeparatorChar) }
🧹 Nitpick comments (3)
src/copilot-cli/orchestrator.agent.md (1)
32-40: Clarify delegation responsibility boundaries in Memory Protocol.Lines 36-39 delegate memory retrieval and storage to a "memory agent" but don't specify the agent's name or invocation method. Elsewhere in the file, agents are invoked with
/agent [agent_name]syntax (line 650). For consistency and clarity, specify whether memory operations use a specific agent (e.g., "memory agent") or follow the standard handoff protocol.Consider updating lines 36-39 to be explicit:
-Delegate to **memory** agent for cross-session context: +Delegate to the **memory** agent for cross-session context: -- Before multi-step reasoning: Request context retrieval -- At milestones or every 5 turns: Request storage of learnings and observations +- Before multi-step reasoning: `/agent memory` with context retrieval request +- At milestones or every 5 turns: `/agent memory` with storage requestThis makes the handoff syntax explicit and consistent with line 650.
templates/agents/implementer.shared.md (1)
139-139: Replace vague "hard to test" with concrete language. Static analysis flags "hard to" as needing elevation. Replace with "difficult to test" or "resistant to testing" for stronger wording.Examples:
- Line 139: "Code resistant to testing reveals deeper issues" (more specific).
- Line 224: "If code resists testing, identify why: ..." (active framing).
Also applies to: 224-224
src/vs-code-agents/implementer.agent.md (1)
204-210: Inconsistent Memory Protocol capitalization across agent files.Line 204 uses "## Memory protocol" (lowercase 'p'), while other agent files (skillbook, retrospective, independent-thinker) use "## Memory Protocol" (uppercase 'P'). Standardize heading capitalization for consistency.
- ## Memory protocol + ## Memory Protocol
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (60)
build/Generate-Agents.ps1(1 hunks)src/claude/analyst.md(1 hunks)src/claude/architect.md(5 hunks)src/claude/critic.md(4 hunks)src/claude/explainer.md(2 hunks)src/claude/high-level-advisor.md(5 hunks)src/claude/independent-thinker.md(5 hunks)src/claude/memory.md(3 hunks)src/claude/planner.md(3 hunks)src/claude/qa.md(3 hunks)src/claude/retrospective.md(3 hunks)src/claude/skillbook.md(3 hunks)src/claude/task-generator.md(3 hunks)src/copilot-cli/analyst.agent.md(2 hunks)src/copilot-cli/architect.agent.md(2 hunks)src/copilot-cli/critic.agent.md(2 hunks)src/copilot-cli/devops.agent.md(1 hunks)src/copilot-cli/explainer.agent.md(1 hunks)src/copilot-cli/high-level-advisor.agent.md(1 hunks)src/copilot-cli/implementer.agent.md(1 hunks)src/copilot-cli/independent-thinker.agent.md(1 hunks)src/copilot-cli/orchestrator.agent.md(3 hunks)src/copilot-cli/planner.agent.md(4 hunks)src/copilot-cli/pr-comment-responder.agent.md(7 hunks)src/copilot-cli/qa.agent.md(1 hunks)src/copilot-cli/roadmap.agent.md(4 hunks)src/copilot-cli/security.agent.md(1 hunks)src/copilot-cli/task-generator.agent.md(3 hunks)src/vs-code-agents/analyst.agent.md(2 hunks)src/vs-code-agents/architect.agent.md(2 hunks)src/vs-code-agents/critic.agent.md(3 hunks)src/vs-code-agents/devops.agent.md(1 hunks)src/vs-code-agents/explainer.agent.md(1 hunks)src/vs-code-agents/high-level-advisor.agent.md(1 hunks)src/vs-code-agents/implementer.agent.md(1 hunks)src/vs-code-agents/independent-thinker.agent.md(1 hunks)src/vs-code-agents/orchestrator.agent.md(1 hunks)src/vs-code-agents/planner.agent.md(3 hunks)src/vs-code-agents/pr-comment-responder.agent.md(10 hunks)src/vs-code-agents/qa.agent.md(1 hunks)src/vs-code-agents/roadmap.agent.md(4 hunks)src/vs-code-agents/security.agent.md(1 hunks)src/vs-code-agents/task-generator.agent.md(3 hunks)templates/agents/analyst.shared.md(1 hunks)templates/agents/architect.shared.md(1 hunks)templates/agents/critic.shared.md(1 hunks)templates/agents/devops.shared.md(1 hunks)templates/agents/explainer.shared.md(1 hunks)templates/agents/high-level-advisor.shared.md(1 hunks)templates/agents/implementer.shared.md(1 hunks)templates/agents/independent-thinker.shared.md(1 hunks)templates/agents/orchestrator.shared.md(1 hunks)templates/agents/planner.shared.md(1 hunks)templates/agents/pr-comment-responder.shared.md(1 hunks)templates/agents/qa.shared.md(1 hunks)templates/agents/roadmap.shared.md(1 hunks)templates/agents/security.shared.md(1 hunks)templates/agents/task-generator.shared.md(1 hunks)templates/platforms/copilot-cli.yaml(1 hunks)templates/platforms/vscode.yaml(1 hunks)
✅ Files skipped from review due to trivial changes (1)
- templates/agents/devops.shared.md
🚧 Files skipped from review as they are similar to previous changes (12)
- src/vs-code-agents/architect.agent.md
- templates/agents/task-generator.shared.md
- templates/agents/explainer.shared.md
- src/vs-code-agents/task-generator.agent.md
- src/copilot-cli/pr-comment-responder.agent.md
- src/copilot-cli/devops.agent.md
- src/vs-code-agents/security.agent.md
- templates/agents/qa.shared.md
- src/copilot-cli/security.agent.md
- templates/platforms/vscode.yaml
- templates/agents/high-level-advisor.shared.md
- templates/agents/security.shared.md
🧰 Additional context used
📓 Path-based instructions (7)
**/*.md
📄 CodeRabbit inference engine (.agents/architecture/ADR-001-markdown-linting.md)
**/*.md: Add language identifiers to all fenced code blocks (MD040). Use appropriate language identifiers:csharpfor C#,powershellfor PowerShell,bashfor shell,jsonfor JSON,yamlfor YAML,markdownfor Markdown,textfor plain text or generic/pseudo code
Wrap generic types in backticks to escape angle brackets (e.g.,ArrayPool<T>instead of ArrayPool) to comply with MD033 inline HTML restrictions and ensure proper rendering
Add blank lines around code blocks to comply with MD031 markdown linting requirements
Add blank lines around lists to comply with MD032 markdown linting requirements
Add blank lines around headings to comply with MD022 markdown linting requirements
Use ATX-style headings (# Heading) consistently across all markdown documents (MD003)
Use fenced code block style (triple backticks) consistently, with backtick delimiters rather than tildes (MD046, MD048)
Allow only specific HTML elements in markdown:<br>,<kbd>,<sup>,<sub>. Escape or avoid other inline HTML elements to comply with MD033 restrictions
**/*.md: Use skill ID convention format: Skill-[Category]-[Number] for skills and Anti-[Category]-[Number] for anti-patterns
Each skill must follow the required structure: Statement (max 15 words), Context, Atomicity score (0-100%), Evidence, Impact, and Tags
Score skills for atomicity using the scale: 90-100% (Excellent - ready for storage), 70-89% (Good - may need refinement), 50-69% (Acceptable - consider splitting), <50% (Needs Work - too vague)
Tag each skill with one of: helpful (contributed to success), harmful (caused failure), or neutral (no measurable impact)
When citing skills during implementation, use the format: Applying [Skill-ID], Strategy [description], Expected [outcome], Result [actual outcome], Skill Validated [yes/no]
Skills should be atomic learning statements of maximum 15 words
Skills must include measurable outcomes in the Impact field
**/*.md: Always specify language identifiers on fenc...
Files:
src/copilot-cli/independent-thinker.agent.mdtemplates/agents/roadmap.shared.mdsrc/claude/skillbook.mdsrc/copilot-cli/analyst.agent.mdsrc/copilot-cli/roadmap.agent.mdsrc/claude/architect.mdsrc/claude/task-generator.mdtemplates/agents/pr-comment-responder.shared.mdsrc/claude/critic.mdsrc/claude/retrospective.mdsrc/copilot-cli/critic.agent.mdsrc/claude/qa.mdsrc/copilot-cli/orchestrator.agent.mdsrc/copilot-cli/high-level-advisor.agent.mdtemplates/agents/orchestrator.shared.mdsrc/claude/explainer.mdsrc/vs-code-agents/analyst.agent.mdsrc/claude/high-level-advisor.mdtemplates/agents/critic.shared.mdsrc/copilot-cli/qa.agent.mdsrc/claude/independent-thinker.mdsrc/copilot-cli/implementer.agent.mdsrc/vs-code-agents/pr-comment-responder.agent.mdsrc/vs-code-agents/roadmap.agent.mdsrc/claude/memory.mdsrc/vs-code-agents/critic.agent.mdsrc/copilot-cli/planner.agent.mdsrc/copilot-cli/architect.agent.mdsrc/claude/analyst.mdsrc/vs-code-agents/planner.agent.mdsrc/copilot-cli/explainer.agent.mdsrc/copilot-cli/task-generator.agent.mdsrc/vs-code-agents/independent-thinker.agent.mdtemplates/agents/architect.shared.mdsrc/vs-code-agents/explainer.agent.mdsrc/vs-code-agents/qa.agent.mdsrc/vs-code-agents/devops.agent.mdsrc/vs-code-agents/implementer.agent.mdsrc/claude/planner.mdtemplates/agents/independent-thinker.shared.mdsrc/vs-code-agents/high-level-advisor.agent.mdsrc/vs-code-agents/orchestrator.agent.mdtemplates/agents/planner.shared.mdtemplates/agents/analyst.shared.mdtemplates/agents/implementer.shared.md
⚙️ CodeRabbit configuration file
**/*.md: Writing Quality: - Grade 9 reading level - Active voice, direct address - Short sentences (under 15 words ideal) - No fluff, filler, or marketing language - Replace adjectives with data where possible - Every sentence must pass the "so what" test
Flag: - Passive voice - Vague language (nearly, some, almost, very) - Jargon without definitions - Broken links and outdated procedures - Inconsistency with code changes in same PR - Missing context for new features or APIs
Ignore (handled by .markdownlint-cli2.yaml): - Markdown formatting and style - Heading level choices - Link formatting variations - Minor punctuation preferences
Files:
src/copilot-cli/independent-thinker.agent.mdtemplates/agents/roadmap.shared.mdsrc/claude/skillbook.mdsrc/copilot-cli/analyst.agent.mdsrc/copilot-cli/roadmap.agent.mdsrc/claude/architect.mdsrc/claude/task-generator.mdtemplates/agents/pr-comment-responder.shared.mdsrc/claude/critic.mdsrc/claude/retrospective.mdsrc/copilot-cli/critic.agent.mdsrc/claude/qa.mdsrc/copilot-cli/orchestrator.agent.mdsrc/copilot-cli/high-level-advisor.agent.mdtemplates/agents/orchestrator.shared.mdsrc/claude/explainer.mdsrc/vs-code-agents/analyst.agent.mdsrc/claude/high-level-advisor.mdtemplates/agents/critic.shared.mdsrc/copilot-cli/qa.agent.mdsrc/claude/independent-thinker.mdsrc/copilot-cli/implementer.agent.mdsrc/vs-code-agents/pr-comment-responder.agent.mdsrc/vs-code-agents/roadmap.agent.mdsrc/claude/memory.mdsrc/vs-code-agents/critic.agent.mdsrc/copilot-cli/planner.agent.mdsrc/copilot-cli/architect.agent.mdsrc/claude/analyst.mdsrc/vs-code-agents/planner.agent.mdsrc/copilot-cli/explainer.agent.mdsrc/copilot-cli/task-generator.agent.mdsrc/vs-code-agents/independent-thinker.agent.mdtemplates/agents/architect.shared.mdsrc/vs-code-agents/explainer.agent.mdsrc/vs-code-agents/qa.agent.mdsrc/vs-code-agents/devops.agent.mdsrc/vs-code-agents/implementer.agent.mdsrc/claude/planner.mdtemplates/agents/independent-thinker.shared.mdsrc/vs-code-agents/high-level-advisor.agent.mdsrc/vs-code-agents/orchestrator.agent.mdtemplates/agents/planner.shared.mdtemplates/agents/analyst.shared.mdtemplates/agents/implementer.shared.md
**/vs-code-agents/pr-comment-responder.agent.md
📄 CodeRabbit inference engine (.agents/retrospective/2025-12-14-pr-comment-responder-gaps.md)
Sync pr-comment-responder.md changes to vs-code-agents/pr-comment-responder.agent.md
Files:
src/vs-code-agents/pr-comment-responder.agent.md
{.githooks/**,**/.github/**,**/infrastructure/**,**/config/**,**/*.tf,**/*.yml,**/*.yaml}
📄 CodeRabbit inference engine (.agents/metrics/baseline-report.md)
Infrastructure files (including
.githooks/pre-commit) must receive security review before deployment
Files:
templates/platforms/copilot-cli.yaml
build/**/*.ps1
📄 CodeRabbit inference engine (.agents/security/infrastructure-file-patterns.md)
PowerShell build scripts in build directory (
build/**/*.ps1) should trigger security agent review due to high security implications
Files:
build/Generate-Agents.ps1
{build/**/*.ps1,scripts/**/*.sh,Dockerfile*,docker-compose*,**/Controllers/**}
📄 CodeRabbit inference engine (.agents/utilities/security-detection/SKILL.md)
Build scripts (
build/**/*.ps1,scripts/**/*.sh), container configs (Dockerfile*,docker-compose*), and API controllers (**/Controllers/**) require security agent review (HIGH level)
Files:
build/Generate-Agents.ps1
**/*.{ps1,psm1,psd1}
📄 CodeRabbit inference engine (.agents/retrospective/2025-12-15-cva-install-scripts.md)
Extract environment variations to .psd1 data files, keeping logic generic rather than hardcoding configuration in scripts
Files:
build/Generate-Agents.ps1
**/*.{ps1,psd1}?(@(test|spec))
📄 CodeRabbit inference engine (.agents/retrospective/2025-12-15-install-scripts-session.md)
Use BeforeAll blocks for all variable initialization in Pester 5.x tests; avoid variable assignments outside BeforeAll during Discovery phase
Files:
build/Generate-Agents.ps1
🪛 LanguageTool
templates/agents/roadmap.shared.md
[style] ~85-~85: Consider an alternative for the often overused word ‘important’.
Context: ...SCHEDULE: Strategy, tech debt | | Not Important | DELEGATE: Interrupts, requests | DE...
(NOT_IMPORTANT)
src/copilot-cli/analyst.agent.md
[grammar] ~39-~39: Ensure spelling is correct
Context: ...r/repo" ### Library Documentation (Context7) text cloudmcp-manager/upstashconte...
(QB_NEW_EN_ORTHOGRAPHY_ERROR_IDS_1)
templates/agents/pr-comment-responder.shared.md
[uncategorized] ~244-~244: The official name of this software platform is spelled with a capital “H”.
Context: ...---|--------------|-----------|-----| | .github/workflows/* | CI/CD issues | devops | ...
(GITHUB)
templates/agents/orchestrator.shared.md
[style] ~22-~22: Consider using a different verb for a more formal wording.
Context: ...rom one step to the next - Research and fix issues autonomously - Continue until AL...
(FIX_RESOLVE)
[uncategorized] ~82-~82: The official name of this software platform is spelled with a capital “H”.
Context: ...line", "workflow", "deploy", "build", ".github/", ".githooks/" | | Security | Vuln...
(GITHUB)
[uncategorized] ~350-~350: The official name of this software platform is spelled with a capital “H”.
Context: ...ecurity, architect, implementer, qa | | .github/workflows/*, .githooks/* | Infrastru...
(GITHUB)
src/vs-code-agents/analyst.agent.md
[grammar] ~39-~39: Ensure spelling is correct
Context: ...r/repo" ### Library Documentation (Context7) text cloudmcp-manager/upstashconte...
(QB_NEW_EN_ORTHOGRAPHY_ERROR_IDS_1)
src/claude/independent-thinker.md
[style] ~172-~172: Consider a different adjective to strengthen your wording.
Context: ...ded | Design decision | | analyst | Deep research required | Investigation | | *...
(DEEP_PROFOUND)
src/vs-code-agents/pr-comment-responder.agent.md
[uncategorized] ~244-~244: The official name of this software platform is spelled with a capital “H”.
Context: ...---|--------------|-----------|-----| | .github/workflows/* | CI/CD issues | devops | ...
(GITHUB)
templates/agents/independent-thinker.shared.md
[style] ~123-~123: Consider a different adjective to strengthen your wording.
Context: ...ded | Design decision | | analyst | Deep research required | Investigation | | *...
(DEEP_PROFOUND)
templates/agents/analyst.shared.md
[grammar] ~39-~39: Ensure spelling is correct
Context: ...r/repo" ### Library Documentation (Context7) text cloudmcp-manager/upstashconte...
(QB_NEW_EN_ORTHOGRAPHY_ERROR_IDS_1)
templates/agents/implementer.shared.md
[style] ~139-~139: To elevate your writing, try using a synonym here.
Context: ...ion) Testability is leverage. Code hard to test reveals deeper problems. **Coh...
(HARD_TO)
[style] ~139-~139: Consider a different adjective to strengthen your wording.
Context: ...s leverage.** Code hard to test reveals deeper problems. Cohesion: Single respons...
(DEEP_PROFOUND)
[style] ~224-~224: To elevate your writing, try using a synonym here.
Context: ...code - Use Moq for mocking - If code is hard to test, identify why: poor encapsulati...
(HARD_TO)
🔍 Remote MCP DeepWiki
Summary: Additional Review Context for PR #43
Based on comprehensive searches of the repository wiki, architecture documents, and implementation files, here is the critical context for effectively reviewing this PR:
1. Core Purpose & Scope
This PR implements a 2-Variant Agent Consolidation system that:
- Consolidates 54 agent files (18 agents × 3 platforms) into 36 unique files (18 shared sources + 18 VS Code/Copilot generated pairs)
- VS Code and Copilot CLI agents share 99%+ identical content, differing only in YAML frontmatter and handoff syntax
- Claude agents remain separate (unique tool/instruction requirements)
- Reduces maintenance burden by 33% through build-time generation rather than manual file duplication
2. Architectural Validation
The architect has APPROVED this design (see .agents/architecture/2-variant-consolidation-review.md):
- ✅ Build-time generation is the appropriate pattern
- ✅
templates/directory structure follows logical separation - ✅ PowerShell aligns with existing build scripts
- ✅ Platform config files enable future extensibility without code changes
Key Technical Details:
- Platform differences verified:
- VS Code:
modelfield present,namefield absent,toolsas VS Code extensions - Copilot CLI:
namefield present,modelfield absent,toolsas shell-based commands - Only YAML frontmatter differs; 100% content overlap in body
- VS Code:
3. Critical QA Gaps
The QA agent raised HIGH-PRIORITY concerns (see .agents/qa/001-agent-consolidation-test-strategy-review.md) requiring implementation action:
| Gap | Priority | Status |
|---|---|---|
No Generate-Agents.Tests.ps1 test file specification |
High | PR includes tests BUT QA wants explicit case documentation |
| Byte-identical comparison methodology undefined | High | No specification for line-ending/encoding normalization |
| QA effort underestimated (30 min → 1.5 hours needed) | High | TASK-012 requires deeper validation |
| No regression tests for agent functionality | Medium | Validate YAML, required sections, handoff syntax |
Test Examples Recommended:
- YAML frontmatter validation
- Tool array validation
- Required section presence checks
- Handoff syntax verification per platform
4. Implementation Checklist from Task Breakdown
The PR includes detailed task breakdown (.agents/planning/tasks-agent-consolidation.md) with 21 concrete tasks across 2 phases:
Phase 1: 2-Variant Consolidation (8-10 hrs)
- TASK-001-004: Directory structure & platform configs ✓ (in PR)
- TASK-005-008: Build script skeleton & transformations ✓ (in PR)
- TASK-009-011: PoC migration (3 agents: analyst, implementer, orchestrator) ✓ (in PR)
- TASK-012: PoC validation - FLAGGED: needs rigorous byte-comparison
- TASK-013: Migrate remaining 15 agents ✓ (in PR)
- TASK-014-015: CI validation & CONTRIBUTING.md updates ✓ (in PR)
Phase 2: Diff-Linting CI (4-6 hrs)
- TASK-016-018: Drift detection script ✓ (in PR)
- TASK-019-021: CI workflow & documentation ✓ (in PR)
5. Review-Focused Focal Points
A. Generate-Agents.ps1 Robustness
- ✅ Path security validation (
Test-PathWithinRoot) prevents directory traversal - ✅ YAML/frontmatter parsing handles arrays, multi-line, quoting correctly
- ✅ Validate & WhatIf modes enable safe CI/local testing
- VERIFY: Encoding handling (UTF-8 BOM vs non-BOM), line-ending normalization (CRLF vs LF)
- VERIFY: PowerShell Core compatibility (script targets Windows-latest per
.github/workflows/validate-generated-agents.yml)
B. CI Workflow Validation
- ✅
.github/workflows/validate-generated-agents.ymlcorrectly runs on template/output changes - ✅ Exit codes: 0 (success), 1 (diff detected), 2 (error) match PowerShell conventions
- VERIFY: Error messages clearly identify manually-modified generated files
- VERIFY: Workflow permissions are minimal (read-only checkout, no secrets)
C. Drift Detection Script
- ✅
build/scripts/Detect-AgentDrift.ps1implements 3 output formats (Text, JSON, Markdown) - ✅ Normalization rules correctly exclude platform-specific syntax (MCP prefix, handoff syntax, Code block identifiers)
- ✅ Section extraction via regex handles nested headers (
##) - VERIFY: Jaccard similarity calculation (word-based, case-insensitive, 3+ char minimum) matches stated 80% default threshold
- VERIFY: Sections compared are semantically meaningful (Core Identity, Mission, Responsibilities, Constraints) not platform-specific
D. Test Coverage
- ✅
build/tests/Generate-Agents.Tests.ps1includes 50+ test cases - ✅
build/scripts/tests/Detect-AgentDrift.Tests.ps1validates drift logic - VERIFY: Integration tests create mock files and validate end-to-end generation
- VERIFY: Performance benchmarks (1000 iterations under 2 seconds) are achievable
6. Consistency Requirements
The repo enforces a "consistency contract" across platform variants. This PR preserves that contract:
Must be identical across platforms:
- Core Identity, Core Mission, Key Responsibilities
- Handoff Protocol logic (not syntax)
- Memory Protocol entity naming
- Output Directories (
.agents/) - Constraints / "DO NOT" rules
Allowed to differ (platform-specific):
- YAML frontmatter schema
- Tool invocation syntax
- Handoff command syntax (
#runSubagentvs/agent) - Tool references
7. Documentation & Contributor Workflow
Key docs added:
CONTRIBUTING.md: Detailed instructions for editing templates, regenerating, and committing both source + generated filestemplates/README.md: Explains shared template system.github/ISSUE_TEMPLATE/drift-alert.md: Structured drift detection alerts
Contributor flow enforced:
- Edit
templates/agents/*.shared.md(source of truth) - Run
pwsh build/Generate-Agents.ps1to regenerate - Commit both template AND generated files together
- CI rejects PRs where only generated files are edited
🔇 Additional comments (99)
src/copilot-cli/high-level-advisor.agent.md (1)
42-48: Memory Protocol delegation is concise and clear.The refactored Memory Protocol (lines 42–48) correctly delegates cross-session context to a memory agent without explicit cloudmcp-manager commands. Short, action-oriented phrasing matches the agent's direct communication style.
src/vs-code-agents/explainer.agent.md (1)
134-140: Memory Protocol refactor maintains clarity and delegation intent.Lines 134–140 properly delegate to memory agent with before/after checkpoints, consistent with similar refactors across agent docs.
templates/agents/pr-comment-responder.shared.md (5)
3-4: Use consistent YAML field naming:tools_vscodeandtools_copilot.Lines 3–4 use
tools_vscodeandtools_copilotas separate fields. Verify this naming convention is expected by the template generation system (build/Generate-Agents.ps1). If the system expects a singletoolsfield with platform overrides, these should be renamed or handled differently.Is the generation script configured to parse
tools_vscodeandtools_copilotas platform-specific tool arrays, or should this use a different structure (e.g., platform configs intemplates/platforms/*.yaml)?
34-58: Code block formatting is compliant.Bash code block at lines 34–58 has proper language identifier and spacing. No issues.
68-78: Pseudo-code block uses appropriatetextidentifier.Decision tree at lines 68–78 correctly uses
textidentifier for non-executable pseudo-code, with proper spacing.
244-244: Capitalize GitHub references in tables.Line 244 and 246 use
.github/workflows/*and.githooks/*, which are file paths. However, ensure consistency with PR-wide capitalization: references to the GitHub platform should be capitalized (e.g., "GitHub CLI" not "github CLI"). The file paths themselves (.github/,.githooks/) are correct as lowercase.Static analysis flagged "GitHub" capitalization at line 244. If the context is "platform," use "GitHub" (capital H). If the context is a file path,
.github/(lowercase) is correct.Also applies to: 246-246
320-342: Markdown table formatting complies with guidelines.Multiple tables (lines 226–237, 242–247, 305–311, 326–330, 346–354) are properly formatted with aligned pipes and blank line spacing before and after.
src/copilot-cli/explainer.agent.md (1)
134-140: Memory Protocol delegation is consistent with VS Code variant.Lines 134–140 match the vs-code-agents/explainer.agent.md pattern, properly delegating memory context to a memory agent.
src/copilot-cli/qa.agent.md (2)
152-158: Memory Protocol properly delegates cross-session context.Lines 152–158 follow the established delegation pattern, with retrieval and storage checkpoints clearly stated.
161-169: Phase 1 checklist is actionable and well-structured.The Phase 1 Pre-Implementation checklist (lines 161–169) provides clear steps for test strategy development, consistent with the broader planning workflow.
templates/agents/orchestrator.shared.md (5)
1-6: YAML frontmatter uses platform-specific tool arrays.Lines 1–5 define
tools_vscodeandtools_copilotas separate arrays. Confirm this naming is recognized by the generation script (build/Generate-Agents.ps1). If the generator expects a unified structure with platform configs overriding tools, this may need adjustment.Does the template generation system parse
tools_vscodeandtools_copilot, or should tools be defined once with platform-specific overrides intemplates/platforms/*.yaml?
32-41: Memory Protocol is clear and delegates appropriately.Lines 32–41 follow the established delegation pattern. Storage guidance emphasizes agent performance and routing decisions, which supports continuous improvement.
210-224: Agent Capability Matrix is comprehensive.Lines 210–224 map 10 agents with primary function, best-for use cases, and clear limitations. The matrix is well-structured and helps with routing decisions.
283-326: "Disagree and Commit" protocol is well-defined.Lines 283–326 establish a clear three-phase approach (Dissent Encouraged → Resolution → Alignment Required) for handling specialist disagreements. The commitment language template (lines 306–309) is concrete and prevents passive-aggressive execution.
380-632: Ideation Workflow is comprehensive and actionable.Lines 380–632 provide a complete 4-phase workflow (Research → Validation → Epic/PRD Creation → Implementation Plan Review) with detailed agent roles, output templates, and decision options (Proceed/Defer/Reject). The ASCII flowchart (lines 597–632) clearly visualizes the workflow.
src/claude/planner.md (4)
10-23: Identity and Mission are clear and properly scoped.Lines 10–23 refine the planner to a "High-Rigor Planning Assistant" focused on structure, not code. The constraint language (lines 33–38) is explicit: "No source code editing," "No test cases," "Only create planning artifacts."
119-291: Multi-Agent Impact Analysis Framework is comprehensive.Lines 119–291 introduce a detailed impact analysis process for multi-domain changes, with agent consultation protocol, specialist roles, and conflict-resolution guidance. The structure supports risk identification pre-implementation.
336-370: Output Location and Handoff Protocol are properly structured.Lines 336–370 define output location (
.agents/planning/), handoff targets (critic → architect → analyst → roadmap → implementer), and handoff protocol steps. The mandatory critic routing (line 360) enforces validation before implementation.
97-109: MCP syntax difference is intentional platform adaptation, not maintenance burden.Recent commit ddb76e0 (Dec 15) explicitly documents this as "Minor expected difference: Claude agents use mcp__ syntax for memory tools, while templates delegate to memory agent." The ideation research document (
.agents/analysis/ideation-agent-templating.md) identifies this as one of 11 documented variation points in the templating system—Claude Code has direct MCP tool access requiringmcp__cloudmcp-manager__memory-search_nodes, while VS Code/Copilot use the delegated path syntaxcloudmcp-manager/memory-search_nodes. This is a deliberate platform-specific adaptation, not inconsistent drift. Templates provide canonical base content; platform variants customize for their execution environment. No action needed.Likely an incorrect or invalid review comment.
src/vs-code-agents/pr-comment-responder.agent.md (4)
1-10: YAML frontmatter and Core Identity are appropriate for VS Code variant.Lines 1–10 define the PR Comment Responder with VS Code-specific tools and a clear identity focused on triage and delegation.
282-312: Memory Protocol uses delegated approach, consistent with template.Lines 282–312 delegate memory operations to a memory agent (retrieval and storage), following the pattern established in other agent files. The storage guidance emphasizes patterns and learnings relevant to PR review triage.
34-58: Bash code blocks have proper language identifiers and spacing.Lines 34–58, 158–170, and 182–193 contain bash scripts with correct language identifier and spacing before and after blocks per MD031/MD032.
Also applies to: 158-170, 182-193
220-247: Routing heuristics tables are clear and actionable.Lines 220–247 map comment patterns to workflow paths (Quick Fix, Standard, Strategic) and direct agents based on file domain. The routing is logical and reduces orchestrator overhead for simple fixes.
src/claude/explainer.md (1)
79-80: INVEST criteria validation is a strong addition.Requiring user stories to be Independent, Negotiable, Valuable, Estimable, Small, Testable ensures quality requirements. This catches bad specs before implementation starts.
src/claude/qa.md (2)
23-23: Excellent testing mindset."Passing tests are path to goal, not goal itself" cuts through test theater. If users hit bugs, tests failed their purpose regardless of green checkmarks.
268-280: Clear boundaries and output conventions.The Constraints section prevents scope creep (QA doesn't modify implementation). Output Location naming convention (
NNN-[feature]-test-strategy.md) enables consistent artifact discovery.src/claude/independent-thinker.md (2)
59-74: Clear behavioral guardrails.The DO/DON'T structure prevents common failure modes: going along to avoid conflict, guessing when uncertain, validating unsupported claims. This agent can actually challenge assumptions instead of rubber-stamping.
100-151: Structured templates for challenging assumptions.Both templates enforce evidence citation and uncertainty quantification. The Comparison Matrix format forces explicit tradeoff analysis instead of handwaving.
templates/agents/independent-thinker.shared.md (2)
1-5: Template frontmatter correctly structured.The
tools_vscodeandtools_copilotarrays enable platform-specific tool generation. VS Code includesms-vscode.vscode-websearchforcopilot/websearchwhile Copilot usesagenthandoff - matches platform config requirements.
44-47: Memory delegation aligns with 2-variant consolidation.Delegating to memory agent rather than direct cloudmcp-manager commands maintains platform independence. The shared template can generate both VS Code and Copilot outputs without platform-specific memory syntax.
src/vs-code-agents/high-level-advisor.agent.md (2)
82-84: "KILL - Stop Doing" prevents waste.Most priority frameworks only track what to do. Explicitly listing what to stop prevents sunk cost fallacy and context switching overhead.
42-47: Memory delegation matches template pattern.Simplified from direct cloudmcp-manager commands to delegation requests. Aligns with the 2-variant consolidation where memory operations are abstracted for platform independence.
templates/platforms/copilot-cli.yaml (1)
1-22: Platform config correctly defines Copilot CLI differences.The config captures the key differences:
/agenthandoff syntax vs#runSubagent,namefield vsmodelfield in frontmatter. This enables generating 99%+ identical content with only YAML and handoff syntax differences.src/vs-code-agents/devops.agent.md (2)
149-157: SHA pinning prevents supply chain attacks.Pinning actions to SHA (
actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11) instead of tags prevents tag manipulation attacks. The comment notation# v4maintains readability.
138-143: Memory delegation matches template pattern.Consistent with other agent files in this PR. DevOps context (pipeline configs, issue resolutions) stored via memory agent delegation rather than direct commands.
templates/agents/analyst.shared.md (3)
140-175: Feature Request Review template prevents scope creep.The template forces evidence gathering (GitHub issues, SO mentions, code samples) before accepting features. "Are lightweight alternatives available (docs, config)?" prevents feature bloat when documentation would suffice.
181-231: Ideation Research template assesses viability.Community Signal section (stars, downloads, issue ratios, last release) surfaces abandoned or low-quality packages before integration. Technical Fit Assessment catches version conflicts and framework incompatibilities early.
84-89: Memory delegation aligns with template system.Consistent with other shared templates. Delegation to memory agent abstracts platform-specific memory commands, enabling generation for both VS Code and Copilot CLI from single source.
src/copilot-cli/independent-thinker.agent.md (1)
104-135: Content review: Response Patterns and Handoff/Execution sections look correct.Memory Protocol delegation is consistent with broader PR direction (external tools context confirms delegated-memory model). Handoff options and execution mindset follow established patterns.
src/vs-code-agents/analyst.agent.md (2)
84-89: Memory Protocol section follows correct delegation model.Memory Protocol at lines 84-89 correctly delegates to memory agent for cross-session context. Format and spacing are correct per external tools context and broader PR pattern.
91-240: Analysis Types sections have correct structure and code block language identifiers.Analysis template blocks (Root Cause Analysis, Technical Research, Feature Request Review, Ideation Research) all use
markdownlanguage identifier correctly and are properly spaced.src/copilot-cli/analyst.agent.md (1)
84-89: Memory Protocol delegation model is consistent across platforms.Copilot CLI analyst correctly mirrors VS Code memory protocol delegation. Platform-specific tools are properly configured (shell/edit vs vscode tools).
src/vs-code-agents/orchestrator.agent.md (6)
32-46: Memory Protocol section spacing is correct.Lines 32-46 properly delegate memory context to memory agent with blank lines around guidance sections per MD022/MD031.
220-250: Agent Capability Matrix and Routing Algorithm sections look correct.Tables at lines 212-223 and following sections have correct spacing and structure. ATX headings are consistent.
390-407: Phase 1: Research & Discovery output location needs clarification.Line 403 references
.agents/analysis/ideation-[topic].mdbut uses template syntax. The research template below (lines 405-430) is correctly marked asmarkdowncode block with proper spacing.
443-486: Validation Document Template properly formatted.Lines 443-486 validation template is correctly marked as
markdownand properly spaced.
597-632: Ideation Workflow diagram uses ASCII art in text block.Lines 597-632 ASCII diagram is marked as
text- correct choice. Spacing and structure appropriate for ASCII diagram.
797-820: Output Format section code block is properly marked as markdown.Lines 799-820 correctly show output template marked as
markdownwith proper spacing.templates/agents/critic.shared.md (2)
60-65: Memory Protocol section correctly delegates context.Lines 60-65 properly follow delegated-memory model with appropriate guidance for pre-review retrieval and post-review storage.
231-268: Verdict Rules, Output Location, Anti-Patterns, and Execution Mindset sections are properly structured.Lines 231-268 show correct heading hierarchy, no missing blank lines, proper ATX headings, execution mindset follows established pattern.
templates/agents/planner.shared.md (3)
301-341: Example and conflict documentation sections properly formatted.Lines 301-340 show correct structure for multi-domain example and conflict documentation. Code blocks are properly marked and spaced.
31-37: Memory Protocol section correctly follows delegation model.Lines 31-37 properly delegate to memory agent at decision points and milestones, consistent with broader PR pattern.
359-386: Handoff Options, Handoff Protocol, and Execution Mindset sections properly structured.Lines 359-386 show correct table formatting for handoff options, clear protocol steps, and execution mindset that aligns with established patterns.
src/claude/memory.md (3)
10-10: Memory Protocol delegation language properly updated.Lines 10 and 22-29 correctly emphasize memory agent delegation for cross-session context and internal note maintenance. Language is clear and aligns with broader PR memory delegation pattern.
Also applies to: 22-29
31-92: Memory Tools Reference code blocks properly formatted.All code blocks in lines 31-92 (Search, Open, Create, Update, Link, Read All) are correctly marked as
textlanguage identifier. Spacing appears correct with blank lines between tool sections.
180-196: Handoff Options and Execution Mindset sections properly formatted.Lines 180-196 add Handoff Options table (routing to any agent when memory retrieved) and updated Execution Mindset with consistent formatting. Quote style thinking statements match established patterns.
src/copilot-cli/implementer.agent.md (5)
143-151: Software Hierarchy example C# code block properly formatted.Lines 143-151 correctly show C# code marked as
csharplanguage identifier with proper spacing and realistic example following Programming by Intention pattern.
204-210: Memory Protocol delegation properly updated.Lines 204-210 correctly delegate memory context retrieval and storage to memory agent before/after implementation, consistent with broader PR pattern.
212-231: Code Requirements sections (Performance, Testing, Style) are well-structured.Lines 212-231 introduce clear code requirements with actionable guidance:
- Performance: ArrayPool, SIMD, Vector256 optimization
- Testing: xUnit, Moq, complexity limits
- Style: .NET Runtime EditorConfig, cyclomatic complexity under 10
240-265: Qwiq-Specific Patterns properly formatted with C# examples.Lines 240-265 show repository-specific patterns:
- Factory Pattern (required) - marked as
csharp- Null Validation - marked as
csharp- Test Pattern (ContextSpecification) - marked as
csharpAll properly formatted and aligned with project conventions.
267-347: Implementation Process, Commit Format, Handoff, and Checklist sections properly structured.Lines 267-347 show:
- Phase 1-3 (Preparation, Execution, Validation) - properly sequenced
- Commit message format with conventional commits - clear template
- Handoff options consistent with agent ecosystem
- Required checklist comprehensive and actionable
src/vs-code-agents/roadmap.agent.md (1)
1-254: Minimal maintenance edits; no issues identified. Changes normalize symbols (× to x) and refactor Memory Protocol for clarity without structural violations.src/copilot-cli/roadmap.agent.md (1)
1-254: Minimal maintenance edits; consistent with VS Code version. No issues identified.src/claude/analyst.md (1)
271-340: Analysis Document Format and Handoff updates well-structured. Blank lines correct, code fence properly formed. No issues identified.src/vs-code-agents/qa.agent.md (1)
1-330: Memory Protocol delegation and QA governance updates well-structured. Code fences properly formed, blank lines correct, language identifiers present. No issues identified.src/vs-code-agents/critic.agent.md (1)
1-273: Comprehensive critic governance framework well-structured. Review Checklist, Disagreement Detection, Critique Document Format, and Verdict Rules sections all properly formatted. Code fences correct, blank lines in place, no issues identified.templates/agents/architect.shared.md (7)
1-6: YAML frontmatter uses platform-specific tool arrays correctly.The
tools_vscodeandtools_copilotarrays follow the 2-variant consolidation pattern. Tools are platform-specific (e.g., 'vscode' in tools_vscode, 'agent' in tools_copilot). This aligns with the architecture documented in external tools context.
25-37: Impact Analysis Mode checklist is well-structured.The checklist template (lines 31-37) provides clear architecture impact verification steps. However, the code block uses generic markdown syntax—consider whether this should be
textfor pseudo-code/template content instead ofmarkdown.The code block at lines 31-37 is marked as
markdownbecause it contains markdown syntax (checkboxes). This is appropriate for a markdown template. No change needed.
43-129: Impact Analysis Deliverable template is comprehensive but dense.The template at lines 43-129 provides detailed structure for architecture impact analysis. This is good governance. However, verify that teams actually use all sections (e.g., "Domain Model Alignment" at lines 87-94, "Abstraction Consistency" at lines 96-103) or if these should be optional/noted as "as needed."
This template should be validated against actual use cases. The external tools context mentions "Byte-identical comparison methodology undefined (HIGH)" — confirm that this template's sections support reproducible impact analysis across platform variants.
31-37: Add blank line before opening code fence.Code blocks require blank lines before and after per MD031. Line 30 needs a blank line before the opening fence.
### Analyze Architecture Impact -```markdown +```markdown - [ ] Verify alignment with existing ADRsWait, examining more carefully: line 30 appears to be blank already based on the structure. Let me re-examine the line numbers and formatting in the file.
Actually, looking at the annotated code, line 29 is the heading "### Analyze Architecture Impact", line 30 is blank, line 31 starts with "```markdown". This appears correct per MD031.
39-42: Add blank line before "Impact Analysis Deliverable" section.Blank lines are required around headings (MD022). Line 40 is a heading and needs blank lines before and after.
Actually, re-reading the file: line 39 is blank, line 40 has "### Impact Analysis Deliverable", line 41 is blank, line 42 starts the next code block. This appears correct per MD022.
131-138: Blank lines missing around list items under "Architectural Principles".Lines 133-137 contain a bulleted list. Per MD032, blank lines are required before and after lists. Line 131 needs a blank line before the first list item.
Looking at the structure: line 131 is "## Architectural Principles", line 132 is blank, line 133 starts the list. This is correct per MD032.
204-246: Handoff Protocol table and Execution Mindset lack spacing per MD032.The handoff table at lines 229-236 should have blank lines before and after per MD032. Similarly, content before line 204 "## Memory protocol" and after line 246 "## Execution Mindset" needs verification.
Examining more carefully: the structure appears to follow the guidelines. Let me check if there are actual issues versus false positives.
src/copilot-cli/critic.agent.md (3)
24-51: Review Checklist structure looks good.Task lists are appropriate for template documentation. Checklist categories (Completeness, Feasibility, Alignment, Testability) provide clear review criteria.
60-66: Memory Protocol uses delegated model correctly.Copilot CLI variant delegates to memory agent rather than using direct MCP tool calls. This matches the platform-specific handoff pattern.
231-259: Verdict Rules and Anti-Patterns provide clear guidance.Criteria for APPROVED vs NEEDS REVISION are actionable. Anti-patterns list catches common planning failures.
src/claude/critic.md (2)
159-172: Memory Protocol uses Claude-specific MCP tool syntax.Explicit
mcp__cloudmcp-manager__memory-search_nodesandmcp__cloudmcp-manager__memory-add_observationscommands are appropriate for Claude Code Tools integration.
223-231: Execution Mindset provides clear behavioral guidance.Think/Act/Challenge/Recommend pattern gives concrete direction for agent behavior.
src/claude/architect.md (3)
140-176: ADR Format template is comprehensive.Includes Status, Context, Decision, Consequences (Positive/Negative/Neutral), Alternatives Considered with pros/cons/rejection reason, and References. Standard ADR structure.
178-205: Architecture Review Process aligns with Key Responsibilities.Three-phase review (pre-planning, plan/analysis, post-implementation) matches responsibilities defined at lines 28-31. Checklists are actionable.
244-263: Handoff Options expanded with roadmap and critic targets.New targets (roadmap for strategic alignment, critic for independent review) add useful routing options. Protocol steps ensure persistence before handoff.
src/copilot-cli/architect.agent.md (2)
146-151: Memory Protocol uses delegated model correctly for Copilot CLI.Delegates to memory agent rather than using direct MCP tool commands. This is the expected platform difference from the Claude variant.
1-255: Content consistency verified with Claude variant.Core content (Architectural Principles, ADR Format, Review Process, Output Location, Handoff Protocol) matches the Claude version. Platform differences are limited to frontmatter schema and memory delegation syntax as designed.
src/claude/high-level-advisor.md (3)
67-84: Behavioral Principles are direct and actionable."I WILL" and "I WON'T" lists provide clear boundaries. Direct verdicts over hedging, calling out avoidance, explicit prioritization criteria.
99-155: Strategic Frameworks provide practical decision tools.Ruthless Triage, Priority Stack (with explicit KILL category), and Continue/Pivot/Cut frameworks give structured approaches for strategic decisions. Warning Signs enables revisiting decisions when conditions change.
181-188: Handoff Options table is appropriate for strategic advisor role.Targets cover execution (implementer), planning (planner), research (analyst), and validation (independent-thinker). Independent-thinker for verdict validation is a good check.
build/Generate-Agents.ps1 (5)
105-241: Simple YAML parsing is adequate for this use case.Custom parser avoids external module dependency. Handles basic key-value, arrays, booleans, and nested sections. Limitations (no multi-line values, complex structures) are acceptable for agent frontmatter which is simple by design.
243-312: Frontmatter transformation handles platform differences correctly.Logic for platform-specific tools selection (tools_vscode, tools_copilot) with fallback to generic tools field. Name and model fields controlled by platform config. Placeholder values (
{{PLATFORM_*}}) correctly skipped.
349-379: Handoff syntax transformation handles both directions.Converts between
/agent(Copilot CLI) and#runSubagent(VS Code) syntax correctly. Handles both specific agent names and placeholder patterns.
565-582: Validation mode exit codes and messaging are correct.Exit 1 on differences, exit 0 on success. Clear actionable message: "To fix: Run 'pwsh build/Generate-Agents.ps1' and commit the changes".
550-555: No action needed. The script runs under PowerShell Core (pwsh) in CI, which handles-Encoding UTF8without BOM by default. Version inconsistency is not a concern here.Likely an incorrect or invalid review comment.
src/claude/skillbook.md (1)
184-223: Integration structure clarifies skillbook governance.The new Integration with Other Agents section effectively defines inputs from Retrospective (atomicity scores, operations), validation steps (deduplication, threshold checks), and citation patterns for consuming agents. Handoff Protocol table cleanly routes dependencies. Structure supports the PR's memory-delegation model.
src/claude/retrospective.md (1)
201-232: Memory Protocol operationalization provides concrete retrospective workflows.The Memory Protocol section (lines 201-222) translates vague "store learnings" into explicit entity types, entity naming conventions, and actual mcp commands. This allows retrospective analysis to become machine-actionable without ambiguity. Handoff Protocol table (lines 224-232) correctly routes skills to implementer, process insights to planner, and learnings to orchestrator for next-task application.
src/vs-code-agents/independent-thinker.agent.md (1)
51-102: Analysis templates enforce structured evidence-based evaluation.The Assumption Challenge Template and Alternative Analysis Format provide reusable frameworks that prevent vague pushback. By requiring Evidence For/Against, Alternative Interpretations, and Uncertainty Level, these templates align the Independent Thinker's contrarian role with the broader PR's emphasis on atomic, evidence-backed reasoning (consistent with Skillbook and Retrospective atomicity scoring).
src/claude/task-generator.md (1)
26-70: Decomposition process aligns Task-Generator with Planner and Retrospective methodologies.The Scope Distinction table (lines 26-33) explicitly clarifies that Planner owns milestones/phases while Task-Generator owns atomic tasks—eliminating ambiguity. The 3-phase Decomposition Process mirrors the Retrospective's structured analysis and Planner's phased planning, creating a consistent methodology loop: Plan → Decompose → Execute → Retrospect.
src/vs-code-agents/planner.agent.md (2)
123-343: Multi-agent impact analysis framework operationalizes risk-aware planning.Lines 123-343 introduce a structured consultation protocol that prevents blindsided implementers and architects. The framework includes specialist roles, prompt templates, document formats, and explicit conflict-resolution procedure. By requiring pre-implementation impact analysis from implementer, architect, security, devops, and qa agents, the Planner translates high-level epics into risk-assessed work packages. Aligns with external tools context: architect approved this design.
179-193: VS Code platform-specific handoff syntax is correct.Line 179 uses
#runSubagent with subagentType={agent_name}for VS Code agent invocation. This differs from Copilot CLI syntax (/agent) but matches the platform-specific differences documented in external context (tool invocation syntax and handoff command syntax vary by platform; content is 99%+ identical).src/copilot-cli/planner.agent.md (2)
1-5: Copilot CLI frontmatter correctly differs from VS Code variant.Frontmatter (lines 1–5) includes
name: plannerand nomodelfield (vs VS Code hasmodelfield and nonamefield). Line 4toolslist uses'agent'for subagent invocation (vs VS Code uses vscode extensions). Frontmatter differences match external context specification: platform-specific metadata for generated agents.
179-193: Copilot CLI handoff syntax correctly differs from VS Code.Line 179 uses
/agent [agent_name]instead of VS Code's#runSubagent with subagentType={agent_name}. This is the expected platform-specific difference—handoff command syntax varies by platform while impact analysis framework content remains identical. File 7 is the Copilot CLI variant of File 6 (VS Code).
Add ability to exclude specific files from agent file copying, preventing instruction files (CLAUDE.md, copilot-instructions.md) from being copied as agent files when they match the FilePattern (e.g., *.md for Claude). Changes: - Add ExcludeFiles parameter to Get-AgentFiles in Install-Common.psm1 - Update install.ps1 to pass InstructionsFile to exclusion list - Add 4 Pester tests for ExcludeFiles behavior 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Create instruction files that explain how to USE the installed agent system, distinct from the repo-level docs for contributors. These files are appended to user's existing CLAUDE.md/copilot-instructions.md during installation. Files added: - src/claude/CLAUDE.md - Claude Code usage instructions - src/vs-code-agents/copilot-instructions.md - VS Code usage instructions - src/copilot-cli/copilot-instructions.md - Copilot CLI usage instructions Each file includes: - Agent catalog with purpose and when to use - Platform-specific invocation syntax - Standard workflows - Memory protocol - Routing heuristics 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Add src/{env}/ instruction files to ignores list. These files cannot start
with H1 (MD041) because they are appended to existing user files during
installation. Inline suppression directives are avoided because they would
propagate to user files.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Document the planning gap where user-facing instruction files were missed in the Agent Consolidation epic. Includes root cause analysis, remediation actions, and skill extractions for future planning improvements. Related: GitHub issue #45 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Analysis comparing Claude agents against shared templates to identify semantic drift and content differences for future alignment. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Analysis and planning artifacts for PR43 CodeRabbit review issues: - Gap analysis identifying agent capability gaps - Remediation plan for addressing identified issues - Root cause analysis of CodeRabbit noise patterns 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Two retrospectives analyzing workflow and process issues: - Accountability analysis for agent decision-making gaps - Drift detection disaster post-mortem with lessons learned 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
There was a problem hiding this comment.
Actionable comments posted: 4
🧹 Nitpick comments (6)
.agents/planning/pr43-remediation-plan.md (1)
530-545: Capitalize GitHub in workflow reference.Line 529 references
.github/workflows/— ensure GitHub is properly capitalized in documentation headers and references as "GitHub" (the product name)..agents/analysis/pr43-agent-capability-gap-analysis.md (1)
727-727: Capitalize "Markdown" as proper noun.Line 727: "Add CI validation for absolute paths in markdown" should be "in Markdown".
- 5. Consider tooling for cross-document consistency checking + 5. Consider tooling for cross-document consistency checking.agents/retrospective/pr43-coderabbit-root-cause-analysis.md (2)
222-222: Remove redundant phrasing.Line 222: "specific details are lost in favor of summaries" is redundant. Revise to: "Details are lost in favor of summaries" or "Information is lost in favor of vague summaries."
243-243: Capitalize "Markdown" as proper noun.Line 243: "No CI check for absolute paths in markdown" should be "in Markdown".
scripts/lib/Install-Common.psm1 (1)
193-200: Consider clarifying the warning message when exclusions are active.If
ExcludeFilesfilters out all matching files, the warning "No agent files found matching..." doesn't mention that exclusions were applied. Users might think no files exist when they were actually excluded.Optional improvement:
# Exclude specified files (e.g., instruction files that match the pattern) if ($ExcludeFiles.Count -gt 0) { $Files = $Files | Where-Object { $_.Name -notin $ExcludeFiles } } if ($Files.Count -eq 0) { - Write-Warning "No agent files found matching '$FilePattern' in: $SourceDir" + $Message = "No agent files found matching '$FilePattern' in: $SourceDir" + if ($ExcludeFiles.Count -gt 0) { + $Message += " (after excluding: $($ExcludeFiles -join ', '))" + } + Write-Warning $Message }scripts/install.ps1 (1)
297-309: Minor: Directory created before checking if agent files exist.Line 297 creates the destination directory, but line 308 exits early if no agent files remain after filtering. This leaves an empty directory if all files are excluded.
Not critical (git ignores empty dirs), but consider moving
Initialize-Destinationafter the file count check if you want cleaner behavior.
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (14)
.agents/analysis/drift-analysis-claude-vs-templates.md(1 hunks).agents/analysis/pr43-agent-capability-gap-analysis.md(1 hunks).agents/planning/pr43-remediation-plan.md(1 hunks).agents/retrospective/2025-12-15-accountability-analysis.md(1 hunks).agents/retrospective/2025-12-15-drift-detection-disaster.md(1 hunks).agents/retrospective/2025-12-15-instruction-files-gap.md(1 hunks).agents/retrospective/pr43-coderabbit-root-cause-analysis.md(1 hunks).markdownlint-cli2.yaml(1 hunks)scripts/install.ps1(1 hunks)scripts/lib/Install-Common.psm1(2 hunks)scripts/tests/Install-Common.Tests.ps1(1 hunks)src/claude/CLAUDE.md(1 hunks)src/copilot-cli/copilot-instructions.md(1 hunks)src/vs-code-agents/copilot-instructions.md(1 hunks)
✅ Files skipped from review due to trivial changes (1)
- scripts/tests/Install-Common.Tests.ps1
🧰 Additional context used
📓 Path-based instructions (16)
**/.agents/**/*.md
📄 CodeRabbit inference engine (.agents/governance/interview-response-template.md)
Primary deliverables from agents should be saved to
.agents/[category]/[pattern].mdwith naming convention[PREFIX]-NNN-[description].md
Files:
.agents/retrospective/2025-12-15-accountability-analysis.md.agents/analysis/pr43-agent-capability-gap-analysis.md.agents/retrospective/pr43-coderabbit-root-cause-analysis.md.agents/planning/pr43-remediation-plan.md.agents/analysis/drift-analysis-claude-vs-templates.md.agents/retrospective/2025-12-15-instruction-files-gap.md.agents/retrospective/2025-12-15-drift-detection-disaster.md
.agents/**
⚙️ CodeRabbit configuration file
Agent configuration files. Only flag security issues or broken cross-references. Ignore style, formatting, and structure.
Files:
.agents/retrospective/2025-12-15-accountability-analysis.md.agents/analysis/pr43-agent-capability-gap-analysis.md.agents/retrospective/pr43-coderabbit-root-cause-analysis.md.agents/planning/pr43-remediation-plan.md.agents/analysis/drift-analysis-claude-vs-templates.md.agents/retrospective/2025-12-15-instruction-files-gap.md.agents/retrospective/2025-12-15-drift-detection-disaster.md
.markdownlint-cli2.yaml
📄 CodeRabbit inference engine (.agents/architecture/ADR-001-markdown-linting.md)
Create
.markdownlint-cli2.yamlconfiguration file in the repository root with disabled rules for MD013 (line-length) and MD060 (table-column-style), while enforcing MD040 (code language identifiers) and other structural rules
.markdownlint-cli2.yaml: Document known false positives in linting config comments with file locations
Create linting configuration file (.markdownlint-cli2.yaml) first to establish baseline before any fixes
Exclude generated artifact directories (node_modules, .agents) from linting using globs and ignores in configuration
Disable non-critical style rules (MD013 for line length, MD060 for table spacing, MD029 for sequential numbering) in configuration to reduce false positives while maintaining critical standards
Never disable linting rules without documenting the reason with inline comments in configuration
Files:
.markdownlint-cli2.yaml
**/.markdownlint*
📄 CodeRabbit inference engine (.agents/skills/documentation.md)
Never disable or modify linting rules without documenting the rationale with inline comments explaining the business reason
Files:
.markdownlint-cli2.yaml
**/*.md
📄 CodeRabbit inference engine (.agents/architecture/ADR-001-markdown-linting.md)
**/*.md: Add language identifiers to all fenced code blocks (MD040). Use appropriate language identifiers:csharpfor C#,powershellfor PowerShell,bashfor shell,jsonfor JSON,yamlfor YAML,markdownfor Markdown,textfor plain text or generic/pseudo code
Wrap generic types in backticks to escape angle brackets (e.g.,ArrayPool<T>instead of ArrayPool) to comply with MD033 inline HTML restrictions and ensure proper rendering
Add blank lines around code blocks to comply with MD031 markdown linting requirements
Add blank lines around lists to comply with MD032 markdown linting requirements
Add blank lines around headings to comply with MD022 markdown linting requirements
Use ATX-style headings (# Heading) consistently across all markdown documents (MD003)
Use fenced code block style (triple backticks) consistently, with backtick delimiters rather than tildes (MD046, MD048)
Allow only specific HTML elements in markdown:<br>,<kbd>,<sup>,<sub>. Escape or avoid other inline HTML elements to comply with MD033 restrictions
**/*.md: Use skill ID convention format: Skill-[Category]-[Number] for skills and Anti-[Category]-[Number] for anti-patterns
Each skill must follow the required structure: Statement (max 15 words), Context, Atomicity score (0-100%), Evidence, Impact, and Tags
Score skills for atomicity using the scale: 90-100% (Excellent - ready for storage), 70-89% (Good - may need refinement), 50-69% (Acceptable - consider splitting), <50% (Needs Work - too vague)
Tag each skill with one of: helpful (contributed to success), harmful (caused failure), or neutral (no measurable impact)
When citing skills during implementation, use the format: Applying [Skill-ID], Strategy [description], Expected [outcome], Result [actual outcome], Skill Validated [yes/no]
Skills should be atomic learning statements of maximum 15 words
Skills must include measurable outcomes in the Impact field
**/*.md: Always specify language identifiers on fenc...
Files:
src/copilot-cli/copilot-instructions.mdsrc/claude/CLAUDE.mdsrc/vs-code-agents/copilot-instructions.md
⚙️ CodeRabbit configuration file
**/*.md: Writing Quality: - Grade 9 reading level - Active voice, direct address - Short sentences (under 15 words ideal) - No fluff, filler, or marketing language - Replace adjectives with data where possible - Every sentence must pass the "so what" test
Flag: - Passive voice - Vague language (nearly, some, almost, very) - Jargon without definitions - Broken links and outdated procedures - Inconsistency with code changes in same PR - Missing context for new features or APIs
Ignore (handled by .markdownlint-cli2.yaml): - Markdown formatting and style - Heading level choices - Link formatting variations - Minor punctuation preferences
Files:
src/copilot-cli/copilot-instructions.mdsrc/claude/CLAUDE.mdsrc/vs-code-agents/copilot-instructions.md
scripts/lib/Install-Common.psm1
📄 CodeRabbit inference engine (.agents/planning/cva-install-scripts.md)
scripts/lib/Install-Common.psm1: Extract all duplicated installation logic into a shared PowerShell module (Install-Common.psm1) with functions including Get-InstallConfig, Test-SourceDirectory, Initialize-Destination, Get-AgentFiles, Copy-AgentFile, Test-GitRepository, Initialize-AgentsDirectories, Install-InstructionsFile, Write-InstallHeader, and Write-InstallComplete
Use markdown-compatible HTML comment markers (<!-- BEGIN: ai-agents installer -->and<!-- END: ai-agents installer -->) to create upgradeable content blocks in instructions files, replacing existing blocks on updates while preserving user content outside the markers
Include validation to verify source directories exist before installation, and provide clear error messages indicating the expected source path if validation fails
For repository-scoped installations, validate that the target path is a git repository before proceeding, and prompt the user to confirm if git repository validation fails
Display interactive prompts when overwriting existing agent files unless the-Forceswitch is specified, asking for confirmation with clear feedback on the action taken (Installed, Updated, or Skipped)
Files:
scripts/lib/Install-Common.psm1
**/*.psm1
📄 CodeRabbit inference engine (.agents/retrospective/2025-12-15-cva-install-scripts.md)
Group PowerShell functions by concern using #region blocks and use explicit Export-ModuleMember at module end
Files:
scripts/lib/Install-Common.psm1
**/*.{ps1,psm1,psd1}
📄 CodeRabbit inference engine (.agents/retrospective/2025-12-15-cva-install-scripts.md)
Extract environment variations to .psd1 data files, keeping logic generic rather than hardcoding configuration in scripts
Files:
scripts/lib/Install-Common.psm1scripts/install.ps1
scripts/**/*.{ps1,psm1,psd1}
📄 CodeRabbit inference engine (.agents/retrospective/2025-12-15-documentation-gap.md)
Create module-specific README documentation for PowerShell scripts and modules, including parameter documentation and usage examples
Files:
scripts/lib/Install-Common.psm1scripts/install.ps1
**/CLAUDE.md
📄 CodeRabbit inference engine (.agents/governance/agent-consolidation-process.md)
Update the agent catalog (CLAUDE.md) to remove deprecated agents and reflect consolidated agent capabilities
Files:
src/claude/CLAUDE.md
scripts/**/*.ps1
📄 CodeRabbit inference engine (.agents/security/infrastructure-file-patterns.md)
PowerShell scripts in scripts directory (
scripts/**/*.ps1) should trigger security agent review due to high security implicationsRun Pester tests using the reusable test runner at
./build/scripts/Invoke-PesterTests.ps1before committing changes toscripts/
Files:
scripts/install.ps1
scripts/install.ps1
📄 CodeRabbit inference engine (.agents/planning/cva-install-scripts.md)
scripts/install.ps1: Create a unified PowerShell install entry point (install.ps1) that accepts parameters-Environment [Claude|Copilot|VSCode],-Scope [Global|Local], and-RepoPathto support both local and remote installation viaiexexecution
Support remote PowerShell execution viaiex ((New-Object System.Net.WebClient).DownloadString('https://raw.githubusercontent.com/rjmurillo/ai-agents/main/scripts/install.ps1'))by detecting remote execution context, downloading dependencies to temp directory, and providing interactive prompts when parameters are not specified
Implement parameter validation in install scripts to ensure-Environmentparameter accepts only: Claude, Copilot, VSCode;-Scopeis either Global or Local (derived from parameter set); and-RepoPathis provided when not using Global scope
Files:
scripts/install.ps1
**/install.ps1
📄 CodeRabbit inference engine (.agents/retrospective/2025-12-15-cva-install-scripts.md)
Detect remote execution context via empty $PSScriptRoot and download dependencies to $env:TEMP for Invoke-Expression scenarios
Files:
scripts/install.ps1
**/*install*.ps1
📄 CodeRabbit inference engine (.agents/retrospective/2025-12-15-cva-install-scripts.md)
Maintain backward compatibility with legacy scripts by refactoring them as thin wrappers (28-37 lines) that delegate to a unified implementation
Files:
scripts/install.ps1
**/*.{ps1,psd1}?(@(test|spec))
📄 CodeRabbit inference engine (.agents/retrospective/2025-12-15-install-scripts-session.md)
Use BeforeAll blocks for all variable initialization in Pester 5.x tests; avoid variable assignments outside BeforeAll during Discovery phase
Files:
scripts/install.ps1
**/{install,setup}*.ps1
📄 CodeRabbit inference engine (.agents/retrospective/2025-12-15-install-scripts-session.md)
**/{install,setup}*.ps1: Detect remote bootstrap context via empty $PSScriptRoot when scripts are invoked via iex (remote execution)
Use thin wrapper pattern for legacy scripts to maintain backward compatibility while consolidating core logic into shared modules
Files:
scripts/install.ps1
🪛 LanguageTool
.agents/analysis/pr43-agent-capability-gap-analysis.md
[uncategorized] ~727-~727: Did you mean the formatting language “Markdown” (= proper noun)?
Context: ...Add CI validation for absolute paths in markdown 5. Consider tooling for cross-document ...
(MARKDOWN_NNP)
.agents/retrospective/pr43-coderabbit-root-cause-analysis.md
[style] ~222-~222: This phrase is redundant. Consider writing “details”.
Context: ...ces (own analysis, specialist reviews), specific details are lost in favor of summaries. **Affe...
(SPECIFIC_DETAILS)
[uncategorized] ~243-~243: Did you mean the formatting language “Markdown” (= proper noun)?
Context: ...ion - No CI check for absolute paths in markdown Prevention Required: Path normaliz...
(MARKDOWN_NNP)
src/copilot-cli/copilot-instructions.md
[uncategorized] ~125-~125: The official name of this software platform is spelled with a capital “H”.
Context: ...poPath "." ``` This installs agents to .github/agents/ in your repository.
(GITHUB)
.agents/planning/pr43-remediation-plan.md
[uncategorized] ~943-~943: The official name of this software platform is spelled with a capital “H”.
Context: ...1| P0-4 | Absolute path detection | |.github/workflows/validate-paths.yml` | P0-4 | ...
(GITHUB)
.agents/analysis/drift-analysis-claude-vs-templates.md
[grammar] ~5-~5: Use a hyphen to join words.
Context: ...rce-of-truth agents and template/VS Code generated files ## Executive Summary T...
(QB_NEW_EN_HYPHEN)
🔍 Remote MCP DeepWiki
Based on my research using DeepWiki and the comprehensive context you've provided, here's a focused summary of key review findings:
Additional Context for PR #43 Review,
1. Architecture & System Overview
The PR implements a multi-platform agent templating system for a 17-agent software development framework supporting:
- Claude Code CLI (unique tools: Task, Read, Write, Edit, Bash, cloudmcp-manager)
- VS Code / GitHub Copilot (invocation:
#runSubagent, tools: vscode, execute, cloudmcp-manager) - GitHub Copilot CLI (invocation:
/agent, tools: shell, cloudmcp-manager)
Key architectural principle: ~99% semantic equivalence across platforms, with only frontmatter, tool syntax, and invocation syntax differing.
2. Consistency Contract Enforced in PR
Elements that MUST remain identical across all platform variants:
- ✅ Core Identity & Mission
- ✅ Key Responsibilities
- ✅ Handoff Protocol (logic, not syntax)
- ✅ Memory Protocol (entity naming, storage operations)
- ✅ Output Directories (
.agents/structure) - ✅ Constraints & "DO NOT" rules
Elements allowed to differ (handled by templates/platforms/ configs):
- YAML frontmatter schema (VS Code:
modelfield; Copilot CLI:namefield) - Tool references (VS Code:
vscode,github/*; Copilot CLI:shell,github/*) - Handoff syntax (
#runSubagentvs/agent)
3. Critical Build System Components
| Component | Purpose | Review Focus |
|---|---|---|
Generate-Agents.ps1 |
Transforms shared .shared.md → platform-specific .agent.md files |
Verify: YAML normalization (line endings, encoding), path validation prevents traversal |
templates/platforms/{vscode,copilot-cli}.yaml |
Platform config (frontmatter schema, tool syntax, memory prefix) | Verify: Configs match actual platform requirements |
templates/agents/*.shared.md |
Canonical source (18 agents) | Verify: All semantic sections present, no platform-specific syntax leakage |
Detect-AgentDrift.ps1 |
Weekly CI check for semantic drift between Claude and generated agents | Verify: Normalization rules correctly filter platform-specific differences |
.github/workflows/validate-generated-agents.yml |
Rejects PRs modifying generated files directly (enforces template-first) | Verify: Clear error messaging when drift detected |
4. QA Red Flags from Review Artifacts
The QA agent flagged HIGH-PRIORITY items requiring validation:
- Test Methodology: No byte-identical comparison specification for line-ending/encoding normalization
- Regression Testing Gap: No tests validating agent YAML schema, required sections, handoff syntax roundtrips
- Effort Underestimation: PoC validation initially estimated at 30 min, QA identified 1.5 hours needed
PR contains test implementations (.Tests.ps1 files) but reviewers should verify:
- YAML frontmatter parsed correctly (arrays, multiline, quoting)
- Handoff syntax conversions are reversible (
#runSubagent↔/agent) - Memory prefix replacements (
cloudmcp-manager/applied uniformly) - Generated output is byte-identical to expected (with normalization for CRLF)
5. Drift Detection Strategy
The PR includes Detect-AgentDrift.ps1 (weekly CI) that:
- Compares Claude agents (source of truth) vs. generated VS Code agents
- Normalizes platform differences (MCP syntax, handoff syntax, code block markers)
- Measures section-level similarity (Jaccard-based: default 80% threshold)
- Reports semantic drift via GitHub Issue template (
.github/ISSUE_TEMPLATE/drift-alert.md)
Reviewers should verify:
- Sections compared are semantically meaningful (Core Identity, Mission, Responsibilities, Constraints)
- Normalization rules don't accidentally mask real drift
- Similarity threshold (80%) is appropriate for this codebase
6. Contributor Workflow Enforcement
The PR enforces a "template-first" workflow:
1. Edit templates/agents/*.shared.md (source of truth)
2. Run: pwsh build/Generate-Agents.ps1
3. Commit both template + generated files together
4. CI rejects PRs modifying only generated files
Documentation added:
CONTRIBUTING.md- Step-by-step contributor guidetemplates/README.md- Explains shared template system- Platform-specific instruction files (
copilot-instructions.md) for end-users
🔇 Additional comments (13)
src/claude/CLAUDE.md (1)
1-127: Content is accurate and well-aligned with system architecture.The agent catalog, workflows, memory protocol, and routing heuristics are all consistent with the multi-agent system design. Descriptions are clear and actionable. Markdown linting fixes are straightforward (language identifiers and spacing). After those fixes, this is ready.
src/vs-code-agents/copilot-instructions.md (1)
1-115: ✓ Well-structured agent system documentation.The multi-agent workflow, routing heuristics, and handoff protocol are clearly defined. Table-based layout makes agent roles and responsibilities scannable.
.agents/planning/pr43-remediation-plan.md (1)
1-950: ✓ Comprehensive remediation plan with clear priorities and actionable steps.Four-workstream structure (Agent Updates, CI/Tooling, Documentation, Process) is logical. P0-P3 prioritization is clear. Each remediation item includes acceptance criteria, effort estimates, and dependencies. Skill extraction follows proper structure (statement, context, evidence, atomicity).
.agents/analysis/pr43-agent-capability-gap-analysis.md (1)
1-730: ✓ Detailed gap analysis with actionable remediation per agent.Each of 9 agents has: current capability documented, missing capability identified, specific text provided, and gap severity rated. P0-P3 prioritization aligns with remediation plan. Prevention recommendations are concrete (e.g., escalation template with mandatory fields).
.agents/retrospective/2025-12-15-instruction-files-gap.md (1)
1-160: ✓ Clear retrospective identifying process improvement gap.The gap (user-facing vs contributor-focused instruction files) is well-articulated. Root cause is documented (planning scope too narrow). Lessons learned section (lines 74-95) identifies concrete process improvements needed: end-to-end installation testing, user journey mapping, configuration audits, and audience-aware documentation.
.agents/retrospective/2025-12-15-accountability-analysis.md (1)
1-305: ✓ Direct accountability analysis grounded in evidence.Document presents clear findings: 2.4-12.8% similarity scores showed catastrophic divergence, yet 2-variant approach was approved. Identifies specific agents' failures (analyst described without prescribing action, PRD written to justify predetermined conclusion, critic validated flawed plan). Root causes are systemic: groupthink, description-only analysis, orchestrator reclassification of QA concerns.
.agents/retrospective/2025-12-15-drift-detection-disaster.md (1)
1-420: ✓ Rigorous retrospective framework with clear root cause.Five-phase structure (Data Gathering, Insights, Diagnosis, Decisions, Extracted Learnings) systematically dissects failure: modified Claude agents (source of truth) to match templates (derived), inverting project direction. Root cause identified in five-whys analysis (line 126): failed to read PRD before acting on ambiguous user request.
Three skills proposed with proper atomicity scores (90-95%) and evidence. ROTI assessment (2/4) indicates learning extraction justified time spent.
.agents/retrospective/pr43-coderabbit-root-cause-analysis.md (1)
1-450: ✓ Systematic root cause analysis with evidence-based recommendations.Seven issues traced to five systemic patterns, with Pattern 1 (Cross-Document Consistency) affecting most issues (4 of 7). Agent Responsibility Matrix assigns gaps to responsible agents. Prevention recommendations are prioritized (P1: Cross-document validation CI and path normalization utility; P2: Escalation template, naming conventions, post-impl security). Four skills extracted with atomicity scores 88-95%.
.agents/analysis/drift-analysis-claude-vs-templates.md (1)
335-357: Not applicable per coding guidelines.The file
.agents/analysis/drift-analysis-claude-vs-templates.mdis in the.agents/**directory. Per coding guidelines, only flag security issues or broken cross-references in.agents/**files. Ignore style, formatting, and structure.Absolute Windows paths are a style/formatting issue, not a security risk or broken reference. The paths themselves work correctly—they're just not portable. No action required.
Likely an incorrect or invalid review comment.
.markdownlint-cli2.yaml (1)
64-69: The three ignored instruction files exist and correctly avoid starting with H1.All three files (src/claude/CLAUDE.md, src/vs-code-agents/copilot-instructions.md, src/copilot-cli/copilot-instructions.md) exist and start with
## AI Agent System(H2 headings). This confirms the rationale for ignoring them: they intentionally use H2 instead of H1 to avoid creating duplicate H1s when appended to user files during installation. The comment properly documents this business reason.scripts/lib/Install-Common.psm1 (1)
174-196: Implementation looks correct.The parameter declaration and filter logic are solid. The
-notinoperator correctly filters out excluded filenames.scripts/install.ps1 (2)
299-304: ExcludeFiles logic is correct.The array building and parameter passing are solid. The conditional check prevents adding null values to the exclusion list.
299-304: Tests for theExcludeFilesparameter already exist at./scripts/tests/Install-Common.Tests.ps1(lines 282-314) and cover the exact scenario in this code change. No action needed.Likely an incorrect or invalid review comment.
- Fix heredoc quoting in drift-detection.yml for variable expansion - Fix cross-platform paths in Detect-AgentDrift.ps1 (Join-Path with separate args) - Fix script path references in drift-alert.md and test files Addresses comments from PR #43 review. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Each verdict now includes a complete Task invocation example: - APPROVED: Routes to implementer with plan and critique file references - NEEDS REVISION: Routes to planner with critique file and key issues list - REJECTED: Routes to analyst with gaps identified and research questions 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Each verdict now includes a complete Task invocation example: - APPROVED: Routes to implementer with plan and critique file references - NEEDS REVISION: Routes to planner with critique file and key issues list - REJECTED: Routes to analyst with gaps identified and research questions 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Replace Claude-specific Task(subagent_type=...) syntax with prose-based handoff instructions that work across all platforms (Claude, VS Code, Copilot CLI). Each verdict now shows: - Target agent in bold - Quoted prompt template with file references and context 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Resolved conflicts by keeping platform-agnostic prose for critic verdict routing instead of Claude-specific Task() syntax. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
There was a problem hiding this comment.
Actionable comments posted: 1
Caution
Some comments are outside the diff and can’t be posted inline due to platform limitations.
⚠️ Outside diff range comments (2)
src/claude/critic.md (1)
166-180: CRITICAL: Verdict Rules incomplete—REJECTED used but not defined.Lines 166–180 define APPROVED and NEEDS REVISION, but line 201 (Handoff Protocol) routes to REJECTED without criteria. This identical issue was flagged in past review but remains unresolved. Add REJECTED criteria to Verdict Rules to align with routing logic.
Add REJECTED definition to Verdict Rules section:
### NEEDS REVISION - Any Critical issues remain - Fundamental approach questions - Missing acceptance criteria - Scope unclear +### REJECTED + +- Problem definition is wrong or incomplete +- Requirements misunderstood at a fundamental level +- Technical assumptions are invalid (need investigation) +- Missing critical context that prevents meaningful revision +- Plan solves the wrong problem entirely + +**Key distinction**: Revision won't help—analyst must investigate before planning can resume.src/vs-code-agents/pr-comment-responder.agent.md (1)
282-354: Replace memory delegation with direct cloudmcp-manager tool calls.Lines 296 and 322 use
Task(subagent_type="memory", ...)with natural language prompts. Memory agent doesn't work this way—it usescloudmcp-managertools directly. Replace with:Retrieval (line 296):
cloudmcp-manager/memory-search_nodes Query: "PR review patterns bot false positives reviewer preferences"Storage (line 322):
cloudmcp-manager/memory-create_entities { "entities": [{ "name": "PR-Triage-Learning-{repo}-{number}", "entityType": "Decision", "observations": [ "Bot false positive: {pattern}", "Trigger: {cause}", "Resolution: {action}", "Path effectiveness: {Standard|Strategic|QuickFix} succeeded={yes|no}" ] }] }Then use
cloudmcp-manager/memory-add_observationsto update existing entities.
♻️ Duplicate comments (1)
src/claude/critic.md (1)
199-201: Handoff Protocol uses "REVISE" (undefined) instead of "NEEDS REVISION" (defined).Line 200 routes "REVISE" but Verdict Rules defines "NEEDS REVISION". Additionally, REVISE and REJECTED handoff lines lack the Task(...) structure that APPROVED has. Align terminology and complete the routing specifications.
Apply this diff to align terminology and complete Task syntax:
- - **APPROVED**: Route to **implementer** `Task(subagent_type="orchestrator", prompt="Ready for implementation of [plan]")` - - **REVISE**: Route back to **planner** - - **REJECTED**: Route to **analyst** for investigation + - **APPROVED**: `Task(subagent_type="implementer", prompt="Implement [plan name] per approved plan at .agents/planning/[plan-file].md. Critique approved at .agents/critique/[critique-file].md")` + - **NEEDS REVISION**: `Task(subagent_type="planner", prompt="Revise [plan name] to address critique findings at .agents/critique/[critique-file].md. Key issues: [list critical issues]")` + - **REJECTED**: `Task(subagent_type="analyst", prompt="Investigate [topic] before planning can proceed. Critique at .agents/critique/[critique-file].md identified fundamental gaps: [list gaps]. Research needed: [specific questions]")`
📜 Review details
Configuration used: Path: .coderabbit.yaml
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (14)
build/Generate-Agents.ps1(1 hunks)src/claude/critic.md(5 hunks)src/copilot-cli/critic.agent.md(3 hunks)src/copilot-cli/implementer.agent.md(1 hunks)src/copilot-cli/orchestrator.agent.md(5 hunks)src/copilot-cli/pr-comment-responder.agent.md(8 hunks)src/vs-code-agents/critic.agent.md(4 hunks)src/vs-code-agents/implementer.agent.md(1 hunks)src/vs-code-agents/orchestrator.agent.md(4 hunks)src/vs-code-agents/pr-comment-responder.agent.md(11 hunks)templates/agents/critic.shared.md(1 hunks)templates/agents/implementer.shared.md(1 hunks)templates/agents/orchestrator.shared.md(1 hunks)templates/agents/pr-comment-responder.shared.md(1 hunks)
🚧 Files skipped from review as they are similar to previous changes (3)
- templates/agents/critic.shared.md
- src/vs-code-agents/orchestrator.agent.md
- src/copilot-cli/pr-comment-responder.agent.md
🧰 Additional context used
📓 Path-based instructions (6)
**/*.md
📄 CodeRabbit inference engine (.agents/architecture/ADR-001-markdown-linting.md)
**/*.md: Add language identifiers to all fenced code blocks (MD040). Use appropriate language identifiers:csharpfor C#,powershellfor PowerShell,bashfor shell,jsonfor JSON,yamlfor YAML,markdownfor Markdown,textfor plain text or generic/pseudo code
Wrap generic types in backticks to escape angle brackets (e.g.,ArrayPool<T>instead of ArrayPool) to comply with MD033 inline HTML restrictions and ensure proper rendering
Add blank lines around code blocks to comply with MD031 markdown linting requirements
Add blank lines around lists to comply with MD032 markdown linting requirements
Add blank lines around headings to comply with MD022 markdown linting requirements
Use ATX-style headings (# Heading) consistently across all markdown documents (MD003)
Use fenced code block style (triple backticks) consistently, with backtick delimiters rather than tildes (MD046, MD048)
Allow only specific HTML elements in markdown:<br>,<kbd>,<sup>,<sub>. Escape or avoid other inline HTML elements to comply with MD033 restrictions
**/*.md: Use skill ID convention format: Skill-[Category]-[Number] for skills and Anti-[Category]-[Number] for anti-patterns
Each skill must follow the required structure: Statement (max 15 words), Context, Atomicity score (0-100%), Evidence, Impact, and Tags
Score skills for atomicity using the scale: 90-100% (Excellent - ready for storage), 70-89% (Good - may need refinement), 50-69% (Acceptable - consider splitting), <50% (Needs Work - too vague)
Tag each skill with one of: helpful (contributed to success), harmful (caused failure), or neutral (no measurable impact)
When citing skills during implementation, use the format: Applying [Skill-ID], Strategy [description], Expected [outcome], Result [actual outcome], Skill Validated [yes/no]
Skills should be atomic learning statements of maximum 15 words
Skills must include measurable outcomes in the Impact field
**/*.md: Always specify language identifiers on fenc...
Files:
src/vs-code-agents/critic.agent.mdsrc/copilot-cli/critic.agent.mdsrc/copilot-cli/orchestrator.agent.mdtemplates/agents/orchestrator.shared.mdsrc/claude/critic.mdtemplates/agents/implementer.shared.mdsrc/vs-code-agents/pr-comment-responder.agent.mdtemplates/agents/pr-comment-responder.shared.mdsrc/copilot-cli/implementer.agent.mdsrc/vs-code-agents/implementer.agent.md
⚙️ CodeRabbit configuration file
**/*.md: Writing Quality: - Grade 9 reading level - Active voice, direct address - Short sentences (under 15 words ideal) - No fluff, filler, or marketing language - Replace adjectives with data where possible - Every sentence must pass the "so what" test
Flag: - Passive voice - Vague language (nearly, some, almost, very) - Jargon without definitions - Broken links and outdated procedures - Inconsistency with code changes in same PR - Missing context for new features or APIs
Ignore (handled by .markdownlint-cli2.yaml): - Markdown formatting and style - Heading level choices - Link formatting variations - Minor punctuation preferences
Files:
src/vs-code-agents/critic.agent.mdsrc/copilot-cli/critic.agent.mdsrc/copilot-cli/orchestrator.agent.mdtemplates/agents/orchestrator.shared.mdsrc/claude/critic.mdtemplates/agents/implementer.shared.mdsrc/vs-code-agents/pr-comment-responder.agent.mdtemplates/agents/pr-comment-responder.shared.mdsrc/copilot-cli/implementer.agent.mdsrc/vs-code-agents/implementer.agent.md
build/**/*.ps1
📄 CodeRabbit inference engine (.agents/security/infrastructure-file-patterns.md)
PowerShell build scripts in build directory (
build/**/*.ps1) should trigger security agent review due to high security implications
Files:
build/Generate-Agents.ps1
{build/**/*.ps1,scripts/**/*.sh,Dockerfile*,docker-compose*,**/Controllers/**}
📄 CodeRabbit inference engine (.agents/utilities/security-detection/SKILL.md)
Build scripts (
build/**/*.ps1,scripts/**/*.sh), container configs (Dockerfile*,docker-compose*), and API controllers (**/Controllers/**) require security agent review (HIGH level)
Files:
build/Generate-Agents.ps1
**/*.{ps1,psm1,psd1}
📄 CodeRabbit inference engine (.agents/retrospective/2025-12-15-cva-install-scripts.md)
Extract environment variations to .psd1 data files, keeping logic generic rather than hardcoding configuration in scripts
Files:
build/Generate-Agents.ps1
**/*.{ps1,psd1}?(@(test|spec))
📄 CodeRabbit inference engine (.agents/retrospective/2025-12-15-install-scripts-session.md)
Use BeforeAll blocks for all variable initialization in Pester 5.x tests; avoid variable assignments outside BeforeAll during Discovery phase
Files:
build/Generate-Agents.ps1
**/vs-code-agents/pr-comment-responder.agent.md
📄 CodeRabbit inference engine (.agents/retrospective/2025-12-14-pr-comment-responder-gaps.md)
Sync pr-comment-responder.md changes to vs-code-agents/pr-comment-responder.agent.md
Files:
src/vs-code-agents/pr-comment-responder.agent.md
🧠 Learnings (7)
📚 Learning: 2025-12-16T06:16:01.759Z
Learnt from: rjmurillo
Repo: rjmurillo/ai-agents PR: 43
File: build/Generate-Agents.ps1:513-519
Timestamp: 2025-12-16T06:16:01.759Z
Learning: In this repository, generated agent instruction files (e.g., src/vs-code-agents/*.agent.md, src/copilot-cli/*.agent.md) intentionally omit a 'DO NOT EDIT DIRECTLY' header because AI agents consume these files and human-oriented warnings add noise to their context. Do not manually edit these generated files. CI validation (validate-generated-agents.yml) enforces edits to them via the generator. The related generation script is build/Generate-Agents.ps1, which should be used to update these files, not manual edits.
Applied to files:
src/vs-code-agents/critic.agent.mdsrc/copilot-cli/critic.agent.mdsrc/copilot-cli/orchestrator.agent.mdsrc/vs-code-agents/pr-comment-responder.agent.mdsrc/copilot-cli/implementer.agent.mdsrc/vs-code-agents/implementer.agent.md
📚 Learning: 2025-12-16T06:26:21.783Z
Learnt from: rjmurillo
Repo: rjmurillo/ai-agents PR: 43
File: templates/agents/qa.shared.md:1-311
Timestamp: 2025-12-16T06:26:21.783Z
Learning: In the rjmurillo/ai-agents repository, follow the project's Markdown lint rules defined in .markdownlint-cli2.yaml. Do not flag MD031/MD032 (blank lines around fences) or similar style issues in Markdown files if the repository's markdownlint configuration passes; rely on the config to determine formatting and style decisions.
Applied to files:
src/vs-code-agents/critic.agent.mdsrc/copilot-cli/critic.agent.mdsrc/copilot-cli/orchestrator.agent.mdtemplates/agents/orchestrator.shared.mdsrc/claude/critic.mdtemplates/agents/implementer.shared.mdsrc/vs-code-agents/pr-comment-responder.agent.mdtemplates/agents/pr-comment-responder.shared.mdsrc/copilot-cli/implementer.agent.mdsrc/vs-code-agents/implementer.agent.md
📚 Learning: 2025-12-16T06:26:44.230Z
Learnt from: rjmurillo
Repo: rjmurillo/ai-agents PR: 43
File: templates/agents/implementer.shared.md:33-40
Timestamp: 2025-12-16T06:26:44.230Z
Learning: In the rjmurillo/ai-agents repository, markdownlint issues should be governed by the repository's .markdownlint-cli2.yaml configuration. Do not flag or enforce markdown formatting/style violations that are not surfaced by the configured rules. Apply this rule to all Markdown files (e.g., templates/agents/implementer.shared.md and others) and only flag issues that the project's markdownlint config would detect.
Applied to files:
src/vs-code-agents/critic.agent.mdsrc/copilot-cli/critic.agent.mdsrc/copilot-cli/orchestrator.agent.mdtemplates/agents/orchestrator.shared.mdsrc/claude/critic.mdtemplates/agents/implementer.shared.mdsrc/vs-code-agents/pr-comment-responder.agent.mdtemplates/agents/pr-comment-responder.shared.mdsrc/copilot-cli/implementer.agent.mdsrc/vs-code-agents/implementer.agent.md
📚 Learning: 2025-12-16T06:26:44.208Z
Learnt from: rjmurillo
Repo: rjmurillo/ai-agents PR: 43
File: templates/agents/planner.shared.md:73-121
Timestamp: 2025-12-16T06:26:44.208Z
Learning: In this repository (rjmurillo/ai-agents), do not flag Markdown formatting or style issues (MD031, MD032, heading levels, link formatting, punctuation) for Markdown files. These are already ignored by the project’s .markdownlint-cli2.yaml; rely on that configuration and the repository's coding guidelines for Markdown handling.
Applied to files:
src/vs-code-agents/critic.agent.mdsrc/copilot-cli/critic.agent.mdsrc/copilot-cli/orchestrator.agent.mdtemplates/agents/orchestrator.shared.mdsrc/claude/critic.mdtemplates/agents/implementer.shared.mdsrc/vs-code-agents/pr-comment-responder.agent.mdtemplates/agents/pr-comment-responder.shared.mdsrc/copilot-cli/implementer.agent.mdsrc/vs-code-agents/implementer.agent.md
📚 Learning: 2025-12-16T06:27:04.317Z
Learnt from: rjmurillo
Repo: rjmurillo/ai-agents PR: 43
File: src/copilot-cli/analyst.agent.md:39-44
Timestamp: 2025-12-16T06:27:04.317Z
Learning: In the rjmurillo/ai-agents repository, do not flag MD031 (blank lines around fenced code blocks) or MD032 (blank lines around lists) violations in Markdown files. These formatting rules are configured in the project’s .markdownlint-cli2.yaml, and such style issues do not affect agent instruction functionality. Apply this pattern to all Markdown files (recursively) and focus review attention on issues that affect behavior, correctness, or other lint rules.
Applied to files:
src/vs-code-agents/critic.agent.mdsrc/copilot-cli/critic.agent.mdsrc/copilot-cli/orchestrator.agent.mdtemplates/agents/orchestrator.shared.mdsrc/claude/critic.mdtemplates/agents/implementer.shared.mdsrc/vs-code-agents/pr-comment-responder.agent.mdtemplates/agents/pr-comment-responder.shared.mdsrc/copilot-cli/implementer.agent.mdsrc/vs-code-agents/implementer.agent.md
📚 Learning: 2025-12-16T08:00:20.752Z
Learnt from: rjmurillo
Repo: rjmurillo/ai-agents PR: 43
File: templates/agents/roadmap.shared.md:124-174
Timestamp: 2025-12-16T08:00:20.752Z
Learning: Review Markdown files to ensure nested code fences follow the rule: the outer fence uses more backticks than the inner fence (e.g., an outer `````` with four backticks containing an inner ```mermaid``` fence). This follows CommonMark conventions; verify that nesting does not break rendering by using a greater number of backticks for the outer fence than the inner one.
Applied to files:
src/vs-code-agents/critic.agent.mdsrc/copilot-cli/critic.agent.mdsrc/copilot-cli/orchestrator.agent.mdtemplates/agents/orchestrator.shared.mdsrc/claude/critic.mdtemplates/agents/implementer.shared.mdsrc/vs-code-agents/pr-comment-responder.agent.mdtemplates/agents/pr-comment-responder.shared.mdsrc/copilot-cli/implementer.agent.mdsrc/vs-code-agents/implementer.agent.md
📚 Learning: 2025-12-16T06:16:01.759Z
Learnt from: rjmurillo
Repo: rjmurillo/ai-agents PR: 43
File: build/Generate-Agents.ps1:513-519
Timestamp: 2025-12-16T06:16:01.759Z
Learning: In the rjmurillo/ai-agents repository, generated agent instruction files (e.g., src/vs-code-agents/*.agent.md, src/copilot-cli/*.agent.md) intentionally omit "DO NOT EDIT DIRECTLY" headers because AI agents consume these files and human-oriented warnings would add noise to their context. CI validation (validate-generated-agents.yml) is the enforcement mechanism for preventing manual edits.
Applied to files:
build/Generate-Agents.ps1
🪛 LanguageTool
templates/agents/orchestrator.shared.md
[style] ~22-~22: Consider using a different verb for a more formal wording.
Context: ...rom one step to the next - Research and fix issues autonomously - Continue until AL...
(FIX_RESOLVE)
[uncategorized] ~82-~82: The official name of this software platform is spelled with a capital “H”.
Context: ...line", "workflow", "deploy", "build", ".github/", ".githooks/" | | Security | Vuln...
(GITHUB)
[uncategorized] ~350-~350: The official name of this software platform is spelled with a capital “H”.
Context: ...ecurity, architect, implementer, qa | | .github/workflows/*, .githooks/* | Infrastru...
(GITHUB)
templates/agents/implementer.shared.md
[style] ~135-~135: To elevate your writing, try using a synonym here.
Context: ...ion) Testability is leverage. Code hard to test reveals deeper problems. **Coh...
(HARD_TO)
[style] ~135-~135: Consider a different adjective to strengthen your wording.
Context: ...s leverage.** Code hard to test reveals deeper problems. Cohesion: Single respons...
(DEEP_PROFOUND)
[style] ~220-~220: To elevate your writing, try using a synonym here.
Context: ...code - Use Moq for mocking - If code is hard to test, identify why: poor encapsulati...
(HARD_TO)
src/vs-code-agents/pr-comment-responder.agent.md
[uncategorized] ~244-~244: The official name of this software platform is spelled with a capital “H”.
Context: ...---|--------------|-----------|-----| | .github/workflows/* | CI/CD issues | devops | ...
(GITHUB)
templates/agents/pr-comment-responder.shared.md
[uncategorized] ~244-~244: The official name of this software platform is spelled with a capital “H”.
Context: ...---|--------------|-----------|-----| | .github/workflows/* | CI/CD issues | devops | ...
(GITHUB)
🔍 Remote MCP
Based on my research across multiple sources, here's the relevant context for reviewing PR #43:
PR #43 Overview: Agent Templating System for 2-Variant Consolidation
Architecture & Implementation [::DeepWiki_ask_question::]
The PR implements a template-based generation system that consolidates VS Code and Copilot CLI agent definitions from 54 files down to 36 files (33% reduction). The system maintains:
- Shared sources (
templates/agents/*.shared.md): Single definition per agent - Platform configurations (
templates/platforms/*.yaml): VS Code and Copilot CLI-specific settings - Generated outputs (
src/vs-code-agents/,src/copilot-cli/): Auto-generated from shared sources - Claude agents (
src/claude/*.md): Remain separate (not consolidated)
VS Code and Copilot CLI differ only in:
- Frontmatter (model field, name field, tools array)
- Handoff syntax (
#runSubagentvs/agent)
This 99%+ identity justifies the consolidation approach.
Build Infrastructure [::GitHub_Copilot_list_commits::]
Recent commits show:
- Module extraction for testability (commit d619cda): Shared functions moved to
Generate-Agents.Common.psm1to ensure tests validate actual implementations - Security fix (commit 34b24a5): Path traversal prevention in
Test-PathWithinRootvia directory separator anchoring - Memory delegation updates (commit b3d7996): All Claude agents delegate to memory agent for consistency
- CodeRabbit config (commit 3ae5107): Disables markdown linting to allow intentional 4-backtick nesting
Key Deliverables in PR
From file analysis [::GitHub_Copilot_pull_request_read::]
| Component | Count | Purpose |
|---|---|---|
| Planning artifacts | 8 files | PRD, epic, tasks, implementation plan, roadmap |
| Analysis & reviews | 5 files | Drift analysis, capability gaps, root causes |
| Build infrastructure | 2 scripts | Generate-Agents.ps1, Detect-AgentDrift.ps1 |
| CI workflows | 2 YAML | validate-generated-agents.yml, drift-detection.yml |
| Templates | 18 files | Shared agent definitions (*.shared.md) |
| Generated agents | 36 files | Platform-specific outputs |
| Documentation | 3 files | CONTRIBUTING.md, templates/README.md, platform configs |
Critical Quality Decisions
Test Architecture [::GitHub_Copilot_list_commits::]: Module extraction ensures unit tests validate actual transformation logic, not stale copies—addressing a CodeRabbit review concern.
Security [::GitHub_Copilot_list_commits::]: Path validation prevents C:\repo_evil from matching C:\repo via explicit directory separator anchoring in Test-PathWithinRoot.
Encoding Consistency [::GitHub_Copilot_list_commits::]: UTF-8 without BOM ensures identical generated files across Windows PowerShell 5.x and PowerShell Core.
Retrospective Analysis [::GitHub_Copilot_pull_request_read::]
PR includes comprehensive retrospective documents analyzing:
- Drift detection disaster: Root cause analysis of inverted source-of-truth (Claude was mistakenly updated to match templates instead of vice versa)
- Accountability analysis: Identifies systemic failures in agent consensus and escalation protocols
- Instruction files gap: User-facing documentation was missing from installer configuration
- CodeRabbit findings: 7 issues traced to 5 systemic patterns (cross-document consistency, information loss, path contamination, naming drift, single-phase security)
These retrospectives extract actionable skills for preventing future failures.
Success Metrics & Validation
- File reduction: 54 to 36 files (measurable ✓)
- Build time: <5 seconds (verifiable ✓)
- CI blocking: Manual edits to generated files rejected (enforced ✓)
- Drift detection: Weekly reports over 90 days for data-driven decisions ✓
🔇 Additional comments (20)
src/vs-code-agents/critic.agent.md (5)
24-52: Well-structured review criteria.The Review Checklist section provides clear, actionable criteria organized by domain.
231-258: Verdict Rules now define all three verdicts with clear decision criteria.Lines 249–257 now define REJECTED with explicit criteria distinguishing it from NEEDS REVISION (investigative vs. refinement). This resolves the past concern about unclear routing semantics.
215-217: Handoff routing uses consistent verdict terminology.Terminology matches Verdict Rules. All three paths (APPROVED, NEEDS REVISION, REJECTED) are properly defined and routed.
259-271: Output location and anti-patterns guidance is clear.Both sections provide concise operational guidance without ambiguity.
60-66: Memory protocol correctly delegates to memory agent.Delegation avoids duplicating memory logic inline and maintains clean separation of concerns.
src/claude/critic.md (3)
39-77: Review Checklist properly extended for Impact Analysis validation.The Impact Analysis Validation subsection (lines 68–77) appropriately extends the checklist for scenarios where specialist agent input is present.
78-109: Disagreement Detection & Escalation section provides clear governance guidance.Lines 90–99 specify when and how to escalate (major vs. minor conflicts), with concrete examples. This reduces ambiguity about routing decisions.
159-164: Memory delegation pattern is consistent and clean.Memory protocol properly delegates to memory agent without duplicating logic inline.
templates/agents/implementer.shared.md (1)
1-335: LGTM - comprehensive implementation agent template.The template clearly defines the implementer role with SOLID principles, Software Hierarchy of Needs, and memory delegation. Structure supports platform-specific generation via build/Generate-Agents.ps1.
templates/agents/pr-comment-responder.shared.md (1)
1-398: LGTM - well-structured PR comment triage agent.The template defines clear workflow paths (Quick Fix, Standard, Strategic), proper gh CLI usage for context gathering, and bot-specific handling patterns. Memory delegation follows the PR's standardized approach.
templates/agents/orchestrator.shared.md (1)
1-822: LGTM - comprehensive orchestrator template with consistent memory delegation.The template defines clear execution phases, task classification, domain identification, and agent routing. Memory protocol consistently delegates to memory agent throughout (Initialization, Autonomous Execution, Failure Recovery). Ideation workflow and session continuity patterns are well-structured.
src/copilot-cli/critic.agent.md (1)
24-280: LGTM - generated critic agent aligns with template standards.Review Checklist, Memory Protocol delegation, Disagreement Detection & Escalation, and Verdict Rules are well-defined. Handoff Protocol uses correct Task() syntax for Copilot CLI platform.
src/copilot-cli/orchestrator.agent.md (1)
32-822: LGTM - generated orchestrator follows template patterns.Memory Protocol consistently delegates to memory agent across all phases (Initialization line 172, Autonomous Execution line 206, Failure Recovery line 782). Handoff Protocol uses correct /agent syntax for Copilot CLI platform (line 650).
src/copilot-cli/implementer.agent.md (1)
200-205: LGTM - memory delegation follows standard pattern.Memory Protocol correctly delegates to memory agent for cross-session context with pre/post implementation guidance.
src/vs-code-agents/implementer.agent.md (1)
200-205: LGTM - memory delegation consistent with template.Memory Protocol delegates to memory agent with clear pre/post implementation guidance, matching the shared template pattern.
build/Generate-Agents.ps1 (3)
99-166: Simple YAML parser sufficient for current configs.The Read-PlatformConfig function manually parses YAML without external dependencies. Handles comments, sections, and nested key-value pairs. This approach works for simple platform configurations (templates/platforms/*.yaml) but won't handle complex YAML features (arrays, multi-line strings, nested objects beyond 2 levels).
For current requirements, this is acceptable. If platform configs grow more complex, consider adopting a YAML module.
217-313: Generation loop correctly applies platform transformations.The processing loop:
- Parses frontmatter from shared templates
- Transforms frontmatter per platform config
- Applies handoff syntax and memory prefix transformations
- Writes with utf8NoBOM encoding (line 308) - correct for cross-version consistency
- Security validated via Test-PathWithinRoot (line 248)
- Validate mode compares generated vs committed files
Path traversal protection and encoding consistency confirmed per past review resolutions.
315-352: Exit codes and summary reporting are correct.Validate mode:
- Exit 1 with diff list if files differ
- Exit 0 if all match
- Provides fix instructions
Generate mode:
- Reports generated file count
- Exit 1 if errors occurred
Clear failure feedback supports CI validation workflow.
src/vs-code-agents/pr-comment-responder.agent.md (2)
34-58: Verify GitHub CLI API endpoint compatibility with your target GitHub versions.Lines 42-47 retrieve review comments and issue comments separately, which is correct:
- Line 42 (
gh api repos/[owner]/[repo]/pulls/[number]/comments) returns review comments on code- Line 46 (
gh api repos/[owner]/[repo]/issues/[number]/comments) returns issue-level commentsThe endpoint
/repos/{owner}/{repo}/pulls/{pull_number}/comments/{comment_id}/repliesis available and documented across GitHub API versions 2022-11-28 onwards, including Enterprise Server 3.8 and later. No compatibility concerns with this endpoint for recent GitHub installations.Also applies to: 182-193
1-6: Generated file status verified. Both template and generated file were modified in the same commit with identical timestamps (2025-12-16 00:39:35 -0800), confirming the build workflow was followed correctly. The Memory Protocol delegation changes were applied to the source template (templates/agents/pr-comment-responder.shared.md) and this file was regenerated from it—not manually edited.
| | **Quick Fix** | `implementer -> qa` | Can explain fix in one sentence | | ||
| | **Standard** | `analyst -> architect -> planner -> critic -> implementer -> qa` | Need to investigate first | | ||
| | **Strategic** | `independent-thinker -> high-level-advisor -> task-generator` | Question is *whether*, not *how* | |
There was a problem hiding this comment.
🧩 Analysis chain
🏁 Script executed:
#!/bin/bash
# First, check if the file exists
if [ ! -f src/vs-code-agents/pr-comment-responder.agent.md ]; then
echo "File not found: src/vs-code-agents/pr-comment-responder.agent.md"
exit 1
fi
echo "=== LINES 22-24 (first table) ==="
sed -n '22,24p' src/vs-code-agents/pr-comment-responder.agent.md
echo ""
echo "=== LINES 228-236 (second table) ==="
sed -n '228,236p' src/vs-code-agents/pr-comment-responder.agent.md
echo ""
echo "=== LINES 111, 126, 254, 268 (delegation commands) ==="
echo "Line 111:"
sed -n '111p' src/vs-code-agents/pr-comment-responder.agent.md
echo "Line 126:"
sed -n '126p' src/vs-code-agents/pr-comment-responder.agent.md
echo "Line 254:"
sed -n '254p' src/vs-code-agents/pr-comment-responder.agent.md
echo "Line 268:"
sed -n '268p' src/vs-code-agents/pr-comment-responder.agent.md
echo ""
echo "=== ALL AGENT NAMES IN FILE ==="
grep -oE '`[a-z\-]+`' src/vs-code-agents/pr-comment-responder.agent.md | sort -u
echo ""
echo "=== Check for /agent commands ==="
grep -n '/agent' src/vs-code-agents/pr-comment-responder.agent.md || echo "No /agent commands found"
echo ""
echo "=== Check platform config ==="
if [ -f templates/platforms/vscode.yaml ]; then
echo "Platform config found:"
cat templates/platforms/vscode.yaml
else
echo "Platform config not found at templates/platforms/vscode.yaml"
find . -name "vscode.yaml" -o -name "*platform*.yaml" -o -name "*platform*.yml" 2>/dev/null | head -5
fiRepository: rjmurillo/ai-agents
Length of output: 2115
🏁 Script executed:
#!/bin/bash
# Check if #runSubagent syntax is used anywhere in the file
echo "=== Checking for #runSubagent syntax (from platform config) ==="
grep -n "#runSubagent" src/vs-code-agents/pr-comment-responder.agent.md || echo "Not found"
echo ""
echo "=== Verify /agent commands are present ==="
grep -c "/agent" src/vs-code-agents/pr-comment-responder.agent.md
echo "occurrences of /agent found"
echo ""
echo "=== Check total lines in file ==="
wc -l src/vs-code-agents/pr-comment-responder.agent.md
echo ""
echo "=== Verify backticks in lines 228-236 ==="
sed -n '228,236p' src/vs-code-agents/pr-comment-responder.agent.md | grep -o '`[^`]*`'Repository: rjmurillo/ai-agents
Length of output: 341
Fix agent handoff syntax to match platform configuration.
Lines 111, 126, 254, and 268 use /agent commands, but the platform config at templates/platforms/vscode.yaml specifies #runSubagent as the handoff syntax. Update the markdown file to use #runSubagent instead. Also verify that agent names (implementer, orchestrator, devops, independent-thinker, analyst, architect, planner, critic, qa, high-level-advisor, task-generator) match what's registered in the platform configuration.
🤖 Prompt for AI Agents
In src/vs-code-agents/pr-comment-responder.agent.md around lines 22-24 (and
specifically update usages at lines 111, 126, 254, and 268), replace any
`/agent` handoff commands with the platform's `#runSubagent` syntax and ensure
the agent identifiers used (implementer, orchestrator, devops,
independent-thinker, analyst, architect, planner, critic, qa,
high-level-advisor, task-generator) exactly match the names registered in
templates/platforms/vscode.yaml (adjust spelling/casing to match); update each
command invocation accordingly and fix any mismatched agent names to the config
equivalents.
…ixes - P0-1: Add path normalization protocol to explainer.md - P0-2: Add post-implementation verification to security.md - P0-3: Add security flagging protocol to implementer.md - P0-4: Create path normalization validation script and CI workflow Addresses CodeRabbit PR #43 findings for environment contamination and single-phase security review issues. Co-authored-by: rjmurillo <6811113+rjmurillo@users.noreply.github.com>
- Add edit tool to 8 agents for writing handoff artifacts - Add execute/shell to orchestrator for status checks - Replace blanket github/* with specific GitHub toolsets - Update ADR-0003 with GitHub toolset definitions - Update ADR-0003 edit clarification for artifact scopes - Regenerate 20 platform agents from synchronized templates Agents modified: analyst, critic, devops, high-level-advisor, implementer, independent-thinker, memory, orchestrator, retrospective, security Closes #43 (partial)
These files enable the next agent to continue Phase 2 (P1 tasks) of CodeRabbit PR #43 remediation without external context.
…ixes (#47) * Initial plan * feat(agents): implement Phase 1 critical security and documentation fixes - P0-1: Add path normalization protocol to explainer.md - P0-2: Add post-implementation verification to security.md - P0-3: Add security flagging protocol to implementer.md - P0-4: Create path normalization validation script and CI workflow Addresses CodeRabbit PR #43 findings for environment contamination and single-phase security review issues. Co-authored-by: rjmurillo <6811113+rjmurillo@users.noreply.github.com> * docs: add Phase 1 handoff and completion artifacts Create comprehensive handoff documentation for Phase 2-4 continuation: - phase1-handoff-remediation-pr43.md: detailed handoff with task breakdowns - phase1-completion-summary.md: Phase 1 accomplishments and metrics Enables future agents to continue work with full context. Co-authored-by: rjmurillo <6811113+rjmurillo@users.noreply.github.com> * docs: add Phase 1 retrospective with skills and patterns Extract 12 skills and 3 patterns from Phase 1 execution: - Skills: planning, process, validation, security, documentation, execution - Patterns: Two-Phase Security Review, Validation-Driven Standards, Template-Based Contracts Documents learnings, metrics, and recommendations for Phase 2+. Co-authored-by: rjmurillo <6811113+rjmurillo@users.noreply.github.com> * fix: address PR feedback - sync templates, add tests, use ubuntu-latest - Change validate-paths.yml to use ubuntu-latest instead of windows-latest - Sync Phase 1 changes from src/claude/* to templates/agents/*.shared.md - Regenerate all agent files from templates (36 files updated) - Add Pester tests for Validate-PathNormalization.ps1 - Create memory/skill document for CI runner preference Addresses feedback from @rjmurillo on commits 67df41d and e7ed36f Co-authored-by: rjmurillo <6811113+rjmurillo@users.noreply.github.com> * docs: update CLAUDE.md and copilot-instructions.md with retrospective findings Add "Key Learnings from Practice" section documenting: - Path normalization standards and validation - Two-phase security review process - CI runner performance (ubuntu-latest preference) - Validation-driven standards pattern - Template-based contracts approach Completes PR feedback from comment 2623982580 Co-authored-by: rjmurillo <6811113+rjmurillo@users.noreply.github.com> * docs: add retrospective for PR feedback remediation Document feedback resolution process: - CI runner change (ubuntu-latest) - Pester test addition - Template synchronization - Documentation updates Includes lessons learned about template system architecture, efficiency metrics, and future improvement recommendations. Co-authored-by: rjmurillo <6811113+rjmurillo@users.noreply.github.com> * docs: consolidate key learnings and process improvements in CLAUDE.md * refactor: consolidate instruction files to AGENTS.md as single source of truth - Rename USING-AGENTS.md to AGENTS.md as canonical documentation - Convert CLAUDE.md to thin shim pointing to AGENTS.md - Convert .github/copilot-instructions.md to thin shim with installer markers - Delete redundant root copilot-instructions.md (.github/ is standard location) - Add Testing, Utilities, and Key Learnings sections to AGENTS.md This follows the DRY principle by maintaining one comprehensive file instead of duplicated content across multiple instruction files. Line count: ~1,230 lines (4 files with duplication) → ~746 lines (1 canonical + shims) 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> * docs: enhance memory system description in CLAUDE.md for clarity * docs: add Serena Toolbox section with instructions for optimal agent performance * docs: add note about memory location when Serena MCP is unavailable * docs: add output section for skills in the Agents documentation * docs: enhance memory system documentation with tool priority and usage guidelines * refactor: agent tools updated reduce context bloat - Updated tools for the following agents to include 'memory': - retrospective.agent.md - roadmap.agent.md - security.agent.md - skillbook.agent.md - task-generator.agent.md - analyst.agent.md - architect.agent.md - critic.agent.md - devops.agent.md - explainer.agent.md - high-level-advisor.agent.md - implementer.agent.md - independent-thinker.agent.md - memory.agent.md - orchestrator.agent.md - planner.agent.md - pr-comment-responder.agent.md - qa.agent.md - Adjusted corresponding shared templates to reflect the same changes. * refactor(agents): optimize tool lists to reduce context bloat - Reduced each agent from ~58 blanket tools to 3-8 role-specific tools - Removed irrelevant MCP servers (bicep, .NET upgrade, Python, Java, Azure DevOps, unraid, wiremock, cursor-rules) - Categorized agents by function: * Read-Only: analyst, critic, high-level-advisor, independent-thinker * Doc Writers: explainer, planner, roadmap, skillbook, task-generator * Code Implementers: implementer, devops, qa, security * Coordinators: orchestrator, pr-comment-responder, retrospective, memory Tool allocation based on actual responsibilities: - Core: read (all), edit (writers/implementers), execute (code agents) - Research: web, perplexity/*, context7/*, cognitionai/deepwiki/* - Code: serena/* (symbolic editing), github/* - Memory: cloudmcp-manager/* (all agents) - Coordination: agent, memory, todo (orchestrator) * refactor(agents): add serena/* to agents needing reflection/memory tools Added serena/* to 5 additional agents for: - Memory tools: list_memories, read_memory, write_memory, delete_memory, edit_memory - Task reflection: think_about_collected_information, think_about_task_adherence, think_about_whether_you_are_done - Initialization: initial_instructions Agents updated: - critic: Reflection tools for thorough plan validation - orchestrator: Task adherence during long-running multi-agent coordination - planner: Validate research completeness, maintain plan coherence - retrospective: Checkpoints during multi-phase analysis, file-based learnings - skillbook: File-based memory for persistent skill storage Agents already with serena/* (unchanged): - architect, implementer, memory, qa, security Agents without serena/* (appropriate): - analyst, devops, explainer, high-level-advisor, independent-thinker - pr-comment-responder, roadmap, task-generator (These use cloudmcp-manager/* for graph memory, don't need code tools) * fix(agents): add serena/* to all agents for file-based memory File-based memory (serena) and graph-based memory (cloudmcp-manager) serve complementary purposes: - Graph memory stores structured facts and relationships - File memory stores session context, handoffs, and freeform notes All 18 agents now have both memory systems available. * feat(templates): synchronize tool lists from .github/agents Synchronize all 18 shared templates with the optimized tool lists from .github/agents (source of truth). Tool allocations now match: - tools_copilot: generic tools from .github/agents - tools_vscode: generic tools + vscode + memory This ensures platform-generated agents have consistent tooling and reduced context bloat per task 8 optimization. * chore(agents): regenerate platform agents from synchronized templates * docs(adr): add ADR-0003 for agent tool selection criteria Documents the methodology and criteria for tool allocation established during Task 8 optimization: - Tool categories: Core Operations, Memory Systems, Research, GitHub, Orchestration - Decision matrix mapping roles to capabilities - Anti-patterns to avoid (execute for non-implementers, edit for reviewers, etc.) - Complete tool allocations for all 18 agents (3-9 tools each, ~90% reduction from blanket allocation) * feat: add VS Code agent system * fix(install): update commit messages for agent systems to include 'agents' scope * feat(agents): implement role-specific tool allocation per ADR-0003 - Add edit tool to 8 agents for writing handoff artifacts - Add execute/shell to orchestrator for status checks - Replace blanket github/* with specific GitHub toolsets - Update ADR-0003 with GitHub toolset definitions - Update ADR-0003 edit clarification for artifact scopes - Regenerate 20 platform agents from synchronized templates Agents modified: analyst, critic, devops, high-level-advisor, implementer, independent-thinker, memory, orchestrator, retrospective, security Closes #43 (partial) * docs(memories): update from retrospectives * feat(skills): extract 20 new skills from agent documentation New skill memory files (7): - skills-design.md (6 skills - agent design principles) - skills-governance.md (2 skills - interview protocol, consolidation) - skills-architecture.md (2 skills - tool allocation, model selection) - skills-qa.md (1 skill - test strategy gaps) - skills-analysis.md (1 skill - capability gap template) - skills-critique.md (1 skill - conflict escalation) - skills-roadmap.md (1 skill - RICE-KANO scoring) Updated skill memory files (2): - skills-security.md (+5 skills: input validation, error handling, logging, secret detection, infrastructure files) - skills-utilities.md (+1 skill: security pattern library) Total skill inventory: 28 -> 48 skills (+20) * docs(planning): add Phase 2 handoff documentation for Issue #44 These files enable the next agent to continue Phase 2 (P1 tasks) of CodeRabbit PR #43 remediation without external context. * fix(tests): add missing BeforeEach cleanup to Pattern Detection context The "Pattern Detection" context was missing the BeforeEach cleanup block that all other contexts have. This caused test pollution where files from earlier tests accumulated, causing subsequent tests to fail: - "Should NOT detect relative paths" would fail due to leftover violation files - "Should detect multiple violations in one file" would find 6+ violations instead of the expected 3 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> * fix(scripts): convert PathInfo to string for path length calculation Resolve-Path returns a PathInfo object, not a string. When accessing .Length on PathInfo, PowerShell returns $null (coerced to 0), causing .Substring(0) to return the full path instead of a relative path. Fix: Use (Resolve-Path $Path).Path to extract the string path value. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> * test(qa): add regression test for PathInfo bug fix Add comprehensive regression test for commit 3fc9171 which fixed a bug where Resolve-Path returned PathInfo object instead of string. This caused .Length to return null, breaking relative path calculation in violation output. Test verifies: - Violations in nested directories show relative paths (e.g., subdir\test.md) - Output does not contain absolute paths (e.g., C:\...\test.md) This prevents future regressions of the PathInfo string coercion issue. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> * docs(skills): add skills from PR #47 retrospective - Add Skill-Test-Pester-004: BeforeEach cleanup for test isolation - Add Skill-Utility-004: PowerShell PathInfo string conversion - Update pr-comment-responder-skills with validation from PR #47 - Add QA test report for cursor[bot] bug fixes - Add retrospective document for PR #47 comment handling Skills validated: - Skill-PR-004: GitHub API thread reply pattern - Skill-Workflow-001: Quick Fix path criteria - Skill-QA-001: QA integration after implementer - Skill-PR-006: cursor[bot] prioritization (100% actionability) 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> * feat(agents): add triage heuristics to pr-comment-responder Based on PR #47 retrospective learnings, add: - Reviewer signal quality table (cursor[bot] 100% actionability) - Quick Fix path criteria (when to bypass orchestrator) - QA integration requirement after all implementer work Process changes documented from retrospective: - cursor[bot] comments prioritized (high signal-to-noise) - Single-file, single-function, clear-fix → direct to implementer - Mandatory QA verification after every fix Also regenerates VS Code and Copilot agent files. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> --------- Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com> Co-authored-by: rjmurillo <6811113+rjmurillo@users.noreply.github.com> Co-authored-by: Richard Murillo <rjmurillo@gmail.com> Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
Summary
Implements the Agent Consolidation Epic - a shared template system that generates platform-specific agents (VS Code, Copilot CLI) from single-source templates, with drift detection to maintain consistency with Claude agents.
Changes
Template Infrastructure
templates/agents/with 18 shared agent templatesbuild/Generate-Agents.ps1for build-time agent generationbuild/Generate-Agents.Common.psm1with shared functions for testabilityvscode.yaml,copilot-cli.yaml) for frontmatter transformationCI/CD
validate-generated-agents.ymlworkflow to prevent direct edits to generated filesdrift-detection.ymlfor weekly semantic drift monitoringAgent Updates
Installer Improvements
ExcludeFilesparameter toGet-AgentFilesfunctionCLAUDE.md,copilot-instructions.md)Test-PathWithinRootTesting
Generate-Agents.ps1Detect-AgentDrift.ps1ExcludeFilesparameterDocumentation
CONTRIBUTING.mdwith agent modification guidesREADME.mdwith template system documentationType of Change
Testing
pwsh build/Generate-Agents.ps1 -ValidatepassesAgent Review
Security Review
Test-PathWithinRoot)Files requiring security review:
.github/workflows/drift-detection.yml.github/workflows/validate-generated-agents.ymlscripts/lib/Install-Common.psm1Other Agent Reviews
Checklist
Related Issues
Part of Agent Consolidation Epic (
.agents/roadmap/epic-agent-consolidation.md)🤖 Generated with Claude Code