raise-cli 2.4.1__tar.gz → 3.0.0a1__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 (347) hide show
  1. {raise_cli-2.4.1 → raise_cli-3.0.0a1}/.gitignore +13 -2
  2. {raise_cli-2.4.1 → raise_cli-3.0.0a1}/PKG-INFO +3 -1
  3. {raise_cli-2.4.1 → raise_cli-3.0.0a1}/pyproject.toml +4 -1
  4. {raise_cli-2.4.1 → raise_cli-3.0.0a1}/src/raise_cli/adapters/jira_adapter.py +0 -2
  5. {raise_cli-2.4.1 → raise_cli-3.0.0a1}/src/raise_cli/cli/commands/init.py +18 -222
  6. {raise_cli-2.4.1 → raise_cli-3.0.0a1}/src/raise_cli/cli/commands/journal.py +11 -32
  7. raise_cli-3.0.0a1/src/raise_cli/cli/commands/publish.py +80 -0
  8. {raise_cli-2.4.1 → raise_cli-3.0.0a1}/src/raise_cli/cli/commands/release.py +27 -8
  9. {raise_cli-2.4.1 → raise_cli-3.0.0a1}/src/raise_cli/cli/commands/session.py +0 -6
  10. {raise_cli-2.4.1 → raise_cli-3.0.0a1}/src/raise_cli/cli/main.py +5 -2
  11. raise_cli-3.0.0a1/src/raise_cli/hooks/builtin/memory.py +116 -0
  12. raise_cli-3.0.0a1/src/raise_cli/pipeline/__init__.py +32 -0
  13. raise_cli-3.0.0a1/src/raise_cli/pipeline/_telemetry.py +61 -0
  14. raise_cli-3.0.0a1/src/raise_cli/pipeline/cli.py +352 -0
  15. raise_cli-3.0.0a1/src/raise_cli/pipeline/dispatch.py +307 -0
  16. raise_cli-3.0.0a1/src/raise_cli/pipeline/engine.py +372 -0
  17. raise_cli-3.0.0a1/src/raise_cli/pipeline/executor.py +237 -0
  18. raise_cli-3.0.0a1/src/raise_cli/pipeline/gates.py +178 -0
  19. raise_cli-3.0.0a1/src/raise_cli/pipeline/loader.py +143 -0
  20. raise_cli-3.0.0a1/src/raise_cli/pipeline/mcp_server.py +1132 -0
  21. raise_cli-3.0.0a1/src/raise_cli/pipeline/pipelines_base/bugfix.yaml +48 -0
  22. raise_cli-3.0.0a1/src/raise_cli/pipeline/pipelines_base/epic.yaml +42 -0
  23. raise_cli-3.0.0a1/src/raise_cli/pipeline/pipelines_base/hotfix.yaml +29 -0
  24. raise_cli-3.0.0a1/src/raise_cli/pipeline/pipelines_base/story.yaml +121 -0
  25. raise_cli-3.0.0a1/src/raise_cli/pipeline/prompt.py +193 -0
  26. raise_cli-3.0.0a1/src/raise_cli/pipeline/state.py +131 -0
  27. raise_cli-3.0.0a1/src/raise_cli/pipeline/templates/adversarial-ar.md +35 -0
  28. raise_cli-3.0.0a1/src/raise_cli/pipeline/templates/adversarial-qr.md +44 -0
  29. raise_cli-3.0.0a1/src/raise_cli/pipeline/worktree.py +118 -0
  30. {raise_cli-2.4.1 → raise_cli-3.0.0a1}/src/raise_cli/publish/check.py +45 -46
  31. {raise_cli-2.4.1 → raise_cli-3.0.0a1}/src/raise_cli/rai_base/identity/core.yaml +1 -1
  32. {raise_cli-2.4.1 → raise_cli-3.0.0a1}/src/raise_cli/skills_base/__init__.py +15 -12
  33. {raise_cli-2.4.1 → raise_cli-3.0.0a1}/src/raise_cli/skills_base/rai-epic-docs/SKILL.md +1 -1
  34. {raise_cli-2.4.1 → raise_cli-3.0.0a1}/src/raise_cli/skills_base/rai-session-diary/SKILL.md +5 -6
  35. raise_cli-2.4.1/src/raise_cli/hooks/builtin/memory.py +0 -38
  36. {raise_cli-2.4.1 → raise_cli-3.0.0a1}/README.md +0 -0
  37. {raise_cli-2.4.1 → raise_cli-3.0.0a1}/src/raise_cli/__init__.py +0 -0
  38. {raise_cli-2.4.1 → raise_cli-3.0.0a1}/src/raise_cli/__main__.py +0 -0
  39. {raise_cli-2.4.1 → raise_cli-3.0.0a1}/src/raise_cli/adapters/__init__.py +0 -0
  40. {raise_cli-2.4.1 → raise_cli-3.0.0a1}/src/raise_cli/adapters/composite_docs.py +0 -0
  41. {raise_cli-2.4.1 → raise_cli-3.0.0a1}/src/raise_cli/adapters/confluence_adapter.py +0 -0
  42. {raise_cli-2.4.1 → raise_cli-3.0.0a1}/src/raise_cli/adapters/confluence_client.py +0 -0
  43. {raise_cli-2.4.1 → raise_cli-3.0.0a1}/src/raise_cli/adapters/confluence_config.py +0 -0
  44. {raise_cli-2.4.1 → raise_cli-3.0.0a1}/src/raise_cli/adapters/confluence_config_gen.py +0 -0
  45. {raise_cli-2.4.1 → raise_cli-3.0.0a1}/src/raise_cli/adapters/confluence_discovery.py +0 -0
  46. {raise_cli-2.4.1 → raise_cli-3.0.0a1}/src/raise_cli/adapters/confluence_exceptions.py +0 -0
  47. {raise_cli-2.4.1 → raise_cli-3.0.0a1}/src/raise_cli/adapters/declarative/__init__.py +0 -0
  48. {raise_cli-2.4.1 → raise_cli-3.0.0a1}/src/raise_cli/adapters/declarative/adapter.py +0 -0
  49. {raise_cli-2.4.1 → raise_cli-3.0.0a1}/src/raise_cli/adapters/declarative/discovery.py +0 -0
  50. {raise_cli-2.4.1 → raise_cli-3.0.0a1}/src/raise_cli/adapters/declarative/expressions.py +0 -0
  51. {raise_cli-2.4.1 → raise_cli-3.0.0a1}/src/raise_cli/adapters/declarative/reference/__init__.py +0 -0
  52. {raise_cli-2.4.1 → raise_cli-3.0.0a1}/src/raise_cli/adapters/declarative/reference/github.yaml +0 -0
  53. {raise_cli-2.4.1 → raise_cli-3.0.0a1}/src/raise_cli/adapters/declarative/schema.py +0 -0
  54. {raise_cli-2.4.1 → raise_cli-3.0.0a1}/src/raise_cli/adapters/filesystem.py +0 -0
  55. {raise_cli-2.4.1 → raise_cli-3.0.0a1}/src/raise_cli/adapters/filesystem_adapter.py +0 -0
  56. {raise_cli-2.4.1 → raise_cli-3.0.0a1}/src/raise_cli/adapters/filesystem_docs.py +0 -0
  57. {raise_cli-2.4.1 → raise_cli-3.0.0a1}/src/raise_cli/adapters/filesystem_models.py +0 -0
  58. {raise_cli-2.4.1 → raise_cli-3.0.0a1}/src/raise_cli/adapters/jira_client.py +0 -0
  59. {raise_cli-2.4.1 → raise_cli-3.0.0a1}/src/raise_cli/adapters/jira_config.py +0 -0
  60. {raise_cli-2.4.1 → raise_cli-3.0.0a1}/src/raise_cli/adapters/jira_config_gen.py +0 -0
  61. {raise_cli-2.4.1 → raise_cli-3.0.0a1}/src/raise_cli/adapters/jira_discovery.py +0 -0
  62. {raise_cli-2.4.1 → raise_cli-3.0.0a1}/src/raise_cli/adapters/jira_exceptions.py +0 -0
  63. {raise_cli-2.4.1 → raise_cli-3.0.0a1}/src/raise_cli/adapters/mcp_bridge.py +0 -0
  64. {raise_cli-2.4.1 → raise_cli-3.0.0a1}/src/raise_cli/adapters/models/__init__.py +0 -0
  65. {raise_cli-2.4.1 → raise_cli-3.0.0a1}/src/raise_cli/adapters/models/docs.py +0 -0
  66. {raise_cli-2.4.1 → raise_cli-3.0.0a1}/src/raise_cli/adapters/models/governance.py +0 -0
  67. {raise_cli-2.4.1 → raise_cli-3.0.0a1}/src/raise_cli/adapters/models/health.py +0 -0
  68. {raise_cli-2.4.1 → raise_cli-3.0.0a1}/src/raise_cli/adapters/models/pm.py +0 -0
  69. {raise_cli-2.4.1 → raise_cli-3.0.0a1}/src/raise_cli/adapters/protocols.py +0 -0
  70. {raise_cli-2.4.1 → raise_cli-3.0.0a1}/src/raise_cli/adapters/registry.py +0 -0
  71. {raise_cli-2.4.1 → raise_cli-3.0.0a1}/src/raise_cli/adapters/sync.py +0 -0
  72. {raise_cli-2.4.1 → raise_cli-3.0.0a1}/src/raise_cli/agents/__init__.py +0 -0
  73. {raise_cli-2.4.1 → raise_cli-3.0.0a1}/src/raise_cli/agents/antigravity.yaml +0 -0
  74. {raise_cli-2.4.1 → raise_cli-3.0.0a1}/src/raise_cli/agents/claude.yaml +0 -0
  75. {raise_cli-2.4.1 → raise_cli-3.0.0a1}/src/raise_cli/agents/copilot.yaml +0 -0
  76. {raise_cli-2.4.1 → raise_cli-3.0.0a1}/src/raise_cli/agents/copilot_plugin.py +0 -0
  77. {raise_cli-2.4.1 → raise_cli-3.0.0a1}/src/raise_cli/agents/cursor.yaml +0 -0
  78. {raise_cli-2.4.1 → raise_cli-3.0.0a1}/src/raise_cli/agents/roo.yaml +0 -0
  79. {raise_cli-2.4.1 → raise_cli-3.0.0a1}/src/raise_cli/agents/windsurf.yaml +0 -0
  80. {raise_cli-2.4.1 → raise_cli-3.0.0a1}/src/raise_cli/artifacts/__init__.py +0 -0
  81. {raise_cli-2.4.1 → raise_cli-3.0.0a1}/src/raise_cli/artifacts/models.py +0 -0
  82. {raise_cli-2.4.1 → raise_cli-3.0.0a1}/src/raise_cli/artifacts/reader.py +0 -0
  83. {raise_cli-2.4.1 → raise_cli-3.0.0a1}/src/raise_cli/artifacts/renderer.py +0 -0
  84. {raise_cli-2.4.1 → raise_cli-3.0.0a1}/src/raise_cli/artifacts/story_design.py +0 -0
  85. {raise_cli-2.4.1 → raise_cli-3.0.0a1}/src/raise_cli/artifacts/writer.py +0 -0
  86. {raise_cli-2.4.1 → raise_cli-3.0.0a1}/src/raise_cli/backlog/__init__.py +0 -0
  87. {raise_cli-2.4.1 → raise_cli-3.0.0a1}/src/raise_cli/backlog/sync.py +0 -0
  88. {raise_cli-2.4.1 → raise_cli-3.0.0a1}/src/raise_cli/cli/__init__.py +0 -0
  89. {raise_cli-2.4.1 → raise_cli-3.0.0a1}/src/raise_cli/cli/commands/__init__.py +0 -0
  90. {raise_cli-2.4.1 → raise_cli-3.0.0a1}/src/raise_cli/cli/commands/_resolve.py +0 -0
  91. {raise_cli-2.4.1 → raise_cli-3.0.0a1}/src/raise_cli/cli/commands/adapters.py +0 -0
  92. {raise_cli-2.4.1 → raise_cli-3.0.0a1}/src/raise_cli/cli/commands/artifact.py +0 -0
  93. {raise_cli-2.4.1 → raise_cli-3.0.0a1}/src/raise_cli/cli/commands/backlog.py +0 -0
  94. {raise_cli-2.4.1 → raise_cli-3.0.0a1}/src/raise_cli/cli/commands/base.py +0 -0
  95. {raise_cli-2.4.1 → raise_cli-3.0.0a1}/src/raise_cli/cli/commands/discover.py +0 -0
  96. {raise_cli-2.4.1 → raise_cli-3.0.0a1}/src/raise_cli/cli/commands/docs.py +0 -0
  97. {raise_cli-2.4.1 → raise_cli-3.0.0a1}/src/raise_cli/cli/commands/doctor.py +0 -0
  98. {raise_cli-2.4.1 → raise_cli-3.0.0a1}/src/raise_cli/cli/commands/gate.py +0 -0
  99. {raise_cli-2.4.1 → raise_cli-3.0.0a1}/src/raise_cli/cli/commands/graph.py +0 -0
  100. {raise_cli-2.4.1 → raise_cli-3.0.0a1}/src/raise_cli/cli/commands/info.py +0 -0
  101. {raise_cli-2.4.1 → raise_cli-3.0.0a1}/src/raise_cli/cli/commands/learn.py +0 -0
  102. {raise_cli-2.4.1 → raise_cli-3.0.0a1}/src/raise_cli/cli/commands/mcp.py +0 -0
  103. {raise_cli-2.4.1 → raise_cli-3.0.0a1}/src/raise_cli/cli/commands/memory.py +0 -0
  104. {raise_cli-2.4.1 → raise_cli-3.0.0a1}/src/raise_cli/cli/commands/pattern.py +0 -0
  105. {raise_cli-2.4.1 → raise_cli-3.0.0a1}/src/raise_cli/cli/commands/profile.py +0 -0
  106. {raise_cli-2.4.1 → raise_cli-3.0.0a1}/src/raise_cli/cli/commands/signal.py +0 -0
  107. {raise_cli-2.4.1 → raise_cli-3.0.0a1}/src/raise_cli/cli/commands/skill.py +0 -0
  108. {raise_cli-2.4.1 → raise_cli-3.0.0a1}/src/raise_cli/cli/commands/skill_set.py +0 -0
  109. {raise_cli-2.4.1 → raise_cli-3.0.0a1}/src/raise_cli/cli/error_handler.py +0 -0
  110. {raise_cli-2.4.1 → raise_cli-3.0.0a1}/src/raise_cli/cli/extensions.py +0 -0
  111. {raise_cli-2.4.1 → raise_cli-3.0.0a1}/src/raise_cli/compat.py +0 -0
  112. {raise_cli-2.4.1 → raise_cli-3.0.0a1}/src/raise_cli/compliance/__init__.py +0 -0
  113. {raise_cli-2.4.1 → raise_cli-3.0.0a1}/src/raise_cli/compliance/controls.yaml +0 -0
  114. {raise_cli-2.4.1 → raise_cli-3.0.0a1}/src/raise_cli/compliance/evidence.py +0 -0
  115. {raise_cli-2.4.1 → raise_cli-3.0.0a1}/src/raise_cli/compliance/extractors/__init__.py +0 -0
  116. {raise_cli-2.4.1 → raise_cli-3.0.0a1}/src/raise_cli/compliance/extractors/git.py +0 -0
  117. {raise_cli-2.4.1 → raise_cli-3.0.0a1}/src/raise_cli/compliance/loader.py +0 -0
  118. {raise_cli-2.4.1 → raise_cli-3.0.0a1}/src/raise_cli/compliance/models.py +0 -0
  119. {raise_cli-2.4.1 → raise_cli-3.0.0a1}/src/raise_cli/config/__init__.py +0 -0
  120. {raise_cli-2.4.1 → raise_cli-3.0.0a1}/src/raise_cli/config/agent_plugin.py +0 -0
  121. {raise_cli-2.4.1 → raise_cli-3.0.0a1}/src/raise_cli/config/agent_registry.py +0 -0
  122. {raise_cli-2.4.1 → raise_cli-3.0.0a1}/src/raise_cli/config/agents.py +0 -0
  123. {raise_cli-2.4.1 → raise_cli-3.0.0a1}/src/raise_cli/config/ide.py +0 -0
  124. {raise_cli-2.4.1 → raise_cli-3.0.0a1}/src/raise_cli/config/paths.py +0 -0
  125. {raise_cli-2.4.1 → raise_cli-3.0.0a1}/src/raise_cli/config/settings.py +0 -0
  126. {raise_cli-2.4.1 → raise_cli-3.0.0a1}/src/raise_cli/context/__init__.py +0 -0
  127. {raise_cli-2.4.1 → raise_cli-3.0.0a1}/src/raise_cli/context/analyzers/__init__.py +0 -0
  128. {raise_cli-2.4.1 → raise_cli-3.0.0a1}/src/raise_cli/context/analyzers/models.py +0 -0
  129. {raise_cli-2.4.1 → raise_cli-3.0.0a1}/src/raise_cli/context/analyzers/protocol.py +0 -0
  130. {raise_cli-2.4.1 → raise_cli-3.0.0a1}/src/raise_cli/context/analyzers/python.py +0 -0
  131. {raise_cli-2.4.1 → raise_cli-3.0.0a1}/src/raise_cli/context/analyzers/signals.py +0 -0
  132. {raise_cli-2.4.1 → raise_cli-3.0.0a1}/src/raise_cli/context/analyzers/typescript.py +0 -0
  133. {raise_cli-2.4.1 → raise_cli-3.0.0a1}/src/raise_cli/context/builder.py +0 -0
  134. {raise_cli-2.4.1 → raise_cli-3.0.0a1}/src/raise_cli/context/diff.py +0 -0
  135. {raise_cli-2.4.1 → raise_cli-3.0.0a1}/src/raise_cli/context/extractors/__init__.py +0 -0
  136. {raise_cli-2.4.1 → raise_cli-3.0.0a1}/src/raise_cli/context/extractors/relationships.py +0 -0
  137. {raise_cli-2.4.1 → raise_cli-3.0.0a1}/src/raise_cli/context/extractors/skills.py +0 -0
  138. {raise_cli-2.4.1 → raise_cli-3.0.0a1}/src/raise_cli/context/extractors/structure.py +0 -0
  139. {raise_cli-2.4.1 → raise_cli-3.0.0a1}/src/raise_cli/context/loaders/__init__.py +0 -0
  140. {raise_cli-2.4.1 → raise_cli-3.0.0a1}/src/raise_cli/context/loaders/architecture.py +0 -0
  141. {raise_cli-2.4.1 → raise_cli-3.0.0a1}/src/raise_cli/context/loaders/artifacts.py +0 -0
  142. {raise_cli-2.4.1 → raise_cli-3.0.0a1}/src/raise_cli/context/loaders/components.py +0 -0
  143. {raise_cli-2.4.1 → raise_cli-3.0.0a1}/src/raise_cli/context/loaders/identity.py +0 -0
  144. {raise_cli-2.4.1 → raise_cli-3.0.0a1}/src/raise_cli/context/loaders/memory.py +0 -0
  145. {raise_cli-2.4.1 → raise_cli-3.0.0a1}/src/raise_cli/core/__init__.py +0 -0
  146. {raise_cli-2.4.1 → raise_cli-3.0.0a1}/src/raise_cli/core/files.py +0 -0
  147. {raise_cli-2.4.1 → raise_cli-3.0.0a1}/src/raise_cli/core/text.py +0 -0
  148. {raise_cli-2.4.1 → raise_cli-3.0.0a1}/src/raise_cli/core/tools.py +0 -0
  149. {raise_cli-2.4.1 → raise_cli-3.0.0a1}/src/raise_cli/discovery/__init__.py +0 -0
  150. {raise_cli-2.4.1 → raise_cli-3.0.0a1}/src/raise_cli/discovery/analyzer.py +0 -0
  151. {raise_cli-2.4.1 → raise_cli-3.0.0a1}/src/raise_cli/discovery/drift.py +0 -0
  152. {raise_cli-2.4.1 → raise_cli-3.0.0a1}/src/raise_cli/discovery/scanner.py +0 -0
  153. {raise_cli-2.4.1 → raise_cli-3.0.0a1}/src/raise_cli/doctor/__init__.py +0 -0
  154. {raise_cli-2.4.1 → raise_cli-3.0.0a1}/src/raise_cli/doctor/checks/__init__.py +0 -0
  155. {raise_cli-2.4.1 → raise_cli-3.0.0a1}/src/raise_cli/doctor/checks/adapters.py +0 -0
  156. {raise_cli-2.4.1 → raise_cli-3.0.0a1}/src/raise_cli/doctor/checks/developer.py +0 -0
  157. {raise_cli-2.4.1 → raise_cli-3.0.0a1}/src/raise_cli/doctor/checks/environment.py +0 -0
  158. {raise_cli-2.4.1 → raise_cli-3.0.0a1}/src/raise_cli/doctor/checks/project.py +0 -0
  159. {raise_cli-2.4.1 → raise_cli-3.0.0a1}/src/raise_cli/doctor/fix.py +0 -0
  160. {raise_cli-2.4.1 → raise_cli-3.0.0a1}/src/raise_cli/doctor/models.py +0 -0
  161. {raise_cli-2.4.1 → raise_cli-3.0.0a1}/src/raise_cli/doctor/protocol.py +0 -0
  162. {raise_cli-2.4.1 → raise_cli-3.0.0a1}/src/raise_cli/doctor/registry.py +0 -0
  163. {raise_cli-2.4.1 → raise_cli-3.0.0a1}/src/raise_cli/doctor/report.py +0 -0
  164. {raise_cli-2.4.1 → raise_cli-3.0.0a1}/src/raise_cli/doctor/runner.py +0 -0
  165. {raise_cli-2.4.1 → raise_cli-3.0.0a1}/src/raise_cli/engines/__init__.py +0 -0
  166. {raise_cli-2.4.1 → raise_cli-3.0.0a1}/src/raise_cli/exceptions.py +0 -0
  167. {raise_cli-2.4.1 → raise_cli-3.0.0a1}/src/raise_cli/gates/__init__.py +0 -0
  168. {raise_cli-2.4.1 → raise_cli-3.0.0a1}/src/raise_cli/gates/builtin/__init__.py +0 -0
  169. {raise_cli-2.4.1 → raise_cli-3.0.0a1}/src/raise_cli/gates/builtin/_runner.py +0 -0
  170. {raise_cli-2.4.1 → raise_cli-3.0.0a1}/src/raise_cli/gates/builtin/coverage.py +0 -0
  171. {raise_cli-2.4.1 → raise_cli-3.0.0a1}/src/raise_cli/gates/builtin/format.py +0 -0
  172. {raise_cli-2.4.1 → raise_cli-3.0.0a1}/src/raise_cli/gates/builtin/lint.py +0 -0
  173. {raise_cli-2.4.1 → raise_cli-3.0.0a1}/src/raise_cli/gates/builtin/tests.py +0 -0
  174. {raise_cli-2.4.1 → raise_cli-3.0.0a1}/src/raise_cli/gates/builtin/types.py +0 -0
  175. {raise_cli-2.4.1 → raise_cli-3.0.0a1}/src/raise_cli/gates/hook.py +0 -0
  176. {raise_cli-2.4.1 → raise_cli-3.0.0a1}/src/raise_cli/gates/models.py +0 -0
  177. {raise_cli-2.4.1 → raise_cli-3.0.0a1}/src/raise_cli/gates/protocol.py +0 -0
  178. {raise_cli-2.4.1 → raise_cli-3.0.0a1}/src/raise_cli/gates/registry.py +0 -0
  179. {raise_cli-2.4.1 → raise_cli-3.0.0a1}/src/raise_cli/governance/__init__.py +0 -0
  180. {raise_cli-2.4.1 → raise_cli-3.0.0a1}/src/raise_cli/governance/extractor.py +0 -0
  181. {raise_cli-2.4.1 → raise_cli-3.0.0a1}/src/raise_cli/governance/models.py +0 -0
  182. {raise_cli-2.4.1 → raise_cli-3.0.0a1}/src/raise_cli/governance/parsers/__init__.py +0 -0
  183. {raise_cli-2.4.1 → raise_cli-3.0.0a1}/src/raise_cli/governance/parsers/_convert.py +0 -0
  184. {raise_cli-2.4.1 → raise_cli-3.0.0a1}/src/raise_cli/governance/parsers/adr.py +0 -0
  185. {raise_cli-2.4.1 → raise_cli-3.0.0a1}/src/raise_cli/governance/parsers/backlog.py +0 -0
  186. {raise_cli-2.4.1 → raise_cli-3.0.0a1}/src/raise_cli/governance/parsers/constitution.py +0 -0
  187. {raise_cli-2.4.1 → raise_cli-3.0.0a1}/src/raise_cli/governance/parsers/epic.py +0 -0
  188. {raise_cli-2.4.1 → raise_cli-3.0.0a1}/src/raise_cli/governance/parsers/glossary.py +0 -0
  189. {raise_cli-2.4.1 → raise_cli-3.0.0a1}/src/raise_cli/governance/parsers/guardrails.py +0 -0
  190. {raise_cli-2.4.1 → raise_cli-3.0.0a1}/src/raise_cli/governance/parsers/prd.py +0 -0
  191. {raise_cli-2.4.1 → raise_cli-3.0.0a1}/src/raise_cli/governance/parsers/roadmap.py +0 -0
  192. {raise_cli-2.4.1 → raise_cli-3.0.0a1}/src/raise_cli/governance/parsers/vision.py +0 -0
  193. {raise_cli-2.4.1 → raise_cli-3.0.0a1}/src/raise_cli/graph/__init__.py +0 -0
  194. {raise_cli-2.4.1 → raise_cli-3.0.0a1}/src/raise_cli/graph/backends/__init__.py +0 -0
  195. {raise_cli-2.4.1 → raise_cli-3.0.0a1}/src/raise_cli/graph/backends/api.py +0 -0
  196. {raise_cli-2.4.1 → raise_cli-3.0.0a1}/src/raise_cli/graph/backends/dual.py +0 -0
  197. {raise_cli-2.4.1 → raise_cli-3.0.0a1}/src/raise_cli/graph/backends/pending.py +0 -0
  198. {raise_cli-2.4.1 → raise_cli-3.0.0a1}/src/raise_cli/handlers/__init__.py +0 -0
  199. {raise_cli-2.4.1 → raise_cli-3.0.0a1}/src/raise_cli/hooks/__init__.py +0 -0
  200. {raise_cli-2.4.1 → raise_cli-3.0.0a1}/src/raise_cli/hooks/builtin/__init__.py +0 -0
  201. {raise_cli-2.4.1 → raise_cli-3.0.0a1}/src/raise_cli/hooks/builtin/gate_bridge.py +0 -0
  202. {raise_cli-2.4.1 → raise_cli-3.0.0a1}/src/raise_cli/hooks/builtin/telemetry.py +0 -0
  203. {raise_cli-2.4.1 → raise_cli-3.0.0a1}/src/raise_cli/hooks/emitter.py +0 -0
  204. {raise_cli-2.4.1 → raise_cli-3.0.0a1}/src/raise_cli/hooks/events.py +0 -0
  205. {raise_cli-2.4.1 → raise_cli-3.0.0a1}/src/raise_cli/hooks/protocol.py +0 -0
  206. {raise_cli-2.4.1 → raise_cli-3.0.0a1}/src/raise_cli/hooks/registry.py +0 -0
  207. {raise_cli-2.4.1 → raise_cli-3.0.0a1}/src/raise_cli/mcp/__init__.py +0 -0
  208. {raise_cli-2.4.1 → raise_cli-3.0.0a1}/src/raise_cli/mcp/bridge.py +0 -0
  209. {raise_cli-2.4.1 → raise_cli-3.0.0a1}/src/raise_cli/mcp/models.py +0 -0
  210. {raise_cli-2.4.1 → raise_cli-3.0.0a1}/src/raise_cli/mcp/registry.py +0 -0
  211. {raise_cli-2.4.1 → raise_cli-3.0.0a1}/src/raise_cli/mcp/schema.py +0 -0
  212. {raise_cli-2.4.1 → raise_cli-3.0.0a1}/src/raise_cli/memory/__init__.py +0 -0
  213. {raise_cli-2.4.1 → raise_cli-3.0.0a1}/src/raise_cli/memory/learning.py +0 -0
  214. {raise_cli-2.4.1 → raise_cli-3.0.0a1}/src/raise_cli/memory/loader.py +0 -0
  215. {raise_cli-2.4.1 → raise_cli-3.0.0a1}/src/raise_cli/memory/migration.py +0 -0
  216. {raise_cli-2.4.1 → raise_cli-3.0.0a1}/src/raise_cli/memory/models.py +0 -0
  217. {raise_cli-2.4.1 → raise_cli-3.0.0a1}/src/raise_cli/memory/push.py +0 -0
  218. {raise_cli-2.4.1 → raise_cli-3.0.0a1}/src/raise_cli/memory/writer.py +0 -0
  219. {raise_cli-2.4.1 → raise_cli-3.0.0a1}/src/raise_cli/onboarding/__init__.py +0 -0
  220. {raise_cli-2.4.1 → raise_cli-3.0.0a1}/src/raise_cli/onboarding/bootstrap.py +0 -0
  221. {raise_cli-2.4.1 → raise_cli-3.0.0a1}/src/raise_cli/onboarding/claudemd.py +0 -0
  222. {raise_cli-2.4.1 → raise_cli-3.0.0a1}/src/raise_cli/onboarding/conventions.py +0 -0
  223. {raise_cli-2.4.1 → raise_cli-3.0.0a1}/src/raise_cli/onboarding/detection.py +0 -0
  224. {raise_cli-2.4.1 → raise_cli-3.0.0a1}/src/raise_cli/onboarding/governance.py +0 -0
  225. {raise_cli-2.4.1 → raise_cli-3.0.0a1}/src/raise_cli/onboarding/instructions.py +0 -0
  226. {raise_cli-2.4.1 → raise_cli-3.0.0a1}/src/raise_cli/onboarding/manifest.py +0 -0
  227. {raise_cli-2.4.1 → raise_cli-3.0.0a1}/src/raise_cli/onboarding/memory_md.py +0 -0
  228. {raise_cli-2.4.1 → raise_cli-3.0.0a1}/src/raise_cli/onboarding/migration.py +0 -0
  229. {raise_cli-2.4.1 → raise_cli-3.0.0a1}/src/raise_cli/onboarding/profile.py +0 -0
  230. {raise_cli-2.4.1 → raise_cli-3.0.0a1}/src/raise_cli/onboarding/profile_portability.py +0 -0
  231. {raise_cli-2.4.1 → raise_cli-3.0.0a1}/src/raise_cli/onboarding/skill_conflict.py +0 -0
  232. {raise_cli-2.4.1 → raise_cli-3.0.0a1}/src/raise_cli/onboarding/skill_manifest.py +0 -0
  233. {raise_cli-2.4.1 → raise_cli-3.0.0a1}/src/raise_cli/onboarding/skills.py +0 -0
  234. {raise_cli-2.4.1 → raise_cli-3.0.0a1}/src/raise_cli/onboarding/workflows.py +0 -0
  235. {raise_cli-2.4.1 → raise_cli-3.0.0a1}/src/raise_cli/output/__init__.py +0 -0
  236. {raise_cli-2.4.1 → raise_cli-3.0.0a1}/src/raise_cli/output/console.py +0 -0
  237. {raise_cli-2.4.1 → raise_cli-3.0.0a1}/src/raise_cli/output/formatters/__init__.py +0 -0
  238. {raise_cli-2.4.1 → raise_cli-3.0.0a1}/src/raise_cli/output/formatters/adapters.py +0 -0
  239. {raise_cli-2.4.1 → raise_cli-3.0.0a1}/src/raise_cli/output/formatters/discover.py +0 -0
  240. {raise_cli-2.4.1 → raise_cli-3.0.0a1}/src/raise_cli/output/formatters/graph.py +0 -0
  241. {raise_cli-2.4.1 → raise_cli-3.0.0a1}/src/raise_cli/output/formatters/skill.py +0 -0
  242. {raise_cli-2.4.1 → raise_cli-3.0.0a1}/src/raise_cli/output/symbols.py +0 -0
  243. {raise_cli-2.4.1 → raise_cli-3.0.0a1}/src/raise_cli/publish/__init__.py +0 -0
  244. {raise_cli-2.4.1 → raise_cli-3.0.0a1}/src/raise_cli/publish/changelog.py +0 -0
  245. {raise_cli-2.4.1 → raise_cli-3.0.0a1}/src/raise_cli/publish/version.py +0 -0
  246. {raise_cli-2.4.1 → raise_cli-3.0.0a1}/src/raise_cli/rai_base/__init__.py +0 -0
  247. {raise_cli-2.4.1 → raise_cli-3.0.0a1}/src/raise_cli/rai_base/framework/__init__.py +0 -0
  248. {raise_cli-2.4.1 → raise_cli-3.0.0a1}/src/raise_cli/rai_base/framework/methodology.yaml +0 -0
  249. {raise_cli-2.4.1 → raise_cli-3.0.0a1}/src/raise_cli/rai_base/governance/__init__.py +0 -0
  250. {raise_cli-2.4.1 → raise_cli-3.0.0a1}/src/raise_cli/rai_base/governance/architecture/__init__.py +0 -0
  251. {raise_cli-2.4.1 → raise_cli-3.0.0a1}/src/raise_cli/rai_base/governance/architecture/domain-model.md +0 -0
  252. {raise_cli-2.4.1 → raise_cli-3.0.0a1}/src/raise_cli/rai_base/governance/architecture/domain-model.yaml +0 -0
  253. {raise_cli-2.4.1 → raise_cli-3.0.0a1}/src/raise_cli/rai_base/governance/architecture/system-context.md +0 -0
  254. {raise_cli-2.4.1 → raise_cli-3.0.0a1}/src/raise_cli/rai_base/governance/architecture/system-context.yaml +0 -0
  255. {raise_cli-2.4.1 → raise_cli-3.0.0a1}/src/raise_cli/rai_base/governance/architecture/system-design.md +0 -0
  256. {raise_cli-2.4.1 → raise_cli-3.0.0a1}/src/raise_cli/rai_base/governance/architecture/system-design.yaml +0 -0
  257. {raise_cli-2.4.1 → raise_cli-3.0.0a1}/src/raise_cli/rai_base/governance/backlog.md +0 -0
  258. {raise_cli-2.4.1 → raise_cli-3.0.0a1}/src/raise_cli/rai_base/governance/guardrails.md +0 -0
  259. {raise_cli-2.4.1 → raise_cli-3.0.0a1}/src/raise_cli/rai_base/governance/prd.md +0 -0
  260. {raise_cli-2.4.1 → raise_cli-3.0.0a1}/src/raise_cli/rai_base/governance/vision.md +0 -0
  261. {raise_cli-2.4.1 → raise_cli-3.0.0a1}/src/raise_cli/rai_base/identity/__init__.py +0 -0
  262. {raise_cli-2.4.1 → raise_cli-3.0.0a1}/src/raise_cli/rai_base/identity/core.md +0 -0
  263. {raise_cli-2.4.1 → raise_cli-3.0.0a1}/src/raise_cli/rai_base/identity/perspective.md +0 -0
  264. {raise_cli-2.4.1 → raise_cli-3.0.0a1}/src/raise_cli/rai_base/memory/__init__.py +0 -0
  265. {raise_cli-2.4.1 → raise_cli-3.0.0a1}/src/raise_cli/rai_base/memory/patterns-base.jsonl +0 -0
  266. {raise_cli-2.4.1 → raise_cli-3.0.0a1}/src/raise_cli/schemas/__init__.py +0 -0
  267. {raise_cli-2.4.1 → raise_cli-3.0.0a1}/src/raise_cli/schemas/journal.py +0 -0
  268. {raise_cli-2.4.1 → raise_cli-3.0.0a1}/src/raise_cli/schemas/session_state.py +0 -0
  269. {raise_cli-2.4.1 → raise_cli-3.0.0a1}/src/raise_cli/session/__init__.py +0 -0
  270. {raise_cli-2.4.1 → raise_cli-3.0.0a1}/src/raise_cli/session/bundle.py +0 -0
  271. {raise_cli-2.4.1 → raise_cli-3.0.0a1}/src/raise_cli/session/bundle_data.py +0 -0
  272. {raise_cli-2.4.1 → raise_cli-3.0.0a1}/src/raise_cli/session/bundle_formatters.py +0 -0
  273. {raise_cli-2.4.1 → raise_cli-3.0.0a1}/src/raise_cli/session/close.py +0 -0
  274. {raise_cli-2.4.1 → raise_cli-3.0.0a1}/src/raise_cli/session/derive.py +0 -0
  275. {raise_cli-2.4.1 → raise_cli-3.0.0a1}/src/raise_cli/session/doctor.py +0 -0
  276. {raise_cli-2.4.1 → raise_cli-3.0.0a1}/src/raise_cli/session/identity.py +0 -0
  277. {raise_cli-2.4.1 → raise_cli-3.0.0a1}/src/raise_cli/session/index.py +0 -0
  278. {raise_cli-2.4.1 → raise_cli-3.0.0a1}/src/raise_cli/session/journal.py +0 -0
  279. {raise_cli-2.4.1 → raise_cli-3.0.0a1}/src/raise_cli/session/monitor.py +0 -0
  280. {raise_cli-2.4.1 → raise_cli-3.0.0a1}/src/raise_cli/session/prefix.py +0 -0
  281. {raise_cli-2.4.1 → raise_cli-3.0.0a1}/src/raise_cli/session/protocols.py +0 -0
  282. {raise_cli-2.4.1 → raise_cli-3.0.0a1}/src/raise_cli/session/registry.py +0 -0
  283. {raise_cli-2.4.1 → raise_cli-3.0.0a1}/src/raise_cli/session/resolver.py +0 -0
  284. {raise_cli-2.4.1 → raise_cli-3.0.0a1}/src/raise_cli/session/state.py +0 -0
  285. {raise_cli-2.4.1 → raise_cli-3.0.0a1}/src/raise_cli/skills/__init__.py +0 -0
  286. {raise_cli-2.4.1 → raise_cli-3.0.0a1}/src/raise_cli/skills/locator.py +0 -0
  287. {raise_cli-2.4.1 → raise_cli-3.0.0a1}/src/raise_cli/skills/name_checker.py +0 -0
  288. {raise_cli-2.4.1 → raise_cli-3.0.0a1}/src/raise_cli/skills/parser.py +0 -0
  289. {raise_cli-2.4.1 → raise_cli-3.0.0a1}/src/raise_cli/skills/scaffold.py +0 -0
  290. {raise_cli-2.4.1 → raise_cli-3.0.0a1}/src/raise_cli/skills/schema.py +0 -0
  291. {raise_cli-2.4.1 → raise_cli-3.0.0a1}/src/raise_cli/skills/skillsets.py +0 -0
  292. {raise_cli-2.4.1 → raise_cli-3.0.0a1}/src/raise_cli/skills/validator.py +0 -0
  293. {raise_cli-2.4.1 → raise_cli-3.0.0a1}/src/raise_cli/skills_base/contract-template.md +0 -0
  294. {raise_cli-2.4.1 → raise_cli-3.0.0a1}/src/raise_cli/skills_base/preamble.md +0 -0
  295. {raise_cli-2.4.1 → raise_cli-3.0.0a1}/src/raise_cli/skills_base/rai-adapter-setup/SKILL.md +0 -0
  296. {raise_cli-2.4.1 → raise_cli-3.0.0a1}/src/raise_cli/skills_base/rai-architecture-review/SKILL.md +0 -0
  297. {raise_cli-2.4.1 → raise_cli-3.0.0a1}/src/raise_cli/skills_base/rai-bugfix-analyse/SKILL.md +0 -0
  298. {raise_cli-2.4.1 → raise_cli-3.0.0a1}/src/raise_cli/skills_base/rai-bugfix-close/SKILL.md +0 -0
  299. {raise_cli-2.4.1 → raise_cli-3.0.0a1}/src/raise_cli/skills_base/rai-bugfix-fix/SKILL.md +0 -0
  300. {raise_cli-2.4.1 → raise_cli-3.0.0a1}/src/raise_cli/skills_base/rai-bugfix-plan/SKILL.md +0 -0
  301. {raise_cli-2.4.1 → raise_cli-3.0.0a1}/src/raise_cli/skills_base/rai-bugfix-review/SKILL.md +0 -0
  302. {raise_cli-2.4.1 → raise_cli-3.0.0a1}/src/raise_cli/skills_base/rai-bugfix-run/SKILL.md +0 -0
  303. {raise_cli-2.4.1 → raise_cli-3.0.0a1}/src/raise_cli/skills_base/rai-bugfix-start/SKILL.md +0 -0
  304. {raise_cli-2.4.1 → raise_cli-3.0.0a1}/src/raise_cli/skills_base/rai-bugfix-triage/SKILL.md +0 -0
  305. {raise_cli-2.4.1 → raise_cli-3.0.0a1}/src/raise_cli/skills_base/rai-debug/SKILL.md +0 -0
  306. {raise_cli-2.4.1 → raise_cli-3.0.0a1}/src/raise_cli/skills_base/rai-discover/SKILL.md +0 -0
  307. {raise_cli-2.4.1 → raise_cli-3.0.0a1}/src/raise_cli/skills_base/rai-docs-update/SKILL.md +0 -0
  308. {raise_cli-2.4.1 → raise_cli-3.0.0a1}/src/raise_cli/skills_base/rai-doctor/SKILL.md +0 -0
  309. {raise_cli-2.4.1 → raise_cli-3.0.0a1}/src/raise_cli/skills_base/rai-epic-close/SKILL.md +0 -0
  310. {raise_cli-2.4.1 → raise_cli-3.0.0a1}/src/raise_cli/skills_base/rai-epic-close/templates/retrospective.md +0 -0
  311. {raise_cli-2.4.1 → raise_cli-3.0.0a1}/src/raise_cli/skills_base/rai-epic-design/SKILL.md +0 -0
  312. {raise_cli-2.4.1 → raise_cli-3.0.0a1}/src/raise_cli/skills_base/rai-epic-design/templates/design.md +0 -0
  313. {raise_cli-2.4.1 → raise_cli-3.0.0a1}/src/raise_cli/skills_base/rai-epic-design/templates/scope.md +0 -0
  314. {raise_cli-2.4.1 → raise_cli-3.0.0a1}/src/raise_cli/skills_base/rai-epic-plan/SKILL.md +0 -0
  315. {raise_cli-2.4.1 → raise_cli-3.0.0a1}/src/raise_cli/skills_base/rai-epic-plan/_references/sequencing-strategies.md +0 -0
  316. {raise_cli-2.4.1 → raise_cli-3.0.0a1}/src/raise_cli/skills_base/rai-epic-plan/templates/plan-section.md +0 -0
  317. {raise_cli-2.4.1 → raise_cli-3.0.0a1}/src/raise_cli/skills_base/rai-epic-run/SKILL.md +0 -0
  318. {raise_cli-2.4.1 → raise_cli-3.0.0a1}/src/raise_cli/skills_base/rai-epic-start/SKILL.md +0 -0
  319. {raise_cli-2.4.1 → raise_cli-3.0.0a1}/src/raise_cli/skills_base/rai-epic-start/templates/brief.md +0 -0
  320. {raise_cli-2.4.1 → raise_cli-3.0.0a1}/src/raise_cli/skills_base/rai-mcp-add/SKILL.md +0 -0
  321. {raise_cli-2.4.1 → raise_cli-3.0.0a1}/src/raise_cli/skills_base/rai-mcp-remove/SKILL.md +0 -0
  322. {raise_cli-2.4.1 → raise_cli-3.0.0a1}/src/raise_cli/skills_base/rai-mcp-status/SKILL.md +0 -0
  323. {raise_cli-2.4.1 → raise_cli-3.0.0a1}/src/raise_cli/skills_base/rai-problem-shape/SKILL.md +0 -0
  324. {raise_cli-2.4.1 → raise_cli-3.0.0a1}/src/raise_cli/skills_base/rai-project-create/SKILL.md +0 -0
  325. {raise_cli-2.4.1 → raise_cli-3.0.0a1}/src/raise_cli/skills_base/rai-project-onboard/SKILL.md +0 -0
  326. {raise_cli-2.4.1 → raise_cli-3.0.0a1}/src/raise_cli/skills_base/rai-quality-review/SKILL.md +0 -0
  327. {raise_cli-2.4.1 → raise_cli-3.0.0a1}/src/raise_cli/skills_base/rai-research/SKILL.md +0 -0
  328. {raise_cli-2.4.1 → raise_cli-3.0.0a1}/src/raise_cli/skills_base/rai-research/references/research-prompt-template.md +0 -0
  329. {raise_cli-2.4.1 → raise_cli-3.0.0a1}/src/raise_cli/skills_base/rai-session-close/SKILL.md +0 -0
  330. {raise_cli-2.4.1 → raise_cli-3.0.0a1}/src/raise_cli/skills_base/rai-session-start/SKILL.md +0 -0
  331. {raise_cli-2.4.1 → raise_cli-3.0.0a1}/src/raise_cli/skills_base/rai-story-close/SKILL.md +0 -0
  332. {raise_cli-2.4.1 → raise_cli-3.0.0a1}/src/raise_cli/skills_base/rai-story-design/SKILL.md +0 -0
  333. {raise_cli-2.4.1 → raise_cli-3.0.0a1}/src/raise_cli/skills_base/rai-story-design/references/tech-design-story-v2.md +0 -0
  334. {raise_cli-2.4.1 → raise_cli-3.0.0a1}/src/raise_cli/skills_base/rai-story-implement/SKILL.md +0 -0
  335. {raise_cli-2.4.1 → raise_cli-3.0.0a1}/src/raise_cli/skills_base/rai-story-plan/SKILL.md +0 -0
  336. {raise_cli-2.4.1 → raise_cli-3.0.0a1}/src/raise_cli/skills_base/rai-story-review/SKILL.md +0 -0
  337. {raise_cli-2.4.1 → raise_cli-3.0.0a1}/src/raise_cli/skills_base/rai-story-run/SKILL.md +0 -0
  338. {raise_cli-2.4.1 → raise_cli-3.0.0a1}/src/raise_cli/skills_base/rai-story-start/SKILL.md +0 -0
  339. {raise_cli-2.4.1 → raise_cli-3.0.0a1}/src/raise_cli/skills_base/rai-story-start/templates/story.md +0 -0
  340. {raise_cli-2.4.1 → raise_cli-3.0.0a1}/src/raise_cli/skills_base/rai-welcome/SKILL.md +0 -0
  341. {raise_cli-2.4.1 → raise_cli-3.0.0a1}/src/raise_cli/telemetry/__init__.py +0 -0
  342. {raise_cli-2.4.1 → raise_cli-3.0.0a1}/src/raise_cli/telemetry/schemas.py +0 -0
  343. {raise_cli-2.4.1 → raise_cli-3.0.0a1}/src/raise_cli/telemetry/writer.py +0 -0
  344. {raise_cli-2.4.1 → raise_cli-3.0.0a1}/src/raise_cli/tier/__init__.py +0 -0
  345. {raise_cli-2.4.1 → raise_cli-3.0.0a1}/src/raise_cli/tier/context.py +0 -0
  346. {raise_cli-2.4.1 → raise_cli-3.0.0a1}/src/raise_cli/viz/__init__.py +0 -0
  347. {raise_cli-2.4.1 → raise_cli-3.0.0a1}/src/raise_cli/viz/generator.py +0 -0
