gaia-cli 1.0.0__tar.gz
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.
- gaia_cli-1.0.0/LICENSE +21 -0
- gaia_cli-1.0.0/PKG-INFO +301 -0
- gaia_cli-1.0.0/README.md +264 -0
- gaia_cli-1.0.0/pyproject.toml +71 -0
- gaia_cli-1.0.0/setup.cfg +4 -0
- gaia_cli-1.0.0/src/gaia_cli/__init__.py +0 -0
- gaia_cli-1.0.0/src/gaia_cli/__main__.py +5 -0
- gaia_cli-1.0.0/src/gaia_cli/combinator.py +33 -0
- gaia_cli-1.0.0/src/gaia_cli/data/graph/gaia.json +3319 -0
- gaia_cli-1.0.0/src/gaia_cli/data/graph/named/devin-ai/autonomous-swe.md +28 -0
- gaia_cli-1.0.0/src/gaia_cli/data/graph/named/index.json +47 -0
- gaia_cli-1.0.0/src/gaia_cli/data/graph/named/karpathy/autoresearch.md +26 -0
- gaia_cli-1.0.0/src/gaia_cli/data/schema/combination.schema.json +46 -0
- gaia_cli-1.0.0/src/gaia_cli/data/schema/namedSkill.schema.json +100 -0
- gaia_cli-1.0.0/src/gaia_cli/data/schema/pluginConfig.schema.json +75 -0
- gaia_cli-1.0.0/src/gaia_cli/data/schema/skill.schema.json +223 -0
- gaia_cli-1.0.0/src/gaia_cli/data/schema/skillBatch.schema.json +59 -0
- gaia_cli-1.0.0/src/gaia_cli/data/schema/skillTree.schema.json +134 -0
- gaia_cli-1.0.0/src/gaia_cli/embeddings.py +133 -0
- gaia_cli-1.0.0/src/gaia_cli/install.py +163 -0
- gaia_cli-1.0.0/src/gaia_cli/main.py +388 -0
- gaia_cli-1.0.0/src/gaia_cli/name.py +139 -0
- gaia_cli-1.0.0/src/gaia_cli/prWriter.py +181 -0
- gaia_cli-1.0.0/src/gaia_cli/push.py +209 -0
- gaia_cli-1.0.0/src/gaia_cli/registry.py +41 -0
- gaia_cli-1.0.0/src/gaia_cli/resolver.py +19 -0
- gaia_cli-1.0.0/src/gaia_cli/scanner.py +109 -0
- gaia_cli-1.0.0/src/gaia_cli/semantic_search.py +108 -0
- gaia_cli-1.0.0/src/gaia_cli/treeManager.py +40 -0
- gaia_cli-1.0.0/src/gaia_cli.egg-info/PKG-INFO +301 -0
- gaia_cli-1.0.0/src/gaia_cli.egg-info/SOURCES.txt +45 -0
- gaia_cli-1.0.0/src/gaia_cli.egg-info/dependency_links.txt +1 -0
- gaia_cli-1.0.0/src/gaia_cli.egg-info/entry_points.txt +2 -0
- gaia_cli-1.0.0/src/gaia_cli.egg-info/requires.txt +11 -0
- gaia_cli-1.0.0/src/gaia_cli.egg-info/top_level.txt +1 -0
- gaia_cli-1.0.0/tests/test_crawlers.py +86 -0
- gaia_cli-1.0.0/tests/test_dx.py +124 -0
- gaia_cli-1.0.0/tests/test_embeddings.py +343 -0
- gaia_cli-1.0.0/tests/test_install.py +260 -0
- gaia_cli-1.0.0/tests/test_intake.py +95 -0
- gaia_cli-1.0.0/tests/test_lifecycle.py +103 -0
- gaia_cli-1.0.0/tests/test_named_skills.py +175 -0
- gaia_cli-1.0.0/tests/test_packaging.py +200 -0
- gaia_cli-1.0.0/tests/test_pr_writer.py +46 -0
- gaia_cli-1.0.0/tests/test_push.py +166 -0
- gaia_cli-1.0.0/tests/test_validate.py +176 -0
- gaia_cli-1.0.0/tests/test_workflows.py +17 -0
gaia_cli-1.0.0/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 Marcus Tiongson
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
gaia_cli-1.0.0/PKG-INFO
ADDED
|
@@ -0,0 +1,301 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: gaia-cli
|
|
3
|
+
Version: 1.0.0
|
|
4
|
+
Summary: Gaia AI Agent Skill Registry CLI
|
|
5
|
+
Author: Gaia contributors
|
|
6
|
+
License-Expression: MIT
|
|
7
|
+
Project-URL: Homepage, https://github.com/mbtiongson1/gaia-skill-tree
|
|
8
|
+
Project-URL: Repository, https://github.com/mbtiongson1/gaia-skill-tree
|
|
9
|
+
Project-URL: Issues, https://github.com/mbtiongson1/gaia-skill-tree/issues
|
|
10
|
+
Project-URL: Documentation, https://gaia.tiongson.co/
|
|
11
|
+
Keywords: ai,agents,cli,skills,registry
|
|
12
|
+
Classifier: Development Status :: 4 - Beta
|
|
13
|
+
Classifier: Environment :: Console
|
|
14
|
+
Classifier: Intended Audience :: Developers
|
|
15
|
+
Classifier: Natural Language :: English
|
|
16
|
+
Classifier: Programming Language :: Python :: 3
|
|
17
|
+
Classifier: Programming Language :: Python :: 3.10
|
|
18
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
19
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
20
|
+
Classifier: Programming Language :: Python :: 3.13
|
|
21
|
+
Classifier: Programming Language :: Python :: 3.14
|
|
22
|
+
Classifier: Topic :: Software Development :: Libraries :: Python Modules
|
|
23
|
+
Classifier: Topic :: Utilities
|
|
24
|
+
Requires-Python: >=3.10
|
|
25
|
+
Description-Content-Type: text/markdown
|
|
26
|
+
License-File: LICENSE
|
|
27
|
+
Requires-Dist: jsonschema>=4.17.0
|
|
28
|
+
Provides-Extra: embeddings
|
|
29
|
+
Requires-Dist: sentence-transformers>=2.2.0; extra == "embeddings"
|
|
30
|
+
Requires-Dist: numpy>=1.21.0; extra == "embeddings"
|
|
31
|
+
Provides-Extra: dev
|
|
32
|
+
Requires-Dist: build>=1.2.0; extra == "dev"
|
|
33
|
+
Requires-Dist: pytest>=8.0; extra == "dev"
|
|
34
|
+
Requires-Dist: twine>=5.0; extra == "dev"
|
|
35
|
+
Requires-Dist: wheel>=0.42.0; extra == "dev"
|
|
36
|
+
Dynamic: license-file
|
|
37
|
+
|
|
38
|
+
# Gaia — AI Agent Skill Registry
|
|
39
|
+
|
|
40
|
+
> The open, evidence-backed skill graph for AI agents — collect, evolve, and fuse capabilities into something legendary.
|
|
41
|
+
|
|
42
|
+
[](https://github.com/mbtiongson1/gaia-skill-tree/actions/workflows/validate.yml)
|
|
43
|
+
[](LICENSE)
|
|
44
|
+
[](https://gaia.tiongson.co/)
|
|
45
|
+
|
|
46
|
+
---
|
|
47
|
+
|
|
48
|
+
## The Tree
|
|
49
|
+
|
|
50
|
+
Every AI agent capability exists somewhere on this graph. Skills start at the foundation tier, awaken through evidence, evolve through use, and fuse into things greater than the sum of their parts.
|
|
51
|
+
|
|
52
|
+
The snapshot below shows the upgrade-path structure. Each legendary traces
|
|
53
|
+
back through its full prerequisite chain.
|
|
54
|
+
|
|
55
|
+
```
|
|
56
|
+
GAIA SKILL TREE v1.0.0
|
|
57
|
+
═════════════════════════════════════════════════════════════════
|
|
58
|
+
|
|
59
|
+
◆ Wisdom King: Autonomous Research Agent [VI · Transcendent ★]
|
|
60
|
+
├─ ◇ Research [III · Evolved] ← Web Search · Summarize · Cite Sources
|
|
61
|
+
│ ├─ ○ Web Search [I · Awakened]
|
|
62
|
+
│ ├─ ○ Summarize [I · Awakened]
|
|
63
|
+
│ └─ ○ Cite Sources [I · Awakened]
|
|
64
|
+
├─ ◇ Knowledge Harvest [IV · Transcendent] ← Web Scrape · Extract Entities · Embed Text
|
|
65
|
+
│ ├─ ◇ Web Scrape [III · Evolved] ← Web Search · Parse HTML · Extract Entities
|
|
66
|
+
│ │ ├─ ○ Web Search [I · Awakened] (↑ see above)
|
|
67
|
+
│ │ ├─ ○ Parse HTML [I · Awakened]
|
|
68
|
+
│ │ └─ ○ Extract Entities [I · Awakened]
|
|
69
|
+
│ ├─ ○ Extract Entities [I · Awakened] (↑ see above)
|
|
70
|
+
│ └─ ○ Embed Text [I · Awakened]
|
|
71
|
+
└─ ◇ Ghostwrite [IV · Transcendent] ← Research · Write Report · Audience Model
|
|
72
|
+
├─ ◇ Research [III · Evolved] (↑ see above)
|
|
73
|
+
├─ ○ Write Report [I · Awakened]
|
|
74
|
+
└─ ○ Audience Model [I · Awakened]
|
|
75
|
+
|
|
76
|
+
→ Full graph: tree.md
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
---
|
|
80
|
+
|
|
81
|
+
## What This Means for You
|
|
82
|
+
|
|
83
|
+
- **Track your agent's capabilities** — every skill your agent demonstrates gets logged to your personal skill tree, tied to your GitHub identity, portable across every repo you own.
|
|
84
|
+
- **Unlock combinations** — when your agent has the prerequisites, a new composite or ultimate skill becomes available to fuse. The CLI detects it automatically.
|
|
85
|
+
- **Name and share skills** — contribute named implementations of generic skills (e.g., `karpathy/autoresearch`), attributed to your GitHub identity and installable by anyone via `gaia install`.
|
|
86
|
+
- **Contribute to the canon** — review draft skills, submit evidence, or create new skills from strong reviews. The graph grows with the field.
|
|
87
|
+
|
|
88
|
+
---
|
|
89
|
+
|
|
90
|
+
## The Hierarchy
|
|
91
|
+
|
|
92
|
+
| Tier | Symbol | Display Name | What it means |
|
|
93
|
+
|---|---|---|---|
|
|
94
|
+
| `atomic` | ○ | **Intrinsic Skill** | Primitive, indivisible capability — the genome of every agent |
|
|
95
|
+
| `composite` | ◇ | **Extra Skill** | Emerges from combining 2+ intrinsic skills — transcends its parts |
|
|
96
|
+
| `legendary` | ◆ | **Ultimate Skill** | High-complexity emergent capability — strict evidence bar, <1% agent prevalence |
|
|
97
|
+
|
|
98
|
+
## Rank System
|
|
99
|
+
|
|
100
|
+
Skills level up through evidence, not declaration:
|
|
101
|
+
|
|
102
|
+
| Level | Rank | Evidence Floor | What it means |
|
|
103
|
+
|---|---|---|---|
|
|
104
|
+
| 0 | **Basic** | None | Universal LLM primitive — any capable model does this by default |
|
|
105
|
+
| I | **Awakened** | None | Foundation tier — catalogued agent capability |
|
|
106
|
+
| II | **Named** | Class C | First confirmed demonstration |
|
|
107
|
+
| III | **Evolved** | Class B | Reproducible, fully documented |
|
|
108
|
+
| IV | **Hardened** | Class B or A | Failure modes known; battle-tested |
|
|
109
|
+
| V | **Transcendent** | Class B or A | Composable and self-improving |
|
|
110
|
+
| VI | **Transcendent ★** | Class A | Apex — peer-reviewed, named to the agent who unlocked it |
|
|
111
|
+
|
|
112
|
+
---
|
|
113
|
+
|
|
114
|
+
## Tutorial
|
|
115
|
+
|
|
116
|
+
**New here?** The interactive tutorial at **[gaia.tiongson.co](https://gaia.tiongson.co/)** covers everything visually — skill tiers, the rank system, and the full get-started workflow with copy-paste commands.
|
|
117
|
+
|
|
118
|
+
---
|
|
119
|
+
|
|
120
|
+
## Quickstart
|
|
121
|
+
|
|
122
|
+
```bash
|
|
123
|
+
git clone https://github.com/mbtiongson1/gaia-skill-tree.git
|
|
124
|
+
cd gaia-skill-tree
|
|
125
|
+
|
|
126
|
+
# 1. Install the gaia CLI
|
|
127
|
+
pip install -e .
|
|
128
|
+
|
|
129
|
+
# 2. Enable semantic search (strongly recommended)
|
|
130
|
+
pip install -e ".[embeddings]"
|
|
131
|
+
gaia embed # ~30 seconds — run once, re-run when the graph changes
|
|
132
|
+
|
|
133
|
+
# 3. Validate the canonical graph
|
|
134
|
+
gaia --registry . scan
|
|
135
|
+
|
|
136
|
+
# 4. Regenerate all skill pages, registry, tree, and user trees
|
|
137
|
+
python3 scripts/generateProjections.py
|
|
138
|
+
```
|
|
139
|
+
|
|
140
|
+
> **Why install embeddings?**
|
|
141
|
+
> `gaia search` uses local semantic matching so you can find skills by meaning, not just keywords.
|
|
142
|
+
> `gaia push` also uses it to suggest matching named-skill buckets for your proposed skills.
|
|
143
|
+
> Without embeddings, both commands will prompt you to set them up.
|
|
144
|
+
> The model runs fully locally — no API key, no network call after the first download.
|
|
145
|
+
|
|
146
|
+
## CLI Usage
|
|
147
|
+
|
|
148
|
+
Install once from the repo root:
|
|
149
|
+
|
|
150
|
+
```bash
|
|
151
|
+
pip install -e .
|
|
152
|
+
```
|
|
153
|
+
|
|
154
|
+
Then `gaia` works from any directory — no path prefix needed.
|
|
155
|
+
|
|
156
|
+
### Project setup
|
|
157
|
+
|
|
158
|
+
Run this inside the project you want Gaia to scan:
|
|
159
|
+
```bash
|
|
160
|
+
gaia init --user your-github-username --scan AGENTS.md --scan scripts
|
|
161
|
+
```
|
|
162
|
+
|
|
163
|
+
For the previous non-interactive defaults, use:
|
|
164
|
+
```bash
|
|
165
|
+
gaia init --yes
|
|
166
|
+
```
|
|
167
|
+
|
|
168
|
+
This creates `.gaia/config.json`:
|
|
169
|
+
```json
|
|
170
|
+
{
|
|
171
|
+
"gaiaUser": "your-github-username",
|
|
172
|
+
"gaiaRegistryRef": "https://github.com/mbtiongson1/gaia-skill-tree",
|
|
173
|
+
"scanPaths": ["AGENTS.md", "scripts"],
|
|
174
|
+
"autoPromptCombinations": false
|
|
175
|
+
}
|
|
176
|
+
```
|
|
177
|
+
|
|
178
|
+
Use `gaia doctor` after initialization to check the CLI, registry path, config, skill tree, embeddings, and scan paths.
|
|
179
|
+
|
|
180
|
+
### Commands
|
|
181
|
+
|
|
182
|
+
| Command | What it does |
|
|
183
|
+
|---|---|
|
|
184
|
+
| `gaia init` | Creates `.gaia/config.json` in the current project. Supports `--user`, `--registry-ref`, and repeated `--scan` flags. |
|
|
185
|
+
| `gaia doctor` | Checks CLI/config/registry health and reports missing setup pieces. |
|
|
186
|
+
| `gaia scan` | Scans configured paths and reports detected canonical skills and possible fusions. |
|
|
187
|
+
| `gaia push --dry-run` | Prints the batch intake JSON without writing files. |
|
|
188
|
+
| `gaia push` | Writes a batch intake record under `intake/skill-batches/` in the registry checkout. |
|
|
189
|
+
| `gaia push --no-pr` | Writes a batch intake record without trying to open a PR. |
|
|
190
|
+
| `gaia name <batch> <index> <contributor/skill>` | Promotes an awakened skill from intake to a named skill in `graph/named/`. |
|
|
191
|
+
| `gaia install <contributor/skill>` | Downloads a named skill into the repo (global cache + repo reference). |
|
|
192
|
+
| `gaia install --list` | Lists all installed named skills. |
|
|
193
|
+
| `gaia sync` | Updates installed named skills from their registry origin. |
|
|
194
|
+
| `gaia uninstall <contributor/skill>` | Removes an installed named skill. |
|
|
195
|
+
| `gaia embed` | Pre-computes embeddings for all skills. **Strongly recommended** — run once after `pip install -e ".[embeddings]"`, re-run when the graph changes. |
|
|
196
|
+
| `gaia search <query>` | Semantic search across generic and named skills (requires embeddings — see above). |
|
|
197
|
+
| `gaia status` | Shows the configured user's registered skill-tree summary. |
|
|
198
|
+
| `gaia tree` | Lists unlocked skills for the configured user. |
|
|
199
|
+
| `gaia fuse <skillId>` | Adds a pending fusion candidate to the user's skill tree. |
|
|
200
|
+
|
|
201
|
+
### Typical workflow
|
|
202
|
+
|
|
203
|
+
```bash
|
|
204
|
+
# In the project repo you want to scan
|
|
205
|
+
gaia init
|
|
206
|
+
|
|
207
|
+
# Preview detected skills and proposed intake
|
|
208
|
+
gaia scan
|
|
209
|
+
gaia push --dry-run
|
|
210
|
+
|
|
211
|
+
# Submit the batch intake record for review
|
|
212
|
+
gaia push
|
|
213
|
+
```
|
|
214
|
+
|
|
215
|
+
Intake PRs are draft review artifacts. Accepted candidates are promoted later
|
|
216
|
+
into canonical `graph/gaia.json` updates.
|
|
217
|
+
|
|
218
|
+
## MCP Server (Agent-Native Integration)
|
|
219
|
+
|
|
220
|
+
> **Status: In Development** — `@gaia-registry/mcp-server` is not yet published to npm. See [mcp-server/](mcp-server/) to run it locally or contribute.
|
|
221
|
+
|
|
222
|
+
The fastest way to use Gaia — connect it directly to your agent (Claude Code, Cursor, VS Code, etc.) via MCP:
|
|
223
|
+
|
|
224
|
+
```json
|
|
225
|
+
{
|
|
226
|
+
"mcpServers": {
|
|
227
|
+
"gaia": {
|
|
228
|
+
"command": "npx",
|
|
229
|
+
"args": ["@gaia-registry/mcp-server"],
|
|
230
|
+
"env": { "GAIA_USER": "your-github-username" }
|
|
231
|
+
}
|
|
232
|
+
}
|
|
233
|
+
}
|
|
234
|
+
```
|
|
235
|
+
|
|
236
|
+
Once connected, your agent gets these tools:
|
|
237
|
+
|
|
238
|
+
| Tool | What it does |
|
|
239
|
+
|------|-------------|
|
|
240
|
+
| `gaia_lookup` | Search skills by ID or fuzzy name |
|
|
241
|
+
| `gaia_suggest` | Get fusion recommendations from your current context |
|
|
242
|
+
| `gaia_scan_context` | Detect skills from connected tools and project signals |
|
|
243
|
+
| `gaia_my_tree` | View your skill tree and stats |
|
|
244
|
+
| `gaia_propose` | Claim a fusion or propose a novel skill (opens PR) |
|
|
245
|
+
|
|
246
|
+
The MCP server also exposes resources at `gaia://registry` and `gaia://tree/{username}`.
|
|
247
|
+
|
|
248
|
+
See [`mcp-server/`](mcp-server/) for full documentation.
|
|
249
|
+
|
|
250
|
+
---
|
|
251
|
+
|
|
252
|
+
## Repository Structure
|
|
253
|
+
|
|
254
|
+
```
|
|
255
|
+
gaia-skill-tree/
|
|
256
|
+
├── graph/gaia.json ← CANONICAL source (the only file humans edit)
|
|
257
|
+
├── graph/named/ ← Named skill implementations ({contributor}/{skill-name}.md)
|
|
258
|
+
├── graph/named/index.json ← GENERATED bucket index
|
|
259
|
+
├── graph/embeddings.json ← GENERATED skill embeddings (sentence-transformers)
|
|
260
|
+
├── graph/similarity.json ← GENERATED pairwise similarity scores
|
|
261
|
+
├── intake/ ← Batch skill proposals submitted by gaia push
|
|
262
|
+
├── mcp-server/ ← TypeScript MCP server (agent-native integration)
|
|
263
|
+
├── schema/ ← JSON Schema definitions
|
|
264
|
+
├── skills/ ← GENERATED skill pages (atomic, composite, legendary)
|
|
265
|
+
├── users/ ← Personal skill trees by GitHub username
|
|
266
|
+
├── scripts/ ← Validation, projection, and analysis scripts
|
|
267
|
+
├── scripts/crawlers/ ← Bot crawlers (MCP registries, npm, VS Code, HuggingFace)
|
|
268
|
+
├── plugin/ ← CLI + GitHub Action for per-repo integration
|
|
269
|
+
├── registry.md ← GENERATED flat index of all skills
|
|
270
|
+
├── combinations.md ← GENERATED fusion recipe matrix
|
|
271
|
+
├── tree.md ← GENERATED full ASCII skill graph
|
|
272
|
+
├── CONTRIBUTING.md ← How to contribute
|
|
273
|
+
└── docs/ ← Governance, design spec, examples
|
|
274
|
+
```
|
|
275
|
+
|
|
276
|
+
---
|
|
277
|
+
|
|
278
|
+
## Contributing
|
|
279
|
+
|
|
280
|
+
Gaia is meant to be a shared map of agent capabilities, and there are a few
|
|
281
|
+
good ways to help even if you are not ready to edit the graph directly.
|
|
282
|
+
|
|
283
|
+
You can contribute by **reviewing skill drafts**: read a proposed skill, check
|
|
284
|
+
whether the definition is clear, compare it against existing skills, evaluate
|
|
285
|
+
the cited evidence, and submit peer review analysis that helps maintainers
|
|
286
|
+
decide whether the skill should be accepted, renamed, merged, or reclassified.
|
|
287
|
+
|
|
288
|
+
You can also contribute by **creating skills directly from reviews**: turn a
|
|
289
|
+
well-supported review into a concrete Intrinsic Skill, Extra Skill, Ultimate
|
|
290
|
+
Skill, fusion recipe, or reclassification PR with evidence and rationale.
|
|
291
|
+
|
|
292
|
+
For full instructions, including evidence requirements, PR templates, naming
|
|
293
|
+
rules, and reviewer criteria, see [CONTRIBUTING.md](CONTRIBUTING.md).
|
|
294
|
+
|
|
295
|
+
## License
|
|
296
|
+
|
|
297
|
+
MIT — see [LICENSE](LICENSE).
|
|
298
|
+
|
|
299
|
+
---
|
|
300
|
+
|
|
301
|
+
*Graph is canonical. Everything else is a shadow.*
|
gaia_cli-1.0.0/README.md
ADDED
|
@@ -0,0 +1,264 @@
|
|
|
1
|
+
# Gaia — AI Agent Skill Registry
|
|
2
|
+
|
|
3
|
+
> The open, evidence-backed skill graph for AI agents — collect, evolve, and fuse capabilities into something legendary.
|
|
4
|
+
|
|
5
|
+
[](https://github.com/mbtiongson1/gaia-skill-tree/actions/workflows/validate.yml)
|
|
6
|
+
[](LICENSE)
|
|
7
|
+
[](https://gaia.tiongson.co/)
|
|
8
|
+
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
## The Tree
|
|
12
|
+
|
|
13
|
+
Every AI agent capability exists somewhere on this graph. Skills start at the foundation tier, awaken through evidence, evolve through use, and fuse into things greater than the sum of their parts.
|
|
14
|
+
|
|
15
|
+
The snapshot below shows the upgrade-path structure. Each legendary traces
|
|
16
|
+
back through its full prerequisite chain.
|
|
17
|
+
|
|
18
|
+
```
|
|
19
|
+
GAIA SKILL TREE v1.0.0
|
|
20
|
+
═════════════════════════════════════════════════════════════════
|
|
21
|
+
|
|
22
|
+
◆ Wisdom King: Autonomous Research Agent [VI · Transcendent ★]
|
|
23
|
+
├─ ◇ Research [III · Evolved] ← Web Search · Summarize · Cite Sources
|
|
24
|
+
│ ├─ ○ Web Search [I · Awakened]
|
|
25
|
+
│ ├─ ○ Summarize [I · Awakened]
|
|
26
|
+
│ └─ ○ Cite Sources [I · Awakened]
|
|
27
|
+
├─ ◇ Knowledge Harvest [IV · Transcendent] ← Web Scrape · Extract Entities · Embed Text
|
|
28
|
+
│ ├─ ◇ Web Scrape [III · Evolved] ← Web Search · Parse HTML · Extract Entities
|
|
29
|
+
│ │ ├─ ○ Web Search [I · Awakened] (↑ see above)
|
|
30
|
+
│ │ ├─ ○ Parse HTML [I · Awakened]
|
|
31
|
+
│ │ └─ ○ Extract Entities [I · Awakened]
|
|
32
|
+
│ ├─ ○ Extract Entities [I · Awakened] (↑ see above)
|
|
33
|
+
│ └─ ○ Embed Text [I · Awakened]
|
|
34
|
+
└─ ◇ Ghostwrite [IV · Transcendent] ← Research · Write Report · Audience Model
|
|
35
|
+
├─ ◇ Research [III · Evolved] (↑ see above)
|
|
36
|
+
├─ ○ Write Report [I · Awakened]
|
|
37
|
+
└─ ○ Audience Model [I · Awakened]
|
|
38
|
+
|
|
39
|
+
→ Full graph: tree.md
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
---
|
|
43
|
+
|
|
44
|
+
## What This Means for You
|
|
45
|
+
|
|
46
|
+
- **Track your agent's capabilities** — every skill your agent demonstrates gets logged to your personal skill tree, tied to your GitHub identity, portable across every repo you own.
|
|
47
|
+
- **Unlock combinations** — when your agent has the prerequisites, a new composite or ultimate skill becomes available to fuse. The CLI detects it automatically.
|
|
48
|
+
- **Name and share skills** — contribute named implementations of generic skills (e.g., `karpathy/autoresearch`), attributed to your GitHub identity and installable by anyone via `gaia install`.
|
|
49
|
+
- **Contribute to the canon** — review draft skills, submit evidence, or create new skills from strong reviews. The graph grows with the field.
|
|
50
|
+
|
|
51
|
+
---
|
|
52
|
+
|
|
53
|
+
## The Hierarchy
|
|
54
|
+
|
|
55
|
+
| Tier | Symbol | Display Name | What it means |
|
|
56
|
+
|---|---|---|---|
|
|
57
|
+
| `atomic` | ○ | **Intrinsic Skill** | Primitive, indivisible capability — the genome of every agent |
|
|
58
|
+
| `composite` | ◇ | **Extra Skill** | Emerges from combining 2+ intrinsic skills — transcends its parts |
|
|
59
|
+
| `legendary` | ◆ | **Ultimate Skill** | High-complexity emergent capability — strict evidence bar, <1% agent prevalence |
|
|
60
|
+
|
|
61
|
+
## Rank System
|
|
62
|
+
|
|
63
|
+
Skills level up through evidence, not declaration:
|
|
64
|
+
|
|
65
|
+
| Level | Rank | Evidence Floor | What it means |
|
|
66
|
+
|---|---|---|---|
|
|
67
|
+
| 0 | **Basic** | None | Universal LLM primitive — any capable model does this by default |
|
|
68
|
+
| I | **Awakened** | None | Foundation tier — catalogued agent capability |
|
|
69
|
+
| II | **Named** | Class C | First confirmed demonstration |
|
|
70
|
+
| III | **Evolved** | Class B | Reproducible, fully documented |
|
|
71
|
+
| IV | **Hardened** | Class B or A | Failure modes known; battle-tested |
|
|
72
|
+
| V | **Transcendent** | Class B or A | Composable and self-improving |
|
|
73
|
+
| VI | **Transcendent ★** | Class A | Apex — peer-reviewed, named to the agent who unlocked it |
|
|
74
|
+
|
|
75
|
+
---
|
|
76
|
+
|
|
77
|
+
## Tutorial
|
|
78
|
+
|
|
79
|
+
**New here?** The interactive tutorial at **[gaia.tiongson.co](https://gaia.tiongson.co/)** covers everything visually — skill tiers, the rank system, and the full get-started workflow with copy-paste commands.
|
|
80
|
+
|
|
81
|
+
---
|
|
82
|
+
|
|
83
|
+
## Quickstart
|
|
84
|
+
|
|
85
|
+
```bash
|
|
86
|
+
git clone https://github.com/mbtiongson1/gaia-skill-tree.git
|
|
87
|
+
cd gaia-skill-tree
|
|
88
|
+
|
|
89
|
+
# 1. Install the gaia CLI
|
|
90
|
+
pip install -e .
|
|
91
|
+
|
|
92
|
+
# 2. Enable semantic search (strongly recommended)
|
|
93
|
+
pip install -e ".[embeddings]"
|
|
94
|
+
gaia embed # ~30 seconds — run once, re-run when the graph changes
|
|
95
|
+
|
|
96
|
+
# 3. Validate the canonical graph
|
|
97
|
+
gaia --registry . scan
|
|
98
|
+
|
|
99
|
+
# 4. Regenerate all skill pages, registry, tree, and user trees
|
|
100
|
+
python3 scripts/generateProjections.py
|
|
101
|
+
```
|
|
102
|
+
|
|
103
|
+
> **Why install embeddings?**
|
|
104
|
+
> `gaia search` uses local semantic matching so you can find skills by meaning, not just keywords.
|
|
105
|
+
> `gaia push` also uses it to suggest matching named-skill buckets for your proposed skills.
|
|
106
|
+
> Without embeddings, both commands will prompt you to set them up.
|
|
107
|
+
> The model runs fully locally — no API key, no network call after the first download.
|
|
108
|
+
|
|
109
|
+
## CLI Usage
|
|
110
|
+
|
|
111
|
+
Install once from the repo root:
|
|
112
|
+
|
|
113
|
+
```bash
|
|
114
|
+
pip install -e .
|
|
115
|
+
```
|
|
116
|
+
|
|
117
|
+
Then `gaia` works from any directory — no path prefix needed.
|
|
118
|
+
|
|
119
|
+
### Project setup
|
|
120
|
+
|
|
121
|
+
Run this inside the project you want Gaia to scan:
|
|
122
|
+
```bash
|
|
123
|
+
gaia init --user your-github-username --scan AGENTS.md --scan scripts
|
|
124
|
+
```
|
|
125
|
+
|
|
126
|
+
For the previous non-interactive defaults, use:
|
|
127
|
+
```bash
|
|
128
|
+
gaia init --yes
|
|
129
|
+
```
|
|
130
|
+
|
|
131
|
+
This creates `.gaia/config.json`:
|
|
132
|
+
```json
|
|
133
|
+
{
|
|
134
|
+
"gaiaUser": "your-github-username",
|
|
135
|
+
"gaiaRegistryRef": "https://github.com/mbtiongson1/gaia-skill-tree",
|
|
136
|
+
"scanPaths": ["AGENTS.md", "scripts"],
|
|
137
|
+
"autoPromptCombinations": false
|
|
138
|
+
}
|
|
139
|
+
```
|
|
140
|
+
|
|
141
|
+
Use `gaia doctor` after initialization to check the CLI, registry path, config, skill tree, embeddings, and scan paths.
|
|
142
|
+
|
|
143
|
+
### Commands
|
|
144
|
+
|
|
145
|
+
| Command | What it does |
|
|
146
|
+
|---|---|
|
|
147
|
+
| `gaia init` | Creates `.gaia/config.json` in the current project. Supports `--user`, `--registry-ref`, and repeated `--scan` flags. |
|
|
148
|
+
| `gaia doctor` | Checks CLI/config/registry health and reports missing setup pieces. |
|
|
149
|
+
| `gaia scan` | Scans configured paths and reports detected canonical skills and possible fusions. |
|
|
150
|
+
| `gaia push --dry-run` | Prints the batch intake JSON without writing files. |
|
|
151
|
+
| `gaia push` | Writes a batch intake record under `intake/skill-batches/` in the registry checkout. |
|
|
152
|
+
| `gaia push --no-pr` | Writes a batch intake record without trying to open a PR. |
|
|
153
|
+
| `gaia name <batch> <index> <contributor/skill>` | Promotes an awakened skill from intake to a named skill in `graph/named/`. |
|
|
154
|
+
| `gaia install <contributor/skill>` | Downloads a named skill into the repo (global cache + repo reference). |
|
|
155
|
+
| `gaia install --list` | Lists all installed named skills. |
|
|
156
|
+
| `gaia sync` | Updates installed named skills from their registry origin. |
|
|
157
|
+
| `gaia uninstall <contributor/skill>` | Removes an installed named skill. |
|
|
158
|
+
| `gaia embed` | Pre-computes embeddings for all skills. **Strongly recommended** — run once after `pip install -e ".[embeddings]"`, re-run when the graph changes. |
|
|
159
|
+
| `gaia search <query>` | Semantic search across generic and named skills (requires embeddings — see above). |
|
|
160
|
+
| `gaia status` | Shows the configured user's registered skill-tree summary. |
|
|
161
|
+
| `gaia tree` | Lists unlocked skills for the configured user. |
|
|
162
|
+
| `gaia fuse <skillId>` | Adds a pending fusion candidate to the user's skill tree. |
|
|
163
|
+
|
|
164
|
+
### Typical workflow
|
|
165
|
+
|
|
166
|
+
```bash
|
|
167
|
+
# In the project repo you want to scan
|
|
168
|
+
gaia init
|
|
169
|
+
|
|
170
|
+
# Preview detected skills and proposed intake
|
|
171
|
+
gaia scan
|
|
172
|
+
gaia push --dry-run
|
|
173
|
+
|
|
174
|
+
# Submit the batch intake record for review
|
|
175
|
+
gaia push
|
|
176
|
+
```
|
|
177
|
+
|
|
178
|
+
Intake PRs are draft review artifacts. Accepted candidates are promoted later
|
|
179
|
+
into canonical `graph/gaia.json` updates.
|
|
180
|
+
|
|
181
|
+
## MCP Server (Agent-Native Integration)
|
|
182
|
+
|
|
183
|
+
> **Status: In Development** — `@gaia-registry/mcp-server` is not yet published to npm. See [mcp-server/](mcp-server/) to run it locally or contribute.
|
|
184
|
+
|
|
185
|
+
The fastest way to use Gaia — connect it directly to your agent (Claude Code, Cursor, VS Code, etc.) via MCP:
|
|
186
|
+
|
|
187
|
+
```json
|
|
188
|
+
{
|
|
189
|
+
"mcpServers": {
|
|
190
|
+
"gaia": {
|
|
191
|
+
"command": "npx",
|
|
192
|
+
"args": ["@gaia-registry/mcp-server"],
|
|
193
|
+
"env": { "GAIA_USER": "your-github-username" }
|
|
194
|
+
}
|
|
195
|
+
}
|
|
196
|
+
}
|
|
197
|
+
```
|
|
198
|
+
|
|
199
|
+
Once connected, your agent gets these tools:
|
|
200
|
+
|
|
201
|
+
| Tool | What it does |
|
|
202
|
+
|------|-------------|
|
|
203
|
+
| `gaia_lookup` | Search skills by ID or fuzzy name |
|
|
204
|
+
| `gaia_suggest` | Get fusion recommendations from your current context |
|
|
205
|
+
| `gaia_scan_context` | Detect skills from connected tools and project signals |
|
|
206
|
+
| `gaia_my_tree` | View your skill tree and stats |
|
|
207
|
+
| `gaia_propose` | Claim a fusion or propose a novel skill (opens PR) |
|
|
208
|
+
|
|
209
|
+
The MCP server also exposes resources at `gaia://registry` and `gaia://tree/{username}`.
|
|
210
|
+
|
|
211
|
+
See [`mcp-server/`](mcp-server/) for full documentation.
|
|
212
|
+
|
|
213
|
+
---
|
|
214
|
+
|
|
215
|
+
## Repository Structure
|
|
216
|
+
|
|
217
|
+
```
|
|
218
|
+
gaia-skill-tree/
|
|
219
|
+
├── graph/gaia.json ← CANONICAL source (the only file humans edit)
|
|
220
|
+
├── graph/named/ ← Named skill implementations ({contributor}/{skill-name}.md)
|
|
221
|
+
├── graph/named/index.json ← GENERATED bucket index
|
|
222
|
+
├── graph/embeddings.json ← GENERATED skill embeddings (sentence-transformers)
|
|
223
|
+
├── graph/similarity.json ← GENERATED pairwise similarity scores
|
|
224
|
+
├── intake/ ← Batch skill proposals submitted by gaia push
|
|
225
|
+
├── mcp-server/ ← TypeScript MCP server (agent-native integration)
|
|
226
|
+
├── schema/ ← JSON Schema definitions
|
|
227
|
+
├── skills/ ← GENERATED skill pages (atomic, composite, legendary)
|
|
228
|
+
├── users/ ← Personal skill trees by GitHub username
|
|
229
|
+
├── scripts/ ← Validation, projection, and analysis scripts
|
|
230
|
+
├── scripts/crawlers/ ← Bot crawlers (MCP registries, npm, VS Code, HuggingFace)
|
|
231
|
+
├── plugin/ ← CLI + GitHub Action for per-repo integration
|
|
232
|
+
├── registry.md ← GENERATED flat index of all skills
|
|
233
|
+
├── combinations.md ← GENERATED fusion recipe matrix
|
|
234
|
+
├── tree.md ← GENERATED full ASCII skill graph
|
|
235
|
+
├── CONTRIBUTING.md ← How to contribute
|
|
236
|
+
└── docs/ ← Governance, design spec, examples
|
|
237
|
+
```
|
|
238
|
+
|
|
239
|
+
---
|
|
240
|
+
|
|
241
|
+
## Contributing
|
|
242
|
+
|
|
243
|
+
Gaia is meant to be a shared map of agent capabilities, and there are a few
|
|
244
|
+
good ways to help even if you are not ready to edit the graph directly.
|
|
245
|
+
|
|
246
|
+
You can contribute by **reviewing skill drafts**: read a proposed skill, check
|
|
247
|
+
whether the definition is clear, compare it against existing skills, evaluate
|
|
248
|
+
the cited evidence, and submit peer review analysis that helps maintainers
|
|
249
|
+
decide whether the skill should be accepted, renamed, merged, or reclassified.
|
|
250
|
+
|
|
251
|
+
You can also contribute by **creating skills directly from reviews**: turn a
|
|
252
|
+
well-supported review into a concrete Intrinsic Skill, Extra Skill, Ultimate
|
|
253
|
+
Skill, fusion recipe, or reclassification PR with evidence and rationale.
|
|
254
|
+
|
|
255
|
+
For full instructions, including evidence requirements, PR templates, naming
|
|
256
|
+
rules, and reviewer criteria, see [CONTRIBUTING.md](CONTRIBUTING.md).
|
|
257
|
+
|
|
258
|
+
## License
|
|
259
|
+
|
|
260
|
+
MIT — see [LICENSE](LICENSE).
|
|
261
|
+
|
|
262
|
+
---
|
|
263
|
+
|
|
264
|
+
*Graph is canonical. Everything else is a shadow.*
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
[build-system]
|
|
2
|
+
requires = ["setuptools>=77", "wheel"]
|
|
3
|
+
build-backend = "setuptools.build_meta"
|
|
4
|
+
|
|
5
|
+
[project]
|
|
6
|
+
name = "gaia-cli"
|
|
7
|
+
version = "1.0.0"
|
|
8
|
+
description = "Gaia AI Agent Skill Registry CLI"
|
|
9
|
+
readme = "README.md"
|
|
10
|
+
requires-python = ">=3.10"
|
|
11
|
+
license = "MIT"
|
|
12
|
+
authors = [
|
|
13
|
+
{ name = "Gaia contributors" },
|
|
14
|
+
]
|
|
15
|
+
keywords = ["ai", "agents", "cli", "skills", "registry"]
|
|
16
|
+
classifiers = [
|
|
17
|
+
"Development Status :: 4 - Beta",
|
|
18
|
+
"Environment :: Console",
|
|
19
|
+
"Intended Audience :: Developers",
|
|
20
|
+
"Natural Language :: English",
|
|
21
|
+
"Programming Language :: Python :: 3",
|
|
22
|
+
"Programming Language :: Python :: 3.10",
|
|
23
|
+
"Programming Language :: Python :: 3.11",
|
|
24
|
+
"Programming Language :: Python :: 3.12",
|
|
25
|
+
"Programming Language :: Python :: 3.13",
|
|
26
|
+
"Programming Language :: Python :: 3.14",
|
|
27
|
+
"Topic :: Software Development :: Libraries :: Python Modules",
|
|
28
|
+
"Topic :: Utilities",
|
|
29
|
+
]
|
|
30
|
+
dependencies = [
|
|
31
|
+
"jsonschema>=4.17.0",
|
|
32
|
+
]
|
|
33
|
+
|
|
34
|
+
[project.optional-dependencies]
|
|
35
|
+
embeddings = [
|
|
36
|
+
"sentence-transformers>=2.2.0",
|
|
37
|
+
"numpy>=1.21.0",
|
|
38
|
+
]
|
|
39
|
+
dev = [
|
|
40
|
+
"build>=1.2.0",
|
|
41
|
+
"pytest>=8.0",
|
|
42
|
+
"twine>=5.0",
|
|
43
|
+
"wheel>=0.42.0",
|
|
44
|
+
]
|
|
45
|
+
|
|
46
|
+
[project.urls]
|
|
47
|
+
Homepage = "https://github.com/mbtiongson1/gaia-skill-tree"
|
|
48
|
+
Repository = "https://github.com/mbtiongson1/gaia-skill-tree"
|
|
49
|
+
Issues = "https://github.com/mbtiongson1/gaia-skill-tree/issues"
|
|
50
|
+
Documentation = "https://gaia.tiongson.co/"
|
|
51
|
+
|
|
52
|
+
[project.scripts]
|
|
53
|
+
gaia = "gaia_cli.main:main"
|
|
54
|
+
|
|
55
|
+
[tool.setuptools.packages.find]
|
|
56
|
+
where = ["src"]
|
|
57
|
+
include = ["gaia_cli*"]
|
|
58
|
+
|
|
59
|
+
[tool.setuptools.package-data]
|
|
60
|
+
gaia_cli = [
|
|
61
|
+
"data/graph/gaia.json",
|
|
62
|
+
"data/graph/named/**/*.md",
|
|
63
|
+
"data/graph/named/**/*.json",
|
|
64
|
+
"data/schema/*.json",
|
|
65
|
+
]
|
|
66
|
+
|
|
67
|
+
[tool.pytest.ini_options]
|
|
68
|
+
pythonpath = ["src", "."]
|
|
69
|
+
markers = [
|
|
70
|
+
"packaging: package build and wheel installation checks",
|
|
71
|
+
]
|
gaia_cli-1.0.0/setup.cfg
ADDED
|
File without changes
|