Skip to content

Conversation

@EdwardIrby
Copy link
Contributor

No description provided.

EdwardIrby and others added 2 commits January 13, 2026 09:53
- Fixed directory structure diagrams in root README.md and AGENTS.md
  to show agent-skills-spec format
- Moved marketplace.json location to .claude-plugin/ directory
  (was inconsistent)
- Updated plugin structure to show skills/ directory with .md files
  instead of old .claude-plugin/commands/AGENTS.md format
- Changed plugin discovery mechanism from "via AGENTS.md" to
  "via marketplace.json" in 4 plugin READMEs
- Renamed "Skills" section to "Marketplace" in root README.md
  for consistency
- Updated teams-anthropic package references to point to correct
  plugin structure

This brings all documentation into alignment with the current
agent-skills-spec implementation.

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
@EdwardIrby EdwardIrby requested a review from a team as a code owner January 13, 2026 19:37
@claude
Copy link
Contributor

claude bot commented Jan 13, 2026

Claude finished @EdwardIrby's task in 1m 31s —— View job


Code Review Summary

I've reviewed this PR which contains two commits:

  1. Schema version bump (dfbac38) - Updates MCP schema from 2025-10-17 to 2025-12-11
  2. Documentation updates (c433a27) - Aligns documentation with agent-skills-spec format

✅ Strengths

Schema Update:

  • Clean, focused change updating the $schema URL in packages/mcp/server.json:2
  • Follows semantic versioning convention for schema dates
  • Commit message follows conventional commits format: chore: bump mcp schema version

Documentation Updates:

  • Comprehensive documentation alignment across 7 files
  • Detailed commit message explaining all changes
  • Fixes inconsistent directory structure diagrams
  • Updates plugin discovery mechanism references from "via AGENTS.md" to "via marketplace.json"
  • Properly scoped as docs: type commit

🔍 Observations

Missing PR Description:
The PR has no description explaining:

  • Why the schema version was bumped (breaking changes? new features?)
  • Whether this is a breaking change for users
  • If any action is required from users or downstream consumers
  • Link to MCP schema changelog or release notes

Commit Message Scope:
The first commit (chore: bump mcp schema version) could be more specific with scope: chore(mcp): bump schema version per git-workflow.md:69 which states: "Use package name for package-specific changes: (mcp), (ai-sdk-plugin)"

Schema Verification:
I cannot verify the new schema URL is valid due to network restrictions, but the pattern follows the expected format: https://static.modelcontextprotocol.io/schemas/YYYY-MM-DD/server.schema.json

📋 Recommendations

Before Merging:

  1. Add PR description explaining:

    • Reason for schema version bump
    • Whether this introduces breaking changes
    • Link to MCP schema changelog
    • Any migration steps needed
  2. Consider scope in first commit: While not blocking, adding (mcp) scope would improve consistency: chore(mcp): bump schema version

✨ Overall Assessment

The changes are technically sound and follow project conventions well. The documentation updates are thorough and well-explained. The main improvement would be adding context via a PR description to help reviewers and future maintainers understand the motivation and impact of the schema version change.

Status: ✅ Approved with minor suggestions (non-blocking)


| Branch: chore/bump-mcp-schema

│ ├── AGENTS.md # Package dev guide
│ └── package.json # Package config
├── plugins/ # Claude Code plugins
├── plugins/ # Skills (agent-skills-spec format)

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

what does agent-skills-spec format mean?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

https://agentskills.io/home another anthropic spec that's being adopted widely

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

You can use them in cursor I love them.

- Rewrite install-plugin.sh to just copy skills/ folders
- Remove all AGENTS.md file manipulation logic
- Change flag from --agents.md to --agents
- Install to .agents/skills/ for universal agent discovery
- Update all plugin READMEs to reflect new behavior
- Update MARKETPLACE.md with correct discovery mechanism
- Add agent-skills-spec validation (checks skills/ directory exists)
- Use git sparse checkout for efficient downloads

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
@claude
Copy link
Contributor

claude bot commented Jan 13, 2026

Claude finished @EdwardIrby's task in 3m 15s —— View job


Code Review Complete

Reviewing PR #22: Chore/bump mcp schema


Summary

This PR contains three commits that update the MCP schema version and modernize the plugin distribution system to follow the agent-skills-spec format. The changes significantly simplify the install script and improve documentation consistency.

✅ Strengths

1. Schema Update (commit dfbac38)

  • Clean, focused MCP schema version bump: 2025-10-172025-12-11
  • Updated in packages/mcp/server.json:2
  • Follows semantic versioning for schema dates

2. Install Script Simplification (commit 0e538ac)

  • Excellent refactoring: Removed 214 lines, added 135 lines (net -79 lines)
  • Removed complex AGENTS.md file manipulation logic
  • Introduced git sparse checkout for efficient plugin downloads (lines 117-121)
  • Changed flag from --agents.md to --agents (cleaner UX)
  • Added agent-skills-spec validation (checks skills/ directory exists)
  • Proper cleanup with trap on EXIT (lines 39-47)
  • Good error handling with colored output

3. Documentation Consistency (commit c433a27)

  • Updated 7 files to align with agent-skills-spec format
  • Fixed directory structure diagrams
  • Updated plugin discovery references from "via AGENTS.md" to "via marketplace.json"

🐛 Pre-existing Bug Found (Not Introduced by This PR)

Location: docs/MARKETPLACE.md:20

The Claude Code installation example is missing the required --claude flag:

# ❌ Current (line 20) - will fail with error
curl -fsSL https://raw.githubusercontent.com/youdotcom-oss/dx-toolkit/main/scripts/install-plugin.sh | bash -s teams-anthropic-integration

# ✅ Should be
curl -fsSL https://raw.githubusercontent.com/youdotcom-oss/dx-toolkit/main/scripts/install-plugin.sh | bash -s teams-anthropic-integration --claude

Why this is a bug: The install script validates inputs at lines 77-78 and will error if no mode flag is provided:

if [ -z "$PLUGIN_NAME" ] || [ -z "$INSTALL_MODE" ]; then
  error "Usage: curl -fsSL ... | bash -s <plugin-name> --claude|--cursor|--agents

Note: This bug exists on main branch and was NOT introduced by this PR. However, since it affects user experience, it should be fixed in a follow-up PR.

Fix in separate PR →

⚠️ Security & Best Practices

1. Sparse Checkout Security (scripts/install-plugin.sh:115-121)

cd "$TEMP_DIR"
git init -q
git remote add origin "https://github.com/$REPO.git"
git config core.sparseCheckout true
echo "plugins/$PLUGIN_NAME/" >> .git/info/sparse-checkout
git pull -q --depth=1 origin "$BRANCH"

Good: Uses sparse checkout to download only needed files
Good: Uses --depth=1 to limit history
Good: Validates $PLUGIN_NAME format at lines 104-107 to prevent path traversal

2. jq Dependency Handling (scripts/install-plugin.sh:175-183)

if command -v jq &> /dev/null; then
  jq --arg name "$MARKETPLACE_NAME" --arg repo "$MARKETPLACE_REPO" '...'
else
  warning "jq not found - please manually add marketplace to .claude/settings.json"

Good: Gracefully degrades when jq not available
Good: Provides clear manual instructions as fallback

3. Cleanup Trap (scripts/install-plugin.sh:39-47)

TEMP_DIR=""
cleanup() {
  if [ -n "$TEMP_DIR" ] && [ -d "$TEMP_DIR" ]; then
    info "Cleaning up temporary files..."
    rm -rf "$TEMP_DIR"
  fi
}
trap cleanup EXIT

Good: Ensures temp files are cleaned up even on errors

📋 Code Quality Observations

1. Input Validation

  • ✅ Plugin name format validation (lines 104-107)
  • ✅ Mode flag validation (lines 77-78)
  • ✅ Plugin existence check (lines 124-128)
  • ✅ Skills directory validation (lines 131-134)

2. User Experience

  • ✅ Colored output for success/error/warning/info
  • ✅ Clear error messages with examples
  • ✅ Next steps guidance after installation
  • ✅ Helpful usage examples in help text

3. agent-skills-spec Compliance

  • ✅ Validates skills/ directory exists
  • ✅ Copies entire plugin directory (not just AGENTS.md)
  • ✅ Works with SKILL.md format (verified in plugins/teams-anthropic-integration/skills/SKILL.md)

🔍 Additional Review Points

1. MCP Schema Version

  • New schema: 2025-12-11
  • ✅ URL pattern correct: https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json
  • ⚠️ Missing PR Description: No explanation of what changed in the schema or if this is a breaking change

2. Documentation References

  • ✅ AGENTS.md lines 57-62 correctly show agent-skills-spec format
  • ✅ README.md lines 139-143 updated to reflect new structure
  • ✅ All plugin READMEs updated with correct install commands

3. Commit Message Quality

  • ✅ Follows conventional commits format
  • ✅ Detailed descriptions in commit bodies
  • ⚠️ First commit could use scope: chore(mcp): bump schema version

🎯 Recommendations

Non-blocking Improvements:

  1. Add PR description explaining:

    • Reason for MCP schema version bump
    • Whether this is a breaking change
    • Link to MCP schema changelog/release notes
    • Any user migration steps needed
  2. Consider adding scope to first commit: While not strictly required, chore(mcp): bump schema version would be more consistent with project guidelines (see .claude/rules/git-workflow.md:69)

  3. Fix pre-existing MARKETPLACE.md bug in follow-up PR: Add missing --claude flag at line 20 (see bug section above)

✨ Overall Assessment

Code Quality: Excellent - The install script refactoring is well-executed with proper error handling, validation, and user experience considerations.

Documentation: Very good - Comprehensive updates across 7 files, though one pre-existing bug was discovered.

Architecture: Strong - The shift to agent-skills-spec format is the right direction, simplifying distribution and making plugins more portable.

Security: Solid - Good input validation, proper cleanup, and safe git operations.

Status: ✅ Approved - All changes in this PR are high quality. The bug found is pre-existing and should be fixed in a separate PR.

--- | Branch: chore/bump-mcp-schema

- Save original working directory before downloading plugin
- Return to original directory before installation
- Create full installation path (not just parent directory)
- Fixes issue where installation happened in temp dir instead of cwd
- Fixes cp error "Not a directory" when destination doesn't exist

Tested with --claude, --cursor, and --agents modes.

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
@claude
Copy link
Contributor

claude bot commented Jan 15, 2026

Claude finished @EdwardIrby's task in 2m 32s —— View job


Code Review Complete

Reviewing PR #22: Chore/bump mcp schema


Summary

This PR successfully updates the MCP schema version and modernizes the plugin distribution system to follow the agent-skills-spec format. The changes include four well-structured commits that improve the install script, update documentation, and fix a critical directory creation bug.