@@ -6,6 +6,7 @@
6
6
 
7
7
  # Claude Code local settings (user-specific)
8
8
  .claude/settings.local.json
9
+ CLAUDE.local.md
9
10
  .claude/worktrees/
10
11
  .claude/projects/
11
12
 
@@ -14,10 +15,19 @@
14
15
  .claude/RAI-naming.md
15
16
  .claude/rai.archive/
16
17
 
18
+ # Daemon config (contains secrets — template committed as .example)
19
+ daemon-team.yaml
20
+ daemon.yaml
21
+ .env.fly
22
+
17
23
  # RaiSE generated/cache files
18
24
  .raise/cache/
19
25
  .raise/confluence-pages.yaml
20
26
  .raise/backlog/
27
+ .raise/artifacts/
28
+
29
+ # Pipeline state (environment-specific, PAT-E-594)
30
+ .rai-state/
21
31
 
22
32
  # RaiSE adapter configs (declarative, PII-free — identity in env vars)
23
33
  # .raise/jira.yaml and .raise/confluence.yaml are tracked (shared config)
@@ -27,8 +37,8 @@
27
37
  # Dossier output (generated, not committed)
28
38
  dev/output/
29
39
 
30
- # RaiSE derived artifacts (rebuild with `rai memory build`)
31
- .raise/rai/memory/index.json
40
+ # RaiSE graph index — tracked (essential for skill PRIME/JIT queries in worktrees)
41
+ # Rebuild with: rai graph build
32
42
 
