codeforge-dev 1.5.7 → 1.7.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.
Files changed (80) hide show
  1. package/.devcontainer/.env +2 -1
  2. package/.devcontainer/CHANGELOG.md +55 -9
  3. package/.devcontainer/CLAUDE.md +65 -15
  4. package/.devcontainer/README.md +67 -6
  5. package/.devcontainer/config/keybindings.json +5 -0
  6. package/.devcontainer/config/main-system-prompt.md +63 -2
  7. package/.devcontainer/config/settings.json +25 -6
  8. package/.devcontainer/devcontainer.json +23 -7
  9. package/.devcontainer/features/README.md +21 -7
  10. package/.devcontainer/features/ccburn/README.md +60 -0
  11. package/.devcontainer/features/ccburn/devcontainer-feature.json +38 -0
  12. package/.devcontainer/features/ccburn/install.sh +174 -0
  13. package/.devcontainer/features/ccstatusline/README.md +22 -21
  14. package/.devcontainer/features/ccstatusline/devcontainer-feature.json +1 -1
  15. package/.devcontainer/features/ccstatusline/install.sh +48 -16
  16. package/.devcontainer/features/claude-code/config/settings.json +60 -24
  17. package/.devcontainer/features/mcp-qdrant/devcontainer-feature.json +1 -1
  18. package/.devcontainer/features/mcp-reasoner/devcontainer-feature.json +1 -1
  19. package/.devcontainer/plugins/devs-marketplace/plugins/auto-formatter/scripts/__pycache__/format-on-stop.cpython-314.pyc +0 -0
  20. package/.devcontainer/plugins/devs-marketplace/plugins/auto-formatter/scripts/format-on-stop.py +21 -6
  21. package/.devcontainer/plugins/devs-marketplace/plugins/auto-linter/scripts/__pycache__/lint-file.cpython-314.pyc +0 -0
  22. package/.devcontainer/plugins/devs-marketplace/plugins/auto-linter/scripts/lint-file.py +7 -10
  23. package/.devcontainer/plugins/devs-marketplace/plugins/code-directive/REVIEW-RUBRIC.md +440 -0
  24. package/.devcontainer/plugins/devs-marketplace/plugins/code-directive/agents/architect.md +190 -0
  25. package/.devcontainer/plugins/devs-marketplace/plugins/code-directive/agents/bash-exec.md +173 -0
  26. package/.devcontainer/plugins/devs-marketplace/plugins/code-directive/agents/claude-guide.md +155 -0
  27. package/.devcontainer/plugins/devs-marketplace/plugins/code-directive/agents/dependency-analyst.md +248 -0
  28. package/.devcontainer/plugins/devs-marketplace/plugins/code-directive/agents/doc-writer.md +233 -0
  29. package/.devcontainer/plugins/devs-marketplace/plugins/code-directive/agents/explorer.md +235 -0
  30. package/.devcontainer/plugins/devs-marketplace/plugins/code-directive/agents/generalist.md +125 -0
  31. package/.devcontainer/plugins/devs-marketplace/plugins/code-directive/agents/git-archaeologist.md +242 -0
  32. package/.devcontainer/plugins/devs-marketplace/plugins/code-directive/agents/migrator.md +195 -0
  33. package/.devcontainer/plugins/devs-marketplace/plugins/code-directive/agents/perf-profiler.md +265 -0
  34. package/.devcontainer/plugins/devs-marketplace/plugins/code-directive/agents/refactorer.md +209 -0
  35. package/.devcontainer/plugins/devs-marketplace/plugins/code-directive/agents/researcher.md +195 -0
  36. package/.devcontainer/plugins/devs-marketplace/plugins/code-directive/agents/security-auditor.md +289 -0
  37. package/.devcontainer/plugins/devs-marketplace/plugins/code-directive/agents/spec-writer.md +284 -0
  38. package/.devcontainer/plugins/devs-marketplace/plugins/code-directive/agents/statusline-config.md +188 -0
  39. package/.devcontainer/plugins/devs-marketplace/plugins/code-directive/agents/test-writer.md +245 -0
  40. package/.devcontainer/plugins/devs-marketplace/plugins/code-directive/hooks/hooks.json +12 -0
  41. package/.devcontainer/plugins/devs-marketplace/plugins/code-directive/scripts/__pycache__/guard-readonly-bash.cpython-314.pyc +0 -0
  42. package/.devcontainer/plugins/devs-marketplace/plugins/code-directive/scripts/__pycache__/redirect-builtin-agents.cpython-314.pyc +0 -0
  43. package/.devcontainer/plugins/devs-marketplace/plugins/code-directive/scripts/__pycache__/skill-suggester.cpython-314.pyc +0 -0
  44. package/.devcontainer/plugins/devs-marketplace/plugins/code-directive/scripts/__pycache__/syntax-validator.cpython-314.pyc +0 -0
  45. package/.devcontainer/plugins/devs-marketplace/plugins/code-directive/scripts/__pycache__/verify-no-regression.cpython-314.pyc +0 -0
  46. package/.devcontainer/plugins/devs-marketplace/plugins/code-directive/scripts/__pycache__/verify-tests-pass.cpython-314.pyc +0 -0
  47. package/.devcontainer/plugins/devs-marketplace/plugins/code-directive/scripts/guard-readonly-bash.py +611 -0
  48. package/.devcontainer/plugins/devs-marketplace/plugins/code-directive/scripts/redirect-builtin-agents.py +83 -0
  49. package/.devcontainer/plugins/devs-marketplace/plugins/code-directive/scripts/skill-suggester.py +85 -2
  50. package/.devcontainer/plugins/devs-marketplace/plugins/code-directive/scripts/syntax-validator.py +9 -4
  51. package/.devcontainer/plugins/devs-marketplace/plugins/code-directive/scripts/verify-no-regression.py +221 -0
  52. package/.devcontainer/plugins/devs-marketplace/plugins/code-directive/scripts/verify-tests-pass.py +176 -0
  53. package/.devcontainer/plugins/devs-marketplace/plugins/code-directive/skills/claude-agent-sdk/SKILL.md +599 -0
  54. package/.devcontainer/plugins/devs-marketplace/plugins/code-directive/skills/claude-agent-sdk/references/sdk-typescript-reference.md +954 -0
  55. package/.devcontainer/plugins/devs-marketplace/plugins/code-directive/skills/git-forensics/SKILL.md +276 -0
  56. package/.devcontainer/plugins/devs-marketplace/plugins/code-directive/skills/git-forensics/references/advanced-commands.md +332 -0
  57. package/.devcontainer/plugins/devs-marketplace/plugins/code-directive/skills/git-forensics/references/investigation-playbooks.md +319 -0
  58. package/.devcontainer/plugins/devs-marketplace/plugins/code-directive/skills/performance-profiling/SKILL.md +341 -0
  59. package/.devcontainer/plugins/devs-marketplace/plugins/code-directive/skills/performance-profiling/references/interpreting-results.md +235 -0
  60. package/.devcontainer/plugins/devs-marketplace/plugins/code-directive/skills/performance-profiling/references/tool-commands.md +395 -0
  61. package/.devcontainer/plugins/devs-marketplace/plugins/code-directive/skills/refactoring-patterns/SKILL.md +344 -0
  62. package/.devcontainer/plugins/devs-marketplace/plugins/code-directive/skills/refactoring-patterns/references/safe-transformations.md +247 -0
  63. package/.devcontainer/plugins/devs-marketplace/plugins/code-directive/skills/refactoring-patterns/references/smell-catalog.md +332 -0
  64. package/.devcontainer/plugins/devs-marketplace/plugins/code-directive/skills/security-checklist/SKILL.md +277 -0
  65. package/.devcontainer/plugins/devs-marketplace/plugins/code-directive/skills/security-checklist/references/owasp-patterns.md +269 -0
  66. package/.devcontainer/plugins/devs-marketplace/plugins/code-directive/skills/security-checklist/references/secrets-patterns.md +253 -0
  67. package/.devcontainer/plugins/devs-marketplace/plugins/code-directive/skills/specification-writing/SKILL.md +288 -0
  68. package/.devcontainer/plugins/devs-marketplace/plugins/code-directive/skills/specification-writing/references/criteria-patterns.md +245 -0
  69. package/.devcontainer/plugins/devs-marketplace/plugins/code-directive/skills/specification-writing/references/ears-templates.md +239 -0
  70. package/.devcontainer/plugins/devs-marketplace/plugins/protected-files-guard/scripts/__pycache__/guard-protected.cpython-314.pyc +0 -0
  71. package/.devcontainer/plugins/devs-marketplace/plugins/protected-files-guard/scripts/guard-protected.py +40 -39
  72. package/.devcontainer/scripts/setup-aliases.sh +10 -20
  73. package/.devcontainer/scripts/setup-config.sh +2 -0
  74. package/.devcontainer/scripts/setup-plugins.sh +38 -46
  75. package/.devcontainer/scripts/setup-projects.sh +175 -0
  76. package/.devcontainer/scripts/setup-symlink-claude.sh +36 -0
  77. package/.devcontainer/scripts/setup-update-claude.sh +11 -8
  78. package/.devcontainer/scripts/setup.sh +4 -2
  79. package/package.json +1 -1
  80. package/.devcontainer/scripts/setup-irie-claude.sh +0 -32