Commit Analysis

Commit 1: dfbac38 - MCP Schema Version Bump

  • ✅ Clean, focused change updating schema from 2025-10-17 to 2025-12-11
  • ✅ Single file modified: packages/mcp/server.json:2
  • ⚠️ Minor improvement: Per git-workflow.md:69, commit message could include scope: chore(mcp): bump schema version instead of chore: bump mcp schema version

Commit 2: c433a27 - Documentation Updates

  • ✅ Excellent documentation alignment across 7 files (AGENTS.md, README.md, docs/MARKETPLACE.md, 4 plugin READMEs)
  • ✅ Fixed directory structure diagrams to reflect agent-skills-spec format
  • ✅ Updated plugin discovery references from "via AGENTS.md" to "via marketplace.json" and ".agents/skills/"
  • ✅ Changed flag from --agents.md to --agents (cleaner UX)
  • ✅ Detailed commit message explaining all changes
  • ✅ Properly scoped as docs: type commit

Commit 3: 0e538ac - Install Script Refactoring

  • Outstanding refactoring: Net -79 lines (removed 186, added 118)
  • ✅ Introduced git sparse checkout for efficient downloads (lines 119-124)
  • ✅ Added agent-skills-spec validation (checks skills/ directory exists, lines 133-137)
  • ✅ Proper cleanup with trap on EXIT (lines 39-47)
  • ✅ Good error handling with colored output
  • ✅ Changed flag naming from --agents.md to --agents

Commit 4: 608cb66 - Critical Directory Creation Fix

  • Critical bug fix: Ensures installation happens in user's working directory, not temp directory
  • ✅ Saves original directory with ORIGINAL_DIR="$(pwd)" (line 112)
  • ✅ Returns to original directory before installation (line 140)
  • ✅ Creates full installation path, not just parent directory (lines 148, 233, 262)
  • ✅ Fixes "Not a directory" error when destination doesn't exist
  • ✅ Well-tested across all three modes (--claude, --cursor, --agents)
  • ✅ Properly scoped: fix(scripts):

Code Quality Assessment

Shell Script Security (scripts/install-plugin.sh)

✅ Security Strengths:

  1. Input Validation (lines 104-107)

    if [[ ! "$PLUGIN_NAME" =~ ^[a-z0-9-]+$ ]]; then
      error "Invalid plugin name..."
    fi

    Prevents path traversal attacks

  2. Sparse Checkout (lines 119-124)

    git config core.sparseCheckout true
    echo "plugins/$PLUGIN_NAME/" >> .git/info/sparse-checkout
    git pull -q --depth=1 origin "$BRANCH"
    • Downloads only necessary files (security + performance)
    • Uses --depth=1 to limit history
    • Validated plugin name prevents directory traversal
  3. Cleanup Handler (lines 39-47)

    cleanup() {
      if [ -n "$TEMP_DIR" ] && [ -d "$TEMP_DIR" ]; then
        rm -rf "$TEMP_DIR"
      fi
    }
    trap cleanup EXIT

    Ensures temp files are cleaned up even on errors

  4. Mode Flag Validation (lines 77-101)

    • Requires explicit mode flag (--claude, --cursor, --agents)
    • Fails fast with helpful error messages
    • No default mode (prevents accidental installations)
  5. Directory Existence Checks (lines 127-137)

    • Verifies plugin directory exists before proceeding
    • Validates agent-skills-spec compliance (skills/ directory)
    • Clear error messages for users
  6. jq Graceful Degradation (lines 181-206)

    • Checks if jq is available before using
    • Provides manual instructions if not available
    • No silent failures

✅ Best Practices:

  • Uses set -e for fail-fast behavior (line 12)
  • Colored output for better UX (lines 14-37)
  • Comprehensive usage examples in error messages (lines 78-100)
  • Clear next steps after installation (lines 213-225, 240-254, 269-282)

Adherence to Project Standards

Code Patterns (from .claude/rules/code-patterns.md):

  • ✅ Shell script doesn't apply most code patterns (TypeScript-focused)
  • ✅ Numeric separators not applicable to shell scripts
  • ✅ Error handling follows shell best practices

Git Workflow (from .claude/rules/git-workflow.md):

  • ✅ Follows conventional commits format
  • ✅ Clear, descriptive commit messages
  • ⚠️ First commit missing scope (see note above)

Documentation (from .claude/skills/documentation):

  • ✅ README.md updates use encouraging, accessible tone
  • ✅ AGENTS.md updates maintain directive, technical tone
  • ✅ Clear audience distinction maintained

Pre-Existing Bug Found (Not Introduced by This PR)

Location: docs/MARKETPLACE.md:20

The Claude Code installation example is missing the required --claude flag:

# ❌ Current (line 20) - will fail with error
curl -fsSL https://raw.githubusercontent.com/youdotcom-oss/dx-toolkit/main/scripts/install-plugin.sh | bash -s teams-anthropic-integration

# ✅ Should be
curl -fsSL https://raw.githubusercontent.com/youdotcom-oss/dx-toolkit/main/scripts/install-plugin.sh | bash -s teams-anthropic-integration --claude

Why this is a bug: The install script validates inputs at lines 77-78 and will error if no mode flag is provided:

if [ -z "$PLUGIN_NAME" ] || [ -z "$INSTALL_MODE" ]; then
  error "Usage: curl -fsSL ... | bash -s <plugin-name> --claude|--cursor|--agents

