gaia-cli 7.0.0__tar.gz → 7.0.4__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 (489) hide show
  1. {gaia_cli-7.0.0/src/gaia_cli.egg-info → gaia_cli-7.0.4}/PKG-INFO +4 -4
  2. {gaia_cli-7.0.0 → gaia_cli-7.0.4}/README.md +3 -3
  3. {gaia_cli-7.0.0 → gaia_cli-7.0.4}/pyproject.toml +1 -1
  4. {gaia_cli-7.0.0 → gaia_cli-7.0.4}/src/gaia_cli/treeManager.py +2 -2
  5. {gaia_cli-7.0.0 → gaia_cli-7.0.4}/src/gaia_cli/tui/screens/agent.py +30 -16
  6. {gaia_cli-7.0.0 → gaia_cli-7.0.4}/src/gaia_cli/tui/screens/hero.py +18 -14
  7. {gaia_cli-7.0.0 → gaia_cli-7.0.4}/src/gaia_cli/tui/screens/levelup.py +40 -31
  8. {gaia_cli-7.0.0 → gaia_cli-7.0.4}/src/gaia_cli/tui/screens/tree.py +53 -43
  9. {gaia_cli-7.0.0 → gaia_cli-7.0.4}/src/gaia_cli/tui/theme.tcss +5 -5
  10. {gaia_cli-7.0.0 → gaia_cli-7.0.4}/src/gaia_cli/tui/tokens.py +71 -57
  11. {gaia_cli-7.0.0 → gaia_cli-7.0.4/src/gaia_cli.egg-info}/PKG-INFO +4 -4
  12. gaia_cli-7.0.4/src/gaia_cli.egg-info/SOURCES.txt +200 -0
  13. {gaia_cli-7.0.0 → gaia_cli-7.0.4}/tests/test_tui_tokens.py +21 -11
  14. gaia_cli-7.0.0/src/gaia_cli/data/registry/gaia.json +0 -16363
  15. gaia_cli-7.0.0/src/gaia_cli/data/registry/named/0xdarkmatter/pytest-patterns.md +0 -75
  16. gaia_cli-7.0.0/src/gaia_cli/data/registry/named/Manavarya09/design-extract.md +0 -71
  17. gaia_cli-7.0.0/src/gaia_cli/data/registry/named/Taoidle/plan-decompose-gh-plan-cascade.md +0 -50
  18. gaia_cli-7.0.0/src/gaia_cli/data/registry/named/addy-osmani/agent-skills.md +0 -162
  19. gaia_cli-7.0.0/src/gaia_cli/data/registry/named/addy-osmani/code-review-and-quality.md +0 -107
  20. gaia_cli-7.0.0/src/gaia_cli/data/registry/named/addy-osmani/code-simplification.md +0 -145
  21. gaia_cli-7.0.0/src/gaia_cli/data/registry/named/addy-osmani/incremental-implementation.md +0 -107
  22. gaia_cli-7.0.0/src/gaia_cli/data/registry/named/addy-osmani/performance-optimization.md +0 -134
  23. gaia_cli-7.0.0/src/gaia_cli/data/registry/named/addy-osmani/planning-and-task-breakdown.md +0 -107
  24. gaia_cli-7.0.0/src/gaia_cli/data/registry/named/addy-osmani/shipping-and-launch.md +0 -106
  25. gaia_cli-7.0.0/src/gaia_cli/data/registry/named/addy-osmani/spec-driven-development.md +0 -107
  26. gaia_cli-7.0.0/src/gaia_cli/data/registry/named/addy-osmani/test-driven-development.md +0 -104
  27. gaia_cli-7.0.0/src/gaia_cli/data/registry/named/anthropic/pptx.md +0 -79
  28. gaia_cli-7.0.0/src/gaia_cli/data/registry/named/anthropic/skill-creator.md +0 -128
  29. gaia_cli-7.0.0/src/gaia_cli/data/registry/named/apache/airflow.json +0 -23
  30. gaia_cli-7.0.0/src/gaia_cli/data/registry/named/apify/crawlee.json +0 -23
  31. gaia_cli-7.0.0/src/gaia_cli/data/registry/named/bradautomates/claude-video.md +0 -91
  32. gaia_cli-7.0.0/src/gaia_cli/data/registry/named/browser-use/browser-harness.md +0 -151
  33. gaia_cli-7.0.0/src/gaia_cli/data/registry/named/browserbase/stagehand.md +0 -55
  34. gaia_cli-7.0.0/src/gaia_cli/data/registry/named/caioribeiroclw-pixel/evidence-attestation.md +0 -58
  35. gaia_cli-7.0.0/src/gaia_cli/data/registry/named/changkun/plan-decompose-gh-wallfacer.md +0 -50
  36. gaia_cli-7.0.0/src/gaia_cli/data/registry/named/devin-ai/autonomous-swe.md +0 -122
  37. gaia_cli-7.0.0/src/gaia_cli/data/registry/named/favorchurch/attendees.md +0 -122
  38. gaia_cli-7.0.0/src/gaia_cli/data/registry/named/favorchurch/count-checkin-by-church.md +0 -200
  39. gaia_cli-7.0.0/src/gaia_cli/data/registry/named/favorchurch/export-attendees.md +0 -247
  40. gaia_cli-7.0.0/src/gaia_cli/data/registry/named/favorchurch/financial-assistance.md +0 -311
  41. gaia_cli-7.0.0/src/gaia_cli/data/registry/named/favorchurch/resend-conference-emails-carefully-with-smtp.md +0 -130
  42. gaia_cli-7.0.0/src/gaia_cli/data/registry/named/favorchurch/speak-like-favor.md +0 -179
  43. gaia_cli-7.0.0/src/gaia_cli/data/registry/named/favorchurch/ticket-transfer.md +0 -297
  44. gaia_cli-7.0.0/src/gaia_cli/data/registry/named/favorchurch/triage-conference.md +0 -303
  45. gaia_cli-7.0.0/src/gaia_cli/data/registry/named/favorchurch/update-unique-churches.md +0 -176
  46. gaia_cli-7.0.0/src/gaia_cli/data/registry/named/firecrawl/firecrawl-build-interact.md +0 -50
  47. gaia_cli-7.0.0/src/gaia_cli/data/registry/named/firecrawl/firecrawl-build-onboarding.md +0 -50
  48. gaia_cli-7.0.0/src/gaia_cli/data/registry/named/firecrawl/firecrawl-build-scrape.md +0 -100
  49. gaia_cli-7.0.0/src/gaia_cli/data/registry/named/firecrawl/firecrawl-build-search.md +0 -81
  50. gaia_cli-7.0.0/src/gaia_cli/data/registry/named/firecrawl/firecrawl-research-index.md +0 -50
  51. gaia_cli-7.0.0/src/gaia_cli/data/registry/named/firecrawl/firecrawl-skills.md +0 -144
  52. gaia_cli-7.0.0/src/gaia_cli/data/registry/named/firecrawl/mcp.json +0 -23
  53. gaia_cli-7.0.0/src/gaia_cli/data/registry/named/gaia-research/skill-ci-churn.md +0 -71
  54. gaia_cli-7.0.0/src/gaia_cli/data/registry/named/gaia-research/skill-fuse.md +0 -70
  55. gaia_cli-7.0.0/src/gaia_cli/data/registry/named/gaiabot/gaia-triage.md +0 -83
  56. gaia_cli-7.0.0/src/gaia_cli/data/registry/named/gaiabot/repo-docs-before-pr.md +0 -92
  57. gaia_cli-7.0.0/src/gaia_cli/data/registry/named/garrytan/benchmark-models.md +0 -81
  58. gaia_cli-7.0.0/src/gaia_cli/data/registry/named/garrytan/benchmark.md +0 -106
  59. gaia_cli-7.0.0/src/gaia_cli/data/registry/named/garrytan/browse.md +0 -149
  60. gaia_cli-7.0.0/src/gaia_cli/data/registry/named/garrytan/canary.md +0 -107
  61. gaia_cli-7.0.0/src/gaia_cli/data/registry/named/garrytan/careful.md +0 -96
  62. gaia_cli-7.0.0/src/gaia_cli/data/registry/named/garrytan/codex.md +0 -81
  63. gaia_cli-7.0.0/src/gaia_cli/data/registry/named/garrytan/context-restore.md +0 -76
  64. gaia_cli-7.0.0/src/gaia_cli/data/registry/named/garrytan/context-save.md +0 -77
  65. gaia_cli-7.0.0/src/gaia_cli/data/registry/named/garrytan/cso.md +0 -108
  66. gaia_cli-7.0.0/src/gaia_cli/data/registry/named/garrytan/design-consultation.md +0 -111
  67. gaia_cli-7.0.0/src/gaia_cli/data/registry/named/garrytan/design-html.md +0 -111
  68. gaia_cli-7.0.0/src/gaia_cli/data/registry/named/garrytan/design-review.md +0 -89
  69. gaia_cli-7.0.0/src/gaia_cli/data/registry/named/garrytan/design-shotgun.md +0 -106
  70. gaia_cli-7.0.0/src/gaia_cli/data/registry/named/garrytan/devex-review.md +0 -88
  71. gaia_cli-7.0.0/src/gaia_cli/data/registry/named/garrytan/document-generate.md +0 -110
  72. gaia_cli-7.0.0/src/gaia_cli/data/registry/named/garrytan/document-release.md +0 -76
  73. gaia_cli-7.0.0/src/gaia_cli/data/registry/named/garrytan/freeze.md +0 -76
  74. gaia_cli-7.0.0/src/gaia_cli/data/registry/named/garrytan/garrytan.md +0 -99
  75. gaia_cli-7.0.0/src/gaia_cli/data/registry/named/garrytan/gstack-upgrade.md +0 -76
  76. gaia_cli-7.0.0/src/gaia_cli/data/registry/named/garrytan/gstack.md +0 -275
  77. gaia_cli-7.0.0/src/gaia_cli/data/registry/named/garrytan/guard.md +0 -81
  78. gaia_cli-7.0.0/src/gaia_cli/data/registry/named/garrytan/health.md +0 -81
  79. gaia_cli-7.0.0/src/gaia_cli/data/registry/named/garrytan/investigate.md +0 -111
  80. gaia_cli-7.0.0/src/gaia_cli/data/registry/named/garrytan/land-and-deploy.md +0 -107
  81. gaia_cli-7.0.0/src/gaia_cli/data/registry/named/garrytan/landing-report.md +0 -77
  82. gaia_cli-7.0.0/src/gaia_cli/data/registry/named/garrytan/learn.md +0 -81
  83. gaia_cli-7.0.0/src/gaia_cli/data/registry/named/garrytan/make-pdf.md +0 -88
  84. gaia_cli-7.0.0/src/gaia_cli/data/registry/named/garrytan/office-hours.md +0 -99
  85. gaia_cli-7.0.0/src/gaia_cli/data/registry/named/garrytan/open-gstack-browser.md +0 -76
  86. gaia_cli-7.0.0/src/gaia_cli/data/registry/named/garrytan/pair-agent.md +0 -80
  87. gaia_cli-7.0.0/src/gaia_cli/data/registry/named/garrytan/plan-ceo-review.md +0 -107
  88. gaia_cli-7.0.0/src/gaia_cli/data/registry/named/garrytan/plan-design-review.md +0 -107
  89. gaia_cli-7.0.0/src/gaia_cli/data/registry/named/garrytan/plan-devex-review.md +0 -107
  90. gaia_cli-7.0.0/src/gaia_cli/data/registry/named/garrytan/plan-eng-review.md +0 -98
  91. gaia_cli-7.0.0/src/gaia_cli/data/registry/named/garrytan/plan-tune.md +0 -76
  92. gaia_cli-7.0.0/src/gaia_cli/data/registry/named/garrytan/qa-only.md +0 -76
  93. gaia_cli-7.0.0/src/gaia_cli/data/registry/named/garrytan/qa.md +0 -107
  94. gaia_cli-7.0.0/src/gaia_cli/data/registry/named/garrytan/retro.md +0 -115
  95. gaia_cli-7.0.0/src/gaia_cli/data/registry/named/garrytan/review.md +0 -107
  96. gaia_cli-7.0.0/src/gaia_cli/data/registry/named/garrytan/scrape.md +0 -85
  97. gaia_cli-7.0.0/src/gaia_cli/data/registry/named/garrytan/setup-browser-cookies.md +0 -76
  98. gaia_cli-7.0.0/src/gaia_cli/data/registry/named/garrytan/setup-deploy.md +0 -77
  99. gaia_cli-7.0.0/src/gaia_cli/data/registry/named/garrytan/setup-gbrain.md +0 -76
  100. gaia_cli-7.0.0/src/gaia_cli/data/registry/named/garrytan/ship.md +0 -110
  101. gaia_cli-7.0.0/src/gaia_cli/data/registry/named/garrytan/skillify.md +0 -105
  102. gaia_cli-7.0.0/src/gaia_cli/data/registry/named/garrytan/sync-gbrain.md +0 -75
  103. gaia_cli-7.0.0/src/gaia_cli/data/registry/named/garrytan/unfreeze.md +0 -76
  104. gaia_cli-7.0.0/src/gaia_cli/data/registry/named/getagentseal/codeburn.md +0 -68
  105. gaia_cli-7.0.0/src/gaia_cli/data/registry/named/glincker/readme-generator.md +0 -109
  106. gaia_cli-7.0.0/src/gaia_cli/data/registry/named/google-deepmind/alphafold_database_fetch_and_analyze.md +0 -200
  107. gaia_cli-7.0.0/src/gaia_cli/data/registry/named/google-deepmind/alphagenome_single_variant_analysis.md +0 -356
  108. gaia_cli-7.0.0/src/gaia_cli/data/registry/named/google-deepmind/chembl_database.md +0 -360
  109. gaia_cli-7.0.0/src/gaia_cli/data/registry/named/google-deepmind/clinical_trials_database.md +0 -455
  110. gaia_cli-7.0.0/src/gaia_cli/data/registry/named/google-deepmind/clinvar_database.md +0 -470
  111. gaia_cli-7.0.0/src/gaia_cli/data/registry/named/google-deepmind/dbsnp_database.md +0 -441
  112. gaia_cli-7.0.0/src/gaia_cli/data/registry/named/google-deepmind/embl_ebi_ols.md +0 -377
  113. gaia_cli-7.0.0/src/gaia_cli/data/registry/named/google-deepmind/encode_ccres_database.md +0 -294
  114. gaia_cli-7.0.0/src/gaia_cli/data/registry/named/google-deepmind/ensembl_database.md +0 -297
  115. gaia_cli-7.0.0/src/gaia_cli/data/registry/named/google-deepmind/foldseek_structural_search.md +0 -195
  116. gaia_cli-7.0.0/src/gaia_cli/data/registry/named/google-deepmind/gnomad_database.md +0 -166
  117. gaia_cli-7.0.0/src/gaia_cli/data/registry/named/google-deepmind/gtex_database.md +0 -269
  118. gaia_cli-7.0.0/src/gaia_cli/data/registry/named/google-deepmind/human_protein_atlas_database.md +0 -268
  119. gaia_cli-7.0.0/src/gaia_cli/data/registry/named/google-deepmind/interpro_database.md +0 -522
  120. gaia_cli-7.0.0/src/gaia_cli/data/registry/named/google-deepmind/jaspar_database.md +0 -219
  121. gaia_cli-7.0.0/src/gaia_cli/data/registry/named/google-deepmind/literature_search_arxiv.md +0 -194
  122. gaia_cli-7.0.0/src/gaia_cli/data/registry/named/google-deepmind/literature_search_biorxiv.md +0 -245
  123. gaia_cli-7.0.0/src/gaia_cli/data/registry/named/google-deepmind/literature_search_europepmc.md +0 -324
  124. gaia_cli-7.0.0/src/gaia_cli/data/registry/named/google-deepmind/literature_search_openalex.md +0 -261
  125. gaia_cli-7.0.0/src/gaia_cli/data/registry/named/google-deepmind/ncbi_sequence_fetch.md +0 -335
  126. gaia_cli-7.0.0/src/gaia_cli/data/registry/named/google-deepmind/openfda_database.md +0 -330
  127. gaia_cli-7.0.0/src/gaia_cli/data/registry/named/google-deepmind/opentargets_database.md +0 -293
  128. gaia_cli-7.0.0/src/gaia_cli/data/registry/named/google-deepmind/pdb_database.md +0 -245
  129. gaia_cli-7.0.0/src/gaia_cli/data/registry/named/google-deepmind/protein_sequence_msa.md +0 -206
  130. gaia_cli-7.0.0/src/gaia_cli/data/registry/named/google-deepmind/protein_sequence_similarity_search.md +0 -336
  131. gaia_cli-7.0.0/src/gaia_cli/data/registry/named/google-deepmind/pubchem_database.md +0 -259
  132. gaia_cli-7.0.0/src/gaia_cli/data/registry/named/google-deepmind/pubmed_database.md +0 -283
  133. gaia_cli-7.0.0/src/gaia_cli/data/registry/named/google-deepmind/pymol.md +0 -240
  134. gaia_cli-7.0.0/src/gaia_cli/data/registry/named/google-deepmind/quickgo_database.md +0 -220
  135. gaia_cli-7.0.0/src/gaia_cli/data/registry/named/google-deepmind/reactome_database.md +0 -375
  136. gaia_cli-7.0.0/src/gaia_cli/data/registry/named/google-deepmind/science_skills_common.md +0 -117
  137. gaia_cli-7.0.0/src/gaia_cli/data/registry/named/google-deepmind/string_database.md +0 -143
  138. gaia_cli-7.0.0/src/gaia_cli/data/registry/named/google-deepmind/ucsc_conservation_and_tfbs.md +0 -278
  139. gaia_cli-7.0.0/src/gaia_cli/data/registry/named/google-deepmind/unibind_database.md +0 -234
  140. gaia_cli-7.0.0/src/gaia_cli/data/registry/named/google-deepmind/uniprot_database.md +0 -368
  141. gaia_cli-7.0.0/src/gaia_cli/data/registry/named/google-deepmind/uv.md +0 -124
  142. gaia_cli-7.0.0/src/gaia_cli/data/registry/named/google-deepmind/workflow_skill_creator.md +0 -364
  143. gaia_cli-7.0.0/src/gaia_cli/data/registry/named/gooseworks/notte-browser.md +0 -71
  144. gaia_cli-7.0.0/src/gaia_cli/data/registry/named/gsd-build/discuss-phase.md +0 -110
  145. gaia_cli-7.0.0/src/gaia_cli/data/registry/named/gsd-build/execute-phase.md +0 -106
  146. gaia_cli-7.0.0/src/gaia_cli/data/registry/named/gsd-build/get-shit-done.md +0 -148
  147. gaia_cli-7.0.0/src/gaia_cli/data/registry/named/gsd-build/plan-phase.md +0 -106
  148. gaia_cli-7.0.0/src/gaia_cli/data/registry/named/gsd-build/ship.md +0 -106
  149. gaia_cli-7.0.0/src/gaia_cli/data/registry/named/gsd-build/verify-work.md +0 -106
  150. gaia_cli-7.0.0/src/gaia_cli/data/registry/named/huggingface/hf-cli.md +0 -57
  151. gaia_cli-7.0.0/src/gaia_cli/data/registry/named/huggingface/huggingface-datasets.md +0 -58
  152. gaia_cli-7.0.0/src/gaia_cli/data/registry/named/huggingface/huggingface-llm-trainer.md +0 -58
  153. gaia_cli-7.0.0/src/gaia_cli/data/registry/named/huggingface/huggingface-papers.md +0 -58
  154. gaia_cli-7.0.0/src/gaia_cli/data/registry/named/huggingface/huggingface-vision-trainer.md +0 -58
  155. gaia_cli-7.0.0/src/gaia_cli/data/registry/named/huggingface/semantic-cache.md +0 -111
  156. gaia_cli-7.0.0/src/gaia_cli/data/registry/named/huggingface/transformers-js.md +0 -58
  157. gaia_cli-7.0.0/src/gaia_cli/data/registry/named/intelligentcode-ai/database-engineer.md +0 -112
  158. gaia_cli-7.0.0/src/gaia_cli/data/registry/named/intelligentcode-ai/devops-engineer.md +0 -112
  159. gaia_cli-7.0.0/src/gaia_cli/data/registry/named/intelligentcode-ai/mcp-client.md +0 -110
  160. gaia_cli-7.0.0/src/gaia_cli/data/registry/named/intelligentcode-ai/parallel-execution.md +0 -109
  161. gaia_cli-7.0.0/src/gaia_cli/data/registry/named/intelligentcode-ai/release.md +0 -111
  162. gaia_cli-7.0.0/src/gaia_cli/data/registry/named/intelligentcode-ai/requirements-engineer.md +0 -111
  163. gaia_cli-7.0.0/src/gaia_cli/data/registry/named/intelligentcode-ai/security-engineer.md +0 -112
  164. gaia_cli-7.0.0/src/gaia_cli/data/registry/named/intelligentcode-ai/user-tester.md +0 -111
  165. gaia_cli-7.0.0/src/gaia_cli/data/registry/named/karpathy/autoresearch.md +0 -76
  166. gaia_cli-7.0.0/src/gaia_cli/data/registry/named/ladislav-sopko/mcp-vs.json +0 -23
  167. gaia_cli-7.0.0/src/gaia_cli/data/registry/named/langgenius/backend-code-review.md +0 -88
  168. gaia_cli-7.0.0/src/gaia_cli/data/registry/named/langgenius/component-refactoring.md +0 -90
  169. gaia_cli-7.0.0/src/gaia_cli/data/registry/named/langgenius/e2e-cucumber-playwright.md +0 -89
  170. gaia_cli-7.0.0/src/gaia_cli/data/registry/named/langgenius/frontend-code-review.md +0 -89
  171. gaia_cli-7.0.0/src/gaia_cli/data/registry/named/langgenius/frontend-testing.md +0 -100
  172. gaia_cli-7.0.0/src/gaia_cli/data/registry/named/laravel/upgrade-laravel-v13.md +0 -74
  173. gaia_cli-7.0.0/src/gaia_cli/data/registry/named/martin-stepanoski/nielsen-heuristics-audit.md +0 -109
  174. gaia_cli-7.0.0/src/gaia_cli/data/registry/named/mattpocock/ask-matt.md +0 -141
  175. gaia_cli-7.0.0/src/gaia_cli/data/registry/named/mattpocock/caveman.md +0 -71
  176. gaia_cli-7.0.0/src/gaia_cli/data/registry/named/mattpocock/codebase-design.md +0 -105
  177. gaia_cli-7.0.0/src/gaia_cli/data/registry/named/mattpocock/diagnose.md +0 -142
  178. gaia_cli-7.0.0/src/gaia_cli/data/registry/named/mattpocock/diagnosing-bugs.md +0 -105
  179. gaia_cli-7.0.0/src/gaia_cli/data/registry/named/mattpocock/domain-modeling.md +0 -105
  180. gaia_cli-7.0.0/src/gaia_cli/data/registry/named/mattpocock/edit-article.md +0 -144
  181. gaia_cli-7.0.0/src/gaia_cli/data/registry/named/mattpocock/engineering.md +0 -74
  182. gaia_cli-7.0.0/src/gaia_cli/data/registry/named/mattpocock/git-guardrails-claude-code.md +0 -105
  183. gaia_cli-7.0.0/src/gaia_cli/data/registry/named/mattpocock/grill-me.md +0 -149
  184. gaia_cli-7.0.0/src/gaia_cli/data/registry/named/mattpocock/grill-with-docs.md +0 -146
  185. gaia_cli-7.0.0/src/gaia_cli/data/registry/named/mattpocock/grilling.md +0 -105
  186. gaia_cli-7.0.0/src/gaia_cli/data/registry/named/mattpocock/handoff.md +0 -147
  187. gaia_cli-7.0.0/src/gaia_cli/data/registry/named/mattpocock/implement.md +0 -105
  188. gaia_cli-7.0.0/src/gaia_cli/data/registry/named/mattpocock/improve-codebase-architecture.md +0 -103
  189. gaia_cli-7.0.0/src/gaia_cli/data/registry/named/mattpocock/migrate-to-shoehorn.md +0 -105
  190. gaia_cli-7.0.0/src/gaia_cli/data/registry/named/mattpocock/obsidian-vault.md +0 -115
  191. gaia_cli-7.0.0/src/gaia_cli/data/registry/named/mattpocock/personal.md +0 -58
  192. gaia_cli-7.0.0/src/gaia_cli/data/registry/named/mattpocock/productivity.md +0 -62
  193. gaia_cli-7.0.0/src/gaia_cli/data/registry/named/mattpocock/prototype.md +0 -90
  194. gaia_cli-7.0.0/src/gaia_cli/data/registry/named/mattpocock/resolving-merge-conflicts.md +0 -105
  195. gaia_cli-7.0.0/src/gaia_cli/data/registry/named/mattpocock/scaffold-exercises.md +0 -105
  196. gaia_cli-7.0.0/src/gaia_cli/data/registry/named/mattpocock/setup-matt-pocock-skills.md +0 -99
  197. gaia_cli-7.0.0/src/gaia_cli/data/registry/named/mattpocock/setup-pre-commit.md +0 -105
  198. gaia_cli-7.0.0/src/gaia_cli/data/registry/named/mattpocock/skills.md +0 -194
  199. gaia_cli-7.0.0/src/gaia_cli/data/registry/named/mattpocock/tdd.md +0 -105
  200. gaia_cli-7.0.0/src/gaia_cli/data/registry/named/mattpocock/teach.md +0 -121
  201. gaia_cli-7.0.0/src/gaia_cli/data/registry/named/mattpocock/to-issues.md +0 -139
  202. gaia_cli-7.0.0/src/gaia_cli/data/registry/named/mattpocock/to-prd.md +0 -143
  203. gaia_cli-7.0.0/src/gaia_cli/data/registry/named/mattpocock/triage.md +0 -119
  204. gaia_cli-7.0.0/src/gaia_cli/data/registry/named/mattpocock/ubiquitous-language.md +0 -139
  205. gaia_cli-7.0.0/src/gaia_cli/data/registry/named/mattpocock/write-a-skill.md +0 -107
  206. gaia_cli-7.0.0/src/gaia_cli/data/registry/named/mattpocock/writing-great-skills.md +0 -105
  207. gaia_cli-7.0.0/src/gaia_cli/data/registry/named/mattpocock/zoom-out.md +0 -72
  208. gaia_cli-7.0.0/src/gaia_cli/data/registry/named/mbtiongson1/gaia-audit.md +0 -79
  209. gaia_cli-7.0.0/src/gaia_cli/data/registry/named/mbtiongson1/gaia-bot-curate.md +0 -59
  210. gaia_cli-7.0.0/src/gaia_cli/data/registry/named/mbtiongson1/gaia-curate.md +0 -61
  211. gaia_cli-7.0.0/src/gaia_cli/data/registry/named/mbtiongson1/gaia-curation-review.md +0 -82
  212. gaia_cli-7.0.0/src/gaia_cli/data/registry/named/mbtiongson1/gaia-docs-sync.md +0 -55
  213. gaia_cli-7.0.0/src/gaia_cli/data/registry/named/mbtiongson1/gaia-draft-curate.md +0 -59
  214. gaia_cli-7.0.0/src/gaia_cli/data/registry/named/mbtiongson1/gaia-integrity.md +0 -60
  215. gaia_cli-7.0.0/src/gaia_cli/data/registry/named/mbtiongson1/gaia-meta-audit.md +0 -96
  216. gaia_cli-7.0.0/src/gaia_cli/data/registry/named/mbtiongson1/gaia-preview.md +0 -78
  217. gaia_cli-7.0.0/src/gaia_cli/data/registry/named/mbtiongson1/gaia-triage.md +0 -55
  218. gaia_cli-7.0.0/src/gaia_cli/data/registry/named/mbtiongson1/gaia-wiki-sync.md +0 -55
  219. gaia_cli-7.0.0/src/gaia_cli/data/registry/named/mbtiongson1/graphify-triage.md +0 -79
  220. gaia_cli-7.0.0/src/gaia_cli/data/registry/named/nexu-io/open-design.md +0 -76
  221. gaia_cli-7.0.0/src/gaia_cli/data/registry/named/nousresearch/feed-monitoring.md +0 -79
  222. gaia_cli-7.0.0/src/gaia_cli/data/registry/named/obra/brainstorming.md +0 -134
  223. gaia_cli-7.0.0/src/gaia_cli/data/registry/named/obra/dispatching-parallel-agents.md +0 -104
  224. gaia_cli-7.0.0/src/gaia_cli/data/registry/named/obra/executing-plans.md +0 -133
  225. gaia_cli-7.0.0/src/gaia_cli/data/registry/named/obra/finishing-a-development-branch.md +0 -107
  226. gaia_cli-7.0.0/src/gaia_cli/data/registry/named/obra/receiving-code-review.md +0 -92
  227. gaia_cli-7.0.0/src/gaia_cli/data/registry/named/obra/requesting-code-review.md +0 -79
  228. gaia_cli-7.0.0/src/gaia_cli/data/registry/named/obra/subagent-driven-development.md +0 -169
  229. gaia_cli-7.0.0/src/gaia_cli/data/registry/named/obra/superpowers.md +0 -332
  230. gaia_cli-7.0.0/src/gaia_cli/data/registry/named/obra/systematic-debugging.md +0 -122
  231. gaia_cli-7.0.0/src/gaia_cli/data/registry/named/obra/using-git-worktrees.md +0 -185
  232. gaia_cli-7.0.0/src/gaia_cli/data/registry/named/obra/verification-before-completion.md +0 -134
  233. gaia_cli-7.0.0/src/gaia_cli/data/registry/named/obra/writing-plans.md +0 -196
  234. gaia_cli-7.0.0/src/gaia_cli/data/registry/named/openai/few-shot-learning.md +0 -106
  235. gaia_cli-7.0.0/src/gaia_cli/data/registry/named/openai/self-consistency.md +0 -91
  236. gaia_cli-7.0.0/src/gaia_cli/data/registry/named/pbakaus/impeccable.md +0 -163
  237. gaia_cli-7.0.0/src/gaia_cli/data/registry/named/pexp13/sentiment-analysis.md +0 -143
  238. gaia_cli-7.0.0/src/gaia_cli/data/registry/named/rico-favor/implement-with-discernment.md +0 -60
  239. gaia_cli-7.0.0/src/gaia_cli/data/registry/named/ruvnet/agentdb-advanced.md +0 -92
  240. gaia_cli-7.0.0/src/gaia_cli/data/registry/named/ruvnet/agentdb-learning.md +0 -66
  241. gaia_cli-7.0.0/src/gaia_cli/data/registry/named/ruvnet/agentdb-memory-patterns.md +0 -82
  242. gaia_cli-7.0.0/src/gaia_cli/data/registry/named/ruvnet/agentdb-optimization.md +0 -82
  243. gaia_cli-7.0.0/src/gaia_cli/data/registry/named/ruvnet/agentdb-vector-search.md +0 -83
  244. gaia_cli-7.0.0/src/gaia_cli/data/registry/named/ruvnet/agentdb.md +0 -157
  245. gaia_cli-7.0.0/src/gaia_cli/data/registry/named/ruvnet/agentic-jujutsu.md +0 -94
  246. gaia_cli-7.0.0/src/gaia_cli/data/registry/named/ruvnet/browser.md +0 -78
  247. gaia_cli-7.0.0/src/gaia_cli/data/registry/named/ruvnet/dual-collect.md +0 -83
  248. gaia_cli-7.0.0/src/gaia_cli/data/registry/named/ruvnet/dual-coordinate.md +0 -83
  249. gaia_cli-7.0.0/src/gaia_cli/data/registry/named/ruvnet/dual-mode.md +0 -122
  250. gaia_cli-7.0.0/src/gaia_cli/data/registry/named/ruvnet/dual-spawn.md +0 -83
  251. gaia_cli-7.0.0/src/gaia_cli/data/registry/named/ruvnet/flow-nexus-neural.md +0 -92
  252. gaia_cli-7.0.0/src/gaia_cli/data/registry/named/ruvnet/flow-nexus-platform.md +0 -92
  253. gaia_cli-7.0.0/src/gaia_cli/data/registry/named/ruvnet/flow-nexus-swarm.md +0 -68
  254. gaia_cli-7.0.0/src/gaia_cli/data/registry/named/ruvnet/flow-nexus.md +0 -117
  255. gaia_cli-7.0.0/src/gaia_cli/data/registry/named/ruvnet/github-code-review.md +0 -67
  256. gaia_cli-7.0.0/src/gaia_cli/data/registry/named/ruvnet/github-multi-repo.md +0 -83
  257. gaia_cli-7.0.0/src/gaia_cli/data/registry/named/ruvnet/github-project-management.md +0 -68
  258. gaia_cli-7.0.0/src/gaia_cli/data/registry/named/ruvnet/github-release-management.md +0 -68
  259. gaia_cli-7.0.0/src/gaia_cli/data/registry/named/ruvnet/github-suite.md +0 -119
  260. gaia_cli-7.0.0/src/gaia_cli/data/registry/named/ruvnet/github-workflow-automation.md +0 -67
  261. gaia_cli-7.0.0/src/gaia_cli/data/registry/named/ruvnet/hive-mind-coordination.md +0 -191
  262. gaia_cli-7.0.0/src/gaia_cli/data/registry/named/ruvnet/hooks-automation.md +0 -78
  263. gaia_cli-7.0.0/src/gaia_cli/data/registry/named/ruvnet/pair-programming.md +0 -99
  264. gaia_cli-7.0.0/src/gaia_cli/data/registry/named/ruvnet/performance-analysis.md +0 -82
  265. gaia_cli-7.0.0/src/gaia_cli/data/registry/named/ruvnet/reasoningbank-agentdb.md +0 -66
  266. gaia_cli-7.0.0/src/gaia_cli/data/registry/named/ruvnet/reasoningbank-intelligence.md +0 -91
  267. gaia_cli-7.0.0/src/gaia_cli/data/registry/named/ruvnet/reasoningbank.md +0 -187
  268. gaia_cli-7.0.0/src/gaia_cli/data/registry/named/ruvnet/ruflo-v3.md +0 -131
  269. gaia_cli-7.0.0/src/gaia_cli/data/registry/named/ruvnet/ruflo.md +0 -251
  270. gaia_cli-7.0.0/src/gaia_cli/data/registry/named/ruvnet/skill-builder.md +0 -77
  271. gaia_cli-7.0.0/src/gaia_cli/data/registry/named/ruvnet/sparc-methodology.md +0 -77
  272. gaia_cli-7.0.0/src/gaia_cli/data/registry/named/ruvnet/stream-chain.md +0 -93
  273. gaia_cli-7.0.0/src/gaia_cli/data/registry/named/ruvnet/swarm-advanced.md +0 -101
  274. gaia_cli-7.0.0/src/gaia_cli/data/registry/named/ruvnet/swarm-orchestration.md +0 -103
  275. gaia_cli-7.0.0/src/gaia_cli/data/registry/named/ruvnet/v3-cli-modernization.md +0 -93
  276. gaia_cli-7.0.0/src/gaia_cli/data/registry/named/ruvnet/v3-core-implementation.md +0 -93
  277. gaia_cli-7.0.0/src/gaia_cli/data/registry/named/ruvnet/v3-ddd-architecture.md +0 -100
  278. gaia_cli-7.0.0/src/gaia_cli/data/registry/named/ruvnet/v3-integration-deep.md +0 -93
  279. gaia_cli-7.0.0/src/gaia_cli/data/registry/named/ruvnet/v3-mcp-optimization.md +0 -78
  280. gaia_cli-7.0.0/src/gaia_cli/data/registry/named/ruvnet/v3-memory-unification.md +0 -78
  281. gaia_cli-7.0.0/src/gaia_cli/data/registry/named/ruvnet/v3-performance-optimization.md +0 -79
  282. gaia_cli-7.0.0/src/gaia_cli/data/registry/named/ruvnet/v3-security-overhaul.md +0 -78
  283. gaia_cli-7.0.0/src/gaia_cli/data/registry/named/ruvnet/v3-swarm-coordination.md +0 -77
  284. gaia_cli-7.0.0/src/gaia_cli/data/registry/named/ruvnet/verification-quality.md +0 -99
  285. gaia_cli-7.0.0/src/gaia_cli/data/registry/named/ruvnet/worker-benchmarks.md +0 -77
  286. gaia_cli-7.0.0/src/gaia_cli/data/registry/named/ruvnet/worker-integration.md +0 -93
  287. gaia_cli-7.0.0/src/gaia_cli/data/registry/named/safishamsi/graphify.md +0 -147
  288. gaia_cli-7.0.0/src/gaia_cli/data/registry/named/santifer/career-ops.md +0 -71
  289. gaia_cli-7.0.0/src/gaia_cli/data/registry/named/sickn33/ai-dev-jobs-mcp.md +0 -50
  290. gaia_cli-7.0.0/src/gaia_cli/data/registry/named/sickn33/mcp-builder.md +0 -60
  291. gaia_cli-7.0.0/src/gaia_cli/data/registry/named/sickn33/n8n-mcp-tools-expert.md +0 -51
  292. gaia_cli-7.0.0/src/gaia_cli/data/registry/named/spring-ai/readme-generate.md +0 -81
  293. gaia_cli-7.0.0/src/gaia_cli/data/registry/named/stanfordnlp/dspy.md +0 -133
  294. gaia_cli-7.0.0/src/gaia_cli/data/registry/named/upsonic/unittest-generator.md +0 -110
  295. gaia_cli-7.0.0/src/gaia_cli/data/registry/named/vercel/find-skills.md +0 -74
  296. gaia_cli-7.0.0/src/gaia_cli/data/registry/named/xquik-dev/hermes-tweet.md +0 -99
  297. gaia_cli-7.0.0/src/gaia_cli/data/registry/named/yonatangross/orchestkit-rag.md +0 -71
  298. gaia_cli-7.0.0/src/gaia_cli/data/registry/named/yundu-ai/mcp-tool-developer.md +0 -51
  299. gaia_cli-7.0.0/src/gaia_cli/data/registry/named-skills.json +0 -31560
  300. gaia_cli-7.0.0/src/gaia_cli.egg-info/SOURCES.txt +0 -486
  301. {gaia_cli-7.0.0 → gaia_cli-7.0.4}/LICENSE +0 -0
  302. {gaia_cli-7.0.0 → gaia_cli-7.0.4}/setup.cfg +0 -0
  303. {gaia_cli-7.0.0 → gaia_cli-7.0.4}/src/gaia_cli/__init__.py +0 -0
  304. {gaia_cli-7.0.0 → gaia_cli-7.0.4}/src/gaia_cli/__main__.py +0 -0
  305. {gaia_cli-7.0.0 → gaia_cli-7.0.4}/src/gaia_cli/auth.py +0 -0
  306. {gaia_cli-7.0.0 → gaia_cli-7.0.4}/src/gaia_cli/authz.py +0 -0
  307. {gaia_cli-7.0.0 → gaia_cli-7.0.4}/src/gaia_cli/cardRenderer.py +0 -0
  308. {gaia_cli-7.0.0 → gaia_cli-7.0.4}/src/gaia_cli/combinator.py +0 -0
  309. {gaia_cli-7.0.0 → gaia_cli-7.0.4}/src/gaia_cli/commands/__init__.py +0 -0
  310. {gaia_cli-7.0.0 → gaia_cli-7.0.4}/src/gaia_cli/commands/auth.py +0 -0
  311. {gaia_cli-7.0.0 → gaia_cli-7.0.4}/src/gaia_cli/commands/base.py +0 -0
  312. {gaia_cli-7.0.0 → gaia_cli-7.0.4}/src/gaia_cli/commands/dev/__init__.py +0 -0
  313. {gaia_cli-7.0.0 → gaia_cli-7.0.4}/src/gaia_cli/commands/dev/audit.py +0 -0
  314. {gaia_cli-7.0.0 → gaia_cli-7.0.4}/src/gaia_cli/commands/dev/build.py +0 -0
  315. {gaia_cli-7.0.0 → gaia_cli-7.0.4}/src/gaia_cli/commands/dev/calibrate.py +0 -0
  316. {gaia_cli-7.0.0 → gaia_cli-7.0.4}/src/gaia_cli/commands/dev/evidence.py +0 -0
  317. {gaia_cli-7.0.0 → gaia_cli-7.0.4}/src/gaia_cli/commands/dev/freeze.py +0 -0
  318. {gaia_cli-7.0.0 → gaia_cli-7.0.4}/src/gaia_cli/commands/dev/fuse.py +0 -0
  319. {gaia_cli-7.0.0 → gaia_cli-7.0.4}/src/gaia_cli/commands/dev/helpers.py +0 -0
  320. {gaia_cli-7.0.0 → gaia_cli-7.0.4}/src/gaia_cli/commands/dev/list.py +0 -0
  321. {gaia_cli-7.0.0 → gaia_cli-7.0.4}/src/gaia_cli/commands/dev/merge.py +0 -0
  322. {gaia_cli-7.0.0 → gaia_cli-7.0.4}/src/gaia_cli/commands/dev/named.py +0 -0
  323. {gaia_cli-7.0.0 → gaia_cli-7.0.4}/src/gaia_cli/commands/dev/rename.py +0 -0
  324. {gaia_cli-7.0.0 → gaia_cli-7.0.4}/src/gaia_cli/commands/dev/sync_upstream.py +0 -0
  325. {gaia_cli-7.0.0 → gaia_cli-7.0.4}/src/gaia_cli/commands/dev/timeline.py +0 -0
  326. {gaia_cli-7.0.0 → gaia_cli-7.0.4}/src/gaia_cli/commands/dev/verify.py +0 -0
  327. {gaia_cli-7.0.0 → gaia_cli-7.0.4}/src/gaia_cli/commands/graph_cmd.py +0 -0
  328. {gaia_cli-7.0.0 → gaia_cli-7.0.4}/src/gaia_cli/commands/init.py +0 -0
  329. {gaia_cli-7.0.0 → gaia_cli-7.0.4}/src/gaia_cli/commands/mcp_cmd.py +0 -0
  330. {gaia_cli-7.0.0 → gaia_cli-7.0.4}/src/gaia_cli/commands/misc.py +0 -0
  331. {gaia_cli-7.0.0 → gaia_cli-7.0.4}/src/gaia_cli/commands/network.py +0 -0
  332. {gaia_cli-7.0.0 → gaia_cli-7.0.4}/src/gaia_cli/commands/progression.py +0 -0
  333. {gaia_cli-7.0.0 → gaia_cli-7.0.4}/src/gaia_cli/commands/push.py +0 -0
  334. {gaia_cli-7.0.0 → gaia_cli-7.0.4}/src/gaia_cli/commands/pushBenchmark.py +0 -0
  335. {gaia_cli-7.0.0 → gaia_cli-7.0.4}/src/gaia_cli/commands/pushFromFile.py +0 -0
  336. {gaia_cli-7.0.0 → gaia_cli-7.0.4}/src/gaia_cli/commands/scan.py +0 -0
  337. {gaia_cli-7.0.0 → gaia_cli-7.0.4}/src/gaia_cli/commands/share_cmd.py +0 -0
  338. {gaia_cli-7.0.0 → gaia_cli-7.0.4}/src/gaia_cli/commands/skills.py +0 -0
  339. {gaia_cli-7.0.0 → gaia_cli-7.0.4}/src/gaia_cli/commands/stats.py +0 -0
  340. {gaia_cli-7.0.0 → gaia_cli-7.0.4}/src/gaia_cli/commands/tree.py +0 -0
  341. {gaia_cli-7.0.0 → gaia_cli-7.0.4}/src/gaia_cli/data/registry/schema/combination.schema.json +0 -0
  342. {gaia_cli-7.0.0 → gaia_cli-7.0.4}/src/gaia_cli/data/registry/schema/meta.json +0 -0
  343. {gaia_cli-7.0.0 → gaia_cli-7.0.4}/src/gaia_cli/data/registry/schema/namedSkill.schema.json +0 -0
  344. {gaia_cli-7.0.0 → gaia_cli-7.0.4}/src/gaia_cli/data/registry/schema/pluginConfig.schema.json +0 -0
  345. {gaia_cli-7.0.0 → gaia_cli-7.0.4}/src/gaia_cli/data/registry/schema/realSkillCatalog.schema.json +0 -0
  346. {gaia_cli-7.0.0 → gaia_cli-7.0.4}/src/gaia_cli/data/registry/schema/skill.schema.json +0 -0
  347. {gaia_cli-7.0.0 → gaia_cli-7.0.4}/src/gaia_cli/data/registry/schema/skillBatch.schema.json +0 -0
  348. {gaia_cli-7.0.0 → gaia_cli-7.0.4}/src/gaia_cli/data/registry/schema/skillSuite.schema.json +0 -0
  349. {gaia_cli-7.0.0 → gaia_cli-7.0.4}/src/gaia_cli/data/registry/schema/skillTree.schema.json +0 -0
  350. {gaia_cli-7.0.0 → gaia_cli-7.0.4}/src/gaia_cli/data/registry/schema/sourceProposal.schema.json +0 -0
  351. {gaia_cli-7.0.0 → gaia_cli-7.0.4}/src/gaia_cli/data/registry/schema/sourceProposalReport.schema.json +0 -0
  352. {gaia_cli-7.0.0 → gaia_cli-7.0.4}/src/gaia_cli/embeddings.py +0 -0
  353. {gaia_cli-7.0.0 → gaia_cli-7.0.4}/src/gaia_cli/evidence.py +0 -0
  354. {gaia_cli-7.0.0 → gaia_cli-7.0.4}/src/gaia_cli/formatting.py +0 -0
  355. {gaia_cli-7.0.0 → gaia_cli-7.0.4}/src/gaia_cli/frontmatter.py +0 -0
  356. {gaia_cli-7.0.0 → gaia_cli-7.0.4}/src/gaia_cli/grading.py +0 -0
  357. {gaia_cli-7.0.0 → gaia_cli-7.0.4}/src/gaia_cli/graph.py +0 -0
  358. {gaia_cli-7.0.0 → gaia_cli-7.0.4}/src/gaia_cli/hook.py +0 -0
  359. {gaia_cli-7.0.0 → gaia_cli-7.0.4}/src/gaia_cli/impl.py +0 -0
  360. {gaia_cli-7.0.0 → gaia_cli-7.0.4}/src/gaia_cli/install.py +0 -0
  361. {gaia_cli-7.0.0 → gaia_cli-7.0.4}/src/gaia_cli/interactive.py +0 -0
  362. {gaia_cli-7.0.0 → gaia_cli-7.0.4}/src/gaia_cli/leveling.py +0 -0
  363. {gaia_cli-7.0.0 → gaia_cli-7.0.4}/src/gaia_cli/localContext.py +0 -0
  364. {gaia_cli-7.0.0 → gaia_cli-7.0.4}/src/gaia_cli/main.py +0 -0
  365. {gaia_cli-7.0.0 → gaia_cli-7.0.4}/src/gaia_cli/name.py +0 -0
  366. {gaia_cli-7.0.0 → gaia_cli-7.0.4}/src/gaia_cli/pathEngine.py +0 -0
  367. {gaia_cli-7.0.0 → gaia_cli-7.0.4}/src/gaia_cli/prWriter.py +0 -0
  368. {gaia_cli-7.0.0 → gaia_cli-7.0.4}/src/gaia_cli/promotion.py +0 -0
  369. {gaia_cli-7.0.0 → gaia_cli-7.0.4}/src/gaia_cli/push.py +0 -0
  370. {gaia_cli-7.0.0 → gaia_cli-7.0.4}/src/gaia_cli/redaction.py +0 -0
  371. {gaia_cli-7.0.0 → gaia_cli-7.0.4}/src/gaia_cli/registry.py +0 -0
  372. {gaia_cli-7.0.0 → gaia_cli-7.0.4}/src/gaia_cli/resolver.py +0 -0
  373. {gaia_cli-7.0.0 → gaia_cli-7.0.4}/src/gaia_cli/scanner.py +0 -0
  374. {gaia_cli-7.0.0 → gaia_cli-7.0.4}/src/gaia_cli/securityScanner.py +0 -0
  375. {gaia_cli-7.0.0 → gaia_cli-7.0.4}/src/gaia_cli/selector.py +0 -0
  376. {gaia_cli-7.0.0 → gaia_cli-7.0.4}/src/gaia_cli/semantic_search.py +0 -0
  377. {gaia_cli-7.0.0 → gaia_cli-7.0.4}/src/gaia_cli/share.py +0 -0
  378. {gaia_cli-7.0.0 → gaia_cli-7.0.4}/src/gaia_cli/sourceCuration.py +0 -0
  379. {gaia_cli-7.0.0 → gaia_cli-7.0.4}/src/gaia_cli/taxonomy.py +0 -0
  380. {gaia_cli-7.0.0 → gaia_cli-7.0.4}/src/gaia_cli/timeline.py +0 -0
  381. {gaia_cli-7.0.0 → gaia_cli-7.0.4}/src/gaia_cli/trustMagnitude.py +0 -0
  382. {gaia_cli-7.0.0 → gaia_cli-7.0.4}/src/gaia_cli/tui/__init__.py +0 -0
  383. {gaia_cli-7.0.0 → gaia_cli-7.0.4}/src/gaia_cli/tui/app.py +0 -0
  384. {gaia_cli-7.0.0 → gaia_cli-7.0.4}/src/gaia_cli/tui/screens/__init__.py +0 -0
  385. {gaia_cli-7.0.0 → gaia_cli-7.0.4}/src/gaia_cli/tui/screens/scan.py +0 -0
  386. {gaia_cli-7.0.0 → gaia_cli-7.0.4}/src/gaia_cli/validate.py +0 -0
  387. {gaia_cli-7.0.0 → gaia_cli-7.0.4}/src/gaia_cli/verification.py +0 -0
  388. {gaia_cli-7.0.0 → gaia_cli-7.0.4}/src/gaia_cli/versioning.py +0 -0
  389. {gaia_cli-7.0.0 → gaia_cli-7.0.4}/src/gaia_cli/windowsLinks.py +0 -0
  390. {gaia_cli-7.0.0 → gaia_cli-7.0.4}/src/gaia_cli.egg-info/dependency_links.txt +0 -0
  391. {gaia_cli-7.0.0 → gaia_cli-7.0.4}/src/gaia_cli.egg-info/entry_points.txt +0 -0
  392. {gaia_cli-7.0.0 → gaia_cli-7.0.4}/src/gaia_cli.egg-info/requires.txt +0 -0
  393. {gaia_cli-7.0.0 → gaia_cli-7.0.4}/src/gaia_cli.egg-info/top_level.txt +0 -0
  394. {gaia_cli-7.0.0 → gaia_cli-7.0.4}/tests/test_apex_backfill.py +0 -0
  395. {gaia_cli-7.0.0 → gaia_cli-7.0.4}/tests/test_apex_reporting.py +0 -0
  396. {gaia_cli-7.0.0 → gaia_cli-7.0.4}/tests/test_api_projection.py +0 -0
  397. {gaia_cli-7.0.0 → gaia_cli-7.0.4}/tests/test_auth.py +0 -0
  398. {gaia_cli-7.0.0 → gaia_cli-7.0.4}/tests/test_authz.py +0 -0
  399. {gaia_cli-7.0.0 → gaia_cli-7.0.4}/tests/test_benchmark_projection.py +0 -0
  400. {gaia_cli-7.0.0 → gaia_cli-7.0.4}/tests/test_build_docs_cache_bust_only.py +0 -0
  401. {gaia_cli-7.0.0 → gaia_cli-7.0.4}/tests/test_build_docs_redaction_backstop.py +0 -0
  402. {gaia_cli-7.0.0 → gaia_cli-7.0.4}/tests/test_calibrate_evidence_grades.py +0 -0
  403. {gaia_cli-7.0.0 → gaia_cli-7.0.4}/tests/test_card_renderer.py +0 -0
  404. {gaia_cli-7.0.0 → gaia_cli-7.0.4}/tests/test_cli_command_migration.py +0 -0
  405. {gaia_cli-7.0.0 → gaia_cli-7.0.4}/tests/test_cli_core.py +0 -0
  406. {gaia_cli-7.0.0 → gaia_cli-7.0.4}/tests/test_combinator.py +0 -0
  407. {gaia_cli-7.0.0 → gaia_cli-7.0.4}/tests/test_crawlers.py +0 -0
  408. {gaia_cli-7.0.0 → gaia_cli-7.0.4}/tests/test_dev_audit.py +0 -0
  409. {gaia_cli-7.0.0 → gaia_cli-7.0.4}/tests/test_dev_build.py +0 -0
  410. {gaia_cli-7.0.0 → gaia_cli-7.0.4}/tests/test_dev_calibrate.py +0 -0
  411. {gaia_cli-7.0.0 → gaia_cli-7.0.4}/tests/test_dev_evidence.py +0 -0
  412. {gaia_cli-7.0.0 → gaia_cli-7.0.4}/tests/test_dev_fuse.py +0 -0
  413. {gaia_cli-7.0.0 → gaia_cli-7.0.4}/tests/test_dev_helpers.py +0 -0
  414. {gaia_cli-7.0.0 → gaia_cli-7.0.4}/tests/test_dev_merge.py +0 -0
  415. {gaia_cli-7.0.0 → gaia_cli-7.0.4}/tests/test_dev_named.py +0 -0
  416. {gaia_cli-7.0.0 → gaia_cli-7.0.4}/tests/test_dev_rename.py +0 -0
  417. {gaia_cli-7.0.0 → gaia_cli-7.0.4}/tests/test_dev_timeline.py +0 -0
  418. {gaia_cli-7.0.0 → gaia_cli-7.0.4}/tests/test_dev_upstream_verbs.py +0 -0
  419. {gaia_cli-7.0.0 → gaia_cli-7.0.4}/tests/test_dev_verify_preflights.py +0 -0
  420. {gaia_cli-7.0.0 → gaia_cli-7.0.4}/tests/test_docs_site.py +0 -0
  421. {gaia_cli-7.0.0 → gaia_cli-7.0.4}/tests/test_docs_skill_explorer.py +0 -0
  422. {gaia_cli-7.0.0 → gaia_cli-7.0.4}/tests/test_dx.py +0 -0
  423. {gaia_cli-7.0.0 → gaia_cli-7.0.4}/tests/test_embeddings.py +0 -0
  424. {gaia_cli-7.0.0 → gaia_cli-7.0.4}/tests/test_evidence_inheritance.py +0 -0
  425. {gaia_cli-7.0.0 → gaia_cli-7.0.4}/tests/test_evidence_regrade.py +0 -0
  426. {gaia_cli-7.0.0 → gaia_cli-7.0.4}/tests/test_evidence_ui_redesign.py +0 -0
  427. {gaia_cli-7.0.0 → gaia_cli-7.0.4}/tests/test_formatting.py +0 -0
  428. {gaia_cli-7.0.0 → gaia_cli-7.0.4}/tests/test_gaia_curate_discovery_packet.py +0 -0
  429. {gaia_cli-7.0.0 → gaia_cli-7.0.4}/tests/test_generate_badges.py +0 -0
  430. {gaia_cli-7.0.0 → gaia_cli-7.0.4}/tests/test_grading.py +0 -0
  431. {gaia_cli-7.0.0 → gaia_cli-7.0.4}/tests/test_graph.py +0 -0
  432. {gaia_cli-7.0.0 → gaia_cli-7.0.4}/tests/test_install.py +0 -0
  433. {gaia_cli-7.0.0 → gaia_cli-7.0.4}/tests/test_intake.py +0 -0
  434. {gaia_cli-7.0.0 → gaia_cli-7.0.4}/tests/test_intake_fromfile.py +0 -0
  435. {gaia_cli-7.0.0 → gaia_cli-7.0.4}/tests/test_interactive.py +0 -0
  436. {gaia_cli-7.0.0 → gaia_cli-7.0.4}/tests/test_leveling.py +0 -0
  437. {gaia_cli-7.0.0 → gaia_cli-7.0.4}/tests/test_lifecycle.py +0 -0
  438. {gaia_cli-7.0.0 → gaia_cli-7.0.4}/tests/test_local_context.py +0 -0
  439. {gaia_cli-7.0.0 → gaia_cli-7.0.4}/tests/test_mcp_cmd.py +0 -0
  440. {gaia_cli-7.0.0 → gaia_cli-7.0.4}/tests/test_meta_guard.py +0 -0
  441. {gaia_cli-7.0.0 → gaia_cli-7.0.4}/tests/test_meta_ops.py +0 -0
  442. {gaia_cli-7.0.0 → gaia_cli-7.0.4}/tests/test_named_skills.py +0 -0
  443. {gaia_cli-7.0.0 → gaia_cli-7.0.4}/tests/test_origin_wreath.py +0 -0
  444. {gaia_cli-7.0.0 → gaia_cli-7.0.4}/tests/test_packaging.py +0 -0
  445. {gaia_cli-7.0.0 → gaia_cli-7.0.4}/tests/test_path_command.py +0 -0
  446. {gaia_cli-7.0.0 → gaia_cli-7.0.4}/tests/test_path_engine.py +0 -0
  447. {gaia_cli-7.0.0 → gaia_cli-7.0.4}/tests/test_pr_writer.py +0 -0
  448. {gaia_cli-7.0.0 → gaia_cli-7.0.4}/tests/test_promotion.py +0 -0
  449. {gaia_cli-7.0.0 → gaia_cli-7.0.4}/tests/test_push.py +0 -0
  450. {gaia_cli-7.0.0 → gaia_cli-7.0.4}/tests/test_push_from_file.py +0 -0
  451. {gaia_cli-7.0.0 → gaia_cli-7.0.4}/tests/test_push_incremental.py +0 -0
  452. {gaia_cli-7.0.0 → gaia_cli-7.0.4}/tests/test_real_skill_catalog.py +0 -0
  453. {gaia_cli-7.0.0 → gaia_cli-7.0.4}/tests/test_redaction.py +0 -0
  454. {gaia_cli-7.0.0 → gaia_cli-7.0.4}/tests/test_registry_layout.py +0 -0
  455. {gaia_cli-7.0.0 → gaia_cli-7.0.4}/tests/test_row_grading.py +0 -0
  456. {gaia_cli-7.0.0 → gaia_cli-7.0.4}/tests/test_scan_dir_flag.py +0 -0
  457. {gaia_cli-7.0.0 → gaia_cli-7.0.4}/tests/test_scan_state.py +0 -0
  458. {gaia_cli-7.0.0 → gaia_cli-7.0.4}/tests/test_scanner.py +0 -0
  459. {gaia_cli-7.0.0 → gaia_cli-7.0.4}/tests/test_security_scanner.py +0 -0
  460. {gaia_cli-7.0.0 → gaia_cli-7.0.4}/tests/test_security_scanner_integration.py +0 -0
  461. {gaia_cli-7.0.0 → gaia_cli-7.0.4}/tests/test_selector.py +0 -0
  462. {gaia_cli-7.0.0 → gaia_cli-7.0.4}/tests/test_seo.py +0 -0
  463. {gaia_cli-7.0.0 → gaia_cli-7.0.4}/tests/test_share.py +0 -0
  464. {gaia_cli-7.0.0 → gaia_cli-7.0.4}/tests/test_source_curator_runner.py +0 -0
  465. {gaia_cli-7.0.0 → gaia_cli-7.0.4}/tests/test_source_proposal_schema.py +0 -0
  466. {gaia_cli-7.0.0 → gaia_cli-7.0.4}/tests/test_stats.py +0 -0
  467. {gaia_cli-7.0.0 → gaia_cli-7.0.4}/tests/test_suite_install.py +0 -0
  468. {gaia_cli-7.0.0 → gaia_cli-7.0.4}/tests/test_taxonomy.py +0 -0
  469. {gaia_cli-7.0.0 → gaia_cli-7.0.4}/tests/test_taxonomy_contract.py +0 -0
  470. {gaia_cli-7.0.0 → gaia_cli-7.0.4}/tests/test_timeline_routing.py +0 -0
  471. {gaia_cli-7.0.0 → gaia_cli-7.0.4}/tests/test_timelines.py +0 -0
  472. {gaia_cli-7.0.0 → gaia_cli-7.0.4}/tests/test_treeManager.py +0 -0
  473. {gaia_cli-7.0.0 → gaia_cli-7.0.4}/tests/test_tree_renderer.py +0 -0
  474. {gaia_cli-7.0.0 → gaia_cli-7.0.4}/tests/test_trending_script.py +0 -0
  475. {gaia_cli-7.0.0 → gaia_cli-7.0.4}/tests/test_trending_wiring.py +0 -0
  476. {gaia_cli-7.0.0 → gaia_cli-7.0.4}/tests/test_trust_magnitude.py +0 -0
  477. {gaia_cli-7.0.0 → gaia_cli-7.0.4}/tests/test_unlocked_at_datetime.py +0 -0
  478. {gaia_cli-7.0.0 → gaia_cli-7.0.4}/tests/test_update_command.py +0 -0
  479. {gaia_cli-7.0.0 → gaia_cli-7.0.4}/tests/test_validate.py +0 -0
  480. {gaia_cli-7.0.0 → gaia_cli-7.0.4}/tests/test_verification.py +0 -0
  481. {gaia_cli-7.0.0 → gaia_cli-7.0.4}/tests/test_verifier_benchmark_signoffs.py +0 -0
  482. {gaia_cli-7.0.0 → gaia_cli-7.0.4}/tests/test_verifier_url_validation.py +0 -0
  483. {gaia_cli-7.0.0 → gaia_cli-7.0.4}/tests/test_verify_evidence.py +0 -0
  484. {gaia_cli-7.0.0 → gaia_cli-7.0.4}/tests/test_versioning.py +0 -0
  485. {gaia_cli-7.0.0 → gaia_cli-7.0.4}/tests/test_windowsLinks.py +0 -0
  486. {gaia_cli-7.0.0 → gaia_cli-7.0.4}/tests/test_workflow_permissions.py +0 -0
  487. {gaia_cli-7.0.0 → gaia_cli-7.0.4}/tests/test_workflows.py +0 -0
  488. {gaia_cli-7.0.0 → gaia_cli-7.0.4}/tests/test_workspace_mode.py +0 -0
  489. {gaia_cli-7.0.0 → gaia_cli-7.0.4}/tests/test_world_tree_layout.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: gaia-cli
