aircana 3.2.1 → 4.0.0.rc2

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.
Files changed (36) hide show
  1. checksums.yaml +4 -4
  2. data/.rspec_status +168 -153
  3. data/CHANGELOG.md +55 -0
  4. data/CLAUDE.md +50 -39
  5. data/README.md +70 -76
  6. data/lib/aircana/cli/app.rb +16 -21
  7. data/lib/aircana/cli/commands/generate.rb +0 -12
  8. data/lib/aircana/cli/commands/kb.rb +590 -0
  9. data/lib/aircana/cli/help_formatter.rb +5 -4
  10. data/lib/aircana/configuration.rb +13 -28
  11. data/lib/aircana/contexts/confluence.rb +55 -24
  12. data/lib/aircana/contexts/confluence_content.rb +48 -5
  13. data/lib/aircana/contexts/local.rb +8 -9
  14. data/lib/aircana/contexts/manifest.rb +46 -34
  15. data/lib/aircana/contexts/web.rb +47 -17
  16. data/lib/aircana/generators/skills_generator.rb +194 -0
  17. data/lib/aircana/templates/skills/base_skill.erb +12 -0
  18. data/lib/aircana/version.rb +1 -1
  19. metadata +4 -18
  20. data/lib/aircana/cli/commands/agents.rb +0 -733
  21. data/lib/aircana/generators/agents_generator.rb +0 -79
  22. data/lib/aircana/templates/agents/base_agent.erb +0 -31
  23. data/lib/aircana/templates/agents/defaults/apply_feedback.erb +0 -91
  24. data/lib/aircana/templates/agents/defaults/executor.erb +0 -84
  25. data/lib/aircana/templates/agents/defaults/jira.erb +0 -45
  26. data/lib/aircana/templates/agents/defaults/planner.erb +0 -63
  27. data/lib/aircana/templates/agents/defaults/reviewer.erb +0 -94
  28. data/lib/aircana/templates/agents/defaults/sub-agent-coordinator.erb +0 -90
  29. data/lib/aircana/templates/hooks/refresh_agents.erb +0 -66
  30. data/lib/aircana/templates/hooks/sync_local_knowledge.erb +0 -86
  31. data/spec_target_1760656566_428/agents/test-agent/manifest.json +0 -16
  32. data/spec_target_1760656588_38/agents/test-agent/manifest.json +0 -16
  33. data/spec_target_1760656647_612/agents/test-agent/manifest.json +0 -16
  34. data/spec_target_1760656660_113/agents/test-agent/manifest.json +0 -16
  35. data/spec_target_1760656689_268/agents/test-agent/manifest.json +0 -16
  36. data/spec_target_1760656710_387/agents/test-agent/manifest.json +0 -16
