don-cheli-sdd 1.16.2 → 1.16.3
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/CHANGELOG.md +6 -0
- package/README.es.md +1 -1
- package/README.md +1 -1
- package/README.pt.md +1 -1
- package/VERSION +1 -1
- package/package.json +1 -1
- package/scripts/.claude/don-cheli/VERSION +1 -1
- package/scripts/.claude/don-cheli/scripts/instalar.sh +115 -42
- package/scripts/generar-config.sh +1 -1
- package/scripts/instalar.sh +115 -42
package/CHANGELOG.md
CHANGED
|
@@ -4,6 +4,12 @@ Todos los cambios notables en Don Cheli SDD Framework.
|
|
|
4
4
|
|
|
5
5
|
Formato basado en [Conventional Commits](https://www.conventionalcommits.org/).
|
|
6
6
|
|
|
7
|
+
## [1.16.3](https://github.com/doncheli/don-cheli-sdd/compare/v1.16.2...v1.16.3) (2026-04-02)
|
|
8
|
+
|
|
9
|
+
### Correcciones
|
|
10
|
+
|
|
11
|
+
* perfil Custom muestra 0 skills/comandos cuando gum falla ([d32af4c](https://github.com/doncheli/don-cheli-sdd/commit/d32af4c36ea12a7de4173b709efb209c76e1fe59))
|
|
12
|
+
|
|
7
13
|
## [1.16.2](https://github.com/doncheli/don-cheli-sdd/compare/v1.16.1...v1.16.2) (2026-04-02)
|
|
8
14
|
|
|
9
15
|
### Correcciones
|
package/README.es.md
CHANGED
|
@@ -12,7 +12,7 @@
|
|
|
12
12
|
</p>
|
|
13
13
|
<p align="center">
|
|
14
14
|
<a href="#-instalación"><img src="https://img.shields.io/badge/instalación-2_minutos-brightgreen" alt="Install"></a>
|
|
15
|
-
<img src="https://img.shields.io/badge/versión-1.16.
|
|
15
|
+
<img src="https://img.shields.io/badge/versión-1.16.3-blue" alt="Version">
|
|
16
16
|
<img src="https://img.shields.io/badge/licencia-Apache%202.0-green" alt="License">
|
|
17
17
|
<img src="https://img.shields.io/badge/idiomas-ES%20|%20EN%20|%20PT-red" alt="Languages">
|
|
18
18
|
<img src="https://img.shields.io/badge/comandos-85+-purple" alt="Commands">
|
package/README.md
CHANGED
|
@@ -12,7 +12,7 @@
|
|
|
12
12
|
</p>
|
|
13
13
|
<p align="center">
|
|
14
14
|
<a href="#-installation"><img src="https://img.shields.io/badge/install-2_minutes-brightgreen" alt="Install"></a>
|
|
15
|
-
<img src="https://img.shields.io/badge/version-1.16.
|
|
15
|
+
<img src="https://img.shields.io/badge/version-1.16.3-blue" alt="Version">
|
|
16
16
|
<img src="https://img.shields.io/badge/license-Apache%202.0-green" alt="License">
|
|
17
17
|
<img src="https://img.shields.io/badge/languages-ES%20|%20EN%20|%20PT-red" alt="Languages">
|
|
18
18
|
<img src="https://img.shields.io/badge/commands-85+-purple" alt="Commands">
|
package/README.pt.md
CHANGED
|
@@ -12,7 +12,7 @@
|
|
|
12
12
|
</p>
|
|
13
13
|
<p align="center">
|
|
14
14
|
<a href="#-instalação"><img src="https://img.shields.io/badge/instalação-2_minutos-brightgreen" alt="Install"></a>
|
|
15
|
-
<img src="https://img.shields.io/badge/versão-1.16.
|
|
15
|
+
<img src="https://img.shields.io/badge/versão-1.16.3-blue" alt="Version">
|
|
16
16
|
<img src="https://img.shields.io/badge/licença-Apache%202.0-green" alt="License">
|
|
17
17
|
<img src="https://img.shields.io/badge/idiomas-ES%20|%20EN%20|%20PT-red" alt="Languages">
|
|
18
18
|
<img src="https://img.shields.io/badge/comandos-85+-purple" alt="Commands">
|
package/VERSION
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
1.16.
|
|
1
|
+
1.16.3
|
package/package.json
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
1.16.
|
|
1
|
+
1.16.3
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
|
|
5
5
|
set -euo pipefail
|
|
6
6
|
|
|
7
|
-
VERSION="1.16.
|
|
7
|
+
VERSION="1.16.3"
|
|
8
8
|
REPO_URL="https://github.com/doncheli/don-cheli-sdd"
|
|
9
9
|
CLEANUP_TMPDIR=""
|
|
10
10
|
|
|
@@ -481,19 +481,38 @@ if [ "$INTERACTIVE_MODE" = true ]; then
|
|
|
481
481
|
# Try to install gum for interactive selection
|
|
482
482
|
install_gum
|
|
483
483
|
|
|
484
|
+
# Build skills list
|
|
485
|
+
ALL_SKILLS=""
|
|
486
|
+
ALL_SKILLS_ARRAY=()
|
|
487
|
+
for skill_dir in "${SCRIPT_DIR}/habilidades/"*/; do
|
|
488
|
+
[ -d "$skill_dir" ] || continue
|
|
489
|
+
skill_name=$(basename "$skill_dir")
|
|
490
|
+
ALL_SKILLS="${ALL_SKILLS}${skill_name}\n"
|
|
491
|
+
ALL_SKILLS_ARRAY+=("$skill_name")
|
|
492
|
+
done
|
|
493
|
+
|
|
494
|
+
# Build commands list
|
|
495
|
+
ALL_CMDS=""
|
|
496
|
+
ALL_CMDS_ARRAY=()
|
|
497
|
+
for cmd_file in "${SCRIPT_DIR}/comandos/especdev/"*.md; do
|
|
498
|
+
[ -f "$cmd_file" ] || continue
|
|
499
|
+
cmd_name="dc:$(basename "$cmd_file" .md)"
|
|
500
|
+
ALL_CMDS="${ALL_CMDS}${cmd_name}\n"
|
|
501
|
+
ALL_CMDS_ARRAY+=("$cmd_name")
|
|
502
|
+
done
|
|
503
|
+
for cmd_file in "${SCRIPT_DIR}/comandos/razonar/"*.md; do
|
|
504
|
+
[ -f "$cmd_file" ] || continue
|
|
505
|
+
cmd_name="razonar:$(basename "$cmd_file" .md)"
|
|
506
|
+
ALL_CMDS="${ALL_CMDS}${cmd_name}\n"
|
|
507
|
+
ALL_CMDS_ARRAY+=("$cmd_name")
|
|
508
|
+
done
|
|
509
|
+
|
|
510
|
+
CUSTOM_GUM_OK=false
|
|
484
511
|
if [ "$HAS_GUM" = true ]; then
|
|
485
512
|
echo ""
|
|
486
513
|
echo -e " ${BOLD}Selecciona las skills que necesitas:${NC}"
|
|
487
514
|
echo ""
|
|
488
515
|
|
|
489
|
-
# Build skills list from habilidades/ directory
|
|
490
|
-
ALL_SKILLS=""
|
|
491
|
-
for skill_dir in "${SCRIPT_DIR}/habilidades/"*/; do
|
|
492
|
-
[ -d "$skill_dir" ] || continue
|
|
493
|
-
skill_name=$(basename "$skill_dir")
|
|
494
|
-
ALL_SKILLS="${ALL_SKILLS}${skill_name}\n"
|
|
495
|
-
done
|
|
496
|
-
|
|
497
516
|
SELECTED_SKILLS_RAW=$(printf "%b" "$ALL_SKILLS" | sort | gum choose --no-limit \
|
|
498
517
|
--header "Skills — espacio para toggle, enter para confirmar" \
|
|
499
518
|
--header.foreground="99" \
|
|
@@ -501,46 +520,100 @@ if [ "$INTERACTIVE_MODE" = true ]; then
|
|
|
501
520
|
--selected.foreground="120" \
|
|
502
521
|
< /dev/tty 2>/dev/null) || true
|
|
503
522
|
|
|
504
|
-
|
|
505
|
-
|
|
523
|
+
if [ -n "$SELECTED_SKILLS_RAW" ]; then
|
|
524
|
+
PROFILE_SKILLS=$(echo "$SELECTED_SKILLS_RAW" | tr '\n' ',' | sed 's/,$//')
|
|
525
|
+
SKILLS_COUNT=$(echo "$SELECTED_SKILLS_RAW" | grep -c . || echo "0")
|
|
526
|
+
echo -e " ${GREEN}✓${NC} ${SKILLS_COUNT} skills seleccionadas"
|
|
527
|
+
echo ""
|
|
528
|
+
|
|
529
|
+
echo -e " ${BOLD}Selecciona los comandos que necesitas:${NC}"
|
|
530
|
+
echo ""
|
|
531
|
+
|
|
532
|
+
SELECTED_CMDS_RAW=$(printf "%b" "$ALL_CMDS" | sort | gum choose --no-limit \
|
|
533
|
+
--header "Comandos — espacio para toggle, enter para confirmar" \
|
|
534
|
+
--header.foreground="99" \
|
|
535
|
+
--cursor.foreground="212" \
|
|
536
|
+
--selected.foreground="120" \
|
|
537
|
+
< /dev/tty 2>/dev/null) || true
|
|
538
|
+
|
|
539
|
+
if [ -n "$SELECTED_CMDS_RAW" ]; then
|
|
540
|
+
PROFILE_COMMANDS=$(echo "$SELECTED_CMDS_RAW" | tr '\n' ',' | sed 's/,$//')
|
|
541
|
+
COMMANDS_COUNT=$(echo "$SELECTED_CMDS_RAW" | grep -c . || echo "0")
|
|
542
|
+
echo -e " ${GREEN}✓${NC} ${COMMANDS_COUNT} comandos seleccionados"
|
|
543
|
+
CUSTOM_GUM_OK=true
|
|
544
|
+
fi
|
|
545
|
+
fi
|
|
546
|
+
fi
|
|
506
547
|
|
|
507
|
-
|
|
548
|
+
if [ "$CUSTOM_GUM_OK" = false ]; then
|
|
549
|
+
# Fallback: interactive numbered list
|
|
550
|
+
echo ""
|
|
551
|
+
echo -e " ${BOLD}Selecciona las skills que necesitas:${NC}"
|
|
552
|
+
echo -e " ${DIM}(números separados por coma, 'a' para todas, enter para ninguna)${NC}"
|
|
508
553
|
echo ""
|
|
554
|
+
local i=1
|
|
555
|
+
for s in "${ALL_SKILLS_ARRAY[@]}"; do
|
|
556
|
+
echo -e " ${CYAN}${i})${NC} ${s}"
|
|
557
|
+
i=$((i + 1))
|
|
558
|
+
done
|
|
559
|
+
echo ""
|
|
560
|
+
echo -ne " ${BOLD}▸ ${NC}"
|
|
561
|
+
SKILLS_CHOICE=""
|
|
562
|
+
read -r SKILLS_CHOICE < /dev/tty 2>/dev/null || read -r SKILLS_CHOICE 2>/dev/null || SKILLS_CHOICE=""
|
|
563
|
+
|
|
564
|
+
if [ "$SKILLS_CHOICE" = "a" ] || [ "$SKILLS_CHOICE" = "all" ]; then
|
|
565
|
+
PROFILE_SKILLS=$(printf "%s," "${ALL_SKILLS_ARRAY[@]}" | sed 's/,$//')
|
|
566
|
+
SKILLS_COUNT="${#ALL_SKILLS_ARRAY[@]}"
|
|
567
|
+
elif [ -n "$SKILLS_CHOICE" ]; then
|
|
568
|
+
PROFILE_SKILLS=""
|
|
569
|
+
SKILLS_COUNT=0
|
|
570
|
+
for num in $(echo "$SKILLS_CHOICE" | tr ',' ' '); do
|
|
571
|
+
idx=$((num - 1))
|
|
572
|
+
if [ "$idx" -ge 0 ] 2>/dev/null && [ "$idx" -lt "${#ALL_SKILLS_ARRAY[@]}" ]; then
|
|
573
|
+
PROFILE_SKILLS="${PROFILE_SKILLS:+$PROFILE_SKILLS,}${ALL_SKILLS_ARRAY[$idx]}"
|
|
574
|
+
SKILLS_COUNT=$((SKILLS_COUNT + 1))
|
|
575
|
+
fi
|
|
576
|
+
done
|
|
577
|
+
else
|
|
578
|
+
# Empty = install all
|
|
579
|
+
PROFILE_SKILLS=""
|
|
580
|
+
SKILLS_COUNT="todas"
|
|
581
|
+
fi
|
|
582
|
+
echo -e " ${GREEN}✓${NC} ${SKILLS_COUNT} skills seleccionadas"
|
|
509
583
|
|
|
584
|
+
echo ""
|
|
510
585
|
echo -e " ${BOLD}Selecciona los comandos que necesitas:${NC}"
|
|
586
|
+
echo -e " ${DIM}(números separados por coma, 'a' para todos, enter para ninguno)${NC}"
|
|
511
587
|
echo ""
|
|
512
|
-
|
|
513
|
-
|
|
514
|
-
|
|
515
|
-
|
|
516
|
-
[ -f "$cmd_file" ] || continue
|
|
517
|
-
cmd_name="dc:$(basename "$cmd_file" .md)"
|
|
518
|
-
ALL_CMDS="${ALL_CMDS}${cmd_name}\n"
|
|
519
|
-
done
|
|
520
|
-
for cmd_file in "${SCRIPT_DIR}/comandos/razonar/"*.md; do
|
|
521
|
-
[ -f "$cmd_file" ] || continue
|
|
522
|
-
cmd_name="razonar:$(basename "$cmd_file" .md)"
|
|
523
|
-
ALL_CMDS="${ALL_CMDS}${cmd_name}\n"
|
|
588
|
+
i=1
|
|
589
|
+
for c in "${ALL_CMDS_ARRAY[@]}"; do
|
|
590
|
+
echo -e " ${CYAN}${i})${NC} ${c}"
|
|
591
|
+
i=$((i + 1))
|
|
524
592
|
done
|
|
525
|
-
|
|
526
|
-
|
|
527
|
-
|
|
528
|
-
|
|
529
|
-
|
|
530
|
-
|
|
531
|
-
|
|
532
|
-
|
|
533
|
-
|
|
534
|
-
|
|
535
|
-
|
|
593
|
+
echo ""
|
|
594
|
+
echo -ne " ${BOLD}▸ ${NC}"
|
|
595
|
+
CMDS_CHOICE=""
|
|
596
|
+
read -r CMDS_CHOICE < /dev/tty 2>/dev/null || read -r CMDS_CHOICE 2>/dev/null || CMDS_CHOICE=""
|
|
597
|
+
|
|
598
|
+
if [ "$CMDS_CHOICE" = "a" ] || [ "$CMDS_CHOICE" = "all" ]; then
|
|
599
|
+
PROFILE_COMMANDS=$(printf "%s," "${ALL_CMDS_ARRAY[@]}" | sed 's/,$//')
|
|
600
|
+
COMMANDS_COUNT="${#ALL_CMDS_ARRAY[@]}"
|
|
601
|
+
elif [ -n "$CMDS_CHOICE" ]; then
|
|
602
|
+
PROFILE_COMMANDS=""
|
|
603
|
+
COMMANDS_COUNT=0
|
|
604
|
+
for num in $(echo "$CMDS_CHOICE" | tr ',' ' '); do
|
|
605
|
+
idx=$((num - 1))
|
|
606
|
+
if [ "$idx" -ge 0 ] 2>/dev/null && [ "$idx" -lt "${#ALL_CMDS_ARRAY[@]}" ]; then
|
|
607
|
+
PROFILE_COMMANDS="${PROFILE_COMMANDS:+$PROFILE_COMMANDS,}${ALL_CMDS_ARRAY[$idx]}"
|
|
608
|
+
COMMANDS_COUNT=$((COMMANDS_COUNT + 1))
|
|
609
|
+
fi
|
|
610
|
+
done
|
|
611
|
+
else
|
|
612
|
+
# Empty = install all
|
|
613
|
+
PROFILE_COMMANDS=""
|
|
614
|
+
COMMANDS_COUNT="todos"
|
|
615
|
+
fi
|
|
536
616
|
echo -e " ${GREEN}✓${NC} ${COMMANDS_COUNT} comandos seleccionados"
|
|
537
|
-
else
|
|
538
|
-
# Fallback without gum — install everything
|
|
539
|
-
echo -e " ${YELLOW}⚠ gum no disponible. Instalando todas las skills y comandos.${NC}"
|
|
540
|
-
PROFILE_SKILLS=""
|
|
541
|
-
PROFILE_COMMANDS=""
|
|
542
|
-
SKILLS_COUNT="todas"
|
|
543
|
-
COMMANDS_COUNT="todos"
|
|
544
617
|
fi
|
|
545
618
|
fi
|
|
546
619
|
|
|
@@ -238,7 +238,7 @@ _gen_continue() {
|
|
|
238
238
|
cat > "$dir/.continue/config/don-cheli.json" 2>/dev/null << 'CONTEOF' || true
|
|
239
239
|
{
|
|
240
240
|
"name": "don-cheli-sdd",
|
|
241
|
-
"version": "1.16.
|
|
241
|
+
"version": "1.16.3",
|
|
242
242
|
"description": "Don Cheli SDD Framework",
|
|
243
243
|
"rules": [
|
|
244
244
|
"All production code requires tests (TDD: RED → GREEN → REFACTOR)",
|
package/scripts/instalar.sh
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
|
|
5
5
|
set -euo pipefail
|
|
6
6
|
|
|
7
|
-
VERSION="1.16.
|
|
7
|
+
VERSION="1.16.3"
|
|
8
8
|
REPO_URL="https://github.com/doncheli/don-cheli-sdd"
|
|
9
9
|
CLEANUP_TMPDIR=""
|
|
10
10
|
|
|
@@ -481,19 +481,38 @@ if [ "$INTERACTIVE_MODE" = true ]; then
|
|
|
481
481
|
# Try to install gum for interactive selection
|
|
482
482
|
install_gum
|
|
483
483
|
|
|
484
|
+
# Build skills list
|
|
485
|
+
ALL_SKILLS=""
|
|
486
|
+
ALL_SKILLS_ARRAY=()
|
|
487
|
+
for skill_dir in "${SCRIPT_DIR}/habilidades/"*/; do
|
|
488
|
+
[ -d "$skill_dir" ] || continue
|
|
489
|
+
skill_name=$(basename "$skill_dir")
|
|
490
|
+
ALL_SKILLS="${ALL_SKILLS}${skill_name}\n"
|
|
491
|
+
ALL_SKILLS_ARRAY+=("$skill_name")
|
|
492
|
+
done
|
|
493
|
+
|
|
494
|
+
# Build commands list
|
|
495
|
+
ALL_CMDS=""
|
|
496
|
+
ALL_CMDS_ARRAY=()
|
|
497
|
+
for cmd_file in "${SCRIPT_DIR}/comandos/especdev/"*.md; do
|
|
498
|
+
[ -f "$cmd_file" ] || continue
|
|
499
|
+
cmd_name="dc:$(basename "$cmd_file" .md)"
|
|
500
|
+
ALL_CMDS="${ALL_CMDS}${cmd_name}\n"
|
|
501
|
+
ALL_CMDS_ARRAY+=("$cmd_name")
|
|
502
|
+
done
|
|
503
|
+
for cmd_file in "${SCRIPT_DIR}/comandos/razonar/"*.md; do
|
|
504
|
+
[ -f "$cmd_file" ] || continue
|
|
505
|
+
cmd_name="razonar:$(basename "$cmd_file" .md)"
|
|
506
|
+
ALL_CMDS="${ALL_CMDS}${cmd_name}\n"
|
|
507
|
+
ALL_CMDS_ARRAY+=("$cmd_name")
|
|
508
|
+
done
|
|
509
|
+
|
|
510
|
+
CUSTOM_GUM_OK=false
|
|
484
511
|
if [ "$HAS_GUM" = true ]; then
|
|
485
512
|
echo ""
|
|
486
513
|
echo -e " ${BOLD}Selecciona las skills que necesitas:${NC}"
|
|
487
514
|
echo ""
|
|
488
515
|
|
|
489
|
-
# Build skills list from habilidades/ directory
|
|
490
|
-
ALL_SKILLS=""
|
|
491
|
-
for skill_dir in "${SCRIPT_DIR}/habilidades/"*/; do
|
|
492
|
-
[ -d "$skill_dir" ] || continue
|
|
493
|
-
skill_name=$(basename "$skill_dir")
|
|
494
|
-
ALL_SKILLS="${ALL_SKILLS}${skill_name}\n"
|
|
495
|
-
done
|
|
496
|
-
|
|
497
516
|
SELECTED_SKILLS_RAW=$(printf "%b" "$ALL_SKILLS" | sort | gum choose --no-limit \
|
|
498
517
|
--header "Skills — espacio para toggle, enter para confirmar" \
|
|
499
518
|
--header.foreground="99" \
|
|
@@ -501,46 +520,100 @@ if [ "$INTERACTIVE_MODE" = true ]; then
|
|
|
501
520
|
--selected.foreground="120" \
|
|
502
521
|
< /dev/tty 2>/dev/null) || true
|
|
503
522
|
|
|
504
|
-
|
|
505
|
-
|
|
523
|
+
if [ -n "$SELECTED_SKILLS_RAW" ]; then
|
|
524
|
+
PROFILE_SKILLS=$(echo "$SELECTED_SKILLS_RAW" | tr '\n' ',' | sed 's/,$//')
|
|
525
|
+
SKILLS_COUNT=$(echo "$SELECTED_SKILLS_RAW" | grep -c . || echo "0")
|
|
526
|
+
echo -e " ${GREEN}✓${NC} ${SKILLS_COUNT} skills seleccionadas"
|
|
527
|
+
echo ""
|
|
528
|
+
|
|
529
|
+
echo -e " ${BOLD}Selecciona los comandos que necesitas:${NC}"
|
|
530
|
+
echo ""
|
|
531
|
+
|
|
532
|
+
SELECTED_CMDS_RAW=$(printf "%b" "$ALL_CMDS" | sort | gum choose --no-limit \
|
|
533
|
+
--header "Comandos — espacio para toggle, enter para confirmar" \
|
|
534
|
+
--header.foreground="99" \
|
|
535
|
+
--cursor.foreground="212" \
|
|
536
|
+
--selected.foreground="120" \
|
|
537
|
+
< /dev/tty 2>/dev/null) || true
|
|
538
|
+
|
|
539
|
+
if [ -n "$SELECTED_CMDS_RAW" ]; then
|
|
540
|
+
PROFILE_COMMANDS=$(echo "$SELECTED_CMDS_RAW" | tr '\n' ',' | sed 's/,$//')
|
|
541
|
+
COMMANDS_COUNT=$(echo "$SELECTED_CMDS_RAW" | grep -c . || echo "0")
|
|
542
|
+
echo -e " ${GREEN}✓${NC} ${COMMANDS_COUNT} comandos seleccionados"
|
|
543
|
+
CUSTOM_GUM_OK=true
|
|
544
|
+
fi
|
|
545
|
+
fi
|
|
546
|
+
fi
|
|
506
547
|
|
|
507
|
-
|
|
548
|
+
if [ "$CUSTOM_GUM_OK" = false ]; then
|
|
549
|
+
# Fallback: interactive numbered list
|
|
550
|
+
echo ""
|
|
551
|
+
echo -e " ${BOLD}Selecciona las skills que necesitas:${NC}"
|
|
552
|
+
echo -e " ${DIM}(números separados por coma, 'a' para todas, enter para ninguna)${NC}"
|
|
508
553
|
echo ""
|
|
554
|
+
local i=1
|
|
555
|
+
for s in "${ALL_SKILLS_ARRAY[@]}"; do
|
|
556
|
+
echo -e " ${CYAN}${i})${NC} ${s}"
|
|
557
|
+
i=$((i + 1))
|
|
558
|
+
done
|
|
559
|
+
echo ""
|
|
560
|
+
echo -ne " ${BOLD}▸ ${NC}"
|
|
561
|
+
SKILLS_CHOICE=""
|
|
562
|
+
read -r SKILLS_CHOICE < /dev/tty 2>/dev/null || read -r SKILLS_CHOICE 2>/dev/null || SKILLS_CHOICE=""
|
|
563
|
+
|
|
564
|
+
if [ "$SKILLS_CHOICE" = "a" ] || [ "$SKILLS_CHOICE" = "all" ]; then
|
|
565
|
+
PROFILE_SKILLS=$(printf "%s," "${ALL_SKILLS_ARRAY[@]}" | sed 's/,$//')
|
|
566
|
+
SKILLS_COUNT="${#ALL_SKILLS_ARRAY[@]}"
|
|
567
|
+
elif [ -n "$SKILLS_CHOICE" ]; then
|
|
568
|
+
PROFILE_SKILLS=""
|
|
569
|
+
SKILLS_COUNT=0
|
|
570
|
+
for num in $(echo "$SKILLS_CHOICE" | tr ',' ' '); do
|
|
571
|
+
idx=$((num - 1))
|
|
572
|
+
if [ "$idx" -ge 0 ] 2>/dev/null && [ "$idx" -lt "${#ALL_SKILLS_ARRAY[@]}" ]; then
|
|
573
|
+
PROFILE_SKILLS="${PROFILE_SKILLS:+$PROFILE_SKILLS,}${ALL_SKILLS_ARRAY[$idx]}"
|
|
574
|
+
SKILLS_COUNT=$((SKILLS_COUNT + 1))
|
|
575
|
+
fi
|
|
576
|
+
done
|
|
577
|
+
else
|
|
578
|
+
# Empty = install all
|
|
579
|
+
PROFILE_SKILLS=""
|
|
580
|
+
SKILLS_COUNT="todas"
|
|
581
|
+
fi
|
|
582
|
+
echo -e " ${GREEN}✓${NC} ${SKILLS_COUNT} skills seleccionadas"
|
|
509
583
|
|
|
584
|
+
echo ""
|
|
510
585
|
echo -e " ${BOLD}Selecciona los comandos que necesitas:${NC}"
|
|
586
|
+
echo -e " ${DIM}(números separados por coma, 'a' para todos, enter para ninguno)${NC}"
|
|
511
587
|
echo ""
|
|
512
|
-
|
|
513
|
-
|
|
514
|
-
|
|
515
|
-
|
|
516
|
-
[ -f "$cmd_file" ] || continue
|
|
517
|
-
cmd_name="dc:$(basename "$cmd_file" .md)"
|
|
518
|
-
ALL_CMDS="${ALL_CMDS}${cmd_name}\n"
|
|
519
|
-
done
|
|
520
|
-
for cmd_file in "${SCRIPT_DIR}/comandos/razonar/"*.md; do
|
|
521
|
-
[ -f "$cmd_file" ] || continue
|
|
522
|
-
cmd_name="razonar:$(basename "$cmd_file" .md)"
|
|
523
|
-
ALL_CMDS="${ALL_CMDS}${cmd_name}\n"
|
|
588
|
+
i=1
|
|
589
|
+
for c in "${ALL_CMDS_ARRAY[@]}"; do
|
|
590
|
+
echo -e " ${CYAN}${i})${NC} ${c}"
|
|
591
|
+
i=$((i + 1))
|
|
524
592
|
done
|
|
525
|
-
|
|
526
|
-
|
|
527
|
-
|
|
528
|
-
|
|
529
|
-
|
|
530
|
-
|
|
531
|
-
|
|
532
|
-
|
|
533
|
-
|
|
534
|
-
|
|
535
|
-
|
|
593
|
+
echo ""
|
|
594
|
+
echo -ne " ${BOLD}▸ ${NC}"
|
|
595
|
+
CMDS_CHOICE=""
|
|
596
|
+
read -r CMDS_CHOICE < /dev/tty 2>/dev/null || read -r CMDS_CHOICE 2>/dev/null || CMDS_CHOICE=""
|
|
597
|
+
|
|
598
|
+
if [ "$CMDS_CHOICE" = "a" ] || [ "$CMDS_CHOICE" = "all" ]; then
|
|
599
|
+
PROFILE_COMMANDS=$(printf "%s," "${ALL_CMDS_ARRAY[@]}" | sed 's/,$//')
|
|
600
|
+
COMMANDS_COUNT="${#ALL_CMDS_ARRAY[@]}"
|
|
601
|
+
elif [ -n "$CMDS_CHOICE" ]; then
|
|
602
|
+
PROFILE_COMMANDS=""
|
|
603
|
+
COMMANDS_COUNT=0
|
|
604
|
+
for num in $(echo "$CMDS_CHOICE" | tr ',' ' '); do
|
|
605
|
+
idx=$((num - 1))
|
|
606
|
+
if [ "$idx" -ge 0 ] 2>/dev/null && [ "$idx" -lt "${#ALL_CMDS_ARRAY[@]}" ]; then
|
|
607
|
+
PROFILE_COMMANDS="${PROFILE_COMMANDS:+$PROFILE_COMMANDS,}${ALL_CMDS_ARRAY[$idx]}"
|
|
608
|
+
COMMANDS_COUNT=$((COMMANDS_COUNT + 1))
|
|
609
|
+
fi
|
|
610
|
+
done
|
|
611
|
+
else
|
|
612
|
+
# Empty = install all
|
|
613
|
+
PROFILE_COMMANDS=""
|
|
614
|
+
COMMANDS_COUNT="todos"
|
|
615
|
+
fi
|
|
536
616
|
echo -e " ${GREEN}✓${NC} ${COMMANDS_COUNT} comandos seleccionados"
|
|
537
|
-
else
|
|
538
|
-
# Fallback without gum — install everything
|
|
539
|
-
echo -e " ${YELLOW}⚠ gum no disponible. Instalando todas las skills y comandos.${NC}"
|
|
540
|
-
PROFILE_SKILLS=""
|
|
541
|
-
PROFILE_COMMANDS=""
|
|
542
|
-
SKILLS_COUNT="todas"
|
|
543
|
-
COMMANDS_COUNT="todos"
|
|
544
617
|
fi
|
|
545
618
|
fi
|
|
546
619
|
|