refactor(projman): extract skills and consolidate commands
Major refactoring of projman plugin architecture: Skills Extraction (17 new files): - Extracted reusable knowledge from commands and agents into skills/ - branch-security, dependency-management, git-workflow, input-detection - issue-conventions, lessons-learned, mcp-tools-reference, planning-workflow - progress-tracking, repo-validation, review-checklist, runaway-detection - setup-workflows, sprint-approval, task-sizing, test-standards, wiki-conventions Command Consolidation (17 → 12 commands): - /setup: consolidates initial-setup, project-init, project-sync (--full/--quick/--sync) - /debug: consolidates debug-report, debug-review (report/review modes) - /test: consolidates test-check, test-gen (run/gen modes) - /sprint-status: absorbs sprint-diagram via --diagram flag Architecture Cleanup: - Remove plugin-level mcp-servers/ symlinks (6 plugins) - Remove plugin README.md files (12 files, ~2000 lines) - Update all documentation to reflect new command structure - Fix documentation drift in CONFIGURATION.md, COMMANDS-CHEATSHEET.md Commands are now thin dispatchers (~20-50 lines) that reference skills. Agents reference skills for domain knowledge instead of inline content. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
@@ -91,62 +91,16 @@ setup_shared_mcp() {
|
||||
cd "$REPO_ROOT"
|
||||
}
|
||||
|
||||
# --- Section 2: Verify Symlinks ---
|
||||
verify_symlinks() {
|
||||
log_info "Verifying MCP server symlinks..."
|
||||
# --- Section 2: Verify MCP Configuration ---
|
||||
verify_mcp_config() {
|
||||
log_info "Verifying MCP configuration..."
|
||||
|
||||
# Check projman -> gitea symlink
|
||||
local projman_gitea="$REPO_ROOT/plugins/projman/mcp-servers/gitea"
|
||||
if [[ -L "$projman_gitea" ]]; then
|
||||
log_success "projman/gitea symlink exists"
|
||||
local mcp_json="$REPO_ROOT/.mcp.json"
|
||||
if [[ -f "$mcp_json" ]]; then
|
||||
log_success ".mcp.json exists at repository root"
|
||||
else
|
||||
log_error "projman/gitea symlink missing"
|
||||
log_todo "Run: ln -s ../../../mcp-servers/gitea plugins/projman/mcp-servers/gitea"
|
||||
fi
|
||||
|
||||
# Check cmdb-assistant -> netbox symlink
|
||||
local cmdb_netbox="$REPO_ROOT/plugins/cmdb-assistant/mcp-servers/netbox"
|
||||
if [[ -L "$cmdb_netbox" ]]; then
|
||||
log_success "cmdb-assistant/netbox symlink exists"
|
||||
else
|
||||
log_error "cmdb-assistant/netbox symlink missing"
|
||||
log_todo "Run: ln -s ../../../mcp-servers/netbox plugins/cmdb-assistant/mcp-servers/netbox"
|
||||
fi
|
||||
|
||||
# Check pr-review -> gitea symlink
|
||||
local prreview_gitea="$REPO_ROOT/plugins/pr-review/mcp-servers/gitea"
|
||||
if [[ -L "$prreview_gitea" ]]; then
|
||||
log_success "pr-review/gitea symlink exists"
|
||||
else
|
||||
log_error "pr-review/gitea symlink missing"
|
||||
log_todo "Run: ln -s ../../../mcp-servers/gitea plugins/pr-review/mcp-servers/gitea"
|
||||
fi
|
||||
|
||||
# Check data-platform -> data-platform symlink
|
||||
local dataplatform_link="$REPO_ROOT/plugins/data-platform/mcp-servers/data-platform"
|
||||
if [[ -L "$dataplatform_link" ]]; then
|
||||
log_success "data-platform symlink exists"
|
||||
else
|
||||
log_error "data-platform symlink missing"
|
||||
log_todo "Run: ln -s ../../../mcp-servers/data-platform plugins/data-platform/mcp-servers/data-platform"
|
||||
fi
|
||||
|
||||
# Check viz-platform -> viz-platform symlink
|
||||
local vizplatform_link="$REPO_ROOT/plugins/viz-platform/mcp-servers/viz-platform"
|
||||
if [[ -L "$vizplatform_link" ]]; then
|
||||
log_success "viz-platform symlink exists"
|
||||
else
|
||||
log_error "viz-platform symlink missing"
|
||||
log_todo "Run: ln -s ../../../mcp-servers/viz-platform plugins/viz-platform/mcp-servers/viz-platform"
|
||||
fi
|
||||
|
||||
# Check contract-validator -> contract-validator symlink
|
||||
local contractvalidator_link="$REPO_ROOT/plugins/contract-validator/mcp-servers/contract-validator"
|
||||
if [[ -L "$contractvalidator_link" ]]; then
|
||||
log_success "contract-validator symlink exists"
|
||||
else
|
||||
log_error "contract-validator symlink missing"
|
||||
log_todo "Run: ln -s ../../../mcp-servers/contract-validator plugins/contract-validator/mcp-servers/contract-validator"
|
||||
log_error ".mcp.json missing at repository root"
|
||||
log_todo "Create .mcp.json with MCP server configurations"
|
||||
fi
|
||||
}
|
||||
|
||||
@@ -335,8 +289,8 @@ main() {
|
||||
setup_shared_mcp "viz-platform"
|
||||
setup_shared_mcp "contract-validator"
|
||||
|
||||
# Verify symlinks from plugins to shared MCP servers
|
||||
verify_symlinks
|
||||
# Verify MCP configuration at root
|
||||
verify_mcp_config
|
||||
|
||||
# Configuration
|
||||
setup_config_templates
|
||||
|
||||
@@ -248,58 +248,25 @@ done
|
||||
|
||||
echo "✓ All file references validated"
|
||||
|
||||
# v3.0.0: Validate MCP server symlinks
|
||||
# Validate MCP servers and configuration
|
||||
echo ""
|
||||
echo "=== Validating MCP Server Symlinks (v3.0.0+) ==="
|
||||
echo "=== Validating MCP Servers ==="
|
||||
|
||||
# Check shared MCP servers exist
|
||||
if [[ ! -d "$ROOT_DIR/mcp-servers/gitea" ]]; then
|
||||
echo "ERROR: Shared gitea MCP server not found at mcp-servers/gitea/"
|
||||
exit 1
|
||||
fi
|
||||
echo "✓ Shared gitea MCP server exists"
|
||||
|
||||
if [[ ! -d "$ROOT_DIR/mcp-servers/netbox" ]]; then
|
||||
echo "ERROR: Shared netbox MCP server not found at mcp-servers/netbox/"
|
||||
exit 1
|
||||
fi
|
||||
echo "✓ Shared netbox MCP server exists"
|
||||
|
||||
if [[ ! -d "$ROOT_DIR/mcp-servers/data-platform" ]]; then
|
||||
echo "ERROR: Shared data-platform MCP server not found at mcp-servers/data-platform/"
|
||||
exit 1
|
||||
fi
|
||||
echo "✓ Shared data-platform MCP server exists"
|
||||
|
||||
# Check symlinks for plugins that use MCP servers
|
||||
check_mcp_symlink() {
|
||||
local plugin_name="$1"
|
||||
local server_name="$2"
|
||||
local symlink_path="$ROOT_DIR/plugins/$plugin_name/mcp-servers/$server_name"
|
||||
|
||||
if [[ -L "$symlink_path" ]]; then
|
||||
# Verify symlink resolves correctly
|
||||
if [[ -d "$symlink_path" ]]; then
|
||||
echo "✓ $plugin_name -> $server_name symlink valid"
|
||||
else
|
||||
echo "ERROR: $plugin_name -> $server_name symlink broken (does not resolve)"
|
||||
exit 1
|
||||
fi
|
||||
else
|
||||
echo "ERROR: Missing symlink at plugins/$plugin_name/mcp-servers/$server_name"
|
||||
for server in gitea netbox data-platform viz-platform contract-validator; do
|
||||
if [[ ! -d "$ROOT_DIR/mcp-servers/$server" ]]; then
|
||||
echo "ERROR: Shared $server MCP server not found at mcp-servers/$server/"
|
||||
exit 1
|
||||
fi
|
||||
}
|
||||
echo "✓ Shared $server MCP server exists"
|
||||
done
|
||||
|
||||
# Plugins with gitea MCP dependency
|
||||
check_mcp_symlink "projman" "gitea"
|
||||
check_mcp_symlink "pr-review" "gitea"
|
||||
|
||||
# Plugins with netbox MCP dependency
|
||||
check_mcp_symlink "cmdb-assistant" "netbox"
|
||||
|
||||
# Plugins with data-platform MCP dependency
|
||||
check_mcp_symlink "data-platform" "data-platform"
|
||||
# Check .mcp.json exists at root
|
||||
if [[ ! -f "$ROOT_DIR/.mcp.json" ]]; then
|
||||
echo "ERROR: .mcp.json not found at repository root"
|
||||
exit 1
|
||||
fi
|
||||
echo "✓ .mcp.json configuration exists"
|
||||
|
||||
echo ""
|
||||
echo "=== All validations passed ==="
|
||||
|
||||
Reference in New Issue
Block a user