Skip to content

Commit f695f70

Browse files
SeemSeamclaude
andcommitted
Fix empty CLAUDE_MARKDOWN array causing unbound variable error
- Use ${CLAUDE_MARKDOWN[@]+"${CLAUDE_MARKDOWN[@]}"} syntax to handle empty array - Simplify CLAUDE.md prompt injection to minimal format Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
1 parent 94c4d7b commit f695f70

2 files changed

Lines changed: 14 additions & 74 deletions

File tree

install.ps1

Lines changed: 6 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -499,42 +499,12 @@ function Install-ClaudeConfig {
499499

500500
$codexRules = @"
501501
<!-- CCB_CONFIG_START -->
502-
## Collaboration Rules (Codex / Gemini / OpenCode)
503-
Codex, Gemini, and OpenCode are other AI assistants running in separate terminal sessions (WezTerm or tmux).
504-
505-
### Common Rules (all assistants)
506-
Trigger (any match):
507-
- User explicitly asks to consult one of them (e.g. "ask codex ...", "let gemini ...")
508-
- User uses an assistant prefix (see table)
509-
- User asks about that assistant's status (e.g. "is codex alive?")
510-
511-
Fast path (minimize latency):
512-
- If the user message starts with a prefix: treat the rest as the question and dispatch immediately.
513-
- If the user message is only the prefix (no question): ask a 1-line clarification for what to send.
514-
515-
Actions:
516-
- Ask a question (default) -> ``Bash(`$env:CCB_CALLER='claude'; ask <provider> <<'EOF' ... EOF)``, tell user "PROVIDER processing...", then END your turn
517-
- Check connectivity -> run ``ping <provider>``
518-
- Use "show previous reply" commands ONLY if the user explicitly requests them
519-
520-
Important restrictions:
521-
- After starting a background ask, do NOT poll for results; wait for ``bash-notification``
522-
- Do NOT use ``pend`` unless the user explicitly requests
523-
524-
### Command Map (Unified Commands)
525-
| Assistant | Prefixes | ASK (background) | PING_CMD | Explicit-request-only |
526-
|---|---|---|---|---|
527-
| Codex | ``@codex``, ``codex:``, ``ask codex``, ``let codex`` | ``CCB_CALLER=claude ask codex <<'EOF' ... EOF`` | ``ping codex`` | ``pend codex`` |
528-
| Gemini | ``@gemini``, ``gemini:``, ``ask gemini``, ``let gemini`` | ``CCB_CALLER=claude ask gemini <<'EOF' ... EOF`` | ``ping gemini`` | ``pend gemini`` |
529-
| OpenCode | ``@opencode``, ``opencode:``, ``ask opencode``, ``let opencode`` | ``CCB_CALLER=claude ask opencode <<'EOF' ... EOF`` | ``ping opencode`` | ``pend opencode`` |
530-
| Droid | ``@droid``, ``droid:``, ``ask droid``, ``let droid`` | ``CCB_CALLER=claude ask droid <<'EOF' ... EOF`` | ``ping droid`` | ``pend droid`` |
531-
532-
Examples:
533-
- ``codex: review this code`` -> ``Bash(CCB_CALLER=claude ask codex <<'EOF'
534-
review this code
535-
EOF
536-
)``, END turn
537-
- ``is gemini alive?`` -> ``ping gemini``
502+
## AI Collaboration
503+
Use ``/ask <provider>`` to consult other AI assistants (codex/gemini/opencode/droid).
504+
Use ``/ping <provider>`` to check connectivity.
505+
Use ``/pend <provider>`` to view latest replies.
506+
507+
Providers: ``codex``, ``gemini``, ``opencode``, ``droid``, ``claude``
538508
<!-- CCB_CONFIG_END -->
539509
"@
540510

install.sh

Lines changed: 8 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -592,7 +592,7 @@ install_claude_commands() {
592592
fi
593593
done
594594

595-
for doc in "${CLAUDE_MARKDOWN[@]}"; do
595+
for doc in "${CLAUDE_MARKDOWN[@]+"${CLAUDE_MARKDOWN[@]}"}"; do
596596
cp -f "$REPO_ROOT/commands/$doc" "$claude_dir/$doc"
597597
chmod 0644 "$claude_dir/$doc" 2>/dev/null || true
598598
done
@@ -889,42 +889,12 @@ install_claude_md_config() {
889889
ccb_tmpfile="$(mktemp)" || { echo "Failed to create temp file"; return 1; }
890890
cat > "$ccb_tmpfile" << 'AI_RULES'
891891
<!-- CCB_CONFIG_START -->
892-
## Collaboration Rules (Codex / Gemini / OpenCode)
893-
Codex, Gemini, and OpenCode are other AI assistants running in separate terminal sessions (WezTerm or tmux).
894-
895-
### Common Rules (all assistants)
896-
Trigger (any match):
897-
- User explicitly asks to consult one of them (e.g. "ask codex ...", "let gemini ...")
898-
- User uses an assistant prefix (see table)
899-
- User asks about that assistant's status (e.g. "is codex alive?")
900-
901-
Fast path (minimize latency):
902-
- If the user message starts with a prefix: treat the rest as the question and dispatch immediately.
903-
- If the user message is only the prefix (no question): ask a 1-line clarification for what to send.
904-
905-
Actions:
906-
- Ask a question (default) -> `Bash(CCB_CALLER=claude ask <provider> <<'EOF' ... EOF)`, tell user "`PROVIDER` processing...", then END your turn
907-
- Check connectivity -> run `ping <provider>`
908-
- Use "show previous reply" commands ONLY if the user explicitly requests them
909-
910-
Important restrictions:
911-
- After starting a background ask, do NOT poll for results; wait for `bash-notification`
912-
- Do NOT use `pend` unless the user explicitly requests
913-
914-
### Command Map (Unified Commands)
915-
| Assistant | Prefixes | ASK (background) | PING_CMD | Explicit-request-only |
916-
|---|---|---|---|---|
917-
| Codex | `@codex`, `codex:`, `ask codex`, `let codex` | `CCB_CALLER=claude ask codex <<'EOF' ... EOF` | `ping codex` | `pend codex` |
918-
| Gemini | `@gemini`, `gemini:`, `ask gemini`, `let gemini` | `CCB_CALLER=claude ask gemini <<'EOF' ... EOF` | `ping gemini` | `pend gemini` |
919-
| OpenCode | `@opencode`, `opencode:`, `ask opencode`, `let opencode` | `CCB_CALLER=claude ask opencode <<'EOF' ... EOF` | `ping opencode` | `pend opencode` |
920-
| Droid | `@droid`, `droid:`, `ask droid`, `let droid` | `CCB_CALLER=claude ask droid <<'EOF' ... EOF` | `ping droid` | `pend droid` |
921-
922-
Examples:
923-
- `codex: review this code` -> `Bash(CCB_CALLER=claude ask codex <<'EOF'
924-
review this code
925-
EOF
926-
)`, END turn
927-
- `is gemini alive?` -> `ping gemini`
892+
## AI Collaboration
893+
Use `/ask <provider>` to consult other AI assistants (codex/gemini/opencode/droid).
894+
Use `/ping <provider>` to check connectivity.
895+
Use `/pend <provider>` to view latest replies.
896+
897+
Providers: `codex`, `gemini`, `opencode`, `droid`, `claude`
928898
<!-- CCB_CONFIG_END -->
929899
AI_RULES
930900
local ccb_content
@@ -1435,7 +1405,7 @@ uninstall_all() {
14351405
)
14361406
for dir in "${cmd_dirs[@]}"; do
14371407
if [[ -d "$dir" ]]; then
1438-
for doc in "${CLAUDE_MARKDOWN[@]}"; do
1408+
for doc in "${CLAUDE_MARKDOWN[@]+"${CLAUDE_MARKDOWN[@]}"}"; do
14391409
rm -f "$dir/$doc"
14401410
done
14411411
echo "Cleaned commands directory: $dir"

0 commit comments

Comments
 (0)