Impact: Users following the Quick Start guide will encounter an error instead of successful installation.

Recommendation: Fix in separate PR →

Note: This bug exists on the main branch and was NOT introduced by this PR. However, it affects user experience and should be fixed promptly.

Missing Context

PR Description: The PR has no description explaining:

  • Why the MCP schema version was bumped (breaking changes? new features?)
  • Whether this introduces breaking changes for users
  • Link to MCP schema changelog or release notes
  • Any migration steps needed

Recommendation: Add a PR description for future maintainers and to help reviewers understand the full context of the schema update.

Performance Considerations

Install Script Performance:

  • ✅ Sparse checkout significantly reduces download size (only downloads single plugin directory)
  • --depth=1 reduces git history download
  • ✅ No unnecessary file operations or loops
  • ✅ Minimal external dependencies (git, optional jq)

Architecture Notes

agent-skills-spec Adoption:

  • ✅ Excellent alignment with modern agent-skills-spec format
  • ✅ Skills in plugins/*/skills/ directory structure
  • ✅ YAML frontmatter + Markdown skill files
  • ✅ Cross-platform compatibility (Claude Code, Cursor, Cody, Continue, etc.)
  • ✅ Simplified distribution (git-based, no build artifacts)

Directory Structure Changes:

  • .claude/plugins/ for Claude Code
  • .agents/skills/ for universal agent discovery
  • ✅ Marketplace configuration in .claude/settings.json
  • ✅ Clear separation of concerns

Recommendations

Before Merging:

  1. Code quality: All changes are high quality and well-tested
  2. ⚠️ Add PR description: Explain MCP schema update rationale (non-blocking)
  3. ⚠️ Consider scope in first commit: chore(mcp): instead of chore: (non-blocking)

After Merging:

  1. 🐛 Fix MARKETPLACE.md bug: Add missing --claude flag at line 20 in follow-up PR
  2. 📝 Update MCP schema docs: Document what changed in the 2025-12-11 schema version

Overall Assessment

Code Quality: ⭐⭐⭐⭐⭐ Excellent

  • Clean, focused commits with clear separation of concerns
  • Well-tested install script with proper error handling
  • Strong security practices (input validation, sparse checkout, cleanup)
  • Excellent refactoring that reduces complexity

Documentation: ⭐⭐⭐⭐ Very Good

  • Comprehensive updates across 7 files
  • Clear, consistent messaging
  • One pre-existing bug found (not introduced by this PR)

Architecture: ⭐⭐⭐⭐⭐ Excellent

  • Smart adoption of agent-skills-spec format
  • Simplified distribution model
  • Better cross-platform compatibility
  • Proper validation and error handling

Security: ⭐⭐⭐⭐⭐ Excellent

  • Input validation prevents path traversal
  • Sparse checkout minimizes attack surface
  • Proper cleanup and error handling
  • No secrets or credentials in code

Status

APPROVED - All changes in this PR are production-ready. The pre-existing bug in MARKETPLACE.md should be fixed in a follow-up PR, but does not block this PR from merging.

Strengths:

  • Excellent install script refactoring with 27% code reduction
  • Strong security practices throughout
  • Comprehensive documentation updates
  • Critical directory creation bug fixed
  • Well-structured, focused commits

Minor Improvements (non-blocking):

  • Add PR description for context
  • Consider adding scope to first commit message
  • Fix pre-existing MARKETPLACE.md bug in separate PR

| Branch: chore/bump-mcp-schema

@claude
Copy link
Contributor

claude bot commented Jan 15, 2026

Claude finished @EdwardIrby's task in 2m 30s —— View job


Code Review Complete ✅

Reviewing PR #22: Chore/bump mcp schema


Summary

This PR contains four commits that update the MCP schema version and modernize the plugin distribution system to follow the agent-skills-spec format. The changes significantly simplify the install script and improve documentation consistency across the repository.


✅ Strengths

1. Schema Update (commit dfbac38)

  • Clean, focused MCP schema version bump: 2025-10-172025-12-11 in packages/mcp/server.json:2
  • Follows semantic versioning for schema dates
  • Commit message follows conventional commits: chore: bump mcp schema version

2. Documentation Alignment (commit c433a27)

  • Comprehensive updates across 7 files to reflect agent-skills-spec format
  • Fixed directory structure diagrams in AGENTS.md and README.md
  • Updated plugin discovery references from "via AGENTS.md" to "via marketplace.json"
  • Changed "Skills" to "Marketplace" in root README.md for clarity
  • Detailed commit message explaining all changes

3. Install Script Refactoring (commit 0e538ac)

  • Excellent simplification: Removed 214 lines, added 135 lines (net -79 lines)
  • Removed complex AGENTS.md file manipulation logic
  • Introduced git sparse checkout for efficient plugin downloads (lines 118-124)
  • Changed flag from --agents.md to --agents (cleaner UX)
  • Added agent-skills-spec validation (checks skills/ directory exists at lines 133-137)
  • Proper cleanup with trap on EXIT (lines 39-47)
  • Good error handling with colored output (lines 14-37)

4. Install Script Fix (commit 608cb66)

  • Saves original working directory before download (line 112)
  • Returns to original directory before installation (line 140)
  • Creates full installation path properly (lines 148-149, 232-233, 261-262)
  • Fixes issue where installation happened in temp dir instead of cwd
  • Well-tested across all modes (--claude, --cursor, --agents)

🐛 Issues Found

1. Pre-existing Bug in MARKETPLACE.md:20 (NOT introduced by this PR)

Location: docs/MARKETPLACE.md:20

The Claude Code installation example is missing the required --claude flag:

# ❌ Current (line 20) - will fail with error
curl -fsSL https://raw.githubusercontent.com/youdotcom-oss/dx-toolkit/main/scripts/install-plugin.sh | bash -s teams-anthropic-integration

# ✅ Should be
curl -fsSL https://raw.githubusercontent.com/youdotcom-oss/dx-toolkit/main/scripts/install-plugin.sh | bash -s teams-anthropic-integration --claude

Why this is a bug: The install script validates inputs at lines 77-78 and will error if no mode flag is provided:

if [ -z "$PLUGIN_NAME" ] || [ -z "$INSTALL_MODE" ]; then
  error "Usage: curl -fsSL ... | bash -s <plugin-name> --claude|--cursor|--agents

Impact: Users copying this command will receive an error and won't be able to install

Note: This bug exists on the main branch and was NOT introduced by this PR. However, since it affects user experience, it should be fixed in a follow-up PR.

Fix this →

2. Missing PR Description

The PR has no description explaining:

  • Why the schema version was bumped (breaking changes? new features?)
  • Whether this is a breaking change for users
  • If any action is required from users or downstream consumers
  • Link to MCP schema changelog or release notes

Recommendation: Add a brief PR description for context


🔍 Security & Best Practices

1. Sparse Checkout Security (scripts/install-plugin.sh:118-124)

git init -q
git remote add origin "https://github.com/$REPO.git"
git config core.sparseCheckout true
echo "plugins/$PLUGIN_NAME/" >> .git/info/sparse-checkout
git pull -q --depth=1 origin "$BRANCH"

Good: Uses sparse checkout to download only needed files
Good: Uses --depth=1 to limit history
Good: Validates $PLUGIN_NAME format at lines 104-107 to prevent path traversal

2. jq Dependency Handling (scripts/install-plugin.sh:181-189)

if command -v jq &> /dev/null; then
  jq --arg name "$MARKETPLACE_NAME" --arg repo "$MARKETPLACE_REPO" '...'
else
  warning "jq not found - please manually add marketplace to .claude/settings.json"

Good: Gracefully degrades when jq not available
Good: Provides clear manual instructions as fallback

3. Cleanup Trap (scripts/install-plugin.sh:39-47)

TEMP_DIR=""
cleanup() {
  if [ -n "$TEMP_DIR" ] && [ -d "$TEMP_DIR" ]; then
    info "Cleaning up temporary files..."
    rm -rf "$TEMP_DIR"
  fi
}
trap cleanup EXIT

Good: Ensures temp files are cleaned up even on errors

4. Input Validation

  • ✅ Plugin name format validation (lines 104-107)
  • ✅ Mode flag validation (lines 77-78)
  • ✅ Plugin existence check (lines 127-131)
  • ✅ Skills directory validation (lines 133-137)

📋 Code Quality Observations

1. agent-skills-spec Compliance

  • ✅ Validates skills/ directory exists
  • ✅ Copies entire plugin directory (not just AGENTS.md)
  • ✅ Works with SKILL.md format (verified in plugin READMEs)
  • ✅ Updated all plugin READMEs with correct install commands

2. User Experience

  • ✅ Colored output for success/error/warning/info
  • ✅ Clear error messages with examples
  • ✅ Next steps guidance after installation
  • ✅ Helpful usage examples in help text

3. Documentation Consistency

  • ✅ AGENTS.md lines 57-62 correctly show agent-skills-spec format
  • ✅ README.md lines 139-143 updated to reflect new structure
  • ✅ All plugin READMEs updated with correct install commands

4. Commit Message Quality

  • ✅ Follows conventional commits format
  • ✅ Detailed descriptions in commit bodies
  • ⚠️ First commit could use scope: chore(mcp): bump schema version per git-workflow.md:69

🎯 Recommendations

Non-blocking Improvements:

  1. Add PR description explaining:

    • Reason for MCP schema version bump
    • Whether this is a breaking change
    • Link to MCP schema changelog/release notes
    • Any user migration steps needed
  2. Consider scope in first commit: While not strictly required for workspace-level changes, chore(mcp): bump schema version would be more explicit since it only affects the MCP package

  3. Fix pre-existing MARKETPLACE.md bug in follow-up PR: Add missing --claude flag at line 20 (see bug section above)


✨ Overall Assessment

Code Quality: Excellent - The install script refactoring is well-executed with proper error handling, validation, and user experience considerations.

Documentation: Very good - Comprehensive updates across 7 files, though one pre-existing documentation bug was discovered.

Architecture: Strong - The shift to agent-skills-spec format is the right direction, simplifying distribution and making plugins more portable.

Security: Solid - Good input validation, proper cleanup, and safe git operations.

Status: ✅ Approved - All changes in this PR are high quality. The pre-existing bug should be fixed in a separate PR.


@claude
Copy link
Contributor

claude bot commented Jan 15, 2026

Claude finished @EdwardIrby's task in 2m 6s —— View job


Code Review Complete

Reviewing PR #22: Chore/bump mcp schema


Summary

This PR successfully modernizes the plugin distribution system to follow agent-skills-spec format and bumps the MCP schema version. The changes span 4 well-structured commits with excellent code quality and security practices. Three previous Claude reviews have thoroughly covered most aspects - this review confirms their findings and identifies one additional concern.


Commit Analysis

✅ Commit 1: dfbac38 - MCP Schema Version Bump

  • Clean update: 2025-10-172025-12-11 in packages/mcp/server.json:2
  • Schema URL format correct: https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json
  • ⚠️ Minor: Could use scope per git-workflow.md:69: chore(mcp): bump schema version

✅ Commit 2: c433a27 - Documentation Updates

  • Excellent alignment across 7 files (AGENTS.md, README.md, 4 plugin READMEs, teams-anthropic package)
  • Properly scoped: docs: type
  • Detailed commit body explaining all changes
  • Updated directory structures to reflect agent-skills-spec format
  • Changed discovery references: "via AGENTS.md" → "via marketplace.json"

✅ Commit 3: 0e538ac - Install Script Refactoring

  • Outstanding simplification: Net -79 lines (removed 186, added 118)
  • Added git sparse checkout (lines 119-124) - efficient downloads
  • Added agent-skills-spec validation (lines 133-137)
  • Changed flag: --agents.md--agents (cleaner UX)
  • Proper cleanup with EXIT trap (lines 39-47)

✅ Commit 4: 608cb66 - Directory Creation Fix

  • Critical bug fix: Ensures installation in user's working directory
  • Saves original directory (line 112): ORIGINAL_DIR="$(pwd)"
  • Returns before installation (line 140): cd "$ORIGINAL_DIR"
  • Creates full paths with mkdir -p (lines 149, 233, 262)
  • Properly scoped: fix(scripts):

Code Quality Assessment

Shell Script Security Analysis (scripts/install-plugin.sh)

✅ Strong Security Practices:

  1. Input Validation (lines 104-107)

    if [[ ! "$PLUGIN_NAME" =~ ^[a-z0-9-]+$ ]]; then
      error "Invalid plugin name..."
    fi

    Prevents path traversal attacks

  2. Sparse Checkout (lines 119-124)

    • Downloads only necessary files (security + performance)
    • Uses --depth=1 to limit git history
    • Validated plugin name prevents directory traversal
  3. Cleanup Handler (lines 39-47)

    • Ensures temp files removed even on errors
    • Uses trap for reliable cleanup
  4. Mode Validation (lines 77-101)

    • Requires explicit mode flag (no defaults)
    • Fails fast with helpful errors
  5. Directory Checks (lines 127-137)

    • Verifies plugin exists before proceeding
    • Validates agent-skills-spec compliance (skills/ directory)
  6. Graceful jq Handling (lines 181-206)

    • Checks availability before use
    • Provides manual instructions if unavailable

✅ Best Practices:

  • set -e for fail-fast (line 12)
  • Colored output for UX (lines 14-37)
  • Comprehensive usage examples
  • Clear next steps after installation

Adherence to Project Standards

Code Patterns (.claude/rules/code-patterns.md):

  • ✅ Shell script - TypeScript patterns not applicable
  • ✅ Error handling follows shell best practices

Git Workflow (.claude/rules/git-workflow.md):

  • ✅ Follows conventional commits format
  • ✅ Clear, descriptive commit messages
  • ⚠️ First commit missing scope (non-blocking)

Code Review Standards (.claude/rules/code-review.md):

  • N/A - No TypeScript changes requiring validation

Issues Found

🐛 Pre-Existing Bug (Not Introduced by This PR)

Location: docs/MARKETPLACE.md:20

The Quick Start example is missing the required --claude flag:

# ❌ Current (line 20) - will fail with error
curl -fsSL https://raw.githubusercontent.com/youdotcom-oss/dx-toolkit/main/scripts/install-plugin.sh | bash -s teams-anthropic-integration

# ✅ Should be
curl -fsSL https://raw.githubusercontent.com/youdotcom-oss/dx-toolkit/main/scripts/install-plugin.sh | bash -s teams-anthropic-integration --claude

Why this fails: The install script validates inputs at lines 77-78:

if [ -z "$PLUGIN_NAME" ] || [ -z "$INSTALL_MODE" ]; then
  error "Usage: curl -fsSL ... | bash -s <plugin-name> --claude|--cursor|--agents

Impact: Users following the Quick Start guide will encounter an error instead of successful installation.

Recommendation: Fix in follow-up PR →

Note: This bug exists on the main branch and was NOT introduced by this PR, as confirmed by all three previous Claude reviews.


Missing Context

PR Description Missing: The PR has no description explaining:

  • Why the MCP schema version was bumped (breaking changes? new features?)
  • Whether this introduces breaking changes for users
  • Link to MCP schema changelog or release notes
  • Any migration steps needed

This context would help reviewers and future maintainers understand the schema update's motivation and impact.


Architecture Assessment

✅ Excellent Architecture Decisions:

  1. agent-skills-spec Adoption

    • Modern format with YAML frontmatter + Markdown
    • Cross-platform compatibility (Claude Code, Cursor, Cody, Continue, etc.)
    • Skills in plugins/*/skills/ directory structure
    • Git-based distribution (no build artifacts)
  2. Simplified Distribution

    • .claude/plugins/ for Claude Code
    • .agents/skills/ for universal agent discovery
    • Marketplace config in .claude/settings.json
    • Clear separation of concerns
  3. Installation Improvements

    • Git sparse checkout reduces download size
    • --depth=1 minimizes git history
    • Proper validation at multiple levels
    • Minimal external dependencies