3
- Version: 7.0.0
3
+ Version: 7.0.4
4
4
  Summary: Gaia AI Agent Skill Registry CLI
5
5
  Author: Gaia contributors
6
6
  License: MIT
@@ -87,7 +87,7 @@ Generate yours at **[gaiaskilltree.com/badges/](https://gaiaskilltree.com/badges
87
87
 
88
88
  ---
89
89
 
90
- ## Change Management Yggdrasil II (July 2026)
90
+ ## Yggdrasil II just dropped! (July 2026)
91
91
 
92
92
  Gaia has moved from **Yggdrasil I** to **Yggdrasil II**, the ratified meta that governs how skills are typed, ranked, and trusted. If you last looked before July 2026, three things changed:
93
93
 
@@ -154,7 +154,7 @@ Uniques — Basic Skills that reached elite mastery (4★+) through depth alone,
154
154
  └─ ○ /logical-inference
155
155
  ◉ addy-osmani/performance-optimization [4★]
156
156
 
157
- (243 skills total — see docs/tree.md)
157
+ (246 skills total — see docs/tree.md)
158
158
  ```
159
159
  <!-- gaia:registry-end -->
160
160
 
@@ -245,7 +245,7 @@ curl https://gaiaskilltree.com/api/v1/leaderboard.json
245
245
  **1. CLI
246
246
 
247
247
  <!-- gaia:version-start -->
248
- Current Gaia CLI version: `7.0.0`.
248
+ Current Gaia CLI version: `7.0.4`.
249
249
 
250
250
  ```bash
251
251
  curl -fsSL https://gaiaskilltree.com/install.sh | sh
@@ -33,7 +33,7 @@ Generate yours at **[gaiaskilltree.com/badges/](https://gaiaskilltree.com/badges
33
33
 
34
34
  ---
35
35
 
36
- ## Change Management Yggdrasil II (July 2026)
36
+ ## Yggdrasil II just dropped! (July 2026)
37
37
 
38
38
  Gaia has moved from **Yggdrasil I** to **Yggdrasil II**, the ratified meta that governs how skills are typed, ranked, and trusted. If you last looked before July 2026, three things changed:
39
39
 
@@ -100,7 +100,7 @@ Uniques — Basic Skills that reached elite mastery (4★+) through depth alone,
100
100
  └─ ○ /logical-inference
101
101
  ◉ addy-osmani/performance-optimization [4★]
102
102
 
103
- (243 skills total — see docs/tree.md)
103
+ (246 skills total — see docs/tree.md)
104
104
  ```
105
105
  <!-- gaia:registry-end -->
106
106
 
@@ -191,7 +191,7 @@ curl https://gaiaskilltree.com/api/v1/leaderboard.json
191
191
  **1. CLI
192
192
 
193
193
  <!-- gaia:version-start -->
194
- Current Gaia CLI version: `7.0.0`.
194
+ Current Gaia CLI version: `7.0.4`.
195
195
 
196
196
  ```bash
197
197
  curl -fsSL https://gaiaskilltree.com/install.sh | sh
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "gaia-cli"
7
- version = "7.0.0"
7
+ version = "7.0.4"
8
8
  description = "Gaia AI Agent Skill Registry CLI"
9
9
  readme = "README.md"
10
10
  requires-python = ">=3.10"
@@ -577,11 +577,11 @@ def show_tree(tree_data, graph_data=None, registry_path=".", mode="default", can
577
577
  if isinstance(data, dict):
578
578
  sources = data.get("sources", [])
579
579
  level = data.get("level", "1★")
580
- stype = data.get("type", "extra")
580
+ stype = data.get("type", "fusion")
581
581
  else:
582
582
  sources = data
583
583
  level = "1★"
584
- stype = "extra"
584
+ stype = "fusion"
585
585
 
586
586
  skill_map[target] = {
587
587
  "id": target,
@@ -16,6 +16,7 @@ from textual import events, on, work
16
16
  from rich.text import Text
17
17
 
18
18
  from gaia_cli.tui import tokens as T
19
+ from gaia_cli.taxonomy import branchFor, rankWord
19
20
 
20
21
 
21
22
  # ── Data helpers ──────────────────────────────────────────────────────────────
@@ -32,14 +33,16 @@ def _load_skills(registry_path: str) -> list[dict]:
32
33
  username = cfg.get("gaiaUser", cfg.get("user", ""))
33
34
  ctx = LocalContext.load(registry_path, username)
34
35
  for sid, skill in ctx._skill_map.items():
35
- tier = skill.get("type", "basic")
36
+ # Ygg II: the display axis keys on the derived BRANCH
37
+ # (standard|suite|unique), not the {basic,fusion} type axis.
38
+ branch = branchFor(skill)
36
39
  level = skill.get("level", "")
37
40
  desc = skill.get("description", "")
38
41
  is_detected = sid in ctx.detected_ids
39
42
  is_owned = sid in ctx.owned_ids
40
43
  skills[sid] = {
41
44
  "id": sid,
42
- "type": tier,
45
+ "branch": branch,
43
46
  "level": level,
44
47
  "description": desc,
45
48
  "installed": is_detected or is_owned,
@@ -58,7 +61,11 @@ def _load_skills(registry_path: str) -> list[dict]:
58
61
  if sid not in skills:
59
62
  skills[sid] = {
60
63
  "id": sid,
61
- "type": meta.get("type", "extra"),
64
+ # Ygg II: derive the display branch via the taxonomy
65
+ # authority (meta carries level/suiteComponents). The branch
66
+ # consumers (_skill_label, branchorder) key on branch words
67
+ # (standard|suite|unique), NOT the {basic,fusion} type axis.
68
+ "branch": branchFor(meta),
62
69
  "level": meta.get("level", ""),
63
70
  "description": meta.get("description", ""),
64
71
  "installed": sid in installed_ids,
@@ -70,14 +77,14 @@ def _load_skills(registry_path: str) -> list[dict]:
70
77
  except Exception:
71
78
  pass
72
79
 
73
- # Sort: detected/local first, then installed, then by type weight, then alphabetical
74
- _type_order = {"ultimate": 0, "unique": 1, "extra": 2, "basic": 3}
80
+ # Sort: detected/local first, then installed, then by branch weight, then alphabetical
81
+ branchorder = {"unique": 0, "suite": 1, "standard": 2}
75
82
  return sorted(
76
83
  skills.values(),
77
84
  key=lambda s: (
78
85
  not s.get("detected", False),
79
86
  not s.get("installed", False),
80
- _type_order.get(s.get("type", "basic"), 4),
87
+ branchorder.get(s.get("branch", "standard"), 4),
81
88
  s["id"],
82
89
  ),
83
90
  )
@@ -99,8 +106,8 @@ def _filter_skills(query: str, skills: list[dict]) -> list[dict]:
99
106
  # ── Skill row rendering ───────────────────────────────────────────────────────
100
107
 
101
108
  def _skill_label(skill: dict) -> Text:
102
- tier = skill.get("type", "basic")
103
- glyph = T.GLYPH_BY_TIER.get(tier, "○")
109
+ branch = skill.get("branch", "standard")
110
+ glyph = T.BRANCH_GLYPH.get(branch, "○")
104
111
  sid = skill["id"]
105
112
  level = skill.get("level", "")
106
113
  owned = skill.get("owned", False)
@@ -108,7 +115,7 @@ def _skill_label(skill: dict) -> Text:
108
115
  installed = skill.get("installed", False)
109
116
 
110
117
  t = Text()
111
- t.append(glyph + " ", style=T.TIER_BY_KEY.get(tier, T.NEUTRAL_TEXT_MUTED))
118
+ t.append(glyph + " ", style=T.BRANCH_ACCENT.get(branch, T.NEUTRAL_TEXT_MUTED))
112
119
 
113
120
  # Name rendering: @handle/slug
114
121
  name_style = T.STATE_OWNED if (owned or detected) else T.NEUTRAL_TEXT
@@ -148,21 +155,26 @@ class InstallModal(ModalScreen):
148
155
  self._installing = False
149
156
 
150
157
  def compose(self) -> ComposeResult:
151
- tier = self.skill.get("type", "basic")
152
- tier_color = T.TIER_BY_KEY.get(tier, T.NEUTRAL_TEXT_MUTED)
153
- glyph = T.GLYPH_BY_TIER.get(tier, "○")
158
+ branch = self.skill.get("branch", "standard")
159
+ branch_color = T.BRANCH_ACCENT.get(branch, T.NEUTRAL_TEXT_MUTED)
160
+ glyph = T.BRANCH_GLYPH.get(branch, "○")
154
161
 
155
162
  with Static(id="install-dialog"):
156
163
  yield Static("Install skill", id="install-title")
157
164
  yield Static(
158
165
  Text.from_markup(
159
- f"[bold {tier_color}]{glyph} {self.skill['id']}[/]"
166
+ f"[bold {branch_color}]{glyph} {self.skill['id']}[/]"
160
167
  ),
161
168
  id="install-skill-id",
162
169
  )
170
+ # Meta line: the authority's rank word (e.g. "Named", "Extra",
171
+ # "Unique Impossible") — never the raw branch key. rankWord reads
172
+ # (level, branch) and always returns a word (floor "Basic" at 0★);
173
+ # the `if rank` guard below is defensive, not for an empty return.
163
174
  meta_parts = []
164
- if self.skill.get("type"):
165
- meta_parts.append(self.skill["type"])
175
+ rank = rankWord(self.skill.get("level", ""), branch)
176
+ if rank:
177
+ meta_parts.append(rank)
166
178
  if self.skill.get("level"):
167
179
  meta_parts.append(self.skill["level"])
168
180
  yield Static(" · ".join(meta_parts), id="install-meta")
@@ -374,7 +386,9 @@ class AgentScreen(Screen):
374
386
  self.app.push_screen(
375
387
  LevelUpModal(
376
388
  skill["id"],
377
- skill.get("type", "basic"),
389
+ # skill["branch"] is the derived branch (standard|
390
+ # suite|unique) — see _load_skills.
391
+ skill.get("branch", "standard"),
378
392
  skill.get("level", ""),
379
393
  )
380
394
  )
@@ -72,16 +72,21 @@ def _title_text(frame: int) -> Text:
72
72
 
73
73
  def _load_stats(registry_path: str) -> dict:
74
74
  import json
75
+ from gaia_cli.taxonomy import branchFor
75
76
  path = os.path.join(registry_path, "registry", "gaia.json")
76
77
  if not os.path.exists(path):
77
- return {"total": 0, "extra": 0, "ultimate": 0, "named": 0}
78
+ return {"total": 0, "standard": 0, "suite": 0, "unique": 0, "named": 0}
78
79
  with open(path, encoding="utf-8") as f:
79
80
  data = json.load(f)
80
81
  skills = data.get("skills", [])
81
- type_counts: dict[str, int] = {}
82
+ # Ygg II: distribution keys on the derived BRANCH (standard|suite|unique)
83
+ # via the taxonomy authority, not the retired {basic,extra,unique,ultimate}
84
+ # type axis. Generic gaia.json nodes carry namedMaxLevel, which branchFor
85
+ # reads as the effective rank.
86
+ branch_counts: dict[str, int] = {}
82
87
  for s in skills:
83
- t = s.get("type", "basic")
84
- type_counts[t] = type_counts.get(t, 0) + 1
88
+ b = branchFor(s)
89
+ branch_counts[b] = branch_counts.get(b, 0) + 1
85
90
 
86
91
  # Count named skills
87
92
  named_dir = os.path.join(registry_path, "registry", "named")
@@ -92,10 +97,9 @@ def _load_stats(registry_path: str) -> dict:
92
97
 
93
98
  return {
94
99
  "total": len(skills),
95
- "basic": type_counts.get("basic", 0),
96
- "extra": type_counts.get("extra", 0),
97
- "unique": type_counts.get("unique", 0),
98
- "ultimate": type_counts.get("ultimate", 0),
100
+ "standard": branch_counts.get("standard", 0),
101
+ "suite": branch_counts.get("suite", 0),
102
+ "unique": branch_counts.get("unique", 0),
99
103
  "named": named,
100
104
  }
101
105
 
@@ -138,14 +142,14 @@ class HeroScreen(Screen):
138
142
  self.set_timer(3.0, self._advance)
139
143
 
140
144
  def _tick(self) -> None:
141
- self._frame = (self._frame + 1) % (len(T.CYCLE_ULTIMATE) * 8)
145
+ self._frame = (self._frame + 1) % (len(T.CYCLE_APEX) * 8)
142
146
  self._render_frame()
143
147
 
144
148
  def _render_frame(self) -> None:
145
149
  frame = self._frame
146
150
 
147
- # Seal color cycles through CYCLE_ULTIMATE, 8 frames per stop
148
- cycle = T.CYCLE_ULTIMATE
151
+ # Seal color cycles through CYCLE_APEX, 8 frames per stop
152
+ cycle = T.CYCLE_APEX
149
153
  stop_idx = (frame // 8) % len(cycle)
150
154
  next_idx = (stop_idx + 1) % len(cycle)
151
155
  t_blend = (frame % 8) / 8.0
@@ -171,11 +175,11 @@ class HeroScreen(Screen):
171
175
  self.query_one("#hero-stats", Static).update("")
172
176
  return
173
177
  t = Text()
174
- t.append(f"○ {s['basic']} basic", style=T.TIER_BASIC)
178
+ t.append(f"○ {s['standard']} standard", style=T.BRANCH_ACCENT["standard"])
175
179
  t.append(" · ", style=T.NEUTRAL_TEXT_MUTED)
176
- t.append(f" {s['extra']} extra", style=T.TIER_EXTRA)
180
+ t.append(f" {s['unique']} unique", style=T.BRANCH_ACCENT["unique"])
177
181
  t.append(" · ", style=T.NEUTRAL_TEXT_MUTED)
178
- t.append(f"◆ {s['ultimate']} ultimate", style=T.TIER_ULTIMATE)
182
+ t.append(f"◆ {s['suite']} suite", style=T.BRANCH_ACCENT["suite"])
179
183
  t.append(" · ", style=T.NEUTRAL_TEXT_MUTED)
180
184
  t.append(f"✦ {s['named']} named", style=T.BRAND_APEX_GOLD)
181
185
  self.query_one("#hero-stats", Static).update(Align.center(t))
@@ -1,7 +1,15 @@
1
1
  """Level-up modal — anime-style unlock animation.
2
2
 
3
- Triggered after a successful skill install. Cycles through glyph
4
- frames and shows tier-colored text before auto-dismissing.
3
+ Triggered after a successful skill install. Cycles through glyph frames and
4
+ shows rank-colored text before auto-dismissing.
5
+
6
+ BUILD + READ ONLY (Ygg III forward-compat): this modal derives nothing about
7
+ branch/rank itself. It reads the caller-supplied branch word (already resolved
8
+ via ``taxonomy.branchFor``) and the star level, and calls the taxonomy authority
9
+ (``levelNum`` / ``rankWord``) for every display decision. There
10
+ are no hand-keyed branch→frame or branch→banner tables — the animation depth is
11
+ a *stars* concept (``levelNum``) and the banner text is the authority's
12
+ ``rankWord``; branch only selects the accent color.
5
13
  """
6
14
 
7
15
  from __future__ import annotations
@@ -15,30 +23,22 @@ from rich.text import Text
15
23
  from rich.align import Align
16
24
 
17
25
  from gaia_cli.tui import tokens as T
26
+ from gaia_cli.taxonomy import levelNum, rankWord
18
27
 
19
- _TIER_LABEL = {"basic": "BASIC", "extra": "EXTRA", "unique": "UNIQUE", "ultimate": "ULTIMATE"}
20
-
21
- # Animation frames: glyph + color pair. Color sequence walks the rank ramp:
22
- # dormant (border) unawakened slate awakened sky-blue evolved violet
23
- # → unique deep-violet → apex gold. Indexes map to tiers via _TIER_FRAME_IDX.
28
+ # Animation frames: glyph + color pair, indexed by star level 0..6. Frame N is
29
+ # shown for an N-star unlock, so the reveal climbs the shared rank ramp and, at
30
+ # 4★+, lands on the branch pinnacle. This is a pure stars ladder — NOT a
31
+ # branch→frame map so no banned resolver logic lives here.
24
32
  _FRAMES = [
25
- ("·", T.NEUTRAL_BORDER),
26
- ("○", T.RANK_UNAWAKENED),
27
- ("○", T.RANK_AWAKENED),
28
- ("◇", T.TIER_EXTRA),
29
- ("", T.TIER_UNIQUE),
30
- ("◆", T.BRAND_APEX_GOLD),
33
+ ("·", T.NEUTRAL_BORDER), # 0★ dormant
34
+ ("○", T.RANK_AWAKENED), # 1★ awakened — sky blue
35
+ ("○", T.RANK_NAMED), # 2★ named — teal
36
+ ("◇", T.RANK_EVOLVED), # 3★ evolved — violet
37
+ ("", T.RANK_EXTRA), # 4★ extra/unique — fuchsia
38
+ ("◆", T.RANK_ULTIMATE), # 5★ ultimate — amber
39
+ ("✦", T.BRAND_APEX_GOLD), # 6★ apex — gold
31
40
  ]
32
41
 
33
- _TIER_FRAME_IDX = {"basic": 2, "extra": 3, "unique": 4, "ultimate": 5}
34
-
35
- _BANNERS = {
36
- "basic": " SKILL ACQUIRED ",
37
- "extra": " SKILL UNLOCKED ",
38
- "unique": " ★ RARE SKILL ★ ",
39
- "ultimate": " ★ ★ ULTIMATE ★ ★ ",
40
- }
41
-
42
42
 
43
43
  class LevelUpModal(ModalScreen[None]):
44
44
  """Flashy level-up screen. Dismiss with any key or auto-dismiss after 2.5s."""
@@ -51,12 +51,16 @@ class LevelUpModal(ModalScreen[None]):
51
51
 
52
52
  _frame: reactive[int] = reactive(0, init=False)
53
53
 
54
- def __init__(self, skill_id: str, tier: str, level: str = ""):
54
+ def __init__(self, skill_id: str, branch: str, level: str = ""):
55
55
  super().__init__()
56
56
  self.skill_id = skill_id
57
- self.tier = tier
57
+ # branch is a resolved display-branch word (standard|suite|unique) the
58
+ # caller obtained from taxonomy.branchFor — never re-derived here.
59
+ self.branch = branch
58
60
  self.level = level
59
- self._target_frame = _TIER_FRAME_IDX.get(tier, 3)
61
+ # Frame depth is the star level, clamped through the authority. A 6★
62
+ # unlock climbs to the apex frame; a 2★ unlock stops at the named frame.
63
+ self._target_frame = levelNum(level)
60
64
 
61
65
  def compose(self) -> ComposeResult:
62
66
  yield Static(id="lu-backdrop")
@@ -77,8 +81,13 @@ class LevelUpModal(ModalScreen[None]):
77
81
  def _render_frame(self, frame_idx: int) -> None:
78
82
  card = self.query_one("#lu-card", Static)
79
83
  glyph, gcolor = _FRAMES[min(frame_idx, len(_FRAMES) - 1)]
80
- tier_color = T.TIER_BY_KEY.get(self.tier, T.NEUTRAL_TEXT_MUTED)
81
- banner = _BANNERS.get(self.tier, " SKILL UNLOCKED ")
84
+ # Accent color: read the branch→accent token map (build+read — no inline
85
+ # branch logic). Banner text: the authority's rank word for this
86
+ # (level, branch), so a 4★ suite reads "EXTRA", a 6★ unique reads
87
+ # "UNIQUE IMPOSSIBLE", a 2★ reads "NAMED" — never a hand-rolled label.
88
+ accent = T.BRANCH_ACCENT.get(self.branch, T.NEUTRAL_TEXT_MUTED)
89
+ word = rankWord(self.level, self.branch)
90
+ banner = f" {word.upper()} " if word else " SKILL UNLOCKED "
82
91
  sid = self.skill_id
83
92
 
84
93
  lines: list[tuple[str | Text, str]] = []
@@ -88,12 +97,12 @@ class LevelUpModal(ModalScreen[None]):
88
97
  # width calculation needs the raw sid length
89
98
  width = max(len(sid) + 10, len(banner) + 4, 36)
90
99
  border_h = "═" * (width - 2)
91
- lines.append((f"╔{border_h}╗", tier_color))
100
+ lines.append((f"╔{border_h}╗", accent))
92
101
  lines.append((f"║{'':^{width-2}}║", gutter))
93
102
 
94
103
  # Banner
95
104
  padded_banner = banner.center(width - 2)
96
- lines.append((f"║{padded_banner}║", tier_color))
105
+ lines.append((f"║{padded_banner}║", accent))
97
106
 
98
107
  # Glyph animation (big)
99
108
  big_glyph = f" {glyph} "
@@ -138,7 +147,7 @@ class LevelUpModal(ModalScreen[None]):
138
147
  progress += g + " "
139
148
  progress_line = progress.strip().center(width - 2)
140
149
  lines.append((f"║{'':^{width-2}}║", gutter))
141
- lines.append((f"║{progress_line}║", tier_color))
150
+ lines.append((f"║{progress_line}║", accent))
142
151
 
143
152
  # Hint
144
153
  hint = " [press any key] "
@@ -148,7 +157,7 @@ class LevelUpModal(ModalScreen[None]):
148
157
  lines.append((f"║{hint:^{width-2}}║", T.NEUTRAL_TEXT_DIM))
149
158
 
150
159
  # Bottom border
151
- lines.append((f"╚{border_h}╝", tier_color))
160
+ lines.append((f"╚{border_h}╝", accent))
152
161
 
153
162
  t = Text()
154
163
  for line, color in lines:
@@ -1,6 +1,6 @@
1
1
  """Skill tree screen — navigable RPG-style dependency graph.
2
2
 
3
- Left panel: collapsible Textual Tree, tier-colored.
3
+ Left panel: collapsible Textual Tree, branch-colored.
4
4
  Right panel: reactive skill detail card.
5
5
  """
6
6
 
@@ -21,6 +21,16 @@ from textual import events, on
21
21
  from rich.text import Text
22
22
 
23
23
  from gaia_cli.tui import tokens as T
24
+ from gaia_cli.taxonomy import branchFor
25
+
26
+
27
+ def _branch(skill: dict) -> str:
28
+ """Ygg II display branch (standard|suite|unique) via the taxonomy authority.
29
+
30
+ Replaces the retired {basic,extra,unique,ultimate} `type`-as-branch read. The
31
+ token tables (BRANCH_GLYPH / BRANCH_ACCENT) key on these branch words.
32
+ """
33
+ return branchFor(skill)
24
34
 
25
35
 
26
36
  def _load_graph(registry_path: str) -> dict:
@@ -55,8 +65,8 @@ def _build_tree_data(
55
65
  all_ids = set(skills.keys())
56
66
  has_parent = set(parents.keys())
57
67
  roots = sorted(all_ids - has_parent, key=lambda x: (
58
- {"ultimate": 0, "unique": 1, "extra": 2, "basic": 3}.get(
59
- skills.get(x, {}).get("type", "basic"), 4
68
+ {"unique": 0, "suite": 1, "standard": 2}.get(
69
+ _branch(skills.get(x, {})), 3
60
70
  ),
61
71
  x,
62
72
  ))
@@ -72,9 +82,9 @@ def _build_tree_data(
72
82
 
73
83
 
74
84
  def _node_label(skill: dict, owned_ids: set, detected_ids: set) -> Text:
75
- tid = skill.get("type", "basic")
76
- glyph = T.GLYPH_BY_TIER.get(tid, "○")
77
- color = T.TIER_BY_KEY.get(tid, T.NEUTRAL_TEXT_MUTED)
85
+ branch = _branch(skill)
86
+ glyph = T.BRANCH_GLYPH.get(branch, "○")
87
+ color = T.BRANCH_ACCENT.get(branch, T.NEUTRAL_TEXT_MUTED)
78
88
  sid = skill.get("id", "?")
79
89
  level = skill.get("level", "")
80
90
  owned = sid in owned_ids
@@ -123,9 +133,9 @@ class SkillDetail(Static):
123
133
  if not skill:
124
134
  return Text(sid, style=T.NEUTRAL_TEXT_MUTED)
125
135
 
126
- tid = skill.get("type", "basic")
127
- glyph = T.GLYPH_BY_TIER.get(tid, "○")
128
- color = T.TIER_BY_KEY.get(tid, T.NEUTRAL_TEXT_MUTED)
136
+ branch = _branch(skill)
137
+ glyph = T.BRANCH_GLYPH.get(branch, "○")
138
+ color = T.BRANCH_ACCENT.get(branch, T.NEUTRAL_TEXT_MUTED)
129
139
  level = skill.get("level", "")
130
140
  level_color = T.RANK_BY_STAR.get(level, T.NEUTRAL_TEXT_DIM)
131
141
  desc = skill.get("description", "")
@@ -143,8 +153,8 @@ class SkillDetail(Static):
143
153
  t.append(f"{name}\n", style=T.NEUTRAL_TEXT_MUTED)
144
154
  t.append("\n")
145
155
 
146
- # Tier + level
147
- t.append(f"{tid.upper()} ", style=color)
156
+ # Branch + level
157
+ t.append(f"{branch.upper()} ", style=color)
148
158
  if level:
149
159
  t.append(f"{level}\n", style=level_color)
150
160
  else:
@@ -170,9 +180,9 @@ class SkillDetail(Static):
170
180
  t.append("Requires:\n", style=T.NEUTRAL_TEXT_MUTED)
171
181
  for p in parents[:6]:
172
182
  p_skill = skills.get(p, {})
173
- p_tid = p_skill.get("type", "basic")
174
- p_color = T.TIER_BY_KEY.get(p_tid, T.NEUTRAL_TEXT_MUTED)
175
- t.append(f" {T.GLYPH_BY_TIER.get(p_tid, '○')} {p}\n", style=p_color)
183
+ p_branch = _branch(p_skill)
184
+ p_color = T.BRANCH_ACCENT.get(p_branch, T.NEUTRAL_TEXT_MUTED)
185
+ t.append(f" {T.BRANCH_GLYPH.get(p_branch, '○')} {p}\n", style=p_color)
176
186
  if len(parents) > 6:
177
187
  t.append(f" … +{len(parents) - 6} more\n", style=T.NEUTRAL_TEXT_DIM)
178
188
  t.append("\n")
@@ -182,9 +192,9 @@ class SkillDetail(Static):
182
192
  t.append("Unlocks:\n", style=T.NEUTRAL_TEXT_MUTED)
183
193
  for c in children[:6]:
184
194
  c_skill = skills.get(c, {})
185
- c_tid = c_skill.get("type", "basic")
186
- c_color = T.TIER_BY_KEY.get(c_tid, T.NEUTRAL_TEXT_MUTED)
187
- t.append(f" {T.GLYPH_BY_TIER.get(c_tid, '○')} {c}\n", style=c_color)
195
+ c_branch = _branch(c_skill)
196
+ c_color = T.BRANCH_ACCENT.get(c_branch, T.NEUTRAL_TEXT_MUTED)
197
+ t.append(f" {T.BRANCH_GLYPH.get(c_branch, '○')} {c}\n", style=c_color)
188
198
  if len(children) > 6:
189
199
  t.append(f" … +{len(children) - 6} more\n", style=T.NEUTRAL_TEXT_DIM)
190
200
 
@@ -290,21 +300,21 @@ class SkillTreeScreen(Screen):
290
300
  else:
291
301
  visible_nodes = set(skills.keys())
292
302
 
293
- # Group roots by tier for visual structure
294
- tier_order = {"ultimate": 0, "unique": 1, "extra": 2, "basic": 3}
295
- tier_roots: dict[str, list[str]] = {t: [] for t in tier_order}
303
+ # Group roots by branch membership (Ygg II taxonomy authority) for
304
+ # visual structure. Unique first, then Suite, then Standard.
305
+ branch_order = {"unique": 0, "suite": 1, "standard": 2}
306
+ branch_roots: dict[str, list[str]] = {b: [] for b in branch_order}
296
307
  for sid in roots:
297
308
  if sid not in visible_nodes:
298
309
  continue
299
310
  skill = skills.get(sid, {})
300
- tier = skill.get("type", "basic")
301
- tier_roots.setdefault(tier, []).append(sid)
302
-
303
- tier_labels = {
304
- "ultimate": (" ULTIMATES", T.TIER_ULTIMATE),
305
- "unique": (" UNIQUES", T.TIER_UNIQUE),
306
- "extra": (" EXTRAS", T.TIER_EXTRA),
307
- "basic": ("○ BASICS", T.TIER_BASIC),
311
+ branch = _branch(skill)
312
+ branch_roots.setdefault(branch, []).append(sid)
313
+
314
+ branch_labels = {
315
+ "unique": (" UNIQUE", T.BRANCH_ACCENT["unique"]),
316
+ "suite": (" SUITE", T.BRANCH_ACCENT["suite"]),
317
+ "standard": (" STANDARD", T.BRANCH_ACCENT["standard"]),
308
318
  }
309
319
 
310
320
  visited: set[str] = set()
@@ -314,12 +324,12 @@ class SkillTreeScreen(Screen):
314
324
  should_expand_all = bool(query)
315
325
 
316
326
  for child_id in sorted(children.get(sid, []), key=lambda x: (
317
- tier_order.get(skills.get(x, {}).get("type", "basic"), 4), x
327
+ branch_order.get(_branch(skills.get(x, {})), 3), x
318
328
  )):
319
329
  if child_id not in visible_nodes or child_id in visited:
320
330
  continue
321
331
  visited.add(child_id)
322
- child_skill = skills.get(child_id, {"id": child_id, "type": "basic"})
332
+ child_skill = skills.get(child_id, {"id": child_id})
323
333
  label = _node_label(child_skill, owned, detected)
324
334
  has_kids = any(k in visible_nodes for k in children.get(child_id, []))
325
335
 
@@ -333,25 +343,25 @@ class SkillTreeScreen(Screen):
333
343
  if should_expand_all or depth < 1:
334
344
  add_children(child_node, child_id, depth + 1)
335
345
 
336
- for tier in ["ultimate", "unique", "extra", "basic"]:
337
- sids = tier_roots.get(tier, [])
346
+ for branch in ["unique", "suite", "standard"]:
347
+ sids = branch_roots.get(branch, [])
338
348
  if not sids:
339
349
  continue
340
- label_text, color = tier_labels[tier]
341
- tier_node = tree.root.add(
350
+ label_text, color = branch_labels[branch]
351
+ branch_node = tree.root.add(
342
352
  Text(label_text, style=f"bold {color}"),
343
- data=f"__tier_{tier}",
353
+ data=f"__branch_{branch}",
344
354
  expand=True,
345
355
  )
346
356
  for sid in sorted(sids):
347
357
  if sid in visited:
348
358
  continue
349
359
  visited.add(sid)
350
- skill = skills.get(sid, {"id": sid, "type": tier})
360
+ skill = skills.get(sid, {"id": sid})
351
361
  label = _node_label(skill, owned, detected)
352
362
  has_kids = any(k in visible_nodes for k in children.get(sid, []))
353
-
354
- skill_node = tier_node.add(
363
+
364
+ skill_node = branch_node.add(
355
365
  label,
356
366
  data=sid,
357
367
  expand=bool(query) and has_kids,
@@ -359,7 +369,7 @@ class SkillTreeScreen(Screen):
359
369
  )
360
370
  self._node_map[id(skill_node)] = sid
361
371
  if has_kids:
362
- if query or tier in ("ultimate", "unique"):
372
+ if query or branch in ("unique", "suite"):
363
373
  add_children(skill_node, sid, depth=1)
364
374
 
365
375
  @on(Input.Changed, "#tree-search")
@@ -378,7 +388,7 @@ class SkillTreeScreen(Screen):
378
388
 
379
389
  def on_tree_node_highlighted(self, event: Tree.NodeHighlighted) -> None:
380
390
  sid = event.node.data
381
- if sid and not str(sid).startswith("__tier_"):
391
+ if sid and not str(sid).startswith("__branch_"):
382
392
  detail = self.query_one("#detail-panel", SkillDetail)
383
393
  detail.skill_id = str(sid)
384
394
 
@@ -403,10 +413,10 @@ class SkillTreeScreen(Screen):
403
413
  def action_install_focused(self) -> None:
404
414
  tree = self.query_one("#skill-tree", Tree)
405
415
  node = tree.cursor_node
406
- if node and node.data and not str(node.data).startswith("__tier_"):
416
+ if node and node.data and not str(node.data).startswith("__branch_"):
407
417
  sid = str(node.data)
408
418
  skills = self._tree_data.get("skills", {})
409
- skill = skills.get(sid, {"id": sid, "type": "basic", "level": ""})
419
+ skill = skills.get(sid, {"id": sid, "level": ""})
410
420
  from gaia_cli.tui.screens.agent import InstallModal
411
421
 
412
422
  def _on_install(installed: bool) -> None:
@@ -421,7 +431,7 @@ class SkillTreeScreen(Screen):
421
431
 
422
432
  def _rebuild_node_label(self, node: TreeNode, sid: str) -> None:
423
433
  skills = self._tree_data.get("skills", {})
424
- skill = skills.get(sid, {"id": sid, "type": "basic"})
434
+ skill = skills.get(sid, {"id": sid})
425
435
  node.set_label(_node_label(skill, self._owned, self._detected))
426
436
 
427
437
  def action_goto_agent(self) -> None: