gaia-framework 1.59.0 → 1.61.0
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/CLAUDE.md +1 -1
- package/README.md +1 -1
- package/_gaia/_config/global.yaml +1 -1
- package/_gaia/_config/manifest.yaml +2 -2
- package/_gaia/core/config.yaml +1 -1
- package/_gaia/core/engine/workflow.xml +1 -10
- package/_gaia/lifecycle/config.yaml +1 -1
- package/_gaia/lifecycle/workflows/4-implementation/val-refresh-ground-truth/checklist.md +15 -0
- package/_gaia/lifecycle/workflows/4-implementation/val-refresh-ground-truth/instructions.xml +153 -57
- package/_gaia/lifecycle/workflows/4-implementation/val-refresh-ground-truth/workflow.yaml +5 -0
- package/gaia-install.sh +1 -1
- package/package.json +1 -1
package/CLAUDE.md
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
|
|
2
|
-
# GAIA Framework v1.
|
|
2
|
+
# GAIA Framework v1.61.0
|
|
3
3
|
|
|
4
4
|
This project uses the **GAIA** (Generative Agile Intelligence Architecture) framework — an AI agent framework for Claude Code that orchestrates software product development through 26 specialized agents, 65 workflows, and 8 shared skills.
|
|
5
5
|
|
package/README.md
CHANGED
package/_gaia/core/config.yaml
CHANGED
|
@@ -68,17 +68,8 @@ execution modes (normal/yolo/planning), checkpoints, and quality gates.
|
|
|
68
68
|
<action if="agent is 'dev-*' (wildcard)">Check if workflow.yaml declares agent_auto_detect: true. If true, execute the agent_auto_detect_strategy from workflow.yaml to determine the stack. If auto-detection succeeds, resolve to {project-root}/_gaia/dev/agents/{detected_stack}-dev.md and inform user: "Auto-detected developer: {agent_name} based on {detection_source}." If auto-detection fails or agent_auto_detect is false/absent: ask user which stack developer to use (typescript, angular, flutter, java, python, mobile, go), then resolve to {project-root}/_gaia/dev/agents/{stack}-dev.md</action>
|
|
69
69
|
<action if="agent file resolved">Read the agent persona file — adopt its persona, name, communication style, rules, and domain knowledge for the duration of this workflow</action>
|
|
70
70
|
<action if="agent file resolved">Do NOT execute the agent's activation protocol, greeting, or menu — the workflow engine controls step execution</action>
|
|
71
|
+
<action if="agent file resolved">Do NOT load the agent's memory sidecar — the workflow engine manages its own checkpoints</action>
|
|
71
72
|
<action if="agent file resolved">Check for {project-root}/_gaia/_config/agents/{agent-id}.customize.yaml. If found, load and merge overrides (persona_overrides, menu_additions, menu_removals, skill_additions, rule_additions, skill_overrides, skill_section_overrides). For dev agents, also check all-dev.customize.yaml and merge (agent-specific takes precedence over all-dev).</action>
|
|
72
|
-
|
|
73
|
-
<!-- Memory Load Protocol (E9-S7) — Load agent memory sidecar files after persona, before instructions -->
|
|
74
|
-
<action if="agent file resolved">Read {project-root}/_memory/config.yaml to resolve agent tier and sidecar path. If the file does not exist, log "Memory config not found — skipping memory loading." and skip all remaining memory load actions in this step.</action>
|
|
75
|
-
<action if="agent file resolved">Resolve the agent's tier classification: look up the resolved agent ID in _memory/config.yaml tier lists — check tiers.tier_1.agents, tiers.tier_2.agents, and tiers.tier_3.agents in that order. If the agent ID is not found in any tier list (untiered), treat as Tier 3 by default — load decision-log.md only if it exists, with no budget enforcement.</action>
|
|
76
|
-
<action if="agent file resolved">Resolve sidecar path: read agents.{agent-id}.sidecar from _memory/config.yaml, construct absolute path as {project-root}/_memory/{sidecar_value}/. If the agent entry is not found in the agents section, construct path as {project-root}/_memory/{agent-id}-sidecar/.</action>
|
|
77
|
-
<action if="agent file resolved">Check if the sidecar directory exists. If the directory does not exist or is empty, skip all file loading silently — no error, no warning. Proceed to Step 4.</action>
|
|
78
|
-
<action if="agent file resolved and tier == 1">Load canonical sidecar files (silently skip any that do not exist): ground-truth.md, decision-log.md, conversation-context.md (3 files). These provide the agent's persistent ground truth, decision history, and recent conversation context.</action>
|
|
79
|
-
<action if="agent file resolved and tier == 2">Load canonical sidecar files (silently skip any that do not exist): decision-log.md, conversation-context.md (2 files). Tier 2 agents do not have ground-truth.md.</action>
|
|
80
|
-
<action if="agent file resolved and tier == 3 or untiered">Load canonical sidecar file (silently skip if it does not exist): decision-log.md (1 file). Tier 3 and untiered agents receive minimal memory context.</action>
|
|
81
|
-
<action if="agent file resolved and tier in [1, 2]">Estimate token budget usage: sum the byte lengths of all loaded sidecar files, divide by the token_approximation value (default: 4 chars per token, from _memory/config.yaml archival.token_approximation). Compare against the agent's session_budget from the tier definition in _memory/config.yaml. If usage reaches or exceeds the budget_warn_at threshold (0.8 / 80% from _memory/config.yaml archival.budget_warn_at): display warning "Memory budget at {N}% for {agent_name} — {used}K of {budget}K tokens." For Tier 3 and untiered agents (session_budget: null), skip the token budget check entirely.</action>
|
|
82
73
|
</step>
|
|
83
74
|
|
|
84
75
|
<step n="4" title="Load Instructions">
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
inherits: "{project-root}/_gaia/_config/global.yaml"
|
|
3
3
|
|
|
4
4
|
module_name: "lifecycle"
|
|
5
|
-
module_version: "1.
|
|
5
|
+
module_version: "1.38.0"
|
|
6
6
|
|
|
7
7
|
planning_artifacts: "{project-root}/docs/planning-artifacts"
|
|
8
8
|
implementation_artifacts: "{project-root}/docs/implementation-artifacts"
|
|
@@ -42,6 +42,21 @@ validation-target: 'Ground truth refresh workflow'
|
|
|
42
42
|
- [ ] ground-truth-management sections loaded JIT
|
|
43
43
|
- [ ] Sections: full-refresh, incremental-refresh, entry-structure, conflict-resolution, token-budget
|
|
44
44
|
|
|
45
|
+
## --agent Parameter (E9-S11)
|
|
46
|
+
- [ ] workflow.yaml declares agent parameter with flag --agent and allowed values [val, theo, derek, nate, all]
|
|
47
|
+
- [ ] Default agent is val (backward compatible — no --agent behaves identically to pre-E9-S11)
|
|
48
|
+
- [ ] Invalid agent names produce clear error with valid values list
|
|
49
|
+
- [ ] Per-agent sidecar initialization creates missing ground-truth.md for any Tier 1 agent
|
|
50
|
+
- [ ] Theo inventory scans filesystem structure + architecture.md
|
|
51
|
+
- [ ] Derek inventory scans prd.md + epics-and-stories.md + sprint-status.yaml
|
|
52
|
+
- [ ] Nate inventory scans sprint-status.yaml + story files in implementation-artifacts/
|
|
53
|
+
- [ ] Val inventory uses existing 6-target scan (unchanged)
|
|
54
|
+
- [ ] Decision log entries route to target agent's own decision-log.md
|
|
55
|
+
- [ ] Per-agent ground_truth_budget enforced (Val 200K, Theo 150K, Derek 100K, Nate 100K)
|
|
56
|
+
- [ ] --agent all runs val → theo → derek → nate sequentially
|
|
57
|
+
- [ ] --agent all continues on per-agent failure and reports which succeeded/failed
|
|
58
|
+
- [ ] --agent all presents combined summary with per-agent status
|
|
59
|
+
|
|
45
60
|
## Integration
|
|
46
61
|
- [ ] Manifest entry exists in workflow-manifest.csv
|
|
47
62
|
- [ ] Works identically standalone or as sub-step
|
package/_gaia/lifecycle/workflows/4-implementation/val-refresh-ground-truth/instructions.xml
CHANGED
|
@@ -7,95 +7,166 @@
|
|
|
7
7
|
<mandate>Behavior must be identical whether called standalone or as sub-step from another workflow</mandate>
|
|
8
8
|
</critical>
|
|
9
9
|
|
|
10
|
-
<step n="1" title="
|
|
11
|
-
<action>
|
|
12
|
-
<action
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
<action
|
|
10
|
+
<step n="1" title="Resolve Agent Target">
|
|
11
|
+
<action>Parse $ARGUMENTS for --agent value. If --agent is absent, default to "val" for backward compatibility.</action>
|
|
12
|
+
<action>Validate agent name against allowed values: val, theo, derek, nate, all.
|
|
13
|
+
If the agent name is not in the allowed values list: HALT with error:
|
|
14
|
+
"Unknown agent '{agent_name}'. Valid values: val, theo, derek, nate, all."</action>
|
|
15
|
+
<action>Resolve target sidecar path and inventory source files based on agent:
|
|
16
|
+
- val: sidecar = {memory_path}/validator-sidecar/, inventory = 6-target scan (existing)
|
|
17
|
+
- theo: sidecar = {memory_path}/architect-sidecar/, inventory = filesystem structure + {planning_artifacts}/architecture.md
|
|
18
|
+
- derek: sidecar = {memory_path}/pm-sidecar/, inventory = {planning_artifacts}/prd.md + {planning_artifacts}/epics-and-stories.md + {implementation_artifacts}/sprint-status.yaml
|
|
19
|
+
- nate: sidecar = {memory_path}/sm-sidecar/, inventory = {implementation_artifacts}/sprint-status.yaml + story files in {implementation_artifacts}/
|
|
20
|
+
- all: run sequentially for val, theo, derek, nate (see Step 13)</action>
|
|
21
|
+
<action if="agent == all">Set agent_queue = [val, theo, derek, nate]. Proceed to Step 13 for orchestration.</action>
|
|
16
22
|
</step>
|
|
17
23
|
|
|
18
|
-
<step n="2" title="
|
|
24
|
+
<step n="2" title="Initialize Agent Sidecar">
|
|
25
|
+
<action>Check if the resolved target sidecar directory exists (e.g., {memory_path}/validator-sidecar/ for val, {memory_path}/architect-sidecar/ for theo, {memory_path}/pm-sidecar/ for derek, {memory_path}/sm-sidecar/ for nate)</action>
|
|
26
|
+
<action if="directory missing">Create the resolved sidecar directory</action>
|
|
27
|
+
<action if="ground-truth.md missing">Create ground-truth.md in the resolved sidecar directory with empty header containing last-refresh timestamp set to "never"</action>
|
|
28
|
+
<action if="decision-log.md missing">Create decision-log.md in the resolved sidecar directory with header: "# {agent_display_name} Decision Log" and empty entries</action>
|
|
29
|
+
<action if="conversation-context.md missing">Create conversation-context.md in the resolved sidecar directory with header: "# {agent_display_name} Conversation Context" and empty rolling state</action>
|
|
30
|
+
</step>
|
|
31
|
+
|
|
32
|
+
<step n="3" title="Determine Refresh Mode">
|
|
19
33
|
<action>Check if --incremental flag was passed</action>
|
|
20
34
|
<action if="incremental">Set mode to incremental — only scan files modified since last-refresh timestamp from ground-truth.md header</action>
|
|
21
35
|
<action if="not incremental">Set mode to full — scan all targets completely. Full refresh catches deletions and renames that incremental would miss.</action>
|
|
22
36
|
</step>
|
|
23
37
|
|
|
24
|
-
<step n="
|
|
38
|
+
<step n="4" title="Load Entry Structure">
|
|
25
39
|
<action>Load ground-truth-management skill section: entry-structure (JIT)</action>
|
|
26
40
|
<action>Use entry-structure format for all ground truth entries written in subsequent steps</action>
|
|
27
41
|
</step>
|
|
28
42
|
|
|
29
|
-
<step n="
|
|
30
|
-
<action>Read existing
|
|
43
|
+
<step n="5" title="Parse Previous State">
|
|
44
|
+
<action>Read existing ground-truth.md from the resolved target sidecar directory</action>
|
|
31
45
|
<action>Extract last-refresh timestamp from header</action>
|
|
32
46
|
<action>Parse all existing entries into a lookup map keyed by file path for diff comparison</action>
|
|
33
47
|
<action if="incremental mode">Filter scan targets to only files modified after last-refresh timestamp</action>
|
|
34
48
|
</step>
|
|
35
49
|
|
|
36
|
-
<step n="
|
|
50
|
+
<step n="6" title="Scan Inventory Targets">
|
|
37
51
|
<action>Load ground-truth-management skill section based on mode: full-refresh or incremental-refresh (JIT)</action>
|
|
38
|
-
<action>Scan the following 6 inventory targets, showing section-by-section progress to the user after each target completes.</action>
|
|
39
52
|
|
|
40
|
-
<action
|
|
41
|
-
|
|
42
|
-
|
|
53
|
+
<action if="agent == val">
|
|
54
|
+
Scan the following 6 inventory targets (existing Val scan — unchanged for backward compatibility), showing section-by-section progress to the user after each target completes.
|
|
55
|
+
|
|
56
|
+
<action title="Exclusion list">
|
|
57
|
+
ALWAYS exclude these directories and files from scanning — they are framework internals, not project code:
|
|
58
|
+
_gaia/, .claude/, bin/, _memory/, node_modules/, .git/, build/, dist/, .DS_Store, *.lock
|
|
59
|
+
</action>
|
|
60
|
+
|
|
61
|
+
<action title="Target 1: Project Source Files">
|
|
62
|
+
Scan {project-path}/**/* (excluding the exclusion list above)
|
|
63
|
+
Extract: file inventory, directory structure, languages used, entry points
|
|
64
|
+
Report progress: "Scanning project source files... found N files across N directories."
|
|
65
|
+
</action>
|
|
66
|
+
|
|
67
|
+
<action title="Target 2: Project Config Files">
|
|
68
|
+
Scan {project-path}/*.{json,yaml,yml,toml,xml,env.example} (root-level config files)
|
|
69
|
+
Extract: config keys, settings, dependency declarations
|
|
70
|
+
Report progress: "Scanning project config files... found N config files."
|
|
71
|
+
</action>
|
|
72
|
+
|
|
73
|
+
<action title="Target 3: Project Package Manifests">
|
|
74
|
+
Scan {project-path}/**/package.json, pubspec.yaml, pom.xml, build.gradle, requirements.txt, Cargo.toml, go.mod, Gemfile, *.csproj (whichever exist)
|
|
75
|
+
Extract: dependencies, versions, scripts, build targets
|
|
76
|
+
Report progress: "Scanning package manifests... found N manifests."
|
|
77
|
+
</action>
|
|
78
|
+
|
|
79
|
+
<action title="Target 4: Planning Artifacts">
|
|
80
|
+
Scan {project-root}/docs/planning-artifacts/*.md
|
|
81
|
+
Extract: artifact name, type, date
|
|
82
|
+
Report progress: "Scanning planning artifacts... found N artifacts."
|
|
83
|
+
</action>
|
|
84
|
+
|
|
85
|
+
<action title="Target 5: Implementation Artifacts">
|
|
86
|
+
Scan {project-root}/docs/implementation-artifacts/*.md
|
|
87
|
+
Extract: artifact name, type, story key if applicable
|
|
88
|
+
Report progress: "Scanning implementation artifacts... found N artifacts."
|
|
89
|
+
</action>
|
|
90
|
+
|
|
91
|
+
<action title="Target 6: Test Artifacts">
|
|
92
|
+
Scan {project-root}/docs/test-artifacts/*.md
|
|
93
|
+
Extract: artifact name, type, coverage area
|
|
94
|
+
Report progress: "Scanning test artifacts... found N artifacts."
|
|
95
|
+
</action>
|
|
43
96
|
</action>
|
|
44
97
|
|
|
45
|
-
<action
|
|
46
|
-
Scan
|
|
47
|
-
Extract: file inventory, directory structure, languages used, entry points
|
|
48
|
-
Report progress: "Scanning project source files... found N files across N directories."
|
|
49
|
-
</action>
|
|
98
|
+
<action if="agent == theo">
|
|
99
|
+
Scan theo-specific inventory targets (architecture ground truth):
|
|
50
100
|
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
101
|
+
<action title="Target 1: Filesystem Structure">
|
|
102
|
+
Scan {project-path}/ for directory structure, file types, and project layout.
|
|
103
|
+
Extract: tech stack, components, module boundaries, entry points, build configuration.
|
|
104
|
+
Report progress: "Scanning filesystem structure for Theo... found N directories, N files."
|
|
105
|
+
</action>
|
|
56
106
|
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
107
|
+
<action title="Target 2: Architecture Document">
|
|
108
|
+
Scan {planning_artifacts}/architecture.md
|
|
109
|
+
Extract: ADRs, architectural decisions, component diagrams, dependency info, integration points, tech stack decisions.
|
|
110
|
+
Report progress: "Scanning architecture.md for Theo... extracted N ADRs, N components."
|
|
111
|
+
</action>
|
|
61
112
|
</action>
|
|
62
113
|
|
|
63
|
-
<action
|
|
64
|
-
Scan
|
|
65
|
-
|
|
66
|
-
|
|
114
|
+
<action if="agent == derek">
|
|
115
|
+
Scan derek-specific inventory targets (product ground truth):
|
|
116
|
+
|
|
117
|
+
<action title="Target 1: Product Requirements">
|
|
118
|
+
Scan {planning_artifacts}/prd.md
|
|
119
|
+
Extract: functional requirements, non-functional requirements, user stories overview, feature list, product goals.
|
|
120
|
+
Report progress: "Scanning prd.md for Derek... extracted N requirements."
|
|
121
|
+
</action>
|
|
122
|
+
|
|
123
|
+
<action title="Target 2: Epics and Stories">
|
|
124
|
+
Scan {planning_artifacts}/epics-and-stories.md
|
|
125
|
+
Extract: epic list, story breakdown, acceptance criteria summaries, dependency graph, sizing data.
|
|
126
|
+
Report progress: "Scanning epics-and-stories.md for Derek... extracted N epics, N stories."
|
|
127
|
+
</action>
|
|
128
|
+
|
|
129
|
+
<action title="Target 3: Sprint Status">
|
|
130
|
+
Scan {implementation_artifacts}/sprint-status.yaml
|
|
131
|
+
Extract: current sprint state, story statuses, velocity data, blocked items, completion rates.
|
|
132
|
+
Report progress: "Scanning sprint-status.yaml for Derek... extracted sprint state."
|
|
133
|
+
</action>
|
|
67
134
|
</action>
|
|
68
135
|
|
|
69
|
-
<action
|
|
70
|
-
Scan
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
136
|
+
<action if="agent == nate">
|
|
137
|
+
Scan nate-specific inventory targets (sprint ground truth):
|
|
138
|
+
|
|
139
|
+
<action title="Target 1: Sprint Status">
|
|
140
|
+
Scan {implementation_artifacts}/sprint-status.yaml
|
|
141
|
+
Extract: sprint metadata, story statuses, velocity metrics, blocked items, wave assignments.
|
|
142
|
+
Report progress: "Scanning sprint-status.yaml for Nate... extracted sprint state."
|
|
143
|
+
</action>
|
|
74
144
|
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
145
|
+
<action title="Target 2: Story Files">
|
|
146
|
+
Scan all story files in {implementation_artifacts}/ matching pattern *-*.md (story files)
|
|
147
|
+
Extract: story statuses, completion rates, subtask progress, blockers, review gate states.
|
|
148
|
+
Report progress: "Scanning story files in implementation-artifacts for Nate... found N stories."
|
|
149
|
+
</action>
|
|
79
150
|
</action>
|
|
80
151
|
</step>
|
|
81
152
|
|
|
82
|
-
<step n="
|
|
83
|
-
<action>Compare scan results against previous state from Step
|
|
153
|
+
<step n="7" title="Compare and Detect Changes">
|
|
154
|
+
<action>Compare scan results against previous state from Step 5</action>
|
|
84
155
|
<action>Classify each entry as: ADDED (new file not in previous state), UPDATED (file exists but metadata changed), UNCHANGED (no changes detected)</action>
|
|
85
156
|
<action if="full mode">For entries in previous state not found in scan results: mark as REMOVED with detection date (e.g., "REMOVED (file deleted, detected 2026-03-19)"). Do NOT silently delete entries.</action>
|
|
86
157
|
<action if="incremental mode">Skip deletion detection — incremental mode cannot detect deletions. This is a documented limitation.</action>
|
|
87
158
|
<action>Load ground-truth-management skill section: conflict-resolution (JIT) if any conflicts are detected between scan results and existing entries</action>
|
|
88
159
|
</step>
|
|
89
160
|
|
|
90
|
-
<step n="
|
|
91
|
-
<action>Update
|
|
161
|
+
<step n="8" title="Write Ground Truth">
|
|
162
|
+
<action>Update ground-truth.md in the resolved target agent's sidecar directory with all scan results</action>
|
|
92
163
|
<action>Write header with last-refresh timestamp set to current date/time</action>
|
|
93
|
-
<action>Organize entries by category
|
|
164
|
+
<action>Organize entries by category appropriate to the target agent</action>
|
|
94
165
|
<action>Include verified counts, locations, and structural patterns for each category</action>
|
|
95
166
|
<action>Preserve REMOVED entries with their detection dates — do not purge</action>
|
|
96
167
|
</step>
|
|
97
168
|
|
|
98
|
-
<step n="
|
|
169
|
+
<step n="9" title="Generate Diff Report">
|
|
99
170
|
<action>Generate diff/delta report summarizing changes since last refresh</action>
|
|
100
171
|
<action>Include counts by category: added, removed, updated entries</action>
|
|
101
172
|
<action>Include total entry count across all categories</action>
|
|
@@ -103,23 +174,48 @@
|
|
|
103
174
|
<action>Present the full diff report to the user</action>
|
|
104
175
|
</step>
|
|
105
176
|
|
|
106
|
-
<step n="
|
|
107
|
-
<action>Append the diff/delta report to
|
|
108
|
-
|
|
109
|
-
|
|
177
|
+
<step n="10" title="Log to Decision Log">
|
|
178
|
+
<action>Append the diff/delta report to the target agent's own decision-log.md in the resolved sidecar directory.
|
|
179
|
+
Route to the correct file based on resolved agent target:
|
|
180
|
+
- val: {memory_path}/validator-sidecar/decision-log.md
|
|
181
|
+
- theo: {memory_path}/architect-sidecar/decision-log.md
|
|
182
|
+
- derek: {memory_path}/pm-sidecar/decision-log.md
|
|
183
|
+
- nate: {memory_path}/sm-sidecar/decision-log.md
|
|
184
|
+
Never write to another agent's decision-log.md — this would violate cross-agent write isolation.</action>
|
|
185
|
+
<action>Include date, refresh mode (full or incremental), target agent name, and summary</action>
|
|
186
|
+
<action>Format: "## Refresh — {date} ({mode}) — Agent: {agent_name}\n{summary}"</action>
|
|
110
187
|
</step>
|
|
111
188
|
|
|
112
|
-
<step n="
|
|
189
|
+
<step n="11" title="Check Token Budget">
|
|
113
190
|
<action>Load ground-truth-management skill section: token-budget (JIT)</action>
|
|
114
|
-
<action>
|
|
115
|
-
|
|
191
|
+
<action>Load the correct per-agent ground_truth_budget from {memory_path}/config.yaml based on target agent:
|
|
192
|
+
- Val: 200K (200,000 tokens)
|
|
193
|
+
- Theo: 150K (150,000 tokens)
|
|
194
|
+
- Derek: 100K (100,000 tokens)
|
|
195
|
+
- Nate: 100K (100,000 tokens)
|
|
196
|
+
These are distinct from the 300K session_budget — ground_truth_budget controls only ground-truth.md size.</action>
|
|
197
|
+
<action>Estimate token count of the target agent's ground-truth.md</action>
|
|
198
|
+
<action>If token count exceeds the per-agent budget threshold: trigger archival of oldest REMOVED entries per token-budget skill guidance</action>
|
|
199
|
+
<action if="agent == all">Report per-agent usage separately (e.g., "Theo: 42K/150K, Derek: 18K/100K")</action>
|
|
116
200
|
<action>Report token usage to user</action>
|
|
117
201
|
</step>
|
|
118
202
|
|
|
119
|
-
<step n="
|
|
203
|
+
<step n="12" title="Present Results">
|
|
120
204
|
<template-output file="{memory_path}/validator-sidecar/ground-truth.md">
|
|
121
|
-
Ground truth refreshed
|
|
205
|
+
Ground truth refreshed for the target agent with verified inventory.
|
|
206
|
+
Output path is resolved at runtime based on --agent parameter (defaults to validator-sidecar).
|
|
122
207
|
Includes last-refresh timestamp, categorized entries, and REMOVED markers for deleted files.
|
|
123
208
|
</template-output>
|
|
124
209
|
</step>
|
|
210
|
+
|
|
211
|
+
<step n="13" title="Orchestrate --agent all" if="agent == all">
|
|
212
|
+
<action>Run refresh sequentially for each agent in order: val, theo, derek, nate.
|
|
213
|
+
Each agent's refresh completes fully (Steps 2-12) before the next begins.
|
|
214
|
+
No cross-contamination of sidecar writes — each agent writes only to its own sidecar.</action>
|
|
215
|
+
<action>On per-agent failure (e.g., missing source file like prd.md): log the error with reason, continue with remaining agents. Do not halt the entire sequence.</action>
|
|
216
|
+
<action>After all agents complete: present a combined summary with per-agent status:
|
|
217
|
+
- Which agents succeeded and their entry counts
|
|
218
|
+
- Which agents failed and the failure reasons
|
|
219
|
+
Format: "Refresh complete. Results: Val: OK (N entries), Theo: OK (N entries), Derek: FAILED (prd.md not found), Nate: OK (N entries)."</action>
|
|
220
|
+
</step>
|
|
125
221
|
</workflow>
|
|
@@ -9,6 +9,11 @@ installed_path: "{project-root}/_gaia/lifecycle/workflows/4-implementation/val-r
|
|
|
9
9
|
instructions: "{installed_path}/instructions.xml"
|
|
10
10
|
validation: "{installed_path}/checklist.md"
|
|
11
11
|
parameters:
|
|
12
|
+
agent:
|
|
13
|
+
flag: "--agent"
|
|
14
|
+
description: "Which Tier 1 agent's ground truth to refresh. Defaults to val for backward compatibility."
|
|
15
|
+
default: "val"
|
|
16
|
+
allowed_values: [val, theo, derek, nate, all]
|
|
12
17
|
incremental:
|
|
13
18
|
flag: "--incremental"
|
|
14
19
|
description: "Only scan files modified since last refresh timestamp. Full refresh is default."
|
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.
|
|
9
|
+
readonly VERSION="1.61.0"
|
|
10
10
|
readonly GITHUB_REPO="https://github.com/jlouage/Gaia-framework.git"
|
|
11
11
|
readonly MANIFEST_REL="_gaia/_config/manifest.yaml"
|
|
12
12
|
|