aidevops 2.67.2 → 2.68.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -891,6 +891,33 @@ aidevops is registered as a **Claude Code plugin marketplace**. Install with two
891
891
 
892
892
  This installs the complete framework: ~15 domain agents, 80+ subagents, and 100+ helper scripts.
893
893
 
894
+ ### Importing External Skills
895
+
896
+ Import skills from any GitHub repository using `/add-skill`:
897
+
898
+ ```bash
899
+ # Import from GitHub (auto-detects format)
900
+ /add-skill owner/repo
901
+
902
+ # Examples
903
+ /add-skill anthropics/courses # SKILL.md format
904
+ /add-skill PatrickJS/awesome-cursorrules # .cursorrules format
905
+ /add-skill someone/agents-repo # AGENTS.md format
906
+ ```
907
+
908
+ **Supported formats:**
909
+ - `SKILL.md` - Agent Skills standard (preferred)
910
+ - `AGENTS.md` - Claude Code agents format
911
+ - `.cursorrules` - Cursor rules (auto-converted to SKILL.md)
912
+
913
+ **Features:**
914
+ - Conflict detection with existing skills
915
+ - Version tracking for updates (`/add-skill --check-updates`)
916
+ - Symlinks created for Claude Code, Cursor, Amp, and other tools
917
+ - Registry stored in `.agent/configs/skill-sources.json`
918
+
919
+ See `.agent/tools/build-agent/add-skill.md` for full documentation.
920
+
894
921
  ## **AI Agents & Subagents**
895
922
 
896
923
  **Agents are specialized AI personas with focused knowledge and tool access.** Instead of giving your AI assistant access to everything at once (which wastes context tokens), agents provide targeted capabilities for specific tasks.
