The MCP consolidation commit (afd4c44) deleted plugin-level .mcp.json files
but left references to them in plugin.json and marketplace.json. This caused
7 plugins to fail loading (projman, pr-review, cmdb-assistant, data-platform,
viz-platform, contract-validator, and indirectly git-flow/clarity-assist).
Changes:
- Remove mcpServers field from 6 plugin.json files (file no longer exists)
- Remove mcpServers field from 6 marketplace.json entries
- Add file reference validation to validate-marketplace.sh:
- Validates mcpServers references point to existing files
- Validates hooks references point to existing files
- Validates commands references point to existing paths
- Add pre-commit hook (.git/hooks/pre-commit) to enforce validation
The validation script will now FAIL if any config file references a
non-existent file, preventing this class of bug from happening again.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Move all MCP server declarations from individual plugin .mcp.json files
to a single .mcp.json at the marketplace root. This fixes MCP loading
failures where only one plugin's MCP would load.
- Add .mcp.json at marketplace root with all 5 servers
- Remove plugin-level .mcp.json files (projman, pr-review, cmdb-assistant,
data-platform, viz-platform, contract-validator)
- Update CLAUDE.md to reflect new architecture
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
The startup-check.sh hook was clearing ~/.claude/plugins/cache/ at every
session start, which was aggressive and potentially disruptive. Cache
clearing is now a manual operation via the new /clear-cache command.
Changes:
- Remove automatic cache clearing from startup-check.sh
- Add /clear-cache command for manual cache clearing when needed
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
MCP library validates schema BEFORE call_tool handler runs, so
our _coerce_types function never gets a chance to convert strings.
Changed all integer fields to accept both types:
- issue_number, milestone_id, pr_number, depends_on, milestone, limit, position
This fixes: "Input validation error: '312' is not of type 'integer'"
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Remove all output by default to prevent workflow interruption
- Queue changes silently to .doc-guardian-queue
- Add file+type deduplication (same file won't be queued twice)
- Add DOC_GUARDIAN_VERBOSE=1 env var for opt-in notifications
- Users run /doc-sync or /doc-audit to process queue
Fixes#312 (partial - addresses issues 1, 2, 3)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Add [Unreleased] section with Sprint 7 multi-model support changes
- Fix CLAUDE.md plugin version table to match actual plugin.json files
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Add validation for:
- defaultModel field in plugin.json (must be opus|sonnet|haiku)
- model field in agent frontmatter (must be opus|sonnet|haiku)
The validation passes when fields are absent (optional) but errors
if present with invalid values.
Fixes#306
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Add defaultModel: sonnet to all plugin manifests that have agents,
establishing the plugin-level default in the model inheritance chain.
Version bumps:
- projman: 3.2.0 → 3.3.0 (minor: new feature)
- pr-review: 1.0.0 → 1.1.0 (minor: new feature)
- data-platform: 1.0.0 → 1.1.0 (minor: new feature)
- viz-platform: 1.0.0 → 1.1.0 (minor: new feature)
- code-sentinel: 1.0.0 → 1.0.1 (patch: config addition)
- contract-validator: 1.0.0 → 1.1.0 (minor: new feature)
Fixes#305
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Create docs/MODEL-RECOMMENDATIONS.md with task-type guidance
- Update docs/CONFIGURATION.md with model configuration section
- Update CLAUDE.md with agent model configuration overview
Fixes#302
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Changed from nested object format to array format to fix
"PreToolUse:Bash hook error" with no message.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
NEVER use gh, tea, curl to APIs, or any CLI for external services.
MCP tools are the ONLY allowed method.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Merged two overlapping rules sections into one unified section:
- "MANDATORY BEHAVIOR RULES" + "CRITICAL: Rules" → "RULES"
- Converted verbose lists to scannable tables
- Reduced from 381 to 332 lines (-13%)
- All rules preserved, just better organized
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
PRs merged to development don't trigger Gitea's auto-close feature
(only merges to main do). Added warnings in Steps 13 and 15 to remind
about mandatory manual issue closing after PR merge.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Adds early detection of version drift between README.md, marketplace.json,
and CHANGELOG.md at session start. When versions don't match, displays
a warning and suggests running /suggest-version to analyze and fix.
This addresses acceptance criteria #4 from issue #290:
- [x] SessionStart warns about version drift
Remaining criteria for future PRs:
- [ ] Version mismatch detected before commit (PreToolUse hook)
- [ ] /sprint-close includes version bump step (enforcement)
- [ ] Release workflow works with protected branches (PR creation)
Partial fix for #290
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
The PostToolUse hook was causing workflow interruptions because:
1. Actionable language ("update needed") triggered Claude to seek confirmation
2. Rapid edits (4+ in sequence) generated multiple notifications
Changes:
- Message changed from "update needed" to "drift queued" (passive, informational)
- Added 5-second debouncing: same-type edits within window are silently queued
- Added queue clearing step to doc-sync.md command
Note: Issue #287 also mentions URL restriction behavior, but this was not
found in the current codebase - may have been a different component or
already fixed. Marking as partial fix.
Fixes#287
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Addresses issue #278 - sprint-diagram command not discoverable after Sprint 4.
Root cause: Claude Code discovers skills at session start. Commands added
during a session are NOT discoverable until restart.
Prevention: Added step 7 "New Command Verification" to sprint-close workflow:
- Reminds about session restart requirement
- Creates follow-up verification task
- Explains why this happens
Lesson learned created: lessons/patterns/sprint-4---new-commands-not-discoverable-until-session-restart
Closes#278
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Update documentation to reflect that GITEA_REPO expects owner/repo
format (e.g., my-org/my-repo) instead of separate GITEA_ORG and
GITEA_REPO variables.
This matches the actual MCP server implementation in config.py.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>