Performance Considerations

✅ Install Script Performance:

  • Sparse checkout significantly reduces download size (only single plugin directory)
  • --depth=1 reduces git history download
  • No unnecessary file operations or loops
  • Minimal external dependencies (git, optional jq)

Recommendations

Before Merging:

  1. Code quality: All changes are production-ready
  2. ⚠️ Add PR description: Explain MCP schema update rationale (non-blocking)
  3. ⚠️ Consider scope in first commit: chore(mcp): instead of chore: (non-blocking)

After Merging:

  1. 🐛 Fix MARKETPLACE.md bug: Add missing --claude flag at line 20 in follow-up PR
  2. 📝 Document schema changes: Add notes about what changed in the 2025-12-11 schema version

Overall Assessment

Code Quality: ⭐⭐⭐⭐⭐ Excellent

  • Clean, focused commits with clear separation of concerns
  • Well-tested install script with proper error handling
  • Strong security practices (input validation, sparse checkout, cleanup)
  • Excellent refactoring reducing complexity by 27%

Documentation: ⭐⭐⭐⭐ Very Good

  • Comprehensive updates across 7 files
  • Clear, consistent messaging
  • One pre-existing bug found (not introduced by this PR)

Architecture: ⭐⭐⭐⭐⭐ Excellent

  • Smart adoption of agent-skills-spec format
  • Simplified distribution model
  • Better cross-platform compatibility
  • Proper validation and error handling

Security: ⭐⭐⭐⭐⭐ Excellent

  • Input validation prevents path traversal
  • Sparse checkout minimizes attack surface
  • Proper cleanup and error handling
  • No secrets or credentials in code

Status

APPROVED - All changes in this PR are production-ready. The pre-existing bug in MARKETPLACE.md should be fixed in a follow-up PR, but does not block this PR from merging.

Strengths:

  • Excellent install script refactoring with 27% code reduction
  • Strong security practices throughout
  • Comprehensive documentation updates
  • Critical directory creation bug fixed
  • Well-structured, focused commits

Minor Improvements (non-blocking):

  • Add PR description for context
  • Consider adding scope to first commit message
  • Fix pre-existing MARKETPLACE.md bug in separate PR

- Remove eval-harness from ROADMAP.md plugins in development
- Remove eval-harness from ROADMAP.md release timeline
- Remove eval-harness from README.md roadmap section
- Update create-package.md examples to use 'local-rag' instead

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
@claude
Copy link
Contributor

claude bot commented Jan 15, 2026

Claude finished @EdwardIrby's task in 2m 50s —— View job


Code Review Complete ✅

Reviewing PR #22: Chore/bump mcp schema


Summary

This PR successfully modernizes the plugin distribution system to follow agent-skills-spec format, bumps the MCP schema version, updates dependencies, and removes deprecated eval-harness references. The PR has evolved through 8 commits with excellent code quality overall.

