gaia-framework 1.66.0 → 1.83.2

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 (38) hide show
  1. package/.claude/commands/gaia-create-stakeholder.md +20 -0
  2. package/.claude/commands/gaia-test-gap-analysis.md +17 -0
  3. package/CLAUDE.md +87 -1
  4. package/README.md +2 -2
  5. package/_gaia/_config/global.yaml +5 -1
  6. package/_gaia/_config/lifecycle-sequence.yaml +20 -0
  7. package/_gaia/_config/skill-manifest.csv +2 -0
  8. package/_gaia/_config/workflow-manifest.csv +3 -1
  9. package/_gaia/core/engine/workflow.xml +5 -1
  10. package/_gaia/core/workflows/party-mode/steps/step-01-agent-loading.md +60 -9
  11. package/_gaia/creative/workflows/problem-solving/checklist.md +64 -14
  12. package/_gaia/creative/workflows/problem-solving/instructions.xml +367 -22
  13. package/_gaia/creative/workflows/problem-solving/workflow.yaml +31 -1
  14. package/_gaia/dev/agents/_base-dev.md +7 -1
  15. package/_gaia/dev/skills/_skill-index.yaml +9 -0
  16. package/_gaia/dev/skills/figma-integration.md +296 -0
  17. package/_gaia/lifecycle/templates/brownfield-scan-security-prompt.md +228 -0
  18. package/_gaia/lifecycle/templates/gap-entry-schema.md +39 -4
  19. package/_gaia/lifecycle/templates/story-template.md +22 -1
  20. package/_gaia/lifecycle/workflows/2-planning/create-ux-design/instructions.xml +52 -3
  21. package/_gaia/lifecycle/workflows/4-implementation/create-stakeholder/checklist.md +25 -0
  22. package/_gaia/lifecycle/workflows/4-implementation/create-stakeholder/instructions.xml +79 -0
  23. package/_gaia/lifecycle/workflows/4-implementation/create-stakeholder/workflow.yaml +22 -0
  24. package/_gaia/lifecycle/workflows/4-implementation/create-story/instructions.xml +10 -0
  25. package/_gaia/lifecycle/workflows/4-implementation/retrospective/instructions.xml +3 -3
  26. package/_gaia/lifecycle/workflows/4-implementation/validate-story/instructions.xml +11 -0
  27. package/_gaia/lifecycle/workflows/anytime/brownfield-onboarding/instructions.xml +11 -7
  28. package/_gaia/testing/workflows/test-gap-analysis/checklist.md +8 -0
  29. package/_gaia/testing/workflows/test-gap-analysis/instructions.xml +53 -0
  30. package/_gaia/testing/workflows/test-gap-analysis/workflow.yaml +38 -0
  31. package/bin/gaia-framework.js +36 -2
  32. package/bin/helpers/derive-bump-label.js +41 -0
  33. package/bin/helpers/validate-bump-labels.js +38 -0
  34. package/gaia-install.sh +71 -4
  35. package/package.json +1 -1
  36. package/_gaia/_memory/tier2-results/.gitkeep +0 -0
  37. package/_gaia/_memory/tier2-results/checkpoint-resume-2026-03-24.yaml +0 -6
  38. package/_gaia/_memory/tier2-results/engine-scenarios-2026-03-22.yaml +0 -14
package/gaia-install.sh CHANGED
@@ -76,6 +76,7 @@ TARGET=""
76
76
  OPT_YES=false
77
77
  OPT_DRY_RUN=false
78
78
  OPT_VERBOSE=false
79
+ OPT_BRANCH=""
79
80
 
80
81
  # ─── Utility Functions ──────────────────────────────────────────────────────
81
82
 
@@ -95,7 +96,11 @@ clone_from_github() {
95
96
  fi
96
97
  TEMP_CLONE_DIR="$(mktemp -d "${TMPDIR:-/tmp}/gaia-framework-XXXXXX")"
97
98
  info "Cloning GAIA from GitHub..." >&2
98
- if git clone --depth 1 "$GITHUB_REPO" "$TEMP_CLONE_DIR" 2>/dev/null; then
99
+ local branch_args=()
100
+ if [[ -n "$OPT_BRANCH" ]]; then
101
+ branch_args=(--branch "$OPT_BRANCH")
102
+ fi
103
+ if git clone --depth 1 "${branch_args[@]}" "$GITHUB_REPO" "$TEMP_CLONE_DIR" 2>/dev/null; then
99
104
  success "Cloned to temporary directory" >&2
100
105
  else
101
106
  error "Failed to clone from $GITHUB_REPO"
@@ -495,7 +500,7 @@ cmd_init() {
495
500
 
496
501
  # Step 8: Create custom directories (ADR-020: user-owned write targets)
497
502
  step "Creating custom directories..."
498
- for cdir in skills templates; do
503
+ for cdir in skills templates stakeholders; do
499
504
  if [[ "$OPT_DRY_RUN" == true ]]; then
500
505
  detail "[dry-run] Would create: custom/$cdir/"
501
506
  else
@@ -628,6 +633,35 @@ cmd_update() {
628
633
  "_config/manifest.yaml"
629
634
  )
630
635
 
636
+ # ─── Migrate .customize.yaml files before _gaia/ overwrite (E10-S19, FR-153) ──
637
+ # Copy user customize.yaml files from _gaia/_config/agents/ to custom/skills/
638
+ # before the framework overwrite replaces _gaia/ contents with defaults.
639
+ # Copy-only semantics: originals are left in place as fallback (AC2).
640
+ step "Migrating customize.yaml files to custom/skills/..."
641
+ if [[ "$OPT_DRY_RUN" != true ]]; then
642
+ mkdir -p "$TARGET/custom/skills"
643
+ fi
644
+ local migrated=0
645
+ for cust_file in "$TARGET/_gaia/_config/agents/"*.customize.yaml; do
646
+ [[ -f "$cust_file" ]] || continue
647
+ local cust_basename
648
+ cust_basename="$(basename "$cust_file")"
649
+ if [[ -f "$TARGET/custom/skills/$cust_basename" ]]; then
650
+ [[ "$OPT_VERBOSE" == true ]] && detail "Skipped (already exists): custom/skills/$cust_basename"
651
+ continue
652
+ fi
653
+ if [[ "$OPT_DRY_RUN" == true ]]; then
654
+ detail "[dry-run] Would migrate: _gaia/_config/agents/$cust_basename → custom/skills/$cust_basename"
655
+ else
656
+ cp "$cust_file" "$TARGET/custom/skills/$cust_basename"
657
+ info "[migrate] _gaia/_config/agents/$cust_basename → custom/skills/$cust_basename"
658
+ migrated=$((migrated + 1))
659
+ fi
660
+ done
661
+ if [[ "$migrated" -gt 0 ]]; then
662
+ detail "Migrated $migrated customize.yaml file(s) to custom/skills/"
663
+ fi
664
+
631
665
  step "Updating framework files..."
632
666
  local updated=0 skipped=0 changed=0
633
667
 
@@ -690,7 +724,7 @@ cmd_update() {
690
724
  done
691
725
 
692
726
  # Ensure custom directories exist (user-owned, never overwritten — ADR-020)
693
- for cdir in skills templates; do
727
+ for cdir in skills templates stakeholders; do
694
728
  if [[ "$OPT_DRY_RUN" == true ]]; then
695
729
  [[ ! -d "$TARGET/custom/$cdir" ]] && detail "[dry-run] Would create: custom/$cdir/"
696
730
  else
@@ -740,6 +774,29 @@ cmd_update() {
740
774
  fi
741
775
  fi
742
776
 
777
+ # ─── Post-install verification: check skill references in customize.yaml (E10-S19, AC4) ──
778
+ step "Verifying skill references in custom/skills/*.customize.yaml..."
779
+ for cust_file in "$TARGET/custom/skills/"*.customize.yaml; do
780
+ [[ -f "$cust_file" ]] || continue
781
+ local cust_name
782
+ cust_name="$(basename "$cust_file")"
783
+ # Extract source: values from customize.yaml (simple grep — no full YAML parser needed)
784
+ while IFS= read -r source_line; do
785
+ # Strip key prefix, leading whitespace, and surrounding quotes via parameter expansion
786
+ local ref_path="${source_line#*source:}"
787
+ ref_path="${ref_path#"${ref_path%%[![:space:]]*}"}" # trim leading whitespace
788
+ ref_path="${ref_path#[\"\']}" # trim leading quote
789
+ ref_path="${ref_path%[\"\']}" # trim trailing quote
790
+ [[ -z "$ref_path" ]] && continue
791
+ # Resolve relative paths against TARGET
792
+ local full_path="$TARGET/$ref_path"
793
+ [[ "$ref_path" == /* ]] && full_path="$ref_path"
794
+ if [[ ! -f "$full_path" ]]; then
795
+ warn "[warn] Broken skill reference in $cust_name: $ref_path not found"
796
+ fi
797
+ done < <(grep 'source:' "$cust_file" || true)
798
+ done
799
+
743
800
  # Summary
744
801
  echo ""
745
802
  if [[ -d "$backup_dir" ]]; then
@@ -832,9 +889,10 @@ cmd_validate() {
832
889
  [[ -d "$TARGET/docs/$dir" ]]; check "Docs: $dir" $?
833
890
  done
834
891
 
835
- # Custom directories (ADR-020: user-owned write targets)
892
+ # Custom directories (ADR-020: user-owned write targets, ADR-026: stakeholder agents)
836
893
  [[ -d "$TARGET/custom/skills" ]]; check "custom/skills/ exists" $?
837
894
  [[ -d "$TARGET/custom/templates" ]]; check "custom/templates/ exists" $?
895
+ [[ -d "$TARGET/custom/stakeholders" ]]; check "custom/stakeholders/ exists" $?
838
896
 
839
897
  # Version
840
898
  local version
@@ -938,6 +996,7 @@ ${BOLD}Commands:${RESET}
938
996
 
939
997
  ${BOLD}Options:${RESET}
940
998
  --source <path> Local GAIA source (or clones from GitHub if omitted)
999
+ --branch <name> Clone from a specific branch
941
1000
  --yes Skip confirmation prompts
942
1001
  --dry-run Show what would be done without making changes
943
1002
  --verbose Show detailed progress
@@ -1011,6 +1070,14 @@ parse_args() {
1011
1070
  OPT_VERBOSE=true
1012
1071
  shift
1013
1072
  ;;
1073
+ --branch)
1074
+ if [[ -z "${2:-}" ]]; then
1075
+ error "--branch requires a branch name argument"
1076
+ exit 1
1077
+ fi
1078
+ OPT_BRANCH="$2"
1079
+ shift 2
1080
+ ;;
1014
1081
  --help|-h)
1015
1082
  usage
1016
1083
  exit 0
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "gaia-framework",
3
- "version": "1.66.0",
3
+ "version": "1.83.2",
4
4
  "description": "GAIA — Generative Agile Intelligence Architecture installer",
5
5
  "bin": {
6
6
  "gaia-framework": "./bin/gaia-framework.js"
File without changes
@@ -1,6 +0,0 @@
1
- test_name: "checkpoint-resume-reliability"
2
- date: "2026-03-24"
3
- result: "pass"
4
- observations: "All 10 test scenarios passed. Checkpoint validation (schema, checksums, legacy format), resume state reconstruction (happy path, error cases), and file modification detection (modified, deleted) all verified. 45 total tests: 31 unit + 14 Tier 2."
5
- runner: "Cleo (typescript-dev)"
6
- framework_version: "1.48.3"
@@ -1,14 +0,0 @@
1
- test_name: engine-scenarios
2
- date: "2026-03-22T00:00:00Z"
3
- result: pass
4
- observations: |
5
- All 6 ACs validated via 18 structural tests:
6
- - AC1: Step ordering verified in workflow.xml and dev-story instructions.xml (4 tests)
7
- - AC2: Checkpoint YAML schema validated with all required fields (3 tests)
8
- - AC3: Quality gate structure validated across all workflow configs (3 tests)
9
- - AC4: Variable resolution verified — all vars in known set, engine requires global.yaml (3 tests)
10
- - AC5: Execution mode switching definitions validated in workflow.xml (3 tests)
11
- - AC6: tier2-results directory exists, result YAML schema validated (2 tests)
12
- Zero regressions in existing Tier 1 tests (3486 passing).
13
- runner: vitest
14
- framework_version: "1.45.0"