33
43
  # RaiSE personal directory (per-developer, not shared)
34
44
  .raise/rai/personal/
@@ -119,6 +129,7 @@ credentials.json
119
129
 
120
130
  # MkDocs build output
121
131
  _site/
132
+ .docs-build/
122
133
 
123
134
  # Issue analysis artifacts (PDFs, images — binary, no git value)
124
135
  dev/issues/**/*.pdf
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: raise-cli
3
- Version: 2.4.1
3
+ Version: 3.0.0a1
4
4
  Summary: RaiSE CLI - Reliable AI Software Engineering governance framework
5
5
  Project-URL: Homepage, https://raiseframework.ai
6
6
  Project-URL: Documentation, https://docs.raiseframework.ai
@@ -46,6 +46,8 @@ Provides-Extra: mcp
46
46
  Requires-Dist: mcp<2,>=1.26; extra == 'mcp'
47
47
  Provides-Extra: observability
48
48
  Requires-Dist: logfire>=4.0; extra == 'observability'
49
+ Requires-Dist: opentelemetry-api>=1.20; extra == 'observability'
50
+ Requires-Dist: opentelemetry-sdk>=1.20; extra == 'observability'
49
51
  Description-Content-Type: text/markdown
50
52
 
51
53
  # RaiSE CLI
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "raise-cli"
3
- version = "2.4.1"
3
+ version = "3.0.0a1"
4
4
  description = "RaiSE CLI - Reliable AI Software Engineering governance framework"
