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.
Files changed (47) hide show
  1. gaia_cli-1.0.0/LICENSE +21 -0
  2. gaia_cli-1.0.0/PKG-INFO +301 -0
  3. gaia_cli-1.0.0/README.md +264 -0
  4. gaia_cli-1.0.0/pyproject.toml +71 -0
  5. gaia_cli-1.0.0/setup.cfg +4 -0
  6. gaia_cli-1.0.0/src/gaia_cli/__init__.py +0 -0
  7. gaia_cli-1.0.0/src/gaia_cli/__main__.py +5 -0
  8. gaia_cli-1.0.0/src/gaia_cli/combinator.py +33 -0
  9. gaia_cli-1.0.0/src/gaia_cli/data/graph/gaia.json +3319 -0
  10. gaia_cli-1.0.0/src/gaia_cli/data/graph/named/devin-ai/autonomous-swe.md +28 -0
  11. gaia_cli-1.0.0/src/gaia_cli/data/graph/named/index.json +47 -0
  12. gaia_cli-1.0.0/src/gaia_cli/data/graph/named/karpathy/autoresearch.md +26 -0
  13. gaia_cli-1.0.0/src/gaia_cli/data/schema/combination.schema.json +46 -0
  14. gaia_cli-1.0.0/src/gaia_cli/data/schema/namedSkill.schema.json +100 -0
  15. gaia_cli-1.0.0/src/gaia_cli/data/schema/pluginConfig.schema.json +75 -0
  16. gaia_cli-1.0.0/src/gaia_cli/data/schema/skill.schema.json +223 -0
  17. gaia_cli-1.0.0/src/gaia_cli/data/schema/skillBatch.schema.json +59 -0
  18. gaia_cli-1.0.0/src/gaia_cli/data/schema/skillTree.schema.json +134 -0
  19. gaia_cli-1.0.0/src/gaia_cli/embeddings.py +133 -0
  20. gaia_cli-1.0.0/src/gaia_cli/install.py +163 -0
  21. gaia_cli-1.0.0/src/gaia_cli/main.py +388 -0
  22. gaia_cli-1.0.0/src/gaia_cli/name.py +139 -0
  23. gaia_cli-1.0.0/src/gaia_cli/prWriter.py +181 -0
  24. gaia_cli-1.0.0/src/gaia_cli/push.py +209 -0
  25. gaia_cli-1.0.0/src/gaia_cli/registry.py +41 -0
  26. gaia_cli-1.0.0/src/gaia_cli/resolver.py +19 -0
  27. gaia_cli-1.0.0/src/gaia_cli/scanner.py +109 -0
  28. gaia_cli-1.0.0/src/gaia_cli/semantic_search.py +108 -0
  29. gaia_cli-1.0.0/src/gaia_cli/treeManager.py +40 -0
  30. gaia_cli-1.0.0/src/gaia_cli.egg-info/PKG-INFO +301 -0
  31. gaia_cli-1.0.0/src/gaia_cli.egg-info/SOURCES.txt +45 -0
  32. gaia_cli-1.0.0/src/gaia_cli.egg-info/dependency_links.txt +1 -0
  33. gaia_cli-1.0.0/src/gaia_cli.egg-info/entry_points.txt +2 -0
  34. gaia_cli-1.0.0/src/gaia_cli.egg-info/requires.txt +11 -0
  35. gaia_cli-1.0.0/src/gaia_cli.egg-info/top_level.txt +1 -0
  36. gaia_cli-1.0.0/tests/test_crawlers.py +86 -0
  37. gaia_cli-1.0.0/tests/test_dx.py +124 -0
  38. gaia_cli-1.0.0/tests/test_embeddings.py +343 -0
  39. gaia_cli-1.0.0/tests/test_install.py +260 -0
  40. gaia_cli-1.0.0/tests/test_intake.py +95 -0
  41. gaia_cli-1.0.0/tests/test_lifecycle.py +103 -0
  42. gaia_cli-1.0.0/tests/test_named_skills.py +175 -0
  43. gaia_cli-1.0.0/tests/test_packaging.py +200 -0
  44. gaia_cli-1.0.0/tests/test_pr_writer.py +46 -0
  45. gaia_cli-1.0.0/tests/test_push.py +166 -0
  46. gaia_cli-1.0.0/tests/test_validate.py +176 -0
  47. 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.
@@ -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
+ [![Validate](https://github.com/mbtiongson1/gaia-skill-tree/actions/workflows/validate.yml/badge.svg)](https://github.com/mbtiongson1/gaia-skill-tree/actions/workflows/validate.yml)
43
+ [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](LICENSE)
44
+ [![Tutorial](https://img.shields.io/badge/Tutorial-gaia.tiongson.co-38bdf8)](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.*
@@ -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
+ [![Validate](https://github.com/mbtiongson1/gaia-skill-tree/actions/workflows/validate.yml/badge.svg)](https://github.com/mbtiongson1/gaia-skill-tree/actions/workflows/validate.yml)
6
+ [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](LICENSE)
7
+ [![Tutorial](https://img.shields.io/badge/Tutorial-gaia.tiongson.co-38bdf8)](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
+ ]
@@ -0,0 +1,4 @@
1
+ [egg_info]
2
+ tag_build =
3
+ tag_date = 0
4
+
File without changes
@@ -0,0 +1,5 @@
1
+ from gaia_cli.main import main
2
+
3
+
4
+ if __name__ == "__main__":
5
+ main()