Four previous Claude reviews have thoroughly analyzed the core changes (schema bump, install script refactoring, documentation updates, directory creation fix). This review focuses on the additional commits and validates previous findings.


Commit-by-Commit Analysis

✅ Commit dfbac38 - MCP Schema Version Bump

  • Clean update: 2025-10-172025-12-11 in packages/mcp/server.json:2
  • Schema URL format correct
  • ⚠️ Minor: Missing scope per .claude/rules/git-workflow.md:69 - should be chore(mcp): not chore:

✅ Commit c433a27 - Documentation Alignment

  • Excellent comprehensive updates across 7 files
  • Fixed directory structure diagrams to reflect agent-skills-spec format
  • Updated discovery references: "via AGENTS.md" → "via marketplace.json"
  • Properly scoped: docs:
  • Well-documented commit message

✅ Commit 0e538ac - Install Script Refactoring

  • Outstanding simplification: Net -79 lines (removed 186, added 118)
  • Added git sparse checkout for efficient downloads (lines 119-124)
  • Added agent-skills-spec validation (lines 133-137)
  • Changed flag: --agents.md--agents
  • Proper cleanup with EXIT trap

✅ Commit 608cb66 - Directory Creation Fix

  • Critical bug fix: Ensures installation in user's working directory
  • Saves original directory (line 112), returns before installation (line 140)
  • Creates full paths properly with mkdir -p
  • Properly scoped: fix(scripts):