5
5
  authors = [
6
6
  {name = "Emilio Osorio", email = "emilio@humansys.ai"}
@@ -45,6 +45,8 @@ mcp = [
45
45
  ]
46
46
  observability = [
47
47
  "logfire>=4.0",
48
+ "opentelemetry-api>=1.20",
49
+ "opentelemetry-sdk>=1.20",
48
50
  ]
49
51
  csharp = [
50
52
  "tree-sitter-c-sharp>=0.23.1",
@@ -82,6 +84,7 @@ glossary = "raise_cli.governance.parsers.glossary:GlossaryParser"
82
84
  [project.entry-points."rai.hooks"]
83
85
  telemetry = "raise_cli.hooks.builtin.telemetry:TelemetryHook"
84
86
  gate-bridge = "raise_cli.hooks.builtin.gate_bridge:GateBridgeHook"
87
+ memory-sync = "raise_cli.hooks.builtin.memory:MemoryMdSyncHook"
85
88
 
86
89
  [project.entry-points."rai.gates"]
87
90
  tests = "raise_cli.gates.builtin.tests:TestGate"
@@ -212,8 +212,6 @@ class PythonApiJiraAdapter:
212
212
  fields["description"] = issue.description
213
213
  if issue.labels:
214
214
  fields["labels"] = issue.labels
215
- if issue.metadata.get("parent"):
216
- fields["parent"] = {"key": issue.metadata["parent"]}
217
215
 
218
216
  result = client.create_issue(fields)
219
217
  key = result.get("key", "")
@@ -514,50 +514,41 @@ def _create_and_save_manifest(
514
514
  """Create project manifest from detection results and save it.
515
515
 
516
516
  When an existing manifest is present, preserve user-configured values
517
- and only update detection-derived fields (RAISE-1431, RAISE-1320).
518
-
519
- Preserved on re-init: name, ide, agents, language (if set), detected_at,
520
- toolchain commands (if user-configured), branches, tier, backlog.
521
- Updated on re-init: project_type, code_file_count (always re-scanned).
517
+ (name, ide, agents) and only fill gaps with detected values (RAISE-1431).
518
+ Detection updates toolchain/language/code_file_count unconditionally
519
+ since those are always re-scanned.
522
520
  """
523
521
  existing_manifest = load_manifest(project_path)
524
- ep = existing_manifest.project if existing_manifest else None
525
522
 
526
523
  # Preserve existing name if caller got it from directory (no --name flag)
527
524
  effective_name = project_name
528
- if ep and ep.name and project_name == project_path.name:
529
- effective_name = ep.name
530
-
531
- # Preserve user-configured language; fall back to detection (RAISE-1320)
532
- effective_language = ep.language if ep and ep.language else detection.language
533
-
534
- # Preserve user-configured toolchain commands; fall back to detection
535
- detected_test = detection.toolchain.test_command if detection.toolchain else None
536
- detected_lint = detection.toolchain.lint_command if detection.toolchain else None
537
- detected_type = detection.toolchain.type_check_command if detection.toolchain else None
538
- detected_format = detection.toolchain.format_command if detection.toolchain else None
525
+ if existing_manifest and existing_manifest.project.name:
526
+ # Only override if --name was explicitly passed (not directory default)
527
+ if project_name == project_path.name:
528
+ effective_name = existing_manifest.project.name
539
529
 
540
530
  project_info = ProjectInfo(
541
531
  name=effective_name,
542
532
  project_type=detection.project_type,
543
533
  code_file_count=detection.code_file_count,
544
- language=effective_language,
545
- test_command=ep.test_command if ep and ep.test_command else detected_test,
546
- lint_command=ep.lint_command if ep and ep.lint_command else detected_lint,
547
- type_check_command=ep.type_check_command if ep and ep.type_check_command else detected_type,
548
- format_command=ep.format_command if ep and ep.format_command else detected_format,
549
- # Preserve original detected_at timestamp on re-init (RAISE-1320)
550
- **({"detected_at": ep.detected_at} if ep else {}),
534
+ language=detection.language,
535
+ test_command=detection.toolchain.test_command if detection.toolchain else None,
536
+ lint_command=detection.toolchain.lint_command if detection.toolchain else None,
537
+ type_check_command=(
538
+ detection.toolchain.type_check_command if detection.toolchain else None
539
+ ),
551
540
  )
552
541
 
553
542
  # Preserve existing agents/ide if present, merge new detections (RAISE-1431)
554
543
  if existing_manifest:
555
544
  existing_agents = existing_manifest.agents.types if existing_manifest.agents else []
545
+ # Merge: keep existing + add newly detected (no duplicates)
556
546
  merged_agents = list(dict.fromkeys(existing_agents + valid_agent_types))
557
547
  effective_agents = merged_agents
558
548
  effective_ide = existing_manifest.ide
559
549
  else:
560
550
  effective_agents = valid_agent_types
551
+ # Sync ide.type with agents.types[0] (RAISE-218)
561
552
  primary = valid_agent_types[0] if valid_agent_types else "claude"
562
553
  try:
563
554
  effective_ide = IdeManifest(type=primary) # type: ignore[arg-type]
@@ -570,8 +561,6 @@ def _create_and_save_manifest(
570
561
  ide=effective_ide,
571
562
  branches=existing_manifest.branches if existing_manifest else BranchConfig(),
572
563
  tier=existing_manifest.tier if existing_manifest else None,
573
- # Preserve backlog config on re-init (RAISE-1320)
574
- backlog=existing_manifest.backlog if existing_manifest else None,
575
564
  )
576
565
  save_manifest(manifest, project_path)
577
566
  return manifest
@@ -713,14 +702,6 @@ def _detect_and_generate_guardrails(
713
702
  guardrails_dir = project_path / "governance"
714
703
  guardrails_dir.mkdir(parents=True, exist_ok=True)
715
704
  guardrails_path = guardrails_dir / "guardrails.md"
716
-
717
- # Never overwrite user-customized guardrails on re-init (RAISE-1320/Gustavo).
718
- # Allow overwrite of empty scaffold templates (contain "fill with" marker).
719
- if guardrails_path.exists():
720
- existing = guardrails_path.read_text(encoding="utf-8")
721
- if "fill with /rai-project-create" not in existing:
722
- return
723
-
724
705
  guardrails_path.write_text(guardrails_content, encoding="utf-8")
725
706
 
726
707
  instructions_path = project_path / instructions_file
@@ -842,32 +823,19 @@ def init_command(
842
823
  ) -> None:
843
824
  """Initialize a RaiSE project in the current directory.
844
825
 
845
- First-time setup only. If the project is already initialized (.raise/ exists),
846
- use ``rai upgrade`` instead to update skills, framework files, and configuration.
826
+ Detects project type (greenfield/brownfield), creates .raise/manifest.yaml,
827
+ and scaffolds skills/workflows for each target agent.
847
828
 
848
829
  Examples:
849
830
  $ rai init # defaults to claude
850
831
  $ rai init --agent cursor # single agent
851
832
  $ rai init --agent claude --agent cursor # multi-agent
852
833
  $ rai init --detect # auto-detect agents
853
- $ rai init --force # re-init (destructive)
834
+ $ rai init --ide antigravity # (deprecated) alias
854
835
  """
855
836
  project_path = (path if path is not None else Path.cwd()).resolve()
856
837
  project_name = name if name is not None else project_path.name
857
838
 
858
- # Guard: already initialized? Suggest rai upgrade (RAISE-1462)
859
- raise_dir = project_path / ".raise"
860
- if raise_dir.is_dir() and not force:
861
- console.print(
862
- "[yellow]Project already initialized[/yellow] "
863
- f"(.raise/ exists at {project_path}).\n\n"
864
- "To update skills and framework files, run:\n"
865
- " [bold]rai upgrade[/bold]\n\n"
866
- "To re-initialize from scratch, run:\n"
867
- " [bold]rai init --force[/bold]"
868
- )
869
- raise typer.Exit(code=1)
870
-
871
839
  # Load or create developer profile
872
840
  profile, created_profile = _load_or_create_profile(project_path)
873
841
 
@@ -956,175 +924,3 @@ def init_command(
956
924
  _detect_and_generate_guardrails(
957
925
  project_path, project_name, profile, first_config.instructions_file
958
926
  )
959
-
960
-
961
- # =============================================================================
962
- # rai upgrade — re-init with merge strategy (RAISE-1462)
963
- # =============================================================================
964
-
965
-
966
- def upgrade_command(
967
- path: Annotated[
968
- Path | None,
969
- typer.Option(
970
- "--path",
971
- "-p",
972
- help="Project root directory (defaults to current directory).",
973
- ),
974
- ] = None,
975
- detect: Annotated[
976
- bool,
977
- typer.Option(
978
- "--detect",
979
- "-d",
980
- help="Re-detect installed agents and update AGENTS.md.",
981
- ),
982
- ] = False,
983
- dry_run: Annotated[
984
- bool,
985
- typer.Option(
986
- "--dry-run",
987
- help="Preview skill updates without writing files.",
988
- ),
989
- ] = False,
990
- force: Annotated[
991
- bool,
992
- typer.Option(
993
- "--force",
994
- help="Overwrite all skill files without prompting.",
995
- ),
996
- ] = False,
997
- skip_updates: Annotated[
998
- bool,
999
- typer.Option(
1000
- "--skip-updates",
1001
- help="Keep all existing skills, only install new ones.",
1002
- ),
1003
- ] = False,
1004
- skill_set: Annotated[
1005
- str | None,
1006
- typer.Option(
1007
- "--skill-set",
1008
- help="Overlay a skill set from .raise/skills/{name}/ on top of builtins.",
1009
- ),
1010
- ] = None,
1011
- ) -> None:
1012
- """Update an existing RaiSE project to the latest version.
1013
-
1014
- Updates skills, framework files, and regenerates CLAUDE.md while preserving
1015
- user-configured values (manifest fields, governance docs, custom skills).
1016
-
1017
- Use ``rai init`` for first-time project setup.
1018
-
1019
- Examples:
1020
- $ rai upgrade # update skills + framework
1021
- $ rai upgrade --detect # also re-detect agents
1022
- $ rai upgrade --dry-run # preview changes
1023
- $ rai upgrade --skip-updates # only install new skills
1024
- """
1025
- project_path = (path if path is not None else Path.cwd()).resolve()
1026
-
1027
- # Guard: must be initialized
1028
- raise_dir = project_path / ".raise"
1029
- if not raise_dir.is_dir():
1030
- console.print(
1031
- "[red]Project not initialized[/red] "
1032
- f"(no .raise/ at {project_path}).\n\n"
1033
- "Run [bold]rai init[/bold] first to set up the project."
1034
- )
1035
- raise typer.Exit(code=1)
1036
-
1037
- # Load existing manifest for project name
1038
- existing_manifest = load_manifest(project_path)
1039
- project_name = (
1040
- existing_manifest.project.name if existing_manifest else project_path.name
1041
- )
1042
-
1043
- # Load developer profile (never create on upgrade)
1044
- _profile, _created = _load_or_create_profile(project_path)
1045
-
1046
- # Detect project type
1047
- detection = detect_project_type(project_path)
1048
-
1049
- # Load agent registry and resolve agent types
1050
- registry = load_registry(project_root=project_path)
1051
- if detect:
1052
- agent_types = _resolve_agent_types(None, None, True, project_path, registry)
1053
- elif existing_manifest:
1054
- agent_types = existing_manifest.agents.types if existing_manifest.agents else ["claude"]
1055
- else:
1056
- agent_types = ["claude"]
1057
-
1058
- valid_agent_types = _validate_agent_types(agent_types, registry)
1059
-
1060
- # Update manifest with merge strategy (preserves user config)
1061
- manifest = _create_and_save_manifest(
1062
- project_path, project_name, detection, valid_agent_types
1063
- )
1064
-
1065
- # Bootstrap (idempotent — skips existing files)
1066
- _bootstrap_result, _governance_result, memory_content = _bootstrap_project_assets(
1067
- project_path, project_name, manifest
1068
- )
1069
-
1070
- # Update skills (diff/merge UX)
1071
- first_config = registry.get_config(valid_agent_types[0])
1072
- first_skills_result = _scaffold_per_agent(
1073
- project_path,
1074
- valid_agent_types,
1075
- registry,
1076
- memory_content,
1077
- force=force,
1078
- skip_updates=skip_updates,
1079
- dry_run=dry_run,
1080
- skill_set=skill_set,
1081
- )
1082
-
1083
- # Dry-run: show summary and exit
1084
- if dry_run and first_skills_result is not None:
1085
- _print_skill_sync_summary(first_skills_result)
1086
- has_updates = bool(
1087
- first_skills_result.skills_updated
1088
- or first_skills_result.skills_installed
1089
- or first_skills_result.skills_conflicted
1090
- )
1091
- raise typer.Exit(code=0 if not has_updates else 1)
1092
-
1093
- # Regenerate CLAUDE.md (it's generated, safe to overwrite)
1094
- if raise_dir.is_dir():
1095
- instructions_content = generate_instructions(
1096
- project_name=project_name,
1097
- detection=detection,
1098
- project_path=project_path,
1099
- )
1100
- instructions_path = project_path / first_config.instructions_file
1101
- instructions_path.parent.mkdir(parents=True, exist_ok=True)
1102
- instructions_path.write_text(instructions_content, encoding="utf-8")
1103
-
1104
- # Emit event
1105
- emitter = create_emitter()
1106
- emitter.emit(
1107
- InitCompleteEvent(
1108
- project_path=project_path,
1109
- project_name=project_name,
1110
- )
1111
- )
1112
-
1113
- # AGENTS.md on --detect
1114
- if detect:
1115
- _generate_agents_md(project_path, valid_agent_types, project_name)
1116
-
1117
- # Output
1118
- console.print(
1119
- f"\n[bold green]Upgrade complete[/bold green] — {project_name}\n"
1120
- )
1121
- if first_skills_result:
1122
- installed = len(first_skills_result.skills_installed)
1123
- updated = len(first_skills_result.skills_updated)
1124
- kept = len(first_skills_result.skills_kept)
1125
- if installed or updated:
1126
- console.print(
1127
- f" Skills: {installed} new, {updated} updated, {kept} unchanged"
1128
- )
1129
- else:
1130
- console.print(" Skills: all up to date")
@@ -1,11 +1,12 @@
1
- """CLI commands for session journal — DEPRECATED.
1
+ """CLI commands for session journal — incremental memory persistence.
2
2
 
3
- The journal system is deprecated as of v3.0.0a1 (RAISE-1433). The append-only
4
- journal relied on Claude Code hook injection for post-compaction recovery,
5
- which is broken (CC bugs #12671, #15174). Commands remain functional for
6
- backward compatibility but will be removed in v3.1.
3
+ Provides `rai session journal add` and `rai session journal show` for
4
+ persisting and retrieving session context across compaction events.
7
5
 
8
- Use ``/rai-session-close`` skill for full session continuity instead.
6
+ Example:
7
+ $ rai session journal add "Use JSONL for persistence" --type decision
8
+ $ rai session journal show --last 5
9
+ $ rai session journal show --compact
9
10
  """
10
11
 
11
12
  from __future__ import annotations
@@ -96,26 +97,11 @@ def add(
96
97
  ) -> None:
97
98
  """Add a journal entry to the current session.
98
99
 
99
- .. deprecated:: 3.0.0a1
100
- Journal is deprecated (RAISE-1433). Use /rai-session-close for continuity.
101
-
102
100
  Examples:
103
101
  $ rai session journal add "Use JSONL for journal" --type decision
104
102
  $ rai session journal add "T1 complete" --type task_done
103
+ $ rai session journal add "Compaction loses rationale" --type insight --tags "compaction,memory"
105
104
  """
106
- import warnings
107
-
108
- warnings.warn(
109
- "rai session journal is deprecated (RAISE-1433). "
110
- "Use /rai-session-close skill for session continuity.",
111
- DeprecationWarning,
112
- stacklevel=1,
113
- )
114
- typer.echo(
115
- "Warning: journal is deprecated (RAISE-1433). "
116
- "Use /rai-session-close for session continuity.",
117
- err=True,
118
- )
119
105
  session_dir = _resolve_session_dir(project)
120
106
  tag_list = [t.strip() for t in tags.split(",") if t.strip()] if tags else []
121
107
 
@@ -157,21 +143,14 @@ def show(
157
143
  ) -> None:
158
144
  """Show journal entries for the current session.
159
145
 
160
- .. deprecated:: 3.0.0a1
161
- Journal is deprecated (RAISE-1433). Use /rai-session-close for continuity.
146
+ With --compact, outputs a token-efficient format suitable for
147
+ post-compaction context injection via hooks.
162
148
 
163
149
  Examples:
164
150
  $ rai session journal show
151
+ $ rai session journal show --last 5
165
152
  $ rai session journal show --compact
166
153
  """
167
- import warnings
168
-
169
- warnings.warn(
170
- "rai session journal is deprecated (RAISE-1433). "
171
- "Use /rai-session-close skill for session continuity.",
172
- DeprecationWarning,
173
- stacklevel=1,
174
- )
175
154
  session_dir = _resolve_session_dir(project)
176
155
  entries = read_journal(session_dir, last_n=last)
177
156
 
@@ -0,0 +1,80 @@
1
+ """Backward-compatible aliases for commands moved to the release group.
2
+
3
+ All active commands have been moved to the `release` group (CLI restructuring):
4
+ - publish check → release check
5
+ - publish release → release publish
6
+
7
+ These aliases print deprecation warnings and delegate to the canonical commands.
8
+ They will be removed in a future release (v3.0).
9
+ """
10
+
11
+ from __future__ import annotations
12
+
13
+ from pathlib import Path
14
+ from typing import Annotated
15
+
16
+ import typer
17
+ from rich.console import Console
18
+
19
+ from raise_cli.publish.version import BumpType
20
+
21
+ publish_app = typer.Typer(help="Publish and release management commands")
22
+
23
+ _stderr_console = Console(stderr=True)
24
+
25
+
26
+ def _deprecation_warning(old_cmd: str, new_cmd: str) -> None:
27
+ """Print deprecation warning to stderr."""
28
+ _stderr_console.print(
29
+ f"[yellow]DEPRECATED:[/yellow] 'rai {old_cmd}' → use 'rai {new_cmd}' instead",
30
+ )
31
+
32
+
33
+ @publish_app.command("check")
34
+ def check_shim(
35
+ project: Annotated[
36
+ Path,
37
+ typer.Option("--project", "-p", help="Project root path"),
38
+ ] = Path("."),
39
+ ) -> None:
40
+ """Deprecated: use 'rai release check'."""
41
+ _deprecation_warning("publish check", "release check")
42
+ from raise_cli.cli.commands.release import check_command
43
+
44
+ check_command(project=project)
45
+
46
+
47
+ @publish_app.command("release")
48
+ def release_shim(
49
+ bump: Annotated[
50
+ BumpType | None,
51
+ typer.Option("--bump", "-b", help="Version bump type"),
52
+ ] = None,
53
+ version: Annotated[
54
+ str | None,
55
+ typer.Option("--version", "-v", help="Explicit version (overrides --bump)"),
56
+ ] = None,
57
+ dry_run: Annotated[
58
+ bool,
59
+ typer.Option("--dry-run", help="Show what would happen without executing"),
60
+ ] = False,
61
+ skip_check: Annotated[
62
+ bool,
63
+ typer.Option("--skip-check", help="Skip quality gates (dangerous)"),
64
+ ] = False,
65
+ project: Annotated[
66
+ Path,
67
+ typer.Option("--project", "-p", help="Project root path"),
68
+ ] = Path("."),
69
+ ) -> None:
70
+ """Deprecated: use 'rai release publish'."""
71
+ _deprecation_warning("publish release", "release publish")
72
+ from raise_cli.cli.commands.release import publish_command
73
+
74
+ publish_command(
75
+ bump=bump,
76
+ version=version,
77
+ dry_run=dry_run,
78
+ skip_check=skip_check,
79
+ project=project,
80
+ )
@@ -42,11 +42,26 @@ GRAPH_REL_PATH = Path(".raise") / "rai" / "memory" / "index.json"
42
42
  # =============================================================================
43
43
 
44
44
 
45
- def _find_project_paths(project: Path) -> tuple[Path, Path]:
46
- """Find pyproject.toml and CHANGELOG.md paths."""
45
+ def _find_project_paths(project: Path) -> tuple[Path, Path, Path]:
46
+ """Find pyproject.toml, __init__.py, and CHANGELOG.md paths.
47
+
48
+ If project is a workspace root (has [tool.uv.workspace] in pyproject.toml),
49
+ auto-detect the publishable package at packages/raise-cli/.
50
+ """
47
51
  pyproject_path = project / "pyproject.toml"
52
+
53
+ # Auto-detect monorepo: if pyproject.toml has workspace config, look for raise-cli
54
+ if pyproject_path.exists():
55
+ content = pyproject_path.read_text(encoding="utf-8")
56
+ if "[tool.uv.workspace]" in content:
57
+ cli_pkg = project / "packages" / "raise-cli"
58
+ if cli_pkg.exists():
59
+ project = cli_pkg
60
+ pyproject_path = project / "pyproject.toml"
61
+
48
62
  changelog_path = project / "CHANGELOG.md"
49
- return pyproject_path, changelog_path
63
+ init_path = project / "src" / "raise_cli" / "__init__.py"
64
+ return pyproject_path, init_path, changelog_path
50
65
 
51
66
 
52
67
  def _read_current_version(pyproject_path: Path) -> str:
@@ -179,11 +194,14 @@ def check_command(
179
194
  $ rai release check
180
195
  $ rai release check --project /path/to/project
181
196
  """
182
- pyproject_path, changelog_path = _find_project_paths(project)
197
+ pyproject_path, init_path, changelog_path = _find_project_paths(project)
198
+ # Use the resolved project root (may differ from input in monorepos)
199
+ resolved_root = pyproject_path.parent
183
200
 
184
201
  results = run_checks(
185
- project_root=project,
202
+ project_root=resolved_root,
186
203
  pyproject_path=pyproject_path,
204
+ init_path=init_path,
187
205
  changelog_path=changelog_path,
188
206
  )
189
207
 
@@ -317,13 +335,14 @@ def publish_command(
317
335
  console.print("[red]Either --bump or --version is required[/red]")
318
336
  raise typer.Exit(1)
319
337
 
320
- pyproject_path, changelog_path = _find_project_paths(project)
321
- init_path = project / "src" / "raise_cli" / "__init__.py"
338
+ pyproject_path, init_path, changelog_path = _find_project_paths(project)
339
+ resolved_root = pyproject_path.parent
322
340
 
323
341
  if not skip_check:
324
342
  results = run_checks(
325
- project_root=project,
343
+ project_root=resolved_root,
326
344
  pyproject_path=pyproject_path,
345
+ init_path=init_path,
327
346
  changelog_path=changelog_path,
328
347
  )
329
348
  all_passed = _display_results(results)
@@ -627,12 +627,6 @@ def close( # noqa: C901
627
627
  summary=summary or "",
628
628
  session_type=session_type or "feature",
629
629
  )
630
- typer.echo(
631
- "Warning: --summary close captures only a summary. "
632
- "For full session continuity (narrative, patterns, next-session prompt), "
633
- "use the /rai-session-close skill instead.",
634
- err=True,
635
- )
636
630
 
637
631
  # Coherence validation: reject if state file session_id
638
632
  # doesn't match the target session. Prevents race condition where
@@ -20,17 +20,19 @@ from raise_cli.cli.commands.doctor import doctor_app
20
20
  from raise_cli.cli.commands.gate import gate_app
21
21
  from raise_cli.cli.commands.graph import graph_app
22
22
  from raise_cli.cli.commands.info import info_command
23
- from raise_cli.cli.commands.init import init_command, upgrade_command
23
+ from raise_cli.cli.commands.init import init_command
24
24
  from raise_cli.cli.commands.learn import learn_app
25
25
  from raise_cli.cli.commands.mcp import mcp_app
26
26
  from raise_cli.cli.commands.memory import memory_app
27
27
  from raise_cli.cli.commands.pattern import pattern_app
28
28
  from raise_cli.cli.commands.profile import profile_app
29
+ from raise_cli.cli.commands.publish import publish_app
29
30
  from raise_cli.cli.commands.release import release_app
30
31
  from raise_cli.cli.commands.session import session_app
31
32
  from raise_cli.cli.commands.signal import signal_app
32
33
  from raise_cli.cli.commands.skill import skill_app
33
34
  from raise_cli.cli.extensions import discover_cli_extensions
35
+ from raise_cli.pipeline.cli import app as pipeline_app
34
36
  from raise_cli.config import RaiSettings
35
37
 
36
38
  # Module-level state for error handling
@@ -68,15 +70,16 @@ app.add_typer(mcp_app, name="mcp")
68
70
  app.add_typer(memory_app, name="memory")
69
71
  app.add_typer(pattern_app, name="pattern")
70
72
  app.add_typer(profile_app, name="profile")
73
+ app.add_typer(publish_app, name="publish")
71
74
  app.add_typer(release_app, name="release")
72
75
  app.add_typer(session_app, name="session")
73
76
  app.add_typer(signal_app, name="signal")
74
77
  app.add_typer(skill_app, name="skill")
78
+ app.add_typer(pipeline_app, name="pipeline")
75
79
 
76
80
  # Register standalone commands
77
81
  app.command("info")(info_command)
78
82
  app.command("init")(init_command)
79
- app.command("upgrade")(upgrade_command)
80
83
 
81
84
  # Register CLI extensions from external packages
82
85
  discover_cli_extensions(app)