@@ -1099,6 +1126,7 @@ Plans are tracked in `TODO.md` (all tasks) and `todo/PLANS.md` (complex executio
1099
1126
 
1100
1127
  | Command | Purpose |
1101
1128
  |---------|---------|
1129
+ | `/add-skill` | Import external skills from GitHub repos (SKILL.md, AGENTS.md, .cursorrules) |
1102
1130
  | `/agent-review` | Analyze session and suggest agent improvements |
1103
1131
  | `/session-review` | Review session for completeness and capture learnings |
1104
1132
  | `/full-loop` | End-to-end development loop (task → preflight → PR → postflight → deploy) |
package/VERSION CHANGED
@@ -1 +1 @@
1
- 2.67.2
1
+ 2.68.0
package/aidevops.sh CHANGED
@@ -3,7 +3,7 @@
3
3
  # AI DevOps Framework CLI
4
4
  # Usage: aidevops <command> [options]
5
5
  #
6
- # Version: 2.67.2
6
+ # Version: 2.68.0
7
7
 
8
8
  set -euo pipefail
9
9
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "aidevops",
3
- "version": "2.67.2",
3
+ "version": "2.68.0",
4
4
  "description": "AI DevOps Framework - AI-assisted development workflows, code quality, and deployment automation",
5
5
  "type": "module",
6
6
  "main": "index.js",
package/setup.sh CHANGED
@@ -3,7 +3,7 @@
3
3
  # AI Assistant Server Access Framework Setup Script
4
4
  # Helps developers set up the framework for their infrastructure
5
5
  #
6
- # Version: 2.67.2
6
+ # Version: 2.68.0
7
7
  #
8
8
  # Quick Install (one-liner):
9
9
  # bash <(curl -fsSL https://aidevops.dev/install)
@@ -1470,6 +1470,92 @@ generate_agent_skills() {
1470
1470
  return 0
1471
1471
  }
1472
1472
 
1473
+ # Create symlinks for imported skills to AI assistant skill directories
1474
+ create_skill_symlinks() {
1475
+ print_info "Creating symlinks for imported skills..."
1476
+
1477
+ local skill_sources="$HOME/.aidevops/agents/configs/skill-sources.json"
1478
+ local agents_dir="$HOME/.aidevops/agents"
1479
+
1480
+ # Skip if no skill-sources.json or jq not available
1481
+ if [[ ! -f "$skill_sources" ]]; then
1482
+ print_info "No imported skills found (skill-sources.json not present)"
1483
+ return 0
1484
+ fi
1485
+
1486
+ if ! command -v jq &>/dev/null; then
1487
+ print_warning "jq not found - cannot create skill symlinks"
1488
+ return 0
1489
+ fi
1490
+
1491
+ # Check if there are any skills
1492
+ local skill_count
1493
+ skill_count=$(jq '.skills | length' "$skill_sources" 2>/dev/null || echo "0")
1494
+
1495
+ if [[ "$skill_count" -eq 0 ]]; then
1496
+ print_info "No imported skills to symlink"
1497
+ return 0
1498
+ fi
1499
+
1500
+ # AI assistant skill directories
1501
+ local skill_dirs=(
1502
+ "$HOME/.config/opencode/skills"
1503
+ "$HOME/.codex/skills"
1504
+ "$HOME/.claude/skills"
1505
+ "$HOME/.config/amp/tools"
1506
+ )
1507
+
1508
+ # Create skill directories if they don't exist
1509
+ for dir in "${skill_dirs[@]}"; do
1510
+ mkdir -p "$dir" 2>/dev/null || true
1511
+ done
1512
+
1513
+ local created_count=0
1514
+
1515
+ # Read each skill and create symlinks
1516
+ while IFS= read -r skill_json; do
1517
+ local name local_path
1518
+ name=$(echo "$skill_json" | jq -r '.name')
1519
+ local_path=$(echo "$skill_json" | jq -r '.local_path')
1520
+
1521
+ # Skip if path doesn't exist
1522
+ local full_path="$agents_dir/${local_path#.agent/}"
1523
+ if [[ ! -f "$full_path" ]]; then
1524
+ print_warning "Skill file not found: $full_path"
1525
+ continue
1526
+ fi
1527
+
1528
+ # Create symlinks in each AI assistant directory
1529
+ for skill_dir in "${skill_dirs[@]}"; do
1530
+ local target_file
1531
+
1532
+ # Amp expects <name>.md directly, others expect <name>/SKILL.md
1533
+ if [[ "$skill_dir" == *"/amp/tools" ]]; then
1534
+ target_file="$skill_dir/${name}.md"
1535
+ else
1536
+ local target_dir="$skill_dir/$name"
1537
+ target_file="$target_dir/SKILL.md"
1538
+ # Create skill subdirectory
1539
+ mkdir -p "$target_dir" 2>/dev/null || continue
1540
+ fi
1541
+
1542
+ # Create symlink (remove existing first)
1543
+ rm -f "$target_file" 2>/dev/null || true
1544
+ if ln -sf "$full_path" "$target_file" 2>/dev/null; then
1545
+ ((created_count++))
1546
+ fi
1547
+ done
1548
+ done < <(jq -c '.skills[]' "$skill_sources" 2>/dev/null)
1549
+
1550
+ if [[ $created_count -gt 0 ]]; then
1551
+ print_success "Created $created_count skill symlinks across AI assistants"
1552
+ else
1553
+ print_info "No skill symlinks created"
1554
+ fi
1555
+
1556
+ return 0
1557
+ }
1558
+
1473
1559
  # Inject aidevops reference into AI assistant AGENTS.md files
1474
1560
  inject_agents_reference() {
1475
1561
  print_info "Adding aidevops reference to AI assistant configurations..."
@@ -2576,6 +2662,7 @@ main() {
2576
2662
  confirm_step "Extract OpenCode prompts" && extract_opencode_prompts
2577
2663
  confirm_step "Deploy aidevops agents to ~/.aidevops/agents/" && deploy_aidevops_agents
2578
2664
  confirm_step "Generate agent skills (SKILL.md files)" && generate_agent_skills
2665
+ confirm_step "Create symlinks for imported skills" && create_skill_symlinks
2579
2666
  confirm_step "Inject agents reference into AI configs" && inject_agents_reference
2580
2667
  confirm_step "Update OpenCode configuration" && update_opencode_config
2581
2668
  confirm_step "Setup Python environment (DSPy, crawl4ai)" && setup_python_env