@@ -1,86 +0,0 @@
1
- #!/bin/bash
2
- # Sync local agent knowledge bases to ~/.claude on session start
3
- # Compatible with macOS and Linux
4
-
5
- set -e
6
-
7
- # Create log directory
8
- mkdir -p ~/.aircana
9
- LOG_FILE="$HOME/.aircana/hooks.log"
10
-
11
- # Get plugin root from environment
12
- PLUGIN_ROOT="${CLAUDE_PLUGIN_ROOT}"
13
-
14
- if [ -z "$PLUGIN_ROOT" ]; then
15
- echo "$(date): Warning - CLAUDE_PLUGIN_ROOT not set, skipping knowledge sync" >> "$LOG_FILE"
16
- echo "{}"
17
- exit 0
18
- fi
19
-
20
- # Source: version-controlled local knowledge in plugin
21
- # Target: ~/.claude/agents/<plugin-name>-<agent-name>/knowledge/
22
- LOCAL_AGENTS_DIR="${PLUGIN_ROOT}/agents"
23
- CLAUDE_AGENTS_DIR="$HOME/.claude/agents"
24
-
25
- # Only proceed if agents directory exists
26
- if [ ! -d "$LOCAL_AGENTS_DIR" ]; then
27
- echo "{}"
28
- exit 0
29
- fi
30
-
31
- # Read plugin name from plugin.json
32
- PLUGIN_NAME=$(grep -o '"name"[[:space:]]*:[[:space:]]*"[^"]*"' "${PLUGIN_ROOT}/.claude-plugin/plugin.json" | head -1 | sed 's/.*: *"\([^"]*\)".*/\1/')
33
-
34
- if [ -z "$PLUGIN_NAME" ]; then
35
- echo "$(date): Warning - Could not read plugin name" >> "$LOG_FILE"
36
- echo "{}"
37
- exit 0
38
- fi
39
-
40
- SYNCED_COUNT=0
41
-
42
- # Iterate through each agent directory
43
- for agent_dir in "$LOCAL_AGENTS_DIR"/*; do
44
- if [ ! -d "$agent_dir" ]; then
45
- continue
46
- fi
47
-
48
- agent_name=$(basename "$agent_dir")
49
- manifest_file="${agent_dir}/manifest.json"
50
-
51
- # Check if manifest exists and has kb_type: local
52
- if [ -f "$manifest_file" ]; then
53
- kb_type=$(grep -o '"kb_type"[[:space:]]*:[[:space:]]*"[^"]*"' "$manifest_file" | sed 's/.*: *"\([^"]*\)".*/\1/')
54
-
55
- if [ "$kb_type" = "local" ]; then
56
- # Source: version-controlled knowledge in plugin
57
- source_knowledge="${agent_dir}/knowledge"
58
-
59
- # Target: ~/.claude/agents/<plugin-name>-<agent-name>/knowledge/
60
- target_knowledge="${CLAUDE_AGENTS_DIR}/${PLUGIN_NAME}-${agent_name}/knowledge"
61
-
62
- if [ -d "$source_knowledge" ]; then
63
- # Create target directory
64
- mkdir -p "$target_knowledge"
65
-
66
- # Sync knowledge files (rsync if available, fallback to cp)
67
- if command -v rsync &> /dev/null; then
68
- rsync -a --delete "$source_knowledge/" "$target_knowledge/"
69
- else
70
- # Fallback: remove old files and copy new ones
71
- rm -rf "$target_knowledge"/*
72
- cp -R "$source_knowledge"/* "$target_knowledge/" 2>/dev/null || true
73
- fi
74
-
75
- SYNCED_COUNT=$((SYNCED_COUNT + 1))
76
- echo "$(date): Synced local knowledge for agent: ${agent_name}" >> "$LOG_FILE"
77
- fi
78
- fi
79
- fi
80
- done
81
-
82
- if [ $SYNCED_COUNT -gt 0 ]; then
83
- echo "$(date): Synced ${SYNCED_COUNT} local agent knowledge base(s)" >> "$LOG_FILE"
84
- fi
85
-
86
- echo "{}"
@@ -1,16 +0,0 @@
1
- {
2
- "version": "1.0",
3
- "agent": "test-agent",
4
- "kb_type": "remote",
5
- "sources": [
6
- {
7
- "type": "confluence",
8
- "label": "test-agent",
9
- "pages": [
10
- {
11
- "id": "123"
12
- }
13
- ]
14
- }
15
- ]
16
- }
@@ -1,16 +0,0 @@
1
- {
2
- "version": "1.0",
3
- "agent": "test-agent",
4
- "kb_type": "remote",
5
- "sources": [
6
- {
7
- "type": "confluence",
8
- "label": "test-agent",
9
- "pages": [
10
- {
11
- "id": "123"
12
- }
13
- ]
14
- }
15
- ]
16
- }
@@ -1,16 +0,0 @@
1
- {
2
- "version": "1.0",
3
- "agent": "test-agent",
4
- "kb_type": "remote",
5
- "sources": [
6
- {
7
- "type": "confluence",
8
- "label": "test-agent",
9
- "pages": [
10
- {
11
- "id": "123"
12
- }
13
- ]
14
- }
15
- ]
16
- }
@@ -1,16 +0,0 @@
1
- {
2
- "version": "1.0",
3
- "agent": "test-agent",
4
- "kb_type": "remote",
5
- "sources": [
6
- {
7
- "type": "confluence",
8
- "label": "test-agent",
9
- "pages": [
10
- {
11
- "id": "123"
12
- }
13
- ]
14
- }
15
- ]
16
- }
@@ -1,16 +0,0 @@
1
- {
2
- "version": "1.0",
3
- "agent": "test-agent",
4
- "kb_type": "remote",
5
- "sources": [
6
- {
7
- "type": "confluence",
8
- "label": "test-agent",
9
- "pages": [
10
- {
11
- "id": "123"
12
- }
13
- ]
14
- }
15
- ]
16
- }
@@ -1,16 +0,0 @@
1
- {
2
- "version": "1.0",
3
- "agent": "test-agent",
4
- "kb_type": "remote",
5
- "sources": [
6
- {
7
- "type": "confluence",
8
- "label": "test-agent",
9
- "pages": [
10
- {
11
- "id": "123"
12
- }
13
- ]
14
- }
15
- ]
16
- }