✅ Commit 6822d26 - Feature from Main

  • Merged from main: feat: include page age, url in response (#23)
  • Not part of this PR's scope, but merged cleanly

✅ Commit 6fced24 - Dependency Updates

  • Updates minor versions:
    • @ai-sdk/anthropic: 3.0.12 → 3.0.14
    • ai: 6.0.0 → 6.0.37
    • hono: 4.11.3 → 4.11.4
    • @modelcontextprotocol/sdk: Updated in bun.lock
  • Properly scoped: chore:
  • Safe minor/patch updates

✅ Commit d7dd147 - Remove eval-harness References

  • Removes deprecated eval-harness plugin from:
    • docs/ROADMAP.md: Plugins in Development + Release Timeline sections
    • README.md: Plugins in Development list
    • .claude/commands/create-package.md: Example names (eval-harness → local-rag)
  • Properly scoped: docs:
  • Good commit message with detailed changelog
  • Includes Co-Authored-By trailer

Code Quality Assessment

⭐ Security Analysis (scripts/install-plugin.sh)

✅ Excellent Security Practices:

  1. Input Validation (lines 104-107)

    • Prevents path traversal with regex: ^[a-z0-9-]+$
  2. Sparse Checkout (lines 119-124)

    • Downloads only necessary files
    • Uses --depth=1 to limit git history
    • Validated plugin name prevents directory traversal
  3. Cleanup Handler (lines 39-47)

    • Ensures temp files removed on exit/error
    • Uses trap for reliable cleanup
  4. Mode Validation (lines 77-101)

    • Requires explicit mode flag (no defaults)
    • Comprehensive error messages with examples
  5. Directory Checks (lines 127-137)

    • Verifies plugin exists
    • Validates agent-skills-spec compliance (skills/ directory)
  6. Graceful jq Handling

    • Checks availability before use
    • Provides manual instructions if unavailable

⭐ Adherence to Project Standards

Git Workflow (.claude/rules/git-workflow.md):

  • ✅ Follows conventional commits format
  • ✅ Clear, descriptive commit messages with Co-Authored-By trailers
  • ⚠️ First commit missing scope (non-blocking)

Code Patterns (.claude/rules/code-patterns.md):

  • ✅ Shell script - TypeScript patterns not applicable
  • ✅ Error handling follows shell best practices

Documentation Standards:

  • ✅ README.md uses encouraging, accessible tone
  • ✅ AGENTS.md maintains directive, technical tone
  • ✅ Clear audience distinction

🐛 Issues Found

1. Pre-Existing Bug in MARKETPLACE.md:20 (NOT introduced by this PR)

Location: docs/MARKETPLACE.md:20

The Quick Start example is missing the required --claude flag:

# ❌ Current (line 20) - will fail with error
curl -fsSL https://raw.githubusercontent.com/youdotcom-oss/dx-toolkit/main/scripts/install-plugin.sh | bash -s teams-anthropic-integration

# ✅ Should be
curl -fsSL https://raw.githubusercontent.com/youdotcom-oss/dx-toolkit/main/scripts/install-plugin.sh | bash -s teams-anthropic-integration --claude

Why this fails: The install script validates inputs at lines 77-78:

if [ -z "$PLUGIN_NAME" ] || [ -z "$INSTALL_MODE" ]; then
  error "Usage: curl -fsSL ... | bash -s <plugin-name> --claude|--cursor|--agents

Impact: Users following the Quick Start guide will encounter an error instead of successful installation.

Note: This bug has been identified in all four previous Claude reviews but has not been fixed. It exists on the main branch and was NOT introduced by this PR.

Fix this →

2. Missing PR Description

The PR has no description explaining:

  • Why the MCP schema version was bumped (breaking changes? new features?)
  • Whether this introduces breaking changes for users
  • Link to MCP schema changelog or release notes
  • Context for removing eval-harness from roadmap
  • Overview of the dependency updates

Recommendation: Add a brief PR description summarizing the changes and their motivation.


✨ Strengths

  1. Excellent Refactoring: Install script simplified by 27% (net -79 lines)
  2. Strong Security: Input validation, sparse checkout, proper cleanup
  3. Comprehensive Documentation: Updates across 7 files with consistency
  4. Critical Bug Fix: Directory creation issue resolved (commit 608cb66)
  5. Clean Dependency Updates: Safe minor/patch version bumps
  6. Good Housekeeping: Removed deprecated eval-harness references
  7. Well-Structured Commits: Clear separation of concerns, detailed messages

📋 Performance & Architecture

✅ Install Script Performance:

  • Sparse checkout significantly reduces download size
  • --depth=1 minimizes git history
  • No unnecessary file operations
  • Minimal external dependencies (git, optional jq)

✅ Architecture Decisions:

  • Smart adoption of agent-skills-spec format
  • Simplified distribution model (git-based)
  • Better cross-platform compatibility
  • Proper validation at multiple levels

🎯 Recommendations

Non-blocking Improvements:

  1. Add PR description explaining:

    • Reason for MCP schema version bump
    • Whether this is a breaking change
    • Context for removing eval-harness
    • Link to MCP schema changelog
  2. Consider scope in first commit: chore(mcp): bump schema version per .claude/rules/git-workflow.md:69 (package-specific changes should include scope)

  3. Fix pre-existing MARKETPLACE.md bug: Add missing --claude flag at line 20 (can be done in follow-up PR or before merge)


Overall Assessment

Code Quality: ⭐⭐⭐⭐⭐ Excellent

  • Clean, focused commits with clear separation of concerns
  • Well-tested install script with proper error handling
  • Strong security practices throughout
  • Excellent refactoring reducing complexity

Documentation: ⭐⭐⭐⭐ Very Good

  • Comprehensive updates across multiple files
  • Clear, consistent messaging
  • One pre-existing bug (not introduced by this PR)

Architecture: ⭐⭐⭐⭐⭐ Excellent

  • Smart adoption of agent-skills-spec format
  • Simplified distribution model
  • Better cross-platform compatibility

Security: ⭐⭐⭐⭐⭐ Excellent

  • Input validation prevents attacks
  • Sparse checkout minimizes attack surface
  • Proper cleanup and error handling

Status

APPROVED - All changes in this PR are production-ready. The pre-existing MARKETPLACE.md bug should ideally be fixed before merge (or in immediate follow-up PR), but does not block this PR as it existed before these changes.

Summary: This PR successfully achieves its goals of updating the MCP schema, modernizing the plugin system, updating dependencies, and cleaning up deprecated references. The code quality is excellent with strong security practices. Four previous reviews have validated the core changes, and this review confirms their findings while analyzing the additional commits.


| Branch: chore/bump-mcp-schema

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants