@jaguilar87/gaia-ops 2.2.2 → 2.2.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 +29 -5
- package/README.en.md +6 -2
- package/README.md +9 -5
- package/config/AGENTS.md +8 -7
- package/index.js +0 -12
- package/package.json +1 -1
- package/templates/CLAUDE.template.md +16 -16
- package/tools/context_provider.py +2 -25
package/CHANGELOG.md
CHANGED
|
@@ -5,6 +5,30 @@ All notable changes to the CLAUDE.md orchestrator instructions are documented in
|
|
|
5
5
|
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
|
6
6
|
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
7
7
|
|
|
8
|
+
## [2.2.3] - 2025-11-11
|
|
9
|
+
|
|
10
|
+
### Fixed - Deterministic Project Context Location
|
|
11
|
+
- **context_provider.py**
|
|
12
|
+
- Always reads `.claude/project-context/project-context.json` (no fallback to legacy paths)
|
|
13
|
+
- Removed legacy auto-detection logic and unused imports
|
|
14
|
+
- Prevents “Context file not found” errors when projects only use the new structure
|
|
15
|
+
- **templates/CLAUDE.template.md**
|
|
16
|
+
- Rule 1 clarifies when to delegate vs. self-execute
|
|
17
|
+
- Rule 2 explicitly documents the `context_provider.py --context-file .claude/project-context/project-context.json …` invocation
|
|
18
|
+
- Workflow summary now references orchestration docs after the table (cleaner render)
|
|
19
|
+
|
|
20
|
+
### Changed - CLI Documentation & Version Alignment
|
|
21
|
+
- **README.md / README.en.md**
|
|
22
|
+
- Documented the exact `npx` commands (`npx gaia-init` / `npx @jaguilar87/gaia-ops`) and clarified installation steps
|
|
23
|
+
- Updated “Current version” badges to **2.2.3**
|
|
24
|
+
- **package.json**
|
|
25
|
+
- Bumped package version to `2.2.3`
|
|
26
|
+
|
|
27
|
+
### Benefits
|
|
28
|
+
- ✅ No manual tweaks needed to point `context_provider.py` at the correct project context
|
|
29
|
+
- ✅ CLAUDE template now tells the orchestrator exactly how to invoke the context provider
|
|
30
|
+
- ✅ README instructions reflect the real CLI entry points, reducing confusion for new installs
|
|
31
|
+
|
|
8
32
|
---
|
|
9
33
|
|
|
10
34
|
## [2.2.2] - 2025-11-11
|
|
@@ -591,9 +615,9 @@ contract_keys = contracts["agents"][agent_name]["required"] # Provider-specific
|
|
|
591
615
|
|
|
592
616
|
**Recommended:**
|
|
593
617
|
|
|
594
|
-
- Read `.claude/
|
|
595
|
-
- Review `.claude/
|
|
596
|
-
- Check `.claude/
|
|
618
|
+
- Read `.claude/config/orchestration-workflow.md` to understand full Phase 0-6 workflow
|
|
619
|
+
- Review `.claude/config/git-standards.md` for complete commit standards
|
|
620
|
+
- Check `.claude/config/agent-catalog.md` for detailed agent capabilities
|
|
597
621
|
|
|
598
622
|
---
|
|
599
623
|
|
|
@@ -624,8 +648,8 @@ contract_keys = contracts["agents"][agent_name]["required"] # Provider-specific
|
|
|
624
648
|
- Add entry to this CHANGELOG under "Unreleased"
|
|
625
649
|
|
|
626
650
|
2. **For new sections or features:**
|
|
627
|
-
- Decide if belongs in `CLAUDE.md` (core instructions) or `.claude/
|
|
628
|
-
- If modular doc, create/update appropriate file in `.claude/
|
|
651
|
+
- Decide if belongs in `CLAUDE.md` (core instructions) or `.claude/config/*.md` (details)
|
|
652
|
+
- If modular doc, create/update appropriate file in `.claude/config/`
|
|
629
653
|
- If core instruction, update `CLAUDE.md` and add reference to modular doc
|
|
630
654
|
- Increment MINOR version in frontmatter
|
|
631
655
|
- Add entry to this CHANGELOG under "Unreleased"
|
package/README.en.md
CHANGED
|
@@ -30,7 +30,11 @@ Multi-agent orchestration system for Claude Code - DevOps automation toolkit.
|
|
|
30
30
|
Use the built-in interactive installer to set up Gaia-Ops in any project:
|
|
31
31
|
|
|
32
32
|
```bash
|
|
33
|
-
|
|
33
|
+
# Option 1: run the binary directly via npx
|
|
34
|
+
npx gaia-init
|
|
35
|
+
|
|
36
|
+
# Option 2: specify the npm package explicitly
|
|
37
|
+
npx @jaguilar87/gaia-ops
|
|
34
38
|
```
|
|
35
39
|
|
|
36
40
|
Or if installed globally:
|
|
@@ -189,7 +193,7 @@ This package follows [Semantic Versioning](https://semver.org/):
|
|
|
189
193
|
- **MINOR:** New features, agents, or improvements
|
|
190
194
|
- **PATCH:** Bug fixes, clarifications, typos
|
|
191
195
|
|
|
192
|
-
Current version: **2.2.
|
|
196
|
+
Current version: **2.2.3**
|
|
193
197
|
|
|
194
198
|
See [CHANGELOG.md](./CHANGELOG.md) for version history.
|
|
195
199
|
|
package/README.md
CHANGED
|
@@ -30,7 +30,11 @@ Sistema de orquestación multi-agente para Claude Code - Toolkit de automatizaci
|
|
|
30
30
|
Usa el instalador interactivo integrado para configurar Gaia-Ops en cualquier proyecto:
|
|
31
31
|
|
|
32
32
|
```bash
|
|
33
|
-
|
|
33
|
+
# Opción 1: Ejecutar directamente con npx
|
|
34
|
+
npx gaia-init
|
|
35
|
+
|
|
36
|
+
# Opción 2: Si prefieres especificar el paquete completo
|
|
37
|
+
npx @jaguilar87/gaia-ops
|
|
34
38
|
```
|
|
35
39
|
|
|
36
40
|
O si lo instalas globalmente:
|
|
@@ -185,11 +189,11 @@ const configPath = getConfigPath('orchestration-workflow.md');
|
|
|
185
189
|
|
|
186
190
|
Este paquete sigue [Versionamiento Semántico](https://semver.org/):
|
|
187
191
|
|
|
188
|
-
- **MAJOR:** Cambios que rompen compatibilidad en el comportamiento del orquestador
|
|
189
|
-
- **MINOR:** Nuevas características, agentes o mejoras
|
|
190
|
-
- **PATCH:** Correcciones de bugs, clarificaciones, errores tipográficos
|
|
192
|
+
- **MAJOR:** Cambios que rompen compatibilidad en el comportamiento del orquestador
|
|
193
|
+
- **MINOR:** Nuevas características, agentes o mejoras
|
|
194
|
+
- **PATCH:** Correcciones de bugs, clarificaciones, errores tipográficos
|
|
191
195
|
|
|
192
|
-
Versión actual: **2.2.
|
|
196
|
+
Versión actual: **2.2.3**
|
|
193
197
|
|
|
194
198
|
Ver [CHANGELOG.md](./CHANGELOG.md) para el historial de versiones.
|
|
195
199
|
|
package/config/AGENTS.md
CHANGED
|
@@ -80,7 +80,7 @@ Claude Code (Orchestrator)
|
|
|
80
80
|
- Route user requests to specialist agents
|
|
81
81
|
- Provision context via `context_provider.py`
|
|
82
82
|
- Enforce approval gates for T3 operations
|
|
83
|
-
- Update system SSOTs (project-context.json, tasks.md)
|
|
83
|
+
- Update system SSOTs (.claude/project-context/project-context.json, tasks.md)
|
|
84
84
|
- Handle simple operations directly (ad-hoc commits, queries)
|
|
85
85
|
|
|
86
86
|
**Agent responsibilities:**
|
|
@@ -94,12 +94,12 @@ Claude Code (Orchestrator)
|
|
|
94
94
|
## Documentation Structure
|
|
95
95
|
|
|
96
96
|
```
|
|
97
|
-
|
|
97
|
+
<project-root>/
|
|
98
98
|
├── CLAUDE.md (core orchestrator instructions, 196 lines)
|
|
99
99
|
├── AGENTS.md (this file, compatibility layer)
|
|
100
100
|
├── .claude/
|
|
101
101
|
│ ├── CHANGELOG.md (version history)
|
|
102
|
-
│ ├──
|
|
102
|
+
│ ├── config/
|
|
103
103
|
│ │ ├── orchestration-workflow.md (Phase 0-6 details)
|
|
104
104
|
│ │ ├── git-standards.md (commit standards)
|
|
105
105
|
│ │ ├── context-contracts.md (agent context requirements)
|
|
@@ -107,8 +107,9 @@ Claude Code (Orchestrator)
|
|
|
107
107
|
│ ├── agents/ (agent definitions)
|
|
108
108
|
│ ├── tools/ (context_provider.py, agent_router.py, etc.)
|
|
109
109
|
│ ├── logs/ (audit trail, metrics)
|
|
110
|
-
│
|
|
111
|
-
└──
|
|
110
|
+
│ ├── tests/ (test suite)
|
|
111
|
+
│ └── project-context/
|
|
112
|
+
│ └── project-context.json (SSOT for infrastructure state)
|
|
112
113
|
```
|
|
113
114
|
|
|
114
115
|
---
|
|
@@ -117,7 +118,7 @@ Claude Code (Orchestrator)
|
|
|
117
118
|
|
|
118
119
|
1. **Read CLAUDE.md** (5 min) - Understand core principles and workflow
|
|
119
120
|
2. **Review agent catalog** (10 min) - See available agents and capabilities
|
|
120
|
-
3. **Check project context** (5 min) - Review `.claude/project-context.json` for current infrastructure state
|
|
121
|
+
3. **Check project context** (5 min) - Review `.claude/project-context/project-context.json` for current infrastructure state
|
|
121
122
|
4. **Run sample workflow** (15 min) - Test orchestrator with a simple task
|
|
122
123
|
|
|
123
124
|
**Sample workflow:**
|
|
@@ -145,7 +146,7 @@ See `CLAUDE.md` and `.claude/CHANGELOG.md` for contribution guidelines.
|
|
|
145
146
|
**Key rules:**
|
|
146
147
|
- All commits MUST follow Conventional Commits (enforced by `commit_validator.py`)
|
|
147
148
|
- Changes to infrastructure/deployments require approval gate (Phase 4)
|
|
148
|
-
- Update SSOTs after realization (project-context.json, tasks.md)
|
|
149
|
+
- Update SSOTs after realization (.claude/project-context/project-context.json, tasks.md)
|
|
149
150
|
|
|
150
151
|
---
|
|
151
152
|
|
package/index.js
CHANGED
|
@@ -54,17 +54,6 @@ export function getCommandPath(commandName) {
|
|
|
54
54
|
return join(PACKAGE_ROOT, 'commands', commandName);
|
|
55
55
|
}
|
|
56
56
|
|
|
57
|
-
/**
|
|
58
|
-
* Get absolute path to documentation
|
|
59
|
-
* @deprecated Use getConfigPath() instead. Documentation moved from docs/ to config/ in v2.0.0
|
|
60
|
-
* @param {string} docName - Name of the doc (e.g., 'orchestration-workflow.md')
|
|
61
|
-
* @returns {string} Absolute path to doc file
|
|
62
|
-
*/
|
|
63
|
-
export function getDocPath(docName) {
|
|
64
|
-
console.warn('getDocPath() is deprecated. Use getConfigPath() instead. Documentation is now in config/ directory.');
|
|
65
|
-
return join(PACKAGE_ROOT, 'config', docName);
|
|
66
|
-
}
|
|
67
|
-
|
|
68
57
|
/**
|
|
69
58
|
* Get absolute path to a template
|
|
70
59
|
* @param {string} templateName - Name of the template (e.g., 'CLAUDE.template.md')
|
|
@@ -89,7 +78,6 @@ export default {
|
|
|
89
78
|
getToolPath,
|
|
90
79
|
getHookPath,
|
|
91
80
|
getCommandPath,
|
|
92
|
-
getDocPath,
|
|
93
81
|
getTemplatePath,
|
|
94
82
|
getConfigPath
|
|
95
83
|
};
|
package/package.json
CHANGED
|
@@ -1,21 +1,14 @@
|
|
|
1
|
-
# CLAUDE.md
|
|
2
|
-
|
|
3
|
-
Guidance for Claude Code orchestrator working in this repository.
|
|
4
|
-
|
|
5
|
-
## Language Policy
|
|
6
|
-
|
|
7
|
-
- **Technical Documentation:** All code, commits, technical documentation, and system artifacts MUST be in English.
|
|
8
|
-
- **Chat Interactions:** Always respond to users in the same language used during chat conversations.
|
|
9
|
-
|
|
10
1
|
## Core Operating Principles
|
|
11
2
|
|
|
12
|
-
### Rule 1.0 [P0]:
|
|
13
|
-
- **
|
|
14
|
-
- **
|
|
15
|
-
-
|
|
3
|
+
### Rule 1.0 [P0]: Delegate Anything Non-Atomic
|
|
4
|
+
- **Always delegate** investigations, multi-file edits, Terraform/Helm/K8s/GitOps actions, or anything needing approval / T2-T3 access.
|
|
5
|
+
- **Only execute yourself** when it’s a truly atomic, low-risk step (single-file edit, log read, simple status query).
|
|
6
|
+
- If you choose not to delegate, say why it is safe to keep it local.
|
|
7
|
+
|
|
8
|
+
❌ Never self-execute chained workflows or infrastructure-impacting changes.
|
|
16
9
|
|
|
17
10
|
### Rule 2.0 [P0]: Context Provisioning
|
|
18
|
-
-
|
|
11
|
+
- Project agents must receive `context_provider.py --context-file .claude/project-context/project-context.json …`
|
|
19
12
|
- Meta-agents receive manual context in prompt
|
|
20
13
|
|
|
21
14
|
### Rule 3.0 [P0]: Two-Phase Workflow for Infrastructure
|
|
@@ -30,8 +23,6 @@ Guidance for Claude Code orchestrator working in this repository.
|
|
|
30
23
|
|
|
31
24
|
## Orchestrator Workflow
|
|
32
25
|
|
|
33
|
-
**See:** `.claude/config/orchestration-workflow.md` for complete details.
|
|
34
|
-
|
|
35
26
|
### Rule 5.0 [P0]: Six-Phase Workflow
|
|
36
27
|
|
|
37
28
|
| Phase | Action | Tool | Mandatory |
|
|
@@ -44,6 +35,8 @@ Guidance for Claude Code orchestrator working in this repository.
|
|
|
44
35
|
| 5 | Realization | `Task` tool (re-invoke) | Yes |
|
|
45
36
|
| 6 | Update SSOT | Edit `project-context.json`, `tasks.md` | Yes |
|
|
46
37
|
|
|
38
|
+
**See:** `.claude/config/orchestration-workflow.md` for complete details.
|
|
39
|
+
|
|
47
40
|
### Rule 5.1 [P0]: Approval Gate Enforcement
|
|
48
41
|
- Phase 4 CANNOT be skipped for T3 operations
|
|
49
42
|
- Phase 5 requires `validation["approved"] == True`
|
|
@@ -154,3 +147,10 @@ Guidance for Claude Code orchestrator working in this repository.
|
|
|
154
147
|
- **Context contracts:** `.claude/config/context-contracts.md`
|
|
155
148
|
- **Agent catalog:** `.claude/config/agent-catalog.md`
|
|
156
149
|
- **Package source:** `@jaguilar87/gaia-ops` (npm package)
|
|
150
|
+
|
|
151
|
+
## Language Policy
|
|
152
|
+
|
|
153
|
+
- **Technical Documentation:** All code, commits, technical documentation, and system artifacts MUST be in English.
|
|
154
|
+
- **Chat Interactions:** Always respond to users in the same language used during chat conversations.
|
|
155
|
+
|
|
156
|
+
|
|
@@ -1,35 +1,12 @@
|
|
|
1
1
|
import json
|
|
2
2
|
import argparse
|
|
3
3
|
import sys
|
|
4
|
-
import os
|
|
5
4
|
from pathlib import Path
|
|
6
5
|
from typing import Dict, List, Any, Optional
|
|
7
6
|
|
|
8
7
|
# This script is expected to be run from the root of the repository.
|
|
9
|
-
#
|
|
10
|
-
|
|
11
|
-
# We auto-detect the most common locations (and honor GAIA_CONTEXT_PATH) so agent
|
|
12
|
-
# routing never breaks if the file isn't symlinked to the legacy path.
|
|
13
|
-
def get_default_context_path() -> Path:
|
|
14
|
-
"""Detects the project-context.json location, honoring GAIA_CONTEXT_PATH."""
|
|
15
|
-
env_override = os.environ.get("GAIA_CONTEXT_PATH")
|
|
16
|
-
if env_override:
|
|
17
|
-
return Path(env_override).expanduser()
|
|
18
|
-
|
|
19
|
-
candidates = [
|
|
20
|
-
Path(".claude/project-context.json"),
|
|
21
|
-
Path(".claude/project-context/project-context.json"),
|
|
22
|
-
Path("project-context.json"),
|
|
23
|
-
]
|
|
24
|
-
|
|
25
|
-
for candidate in candidates:
|
|
26
|
-
if candidate.is_file():
|
|
27
|
-
return candidate
|
|
28
|
-
|
|
29
|
-
# Fall back to the legacy expectation; load_project_context will surface error
|
|
30
|
-
return candidates[0]
|
|
31
|
-
|
|
32
|
-
DEFAULT_CONTEXT_PATH = get_default_context_path()
|
|
8
|
+
# Project context is always stored at `.claude/project-context/project-context.json`.
|
|
9
|
+
DEFAULT_CONTEXT_PATH = Path(".claude/project-context/project-context.json")
|
|
33
10
|
|
|
34
11
|
# Path to provider-specific contract files
|
|
35
12
|
# When running from installed project: .claude/config (symlinked)
|