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 +7 -5
- package/gaia-install.sh +25 -16
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
# GAIA — Generative Agile Intelligence Architecture
|
|
2
2
|
|
|
3
|
-
[]()
|
|
4
4
|
[]()
|
|
5
|
-
[]()
|
|
6
6
|
[]()
|
|
7
|
+
[](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 **
|
|
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
|

|
|
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
|
-
- **
|
|
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.
|
|
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.
|
|
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"
|
|
615
|
-
if
|
|
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
|
-
|
|
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
|
-
|
|
638
|
+
[[ -f "$global" ]]; check "global.yaml exists" $?
|
|
630
639
|
if [[ -f "$global" ]]; then
|
|
631
|
-
|
|
632
|
-
|
|
633
|
-
|
|
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
|
-
|
|
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
|
-
|
|
652
|
+
[[ -d "$TARGET/_gaia/$mod/.resolved" ]]; check ".resolved: $mod" $?
|
|
644
653
|
done
|
|
645
654
|
|
|
646
655
|
# Memory directory at project root (ADR-013)
|
|
647
|
-
|
|
656
|
+
[[ -d "$TARGET/_memory" ]]; check "_memory/ directory" $?
|
|
648
657
|
for dir in "${MEMORY_DIRS[@]}"; do
|
|
649
|
-
|
|
658
|
+
[[ -d "$TARGET/_memory/$dir" ]]; check "Memory: $dir" $?
|
|
650
659
|
done
|
|
651
660
|
|
|
652
661
|
# CLAUDE.md
|
|
653
|
-
|
|
662
|
+
[[ -f "$TARGET/CLAUDE.md" ]]; check "CLAUDE.md exists" $?
|
|
654
663
|
|
|
655
664
|
# Slash commands
|
|
656
|
-
|
|
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)"
|
|
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
|
-
|
|
674
|
+
[[ -d "$TARGET/docs/$dir" ]]; check "Docs: $dir" $?
|
|
666
675
|
done
|
|
667
676
|
|
|
668
677
|
# Version
|