@@ -0,0 +1,175 @@
1
+ #!/bin/bash
2
+ # Auto-detect projects under /workspaces/ and register them in Project Manager's projects.json.
3
+ # Runs an initial scan synchronously, then starts an inotifywait background watcher
4
+ # that updates the project list instantly when directories are created or removed.
5
+
6
+ set -euo pipefail
7
+
8
+ WORKSPACE_ROOT="${WORKSPACE_ROOT:-/workspaces}"
9
+ PROJECTS_DIR="${WORKSPACE_ROOT}/.config/project-manager"
10
+ PROJECTS_FILE="${PROJECTS_DIR}/projects.json"
11
+ PID_FILE="/tmp/project-watcher.pid"
12
+ LOG_PREFIX="[setup-projects]"
13
+
14
+ # Directories to exclude from project detection (hidden/config dirs)
15
+ EXCLUDED_DIRS=".claude .gh .tmp .devcontainer .config node_modules .git"
16
+
17
+ # --- Helpers ---
18
+
19
+ is_excluded() {
20
+ local name="$1"
21
+ # Skip hidden directories (start with .)
22
+ [[ "$name" == .* ]] && return 0
23
+ # Skip explicitly excluded names
24
+ for excluded in $EXCLUDED_DIRS; do
25
+ [[ "$name" == "$excluded" ]] && return 0
26
+ done
27
+ return 1
28
+ }
29
+
30
+ detect_tags() {
31
+ local dir="$1"
32
+ local tags=()
33
+
34
+ [ -d "$dir/.git" ] && tags+=("git")
35
+ [ -f "$dir/package.json" ] && tags+=("node")
36
+ [ -f "$dir/pyproject.toml" ] && tags+=("python")
37
+ [ -f "$dir/Cargo.toml" ] && tags+=("rust")
38
+ [ -f "$dir/go.mod" ] && tags+=("go")
39
+ [ -f "$dir/deno.json" ] && tags+=("deno")
40
+ [ -f "$dir/Makefile" ] && tags+=("make")
41
+ [ -f "$dir/CLAUDE.md" ] && tags+=("claude")
42
+
43
+ # Always add "auto" tag to mark as script-managed
44
+ tags+=("auto")
45
+
46
+ # If no markers found (only "auto"), add "folder" tag
47
+ if [ ${#tags[@]} -eq 1 ]; then
48
+ tags=("folder" "${tags[@]}")
49
+ fi
50
+
51
+ # Output as JSON array
52
+ printf '%s\n' "${tags[@]}" | jq -R . | jq -s .
53
+ }
54
+
55
+ scan_and_update() {
56
+ # Build the new auto-detected projects array
57
+ local new_projects="[]"
58
+
59
+ for dir in "$WORKSPACE_ROOT"/*/; do
60
+ [ -d "$dir" ] || continue
61
+ local name
62
+ name=$(basename "$dir")
63
+
64
+ is_excluded "$name" && continue
65
+
66
+ local tags
67
+ tags=$(detect_tags "$dir")
68
+
69
+ new_projects=$(echo "$new_projects" | jq \
70
+ --arg name "$name" \
71
+ --arg path "$dir" \
72
+ --argjson tags "$tags" \
73
+ '. += [{"name": $name, "rootPath": ($path | rtrimstr("/")), "tags": $tags, "enabled": true}]')
74
+ done
75
+
76
+ # Read existing projects.json (or empty array if missing/invalid)
77
+ local existing="[]"
78
+ if [ -f "$PROJECTS_FILE" ] && jq empty "$PROJECTS_FILE" 2>/dev/null; then
79
+ existing=$(cat "$PROJECTS_FILE")
80
+ fi
81
+
82
+ # Separate user entries (no "auto" tag) from auto entries
83
+ local user_entries
84
+ user_entries=$(echo "$existing" | jq '[.[] | select(.tags | index("auto") | not)]')
85
+
86
+ # Merge: user entries + new auto-detected entries
87
+ local merged
88
+ merged=$(jq -n --argjson user "$user_entries" --argjson auto "$new_projects" '$user + $auto')
89
+
90
+ # Only write if content changed (avoid unnecessary file writes that trigger Project Manager reloads)
91
+ local current_hash new_hash
92
+ current_hash=""
93
+ [ -f "$PROJECTS_FILE" ] && current_hash=$(md5sum "$PROJECTS_FILE" 2>/dev/null | cut -d' ' -f1)
94
+
95
+ local tmp_file
96
+ tmp_file=$(mktemp)
97
+ echo "$merged" | jq '.' > "$tmp_file"
98
+ new_hash=$(md5sum "$tmp_file" | cut -d' ' -f1)
99
+
100
+ if [ "$current_hash" != "$new_hash" ]; then
101
+ mv "$tmp_file" "$PROJECTS_FILE"
102
+ chmod 644 "$PROJECTS_FILE"
103
+ local count
104
+ count=$(echo "$merged" | jq 'length')
105
+ echo "$LOG_PREFIX Updated projects.json ($count projects)"
106
+ else
107
+ rm -f "$tmp_file"
108
+ fi
109
+ }
110
+
111
+ start_watcher() {
112
+ # Guard: don't start if already running
113
+ if [ -f "$PID_FILE" ]; then
114
+ local old_pid
115
+ old_pid=$(cat "$PID_FILE" 2>/dev/null)
116
+ if [ -n "$old_pid" ] && kill -0 "$old_pid" 2>/dev/null; then
117
+ echo "$LOG_PREFIX Watcher already running (PID $old_pid), skipping"
118
+ return 0
119
+ fi
120
+ # Stale PID file — clean up
121
+ rm -f "$PID_FILE"
122
+ fi
123
+
124
+ # Check if inotifywait is available
125
+ if ! command -v inotifywait &>/dev/null; then
126
+ echo "$LOG_PREFIX Installing inotify-tools..."
127
+ if command -v sudo &>/dev/null; then
128
+ sudo apt-get update -qq && sudo apt-get install -y -qq inotify-tools >/dev/null 2>&1
129
+ else
130
+ apt-get update -qq && apt-get install -y -qq inotify-tools >/dev/null 2>&1
131
+ fi
132
+
133
+ if ! command -v inotifywait &>/dev/null; then
134
+ echo "$LOG_PREFIX WARNING: Could not install inotify-tools, watcher disabled"
135
+ return 1
136
+ fi
137
+ echo "$LOG_PREFIX inotify-tools installed"
138
+ fi
139
+
140
+ # Fork background watcher
141
+ (
142
+ # Watch for directory create/delete/move events in /workspaces/
143
+ # --quiet suppresses header, --monitor keeps watching indefinitely
144
+ inotifywait -m -q -e create,delete,moved_to,moved_from \
145
+ --format '%f %e' "$WORKSPACE_ROOT" 2>/dev/null |
146
+ while read -r name event; do
147
+ # Small delay to let filesystem settle (e.g., move operations)
148
+ sleep 1
149
+ scan_and_update
150
+ done
151
+
152
+ # Cleanup on exit
153
+ rm -f "$PID_FILE"
154
+ ) &
155
+ local watcher_pid=$!
156
+ echo "$watcher_pid" > "$PID_FILE"
157
+ disown
158
+
159
+ echo "$LOG_PREFIX Background watcher started (PID $watcher_pid)"
160
+ }
161
+
162
+ # --- Main ---
163
+
164
+ echo "$LOG_PREFIX Configuring Project Manager auto-detection..."
165
+
166
+ # Ensure projects directory exists
167
+ mkdir -p "$PROJECTS_DIR"
168
+
169
+ # Initial scan (synchronous — runs in <1 second)
170
+ scan_and_update
171
+
172
+ # Start background watcher
173
+ start_watcher
174
+
175
+ echo "$LOG_PREFIX Done"
@@ -0,0 +1,36 @@
1
+ #!/bin/bash
2
+ # Symlink $HOME/.claude → $CLAUDE_CONFIG_DIR so third-party tools
3
+ # (ccburn, ccusage, etc.) that hardcode ~/.claude can find auth and config.
4
+
5
+ CLAUDE_DIR="${CLAUDE_CONFIG_DIR:=/workspaces/.claude}"
6
+ HOME_CLAUDE="$HOME/.claude"
7
+
8
+ echo "[setup-symlink] Ensuring $HOME_CLAUDE → $CLAUDE_DIR ..."
9
+
10
+ # Already a correct symlink — nothing to do
11
+ if [ -L "$HOME_CLAUDE" ]; then
12
+ CURRENT_TARGET="$(readlink "$HOME_CLAUDE")"
13
+ if [ "$CURRENT_TARGET" = "$CLAUDE_DIR" ]; then
14
+ echo "[setup-symlink] Symlink already correct, skipping"
15
+ exit 0
16
+ fi
17
+ # Points somewhere else — remove stale symlink
18
+ echo "[setup-symlink] Removing stale symlink ($CURRENT_TARGET)"
19
+ rm "$HOME_CLAUDE"
20
+ fi
21
+
22
+ # Real directory exists — merge contents into target, then remove
23
+ if [ -d "$HOME_CLAUDE" ]; then
24
+ echo "[setup-symlink] Moving existing $HOME_CLAUDE contents into $CLAUDE_DIR"
25
+ mkdir -p "$CLAUDE_DIR"
26
+ # Copy contents preserving attributes; skip files that already exist in target
27
+ cp -rn "$HOME_CLAUDE/." "$CLAUDE_DIR/" 2>/dev/null || true
28
+ rm -rf "$HOME_CLAUDE"
29
+ fi
30
+
31
+ # Ensure target exists
32
+ mkdir -p "$CLAUDE_DIR"
33
+
34
+ # Create symlink
35
+ ln -s "$CLAUDE_DIR" "$HOME_CLAUDE"
36
+ echo "[setup-symlink] Created symlink: $HOME_CLAUDE → $CLAUDE_DIR"
@@ -5,10 +5,13 @@
5
5
 
6
6
  echo "[update-claude] Checking for Claude Code updates..."
7
7
 
8
+ # === TMPDIR ===
9
+ _TMPDIR="${TMPDIR:-/tmp}"
10
+
8
11
  # === CLEANUP TRAP ===
9
12
  cleanup() {
10
- rm -f /tmp/claude-update 2>/dev/null || true
11
- rm -f /tmp/claude-update-manifest.json 2>/dev/null || true
13
+ rm -f "${_TMPDIR}/claude-update" 2>/dev/null || true
14
+ rm -f "${_TMPDIR}/claude-update-manifest.json" 2>/dev/null || true
12
15
  }
13
16
  trap cleanup EXIT
14
17
 
@@ -81,13 +84,13 @@ echo "[update-claude] Platform: ${PLATFORM}"
81
84
  # === DOWNLOAD MANIFEST ===
82
85
  MANIFEST_URL="${BASE_URL}/${LATEST_VERSION}/manifest.json"
83
86
 
84
- if ! curl -fsSL "${MANIFEST_URL}" -o /tmp/claude-update-manifest.json 2>/dev/null; then
87
+ if ! curl -fsSL "${MANIFEST_URL}" -o ${_TMPDIR}/claude-update-manifest.json 2>/dev/null; then
85
88
  echo "[update-claude] WARNING: Failed to download manifest, skipping"
86
89
  exit 0
87
90
  fi
88
91
 
89
92
  # === EXTRACT AND VERIFY CHECKSUM ===
90
- EXPECTED_CHECKSUM=$(jq -r ".platforms.\"${PLATFORM}\".checksum" /tmp/claude-update-manifest.json)
93
+ EXPECTED_CHECKSUM=$(jq -r ".platforms.\"${PLATFORM}\".checksum" ${_TMPDIR}/claude-update-manifest.json)
91
94
  if [ -z "${EXPECTED_CHECKSUM}" ] || [ "${EXPECTED_CHECKSUM}" = "null" ]; then
92
95
  echo "[update-claude] WARNING: Platform ${PLATFORM} not found in manifest, skipping"
93
96
  exit 0
@@ -96,13 +99,13 @@ fi
96
99
  # === DOWNLOAD BINARY ===
97
100
  BINARY_URL="${BASE_URL}/${LATEST_VERSION}/${PLATFORM}/claude"
98
101
 
99
- if ! curl -fsSL "${BINARY_URL}" -o /tmp/claude-update 2>/dev/null; then
102
+ if ! curl -fsSL "${BINARY_URL}" -o ${_TMPDIR}/claude-update 2>/dev/null; then
100
103
  echo "[update-claude] WARNING: Failed to download binary, skipping"
101
104
  exit 0
102
105
  fi
103
106
 
104
107
  # === VERIFY CHECKSUM ===
105
- ACTUAL_CHECKSUM=$(sha256sum /tmp/claude-update | cut -d' ' -f1)
108
+ ACTUAL_CHECKSUM=$(sha256sum ${_TMPDIR}/claude-update | cut -d' ' -f1)
106
109
 
107
110
  if [ "${ACTUAL_CHECKSUM}" != "${EXPECTED_CHECKSUM}" ]; then
108
111
  echo "[update-claude] WARNING: Checksum verification failed, skipping"
@@ -112,8 +115,8 @@ if [ "${ACTUAL_CHECKSUM}" != "${EXPECTED_CHECKSUM}" ]; then
112
115
  fi
113
116
 
114
117
  # === INSTALL (atomic replace) ===
115
- chmod +x /tmp/claude-update
116
- if ! sudo mv /tmp/claude-update /usr/local/bin/claude; then
118
+ chmod +x ${_TMPDIR}/claude-update
119
+ if ! sudo mv ${_TMPDIR}/claude-update /usr/local/bin/claude; then
117
120
  echo "[update-claude] WARNING: Failed to install update (sudo mv failed), skipping"
118
121
  exit 0
119
122
  fi
@@ -22,8 +22,9 @@ fi
22
22
  : "${OVERWRITE_CONFIG:=false}"
23
23
  : "${SETUP_PLUGINS:=true}"
24
24
  : "${SETUP_UPDATE_CLAUDE:=true}"
25
+ : "${SETUP_PROJECTS:=true}"
25
26
 
26
- export CLAUDE_CONFIG_DIR CONFIG_SOURCE_DIR SETUP_CONFIG SETUP_ALIASES OVERWRITE_CONFIG SETUP_PLUGINS SETUP_UPDATE_CLAUDE
27
+ export CLAUDE_CONFIG_DIR CONFIG_SOURCE_DIR SETUP_CONFIG SETUP_ALIASES OVERWRITE_CONFIG SETUP_PLUGINS SETUP_UPDATE_CLAUDE SETUP_PROJECTS
27
28
 
28
29
 
29
30
  echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
@@ -49,10 +50,11 @@ run_script() {
49
50
  fi
50
51
  }
51
52
 
53
+ run_script "$SCRIPT_DIR/setup-symlink-claude.sh" "true"
52
54
  run_script "$SCRIPT_DIR/setup-config.sh" "$SETUP_CONFIG"
53
55
  run_script "$SCRIPT_DIR/setup-aliases.sh" "$SETUP_ALIASES"
54
56
  run_script "$SCRIPT_DIR/setup-plugins.sh" "$SETUP_PLUGINS"
55
- run_script "$SCRIPT_DIR/setup-irie-claude.sh" "true"
57
+ run_script "$SCRIPT_DIR/setup-projects.sh" "$SETUP_PROJECTS"
56
58
 
57
59
  # Non-blocking: check for Claude Code updates in background
58
60
  if [ "$SETUP_UPDATE_CLAUDE" = "true" ]; then
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "codeforge-dev",
3
- "version": "1.5.7",
3
+ "version": "1.7.0",
4
4
  "description": "Complete development container that sets up Claude Code with modular devcontainer features, modern dev tools, and persistent configurations. Drop it into any project and get a production-ready AI development environment in minutes.",
5
5
  "main": "setup.js",
6
6
  "bin": {
@@ -1,32 +0,0 @@
1
- #!/bin/bash
2
- # setup-irie-claude.sh
3
- # Copies commands and agents from irie project to workspace .claude directory.
4
- # This script is only for AnExiledDev's setup.
5
-
6
- IRIE_CLAUDE="/workspaces/projects/irie/.claude"
7
- WORKSPACE_CLAUDE="/workspaces/.claude"
8
-
9
- # Fail gracefully if irie doesn't exist
10
- if [[ ! -d "/workspaces/projects/irie" ]]; then
11
- echo "┌─────────────────────────────────────────────────────────┐"
12
- echo "│ Note: /workspaces/projects/irie not found. │"
13
- echo "│ Failure is expected - this script is only for AnExiledDev│"
14
- echo "└─────────────────────────────────────────────────────────┘"
15
- exit 0
16
- fi
17
-
18
- # Copy commands if source exists
19
- if [[ -d "$IRIE_CLAUDE/commands" ]]; then
20
- mkdir -p "$WORKSPACE_CLAUDE/commands"
21
- cp -f "$IRIE_CLAUDE/commands/"* "$WORKSPACE_CLAUDE/commands/" 2>/dev/null
22
- echo "Copied irie commands to workspace .claude"
23
- fi
24
-
25
- # Copy agents if source exists
26
- if [[ -d "$IRIE_CLAUDE/agents" ]]; then
27
- mkdir -p "$WORKSPACE_CLAUDE/agents"
28
- cp -f "$IRIE_CLAUDE/agents/"* "$WORKSPACE_CLAUDE/agents/" 2>/dev/null
29
- echo "Copied irie agents to workspace .claude"
30
- fi
31
-
32
- echo "irie .claude sync complete"