gaia-framework 1.48.0 → 1.48.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/README.md CHANGED
@@ -1,11 +1,12 @@
1
1
  # GAIA — Generative Agile Intelligence Architecture
2
2
 
3
- [![Framework](https://img.shields.io/badge/framework-v1.41.0-blue)]()
3
+ [![Framework](https://img.shields.io/badge/framework-v1.48.3-blue)]()
4
4
  [![License](https://img.shields.io/badge/license-AGPL--3.0-green)]()
5
- [![Agents](https://img.shields.io/badge/agents-25-purple)]()
5
+ [![Agents](https://img.shields.io/badge/agents-26-purple)]()
6
6
  [![Workflows](https://img.shields.io/badge/workflows-73-orange)]()
7
+ [![Claude Code](https://img.shields.io/badge/Claude_Code-compatible-blueviolet?style=flat&logo=anthropic)](https://docs.anthropic.com/en/docs/claude-code)
7
8
 
8
- AI agent framework for [Claude Code](https://docs.anthropic.com/en/docs/claude-code) that orchestrates software product development through **25 specialized agents**, **73 workflows**, and **11 shared skills** — from initial research all the way to deployment.
9
+ AI agent framework for [Claude Code](https://docs.anthropic.com/en/docs/claude-code) that orchestrates software product development through **26 specialized agents**, **73 workflows**, and **11 shared skills** — from initial research all the way to deployment.
9
10
 
10
11
  ![GAIA Lifecycle Activity Diagram](GAIA_Lifecycle_Activity_Diagram.png)
11
12
 
@@ -20,7 +21,7 @@ Without guardrails, every AI session starts from zero. There's no traceability f
20
21
  **What this gives you:**
21
22
 
22
23
  - **A structured lifecycle, not ad-hoc prompting** — 5 phases from analysis to deployment, with quality gates that enforce standards at every transition
23
- - **25 specialized agents** — each with a persona, domain expertise, and persistent memory that improves over time
24
+ - **26 specialized agents** — each with a persona, domain expertise, and persistent memory that improves over time
24
25
  - **Enforced quality gates** — 17 gates that HALT workflows when standards aren't met (not advisory — hard stops)
25
26
  - **6-gate review process** — every story passes code review, QA, security, test automation, test review, and performance review before completion
26
27
  - **Full traceability** — every line of code traces back through stories, epics, architecture decisions, and requirements to the original product brief
@@ -204,6 +205,7 @@ All developer agents extend a shared base with common dev patterns. Each adds st
204
205
  | Java Dev | Hugo | Spring Boot, JPA, microservices | `/gaia-agent-dev-java` |
205
206
  | Python Dev | Ravi | Django, FastAPI, data pipelines | `/gaia-agent-dev-python` |
206
207
  | Mobile Dev | Talia | React Native, Swift, Kotlin | `/gaia-agent-dev-mobile` |
208
+ | Go Dev | Kai | Go, Gin, Fiber, gRPC | `/gaia-agent-dev-go` |
207
209
 
208
210
  ### Creative Agents
209
211
 
@@ -458,7 +460,7 @@ The single source of truth is `_gaia/_config/global.yaml`:
458
460
 
459
461
  ```yaml
460
462
  framework_name: "GAIA"
461
- framework_version: "1.48.0"
463
+ framework_version: "1.48.3"
462
464
  user_name: "your-name"
463
465
  project_name: "your-project"
464
466
  ```
package/gaia-install.sh CHANGED
@@ -6,7 +6,7 @@ set -euo pipefail
6
6
  # Installs, updates, validates, and reports on GAIA installations.
7
7
  # ─────────────────────────────────────────────────────────────────────────────
8
8
 
9
- readonly VERSION="1.48.0"
9
+ readonly VERSION="1.48.3"
10
10
  readonly GITHUB_REPO="https://github.com/jlouage/Gaia-framework.git"
11
11
  readonly MANIFEST_REL="_gaia/_config/manifest.yaml"
12
12
 
@@ -600,6 +600,12 @@ cmd_update() {
600
600
  # ─── cmd_validate ───────────────────────────────────────────────────────────
601
601
 
602
602
  cmd_validate() {
603
+ # Guard: reject empty, unset, or whitespace-only TARGET
604
+ if [[ -z "${TARGET:-}" || "${TARGET}" =~ ^[[:space:]]+$ ]]; then
605
+ error "TARGET path is empty or whitespace-only"
606
+ exit 1
607
+ fi
608
+
603
609
  if [[ ! -d "$TARGET/_gaia" ]]; then
604
610
  error "No GAIA installation found at $TARGET"
605
611
  exit 1
@@ -610,9 +616,12 @@ cmd_validate() {
610
616
 
611
617
  local pass=0 fail=0
612
618
 
619
+ # check: accepts a label and the exit status ($?) of a preceding test command.
620
+ # The test command runs inline before calling check, passing $? as the result.
621
+ # This avoids eval entirely — conditions execute directly via [[ ]] or grep.
613
622
  check() {
614
- local label="$1" condition="$2"
615
- if eval "$condition"; then
623
+ local label="$1" result="$2"
624
+ if [[ "$result" -eq 0 ]]; then
616
625
  printf " ${GREEN}✔${RESET} %s\n" "$label"
617
626
  pass=$((pass + 1))
618
627
  else
@@ -622,47 +631,47 @@ cmd_validate() {
622
631
  }
623
632
 
624
633
  # Manifest
625
- check "manifest.yaml exists" "[[ -f '$TARGET/$MANIFEST_REL' ]]"
634
+ [[ -f "$TARGET/$MANIFEST_REL" ]]; check "manifest.yaml exists" $?
626
635
 
627
636
  # Global config fields
628
637
  local global="$TARGET/_gaia/_config/global.yaml"
629
- check "global.yaml exists" "[[ -f '$global' ]]"
638
+ [[ -f "$global" ]]; check "global.yaml exists" $?
630
639
  if [[ -f "$global" ]]; then
631
- check "global.yaml has project_name" "grep -q '^project_name:' '$global'"
632
- check "global.yaml has user_name" "grep -q '^user_name:' '$global'"
633
- check "global.yaml has framework_version" "grep -q '^framework_version:' '$global'"
640
+ local grc=0; grep -q '^project_name:' "$global" || grc=$?; check "global.yaml has project_name" $grc
641
+ grc=0; grep -q '^user_name:' "$global" || grc=$?; check "global.yaml has user_name" $grc
642
+ grc=0; grep -q '^framework_version:' "$global" || grc=$?; check "global.yaml has framework_version" $grc
634
643
  fi
635
644
 
636
645
  # Module directories
637
646
  for mod in core lifecycle dev creative testing; do
638
- check "Module: $mod" "[[ -d '$TARGET/_gaia/$mod' ]]"
647
+ [[ -d "$TARGET/_gaia/$mod" ]]; check "Module: $mod" $?
639
648
  done
640
649
 
641
650
  # .resolved directories
642
651
  for mod in core lifecycle creative testing; do
643
- check ".resolved: $mod" "[[ -d '$TARGET/_gaia/$mod/.resolved' ]]"
652
+ [[ -d "$TARGET/_gaia/$mod/.resolved" ]]; check ".resolved: $mod" $?
644
653
  done
645
654
 
646
655
  # Memory directory at project root (ADR-013)
647
- check "_memory/ directory" "[[ -d '$TARGET/_memory' ]]"
656
+ [[ -d "$TARGET/_memory" ]]; check "_memory/ directory" $?
648
657
  for dir in "${MEMORY_DIRS[@]}"; do
649
- check "Memory: $dir" "[[ -d '$TARGET/_memory/$dir' ]]"
658
+ [[ -d "$TARGET/_memory/$dir" ]]; check "Memory: $dir" $?
650
659
  done
651
660
 
652
661
  # CLAUDE.md
653
- check "CLAUDE.md exists" "[[ -f '$TARGET/CLAUDE.md' ]]"
662
+ [[ -f "$TARGET/CLAUDE.md" ]]; check "CLAUDE.md exists" $?
654
663
 
655
664
  # Slash commands
656
- check "Slash commands directory" "[[ -d '$TARGET/.claude/commands' ]]"
665
+ [[ -d "$TARGET/.claude/commands" ]]; check "Slash commands directory" $?
657
666
  if [[ -d "$TARGET/.claude/commands" ]]; then
658
667
  local cmd_count
659
668
  cmd_count="$(find "$TARGET/.claude/commands" -name 'gaia*.md' -type f 2>/dev/null | wc -l | tr -d ' ')"
660
- check "Slash commands present (found: $cmd_count)" "[[ $cmd_count -gt 0 ]]"
669
+ [[ "$cmd_count" -gt 0 ]]; check "Slash commands present (found: $cmd_count)" $?
661
670
  fi
662
671
 
663
672
  # Docs directories
664
673
  for dir in planning-artifacts implementation-artifacts test-artifacts creative-artifacts; do
665
- check "Docs: $dir" "[[ -d '$TARGET/docs/$dir' ]]"
674
+ [[ -d "$TARGET/docs/$dir" ]]; check "Docs: $dir" $?
666
675
  done
667
676
 
668
677
  # Version
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "gaia-framework",
3
- "version": "1.48.0",
3
+ "version": "1.48.3",
4
4
  "description": "GAIA — Generative Agile Intelligence Architecture installer",
5
5
  "bin": {
6
6
  "gaia-framework": "./bin/gaia-framework.js"