raise-cli 2.3.0__tar.gz → 2.4.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (344) hide show
  1. {raise_cli-2.3.0 → raise_cli-2.4.0}/.gitignore +14 -10
  2. raise_cli-2.4.0/PKG-INFO +190 -0
  3. raise_cli-2.4.0/README.md +141 -0
  4. raise_cli-2.4.0/pyproject.toml +135 -0
  5. {raise_cli-2.3.0 → raise_cli-2.4.0}/src/raise_cli/__init__.py +3 -1
  6. {raise_cli-2.3.0 → raise_cli-2.4.0}/src/raise_cli/adapters/__init__.py +3 -1
  7. raise_cli-2.4.0/src/raise_cli/adapters/composite_docs.py +92 -0
  8. raise_cli-2.4.0/src/raise_cli/adapters/confluence_adapter.py +107 -0
  9. raise_cli-2.4.0/src/raise_cli/adapters/confluence_client.py +347 -0
  10. raise_cli-2.4.0/src/raise_cli/adapters/confluence_config.py +114 -0
  11. raise_cli-2.4.0/src/raise_cli/adapters/confluence_config_gen.py +165 -0
  12. raise_cli-2.4.0/src/raise_cli/adapters/confluence_discovery.py +258 -0
  13. raise_cli-2.4.0/src/raise_cli/adapters/confluence_exceptions.py +37 -0
  14. {raise_cli-2.3.0 → raise_cli-2.4.0}/src/raise_cli/adapters/filesystem.py +4 -2
  15. raise_cli-2.4.0/src/raise_cli/adapters/filesystem_adapter.py +98 -0
  16. raise_cli-2.4.0/src/raise_cli/adapters/filesystem_docs.py +114 -0
  17. raise_cli-2.4.0/src/raise_cli/adapters/filesystem_models.py +51 -0
  18. raise_cli-2.4.0/src/raise_cli/adapters/jira_adapter.py +366 -0
  19. raise_cli-2.4.0/src/raise_cli/adapters/jira_client.py +360 -0
  20. raise_cli-2.4.0/src/raise_cli/adapters/jira_config.py +117 -0
  21. raise_cli-2.4.0/src/raise_cli/adapters/jira_config_gen.py +90 -0
  22. raise_cli-2.4.0/src/raise_cli/adapters/jira_discovery.py +103 -0
  23. raise_cli-2.4.0/src/raise_cli/adapters/jira_exceptions.py +37 -0
  24. raise_cli-2.4.0/src/raise_cli/adapters/models/__init__.py +61 -0
  25. raise_cli-2.4.0/src/raise_cli/adapters/models/docs.py +48 -0
  26. raise_cli-2.4.0/src/raise_cli/adapters/models/governance.py +44 -0
  27. raise_cli-2.4.0/src/raise_cli/adapters/models/health.py +19 -0
  28. raise_cli-2.4.0/src/raise_cli/adapters/models/pm.py +147 -0
  29. {raise_cli-2.3.0 → raise_cli-2.4.0}/src/raise_cli/adapters/registry.py +23 -0
  30. {raise_cli-2.3.0 → raise_cli-2.4.0}/src/raise_cli/backlog/sync.py +3 -14
  31. {raise_cli-2.3.0 → raise_cli-2.4.0}/src/raise_cli/cli/commands/_resolve.py +77 -8
  32. {raise_cli-2.3.0 → raise_cli-2.4.0}/src/raise_cli/cli/commands/discover.py +18 -18
  33. {raise_cli-2.3.0 → raise_cli-2.4.0}/src/raise_cli/cli/commands/docs.py +58 -5
  34. {raise_cli-2.3.0 → raise_cli-2.4.0}/src/raise_cli/cli/commands/graph.py +18 -1
  35. {raise_cli-2.3.0 → raise_cli-2.4.0}/src/raise_cli/cli/commands/info.py +1 -1
  36. {raise_cli-2.3.0 → raise_cli-2.4.0}/src/raise_cli/cli/commands/init.py +15 -15
  37. raise_cli-2.4.0/src/raise_cli/cli/commands/learn.py +266 -0
  38. {raise_cli-2.3.0 → raise_cli-2.4.0}/src/raise_cli/cli/commands/mcp.py +16 -7
  39. {raise_cli-2.3.0 → raise_cli-2.4.0}/src/raise_cli/cli/commands/pattern.py +2 -2
  40. {raise_cli-2.3.0 → raise_cli-2.4.0}/src/raise_cli/cli/commands/profile.py +1 -1
  41. {raise_cli-2.3.0 → raise_cli-2.4.0}/src/raise_cli/cli/commands/session.py +155 -19
  42. {raise_cli-2.3.0 → raise_cli-2.4.0}/src/raise_cli/cli/commands/signal.py +25 -20
  43. {raise_cli-2.3.0 → raise_cli-2.4.0}/src/raise_cli/cli/main.py +2 -0
  44. {raise_cli-2.3.0 → raise_cli-2.4.0}/src/raise_cli/context/analyzers/__init__.py +2 -1
  45. raise_cli-2.4.0/src/raise_cli/context/analyzers/signals.py +165 -0
  46. raise_cli-2.4.0/src/raise_cli/context/analyzers/typescript.py +469 -0
  47. {raise_cli-2.3.0 → raise_cli-2.4.0}/src/raise_cli/context/builder.py +24 -6
  48. {raise_cli-2.3.0 → raise_cli-2.4.0}/src/raise_cli/context/extractors/relationships.py +12 -3
  49. {raise_cli-2.3.0 → raise_cli-2.4.0}/src/raise_cli/core/files.py +19 -0
  50. {raise_cli-2.3.0 → raise_cli-2.4.0}/src/raise_cli/discovery/analyzer.py +1 -1
  51. raise_cli-2.4.0/src/raise_cli/doctor/checks/adapters.py +404 -0
  52. {raise_cli-2.3.0 → raise_cli-2.4.0}/src/raise_cli/governance/parsers/epic.py +2 -2
  53. {raise_cli-2.3.0 → raise_cli-2.4.0}/src/raise_cli/hooks/events.py +2 -2
  54. {raise_cli-2.3.0 → raise_cli-2.4.0}/src/raise_cli/memory/__init__.py +1 -1
  55. raise_cli-2.4.0/src/raise_cli/memory/learning.py +122 -0
  56. {raise_cli-2.3.0 → raise_cli-2.4.0}/src/raise_cli/memory/models.py +4 -0
  57. raise_cli-2.4.0/src/raise_cli/memory/push.py +101 -0
  58. {raise_cli-2.3.0 → raise_cli-2.4.0}/src/raise_cli/memory/writer.py +9 -10
  59. {raise_cli-2.3.0 → raise_cli-2.4.0}/src/raise_cli/onboarding/bootstrap.py +1 -1
  60. {raise_cli-2.3.0 → raise_cli-2.4.0}/src/raise_cli/onboarding/governance.py +1 -1
  61. {raise_cli-2.3.0 → raise_cli-2.4.0}/src/raise_cli/onboarding/instructions.py +2 -2
  62. {raise_cli-2.3.0 → raise_cli-2.4.0}/src/raise_cli/onboarding/profile.py +7 -5
  63. {raise_cli-2.3.0 → raise_cli-2.4.0}/src/raise_cli/output/formatters/skill.py +1 -1
  64. {raise_cli-2.3.0 → raise_cli-2.4.0}/src/raise_cli/publish/check.py +14 -3
  65. {raise_cli-2.3.0 → raise_cli-2.4.0}/src/raise_cli/rai_base/__init__.py +1 -1
  66. {raise_cli-2.3.0 → raise_cli-2.4.0}/src/raise_cli/schemas/session_state.py +61 -1
  67. {raise_cli-2.3.0 → raise_cli-2.4.0}/src/raise_cli/session/bundle.py +38 -6
  68. {raise_cli-2.3.0 → raise_cli-2.4.0}/src/raise_cli/session/bundle_formatters.py +19 -6
  69. {raise_cli-2.3.0 → raise_cli-2.4.0}/src/raise_cli/session/close.py +28 -8
  70. raise_cli-2.4.0/src/raise_cli/session/derive.py +235 -0
  71. raise_cli-2.4.0/src/raise_cli/session/doctor.py +364 -0
  72. {raise_cli-2.3.0 → raise_cli-2.4.0}/src/raise_cli/session/index.py +9 -5
  73. {raise_cli-2.3.0 → raise_cli-2.4.0}/src/raise_cli/session/journal.py +3 -3
  74. raise_cli-2.4.0/src/raise_cli/session/monitor.py +162 -0
  75. {raise_cli-2.3.0 → raise_cli-2.4.0}/src/raise_cli/session/prefix.py +4 -3
  76. raise_cli-2.4.0/src/raise_cli/session/protocols.py +70 -0
  77. raise_cli-2.4.0/src/raise_cli/session/registry.py +197 -0
  78. {raise_cli-2.3.0 → raise_cli-2.4.0}/src/raise_cli/session/state.py +41 -5
  79. {raise_cli-2.3.0 → raise_cli-2.4.0}/src/raise_cli/skills_base/__init__.py +23 -5
  80. raise_cli-2.4.0/src/raise_cli/skills_base/rai-adapter-setup/SKILL.md +221 -0
  81. raise_cli-2.4.0/src/raise_cli/skills_base/rai-bugfix-analyse/SKILL.md +136 -0
  82. raise_cli-2.4.0/src/raise_cli/skills_base/rai-bugfix-close/SKILL.md +143 -0
  83. raise_cli-2.4.0/src/raise_cli/skills_base/rai-bugfix-fix/SKILL.md +114 -0
  84. raise_cli-2.4.0/src/raise_cli/skills_base/rai-bugfix-plan/SKILL.md +119 -0
  85. raise_cli-2.4.0/src/raise_cli/skills_base/rai-bugfix-review/SKILL.md +150 -0
  86. raise_cli-2.4.0/src/raise_cli/skills_base/rai-bugfix-run/SKILL.md +304 -0
  87. raise_cli-2.4.0/src/raise_cli/skills_base/rai-bugfix-start/SKILL.md +121 -0
  88. raise_cli-2.4.0/src/raise_cli/skills_base/rai-bugfix-triage/SKILL.md +138 -0
  89. {raise_cli-2.3.0 → raise_cli-2.4.0}/src/raise_cli/skills_base/rai-debug/SKILL.md +9 -4
  90. {raise_cli-2.3.0 → raise_cli-2.4.0}/src/raise_cli/skills_base/rai-discover/SKILL.md +9 -3
  91. {raise_cli-2.3.0 → raise_cli-2.4.0}/src/raise_cli/skills_base/rai-docs-update/SKILL.md +9 -5
  92. {raise_cli-2.3.0 → raise_cli-2.4.0}/src/raise_cli/skills_base/rai-doctor/SKILL.md +6 -4
  93. {raise_cli-2.3.0 → raise_cli-2.4.0}/src/raise_cli/skills_base/rai-epic-close/SKILL.md +36 -13
  94. {raise_cli-2.3.0 → raise_cli-2.4.0}/src/raise_cli/skills_base/rai-epic-design/SKILL.md +41 -6
  95. {raise_cli-2.3.0 → raise_cli-2.4.0}/src/raise_cli/skills_base/rai-epic-docs/SKILL.md +9 -5
  96. {raise_cli-2.3.0 → raise_cli-2.4.0}/src/raise_cli/skills_base/rai-epic-plan/SKILL.md +33 -5
  97. {raise_cli-2.3.0 → raise_cli-2.4.0}/src/raise_cli/skills_base/rai-epic-run/SKILL.md +10 -6
  98. {raise_cli-2.3.0 → raise_cli-2.4.0}/src/raise_cli/skills_base/rai-epic-start/SKILL.md +31 -12
  99. {raise_cli-2.3.0 → raise_cli-2.4.0}/src/raise_cli/skills_base/rai-mcp-add/SKILL.md +9 -4
  100. {raise_cli-2.3.0 → raise_cli-2.4.0}/src/raise_cli/skills_base/rai-mcp-remove/SKILL.md +9 -3
  101. {raise_cli-2.3.0 → raise_cli-2.4.0}/src/raise_cli/skills_base/rai-mcp-status/SKILL.md +6 -5
  102. {raise_cli-2.3.0 → raise_cli-2.4.0}/src/raise_cli/skills_base/rai-problem-shape/SKILL.md +6 -4
  103. {raise_cli-2.3.0 → raise_cli-2.4.0}/src/raise_cli/skills_base/rai-project-create/SKILL.md +9 -4
  104. {raise_cli-2.3.0 → raise_cli-2.4.0}/src/raise_cli/skills_base/rai-project-onboard/SKILL.md +9 -5
  105. {raise_cli-2.3.0 → raise_cli-2.4.0}/src/raise_cli/skills_base/rai-research/SKILL.md +9 -5
  106. {raise_cli-2.3.0 → raise_cli-2.4.0}/src/raise_cli/skills_base/rai-session-close/SKILL.md +7 -3
  107. raise_cli-2.4.0/src/raise_cli/skills_base/rai-session-diary/SKILL.md +229 -0
  108. {raise_cli-2.3.0 → raise_cli-2.4.0}/src/raise_cli/skills_base/rai-session-start/SKILL.md +6 -3
  109. {raise_cli-2.3.0 → raise_cli-2.4.0}/src/raise_cli/skills_base/rai-story-close/SKILL.md +34 -8
  110. {raise_cli-2.3.0 → raise_cli-2.4.0}/src/raise_cli/skills_base/rai-story-design/SKILL.md +41 -5
  111. {raise_cli-2.3.0 → raise_cli-2.4.0}/src/raise_cli/skills_base/rai-story-implement/SKILL.md +49 -19
  112. {raise_cli-2.3.0 → raise_cli-2.4.0}/src/raise_cli/skills_base/rai-story-plan/SKILL.md +33 -5
  113. {raise_cli-2.3.0 → raise_cli-2.4.0}/src/raise_cli/skills_base/rai-story-review/SKILL.md +59 -22
  114. {raise_cli-2.3.0 → raise_cli-2.4.0}/src/raise_cli/skills_base/rai-story-run/SKILL.md +27 -7
  115. {raise_cli-2.3.0 → raise_cli-2.4.0}/src/raise_cli/skills_base/rai-story-start/SKILL.md +10 -5
  116. {raise_cli-2.3.0 → raise_cli-2.4.0}/src/raise_cli/skills_base/rai-welcome/SKILL.md +14 -8
  117. raise_cli-2.3.0/LICENSE +0 -190
  118. raise_cli-2.3.0/NOTICE +0 -4
  119. raise_cli-2.3.0/PKG-INFO +0 -374
  120. raise_cli-2.3.0/README.md +0 -319
  121. raise_cli-2.3.0/pyproject.toml +0 -321
  122. raise_cli-2.3.0/src/raise_cli/adapters/models.py +0 -212
  123. raise_cli-2.3.0/src/raise_cli/hooks/builtin/backlog.py +0 -216
  124. raise_cli-2.3.0/src/raise_core/__init__.py +0 -12
  125. raise_cli-2.3.0/src/raise_core/governance/__init__.py +0 -7
  126. raise_cli-2.3.0/src/raise_core/graph/__init__.py +0 -6
  127. raise_cli-2.3.0/src/raise_core/graph/backends/__init__.py +0 -1
  128. raise_cli-2.3.0/src/raise_core/graph/backends/filesystem.py +0 -79
  129. raise_cli-2.3.0/src/raise_core/graph/backends/models.py +0 -20
  130. raise_cli-2.3.0/src/raise_core/graph/backends/protocol.py +0 -27
  131. raise_cli-2.3.0/src/raise_core/graph/engine.py +0 -236
  132. raise_cli-2.3.0/src/raise_core/graph/models.py +0 -208
  133. raise_cli-2.3.0/src/raise_core/graph/query.py +0 -488
  134. raise_cli-2.3.0/src/raise_core/workflow/__init__.py +0 -9
  135. {raise_cli-2.3.0 → raise_cli-2.4.0}/src/raise_cli/__main__.py +0 -0
  136. {raise_cli-2.3.0 → raise_cli-2.4.0}/src/raise_cli/adapters/declarative/__init__.py +0 -0
  137. {raise_cli-2.3.0 → raise_cli-2.4.0}/src/raise_cli/adapters/declarative/adapter.py +0 -0
  138. {raise_cli-2.3.0 → raise_cli-2.4.0}/src/raise_cli/adapters/declarative/discovery.py +0 -0
  139. {raise_cli-2.3.0 → raise_cli-2.4.0}/src/raise_cli/adapters/declarative/expressions.py +0 -0
  140. {raise_cli-2.3.0 → raise_cli-2.4.0}/src/raise_cli/adapters/declarative/reference/__init__.py +0 -0
  141. {raise_cli-2.3.0 → raise_cli-2.4.0}/src/raise_cli/adapters/declarative/reference/github.yaml +0 -0
  142. {raise_cli-2.3.0 → raise_cli-2.4.0}/src/raise_cli/adapters/declarative/schema.py +0 -0
  143. {raise_cli-2.3.0 → raise_cli-2.4.0}/src/raise_cli/adapters/mcp_bridge.py +0 -0
  144. {raise_cli-2.3.0 → raise_cli-2.4.0}/src/raise_cli/adapters/protocols.py +0 -0
  145. {raise_cli-2.3.0 → raise_cli-2.4.0}/src/raise_cli/adapters/sync.py +0 -0
  146. {raise_cli-2.3.0 → raise_cli-2.4.0}/src/raise_cli/agents/__init__.py +0 -0
  147. {raise_cli-2.3.0 → raise_cli-2.4.0}/src/raise_cli/agents/antigravity.yaml +0 -0
  148. {raise_cli-2.3.0 → raise_cli-2.4.0}/src/raise_cli/agents/claude.yaml +0 -0
  149. {raise_cli-2.3.0 → raise_cli-2.4.0}/src/raise_cli/agents/copilot.yaml +0 -0
  150. {raise_cli-2.3.0 → raise_cli-2.4.0}/src/raise_cli/agents/copilot_plugin.py +0 -0
  151. {raise_cli-2.3.0 → raise_cli-2.4.0}/src/raise_cli/agents/cursor.yaml +0 -0
  152. {raise_cli-2.3.0 → raise_cli-2.4.0}/src/raise_cli/agents/roo.yaml +0 -0
  153. {raise_cli-2.3.0 → raise_cli-2.4.0}/src/raise_cli/agents/windsurf.yaml +0 -0
  154. {raise_cli-2.3.0 → raise_cli-2.4.0}/src/raise_cli/artifacts/__init__.py +0 -0
  155. {raise_cli-2.3.0 → raise_cli-2.4.0}/src/raise_cli/artifacts/models.py +0 -0
  156. {raise_cli-2.3.0 → raise_cli-2.4.0}/src/raise_cli/artifacts/reader.py +0 -0
  157. {raise_cli-2.3.0 → raise_cli-2.4.0}/src/raise_cli/artifacts/renderer.py +0 -0
  158. {raise_cli-2.3.0 → raise_cli-2.4.0}/src/raise_cli/artifacts/story_design.py +0 -0
  159. {raise_cli-2.3.0 → raise_cli-2.4.0}/src/raise_cli/artifacts/writer.py +0 -0
  160. {raise_cli-2.3.0 → raise_cli-2.4.0}/src/raise_cli/backlog/__init__.py +0 -0
  161. {raise_cli-2.3.0 → raise_cli-2.4.0}/src/raise_cli/cli/__init__.py +0 -0
  162. {raise_cli-2.3.0 → raise_cli-2.4.0}/src/raise_cli/cli/commands/__init__.py +0 -0
  163. {raise_cli-2.3.0 → raise_cli-2.4.0}/src/raise_cli/cli/commands/adapters.py +0 -0
  164. {raise_cli-2.3.0 → raise_cli-2.4.0}/src/raise_cli/cli/commands/artifact.py +0 -0
  165. {raise_cli-2.3.0 → raise_cli-2.4.0}/src/raise_cli/cli/commands/backlog.py +0 -0
  166. {raise_cli-2.3.0 → raise_cli-2.4.0}/src/raise_cli/cli/commands/base.py +0 -0
  167. {raise_cli-2.3.0 → raise_cli-2.4.0}/src/raise_cli/cli/commands/doctor.py +0 -0
  168. {raise_cli-2.3.0 → raise_cli-2.4.0}/src/raise_cli/cli/commands/gate.py +0 -0
  169. {raise_cli-2.3.0 → raise_cli-2.4.0}/src/raise_cli/cli/commands/journal.py +0 -0
  170. {raise_cli-2.3.0 → raise_cli-2.4.0}/src/raise_cli/cli/commands/memory.py +0 -0
  171. {raise_cli-2.3.0 → raise_cli-2.4.0}/src/raise_cli/cli/commands/publish.py +0 -0
  172. {raise_cli-2.3.0 → raise_cli-2.4.0}/src/raise_cli/cli/commands/release.py +0 -0
  173. {raise_cli-2.3.0 → raise_cli-2.4.0}/src/raise_cli/cli/commands/skill.py +0 -0
  174. {raise_cli-2.3.0 → raise_cli-2.4.0}/src/raise_cli/cli/commands/skill_set.py +0 -0
  175. {raise_cli-2.3.0 → raise_cli-2.4.0}/src/raise_cli/cli/error_handler.py +0 -0
  176. {raise_cli-2.3.0 → raise_cli-2.4.0}/src/raise_cli/cli/extensions.py +0 -0
  177. {raise_cli-2.3.0 → raise_cli-2.4.0}/src/raise_cli/compat.py +0 -0
  178. {raise_cli-2.3.0 → raise_cli-2.4.0}/src/raise_cli/compliance/__init__.py +0 -0
  179. {raise_cli-2.3.0 → raise_cli-2.4.0}/src/raise_cli/compliance/controls.yaml +0 -0
  180. {raise_cli-2.3.0 → raise_cli-2.4.0}/src/raise_cli/compliance/evidence.py +0 -0
  181. {raise_cli-2.3.0 → raise_cli-2.4.0}/src/raise_cli/compliance/extractors/__init__.py +0 -0
  182. {raise_cli-2.3.0 → raise_cli-2.4.0}/src/raise_cli/compliance/extractors/git.py +0 -0
  183. {raise_cli-2.3.0 → raise_cli-2.4.0}/src/raise_cli/compliance/loader.py +0 -0
  184. {raise_cli-2.3.0 → raise_cli-2.4.0}/src/raise_cli/compliance/models.py +0 -0
  185. {raise_cli-2.3.0 → raise_cli-2.4.0}/src/raise_cli/config/__init__.py +0 -0
  186. {raise_cli-2.3.0 → raise_cli-2.4.0}/src/raise_cli/config/agent_plugin.py +0 -0
  187. {raise_cli-2.3.0 → raise_cli-2.4.0}/src/raise_cli/config/agent_registry.py +0 -0
  188. {raise_cli-2.3.0 → raise_cli-2.4.0}/src/raise_cli/config/agents.py +0 -0
  189. {raise_cli-2.3.0 → raise_cli-2.4.0}/src/raise_cli/config/ide.py +0 -0
  190. {raise_cli-2.3.0 → raise_cli-2.4.0}/src/raise_cli/config/paths.py +0 -0
  191. {raise_cli-2.3.0 → raise_cli-2.4.0}/src/raise_cli/config/settings.py +0 -0
  192. {raise_cli-2.3.0 → raise_cli-2.4.0}/src/raise_cli/context/__init__.py +0 -0
  193. {raise_cli-2.3.0 → raise_cli-2.4.0}/src/raise_cli/context/analyzers/models.py +0 -0
  194. {raise_cli-2.3.0 → raise_cli-2.4.0}/src/raise_cli/context/analyzers/protocol.py +0 -0
  195. {raise_cli-2.3.0 → raise_cli-2.4.0}/src/raise_cli/context/analyzers/python.py +0 -0
  196. {raise_cli-2.3.0 → raise_cli-2.4.0}/src/raise_cli/context/diff.py +0 -0
  197. {raise_cli-2.3.0 → raise_cli-2.4.0}/src/raise_cli/context/extractors/__init__.py +0 -0
  198. {raise_cli-2.3.0 → raise_cli-2.4.0}/src/raise_cli/context/extractors/skills.py +0 -0
  199. {raise_cli-2.3.0 → raise_cli-2.4.0}/src/raise_cli/context/extractors/structure.py +0 -0
  200. {raise_cli-2.3.0 → raise_cli-2.4.0}/src/raise_cli/context/loaders/__init__.py +0 -0
  201. {raise_cli-2.3.0 → raise_cli-2.4.0}/src/raise_cli/context/loaders/architecture.py +0 -0
  202. {raise_cli-2.3.0 → raise_cli-2.4.0}/src/raise_cli/context/loaders/artifacts.py +0 -0
  203. {raise_cli-2.3.0 → raise_cli-2.4.0}/src/raise_cli/context/loaders/components.py +0 -0
  204. {raise_cli-2.3.0 → raise_cli-2.4.0}/src/raise_cli/context/loaders/identity.py +0 -0
  205. {raise_cli-2.3.0 → raise_cli-2.4.0}/src/raise_cli/context/loaders/memory.py +0 -0
  206. {raise_cli-2.3.0 → raise_cli-2.4.0}/src/raise_cli/core/__init__.py +0 -0
  207. {raise_cli-2.3.0 → raise_cli-2.4.0}/src/raise_cli/core/text.py +0 -0
  208. {raise_cli-2.3.0 → raise_cli-2.4.0}/src/raise_cli/core/tools.py +0 -0
  209. {raise_cli-2.3.0 → raise_cli-2.4.0}/src/raise_cli/discovery/__init__.py +0 -0
  210. {raise_cli-2.3.0 → raise_cli-2.4.0}/src/raise_cli/discovery/drift.py +0 -0
  211. {raise_cli-2.3.0 → raise_cli-2.4.0}/src/raise_cli/discovery/scanner.py +0 -0
  212. {raise_cli-2.3.0 → raise_cli-2.4.0}/src/raise_cli/doctor/__init__.py +0 -0
  213. {raise_cli-2.3.0 → raise_cli-2.4.0}/src/raise_cli/doctor/checks/__init__.py +0 -0
  214. {raise_cli-2.3.0 → raise_cli-2.4.0}/src/raise_cli/doctor/checks/developer.py +0 -0
  215. {raise_cli-2.3.0 → raise_cli-2.4.0}/src/raise_cli/doctor/checks/environment.py +0 -0
  216. {raise_cli-2.3.0 → raise_cli-2.4.0}/src/raise_cli/doctor/checks/project.py +0 -0
  217. {raise_cli-2.3.0 → raise_cli-2.4.0}/src/raise_cli/doctor/fix.py +0 -0
  218. {raise_cli-2.3.0 → raise_cli-2.4.0}/src/raise_cli/doctor/models.py +0 -0
  219. {raise_cli-2.3.0 → raise_cli-2.4.0}/src/raise_cli/doctor/protocol.py +0 -0
  220. {raise_cli-2.3.0 → raise_cli-2.4.0}/src/raise_cli/doctor/registry.py +0 -0
  221. {raise_cli-2.3.0 → raise_cli-2.4.0}/src/raise_cli/doctor/report.py +0 -0
  222. {raise_cli-2.3.0 → raise_cli-2.4.0}/src/raise_cli/doctor/runner.py +0 -0
  223. {raise_cli-2.3.0 → raise_cli-2.4.0}/src/raise_cli/engines/__init__.py +0 -0
  224. {raise_cli-2.3.0 → raise_cli-2.4.0}/src/raise_cli/exceptions.py +0 -0
  225. {raise_cli-2.3.0 → raise_cli-2.4.0}/src/raise_cli/gates/__init__.py +0 -0
  226. {raise_cli-2.3.0 → raise_cli-2.4.0}/src/raise_cli/gates/builtin/__init__.py +0 -0
  227. {raise_cli-2.3.0 → raise_cli-2.4.0}/src/raise_cli/gates/builtin/_runner.py +0 -0
  228. {raise_cli-2.3.0 → raise_cli-2.4.0}/src/raise_cli/gates/builtin/coverage.py +0 -0
  229. {raise_cli-2.3.0 → raise_cli-2.4.0}/src/raise_cli/gates/builtin/format.py +0 -0
  230. {raise_cli-2.3.0 → raise_cli-2.4.0}/src/raise_cli/gates/builtin/lint.py +0 -0
  231. {raise_cli-2.3.0 → raise_cli-2.4.0}/src/raise_cli/gates/builtin/tests.py +0 -0
  232. {raise_cli-2.3.0 → raise_cli-2.4.0}/src/raise_cli/gates/builtin/types.py +0 -0
  233. {raise_cli-2.3.0 → raise_cli-2.4.0}/src/raise_cli/gates/hook.py +0 -0
  234. {raise_cli-2.3.0 → raise_cli-2.4.0}/src/raise_cli/gates/models.py +0 -0
  235. {raise_cli-2.3.0 → raise_cli-2.4.0}/src/raise_cli/gates/protocol.py +0 -0
  236. {raise_cli-2.3.0 → raise_cli-2.4.0}/src/raise_cli/gates/registry.py +0 -0
  237. {raise_cli-2.3.0 → raise_cli-2.4.0}/src/raise_cli/governance/__init__.py +0 -0
  238. {raise_cli-2.3.0 → raise_cli-2.4.0}/src/raise_cli/governance/extractor.py +0 -0
  239. {raise_cli-2.3.0 → raise_cli-2.4.0}/src/raise_cli/governance/models.py +0 -0
  240. {raise_cli-2.3.0 → raise_cli-2.4.0}/src/raise_cli/governance/parsers/__init__.py +0 -0
  241. {raise_cli-2.3.0 → raise_cli-2.4.0}/src/raise_cli/governance/parsers/_convert.py +0 -0
  242. {raise_cli-2.3.0 → raise_cli-2.4.0}/src/raise_cli/governance/parsers/adr.py +0 -0
  243. {raise_cli-2.3.0 → raise_cli-2.4.0}/src/raise_cli/governance/parsers/backlog.py +0 -0
  244. {raise_cli-2.3.0 → raise_cli-2.4.0}/src/raise_cli/governance/parsers/constitution.py +0 -0
  245. {raise_cli-2.3.0 → raise_cli-2.4.0}/src/raise_cli/governance/parsers/glossary.py +0 -0
  246. {raise_cli-2.3.0 → raise_cli-2.4.0}/src/raise_cli/governance/parsers/guardrails.py +0 -0
  247. {raise_cli-2.3.0 → raise_cli-2.4.0}/src/raise_cli/governance/parsers/prd.py +0 -0
  248. {raise_cli-2.3.0 → raise_cli-2.4.0}/src/raise_cli/governance/parsers/roadmap.py +0 -0
  249. {raise_cli-2.3.0 → raise_cli-2.4.0}/src/raise_cli/governance/parsers/vision.py +0 -0
  250. {raise_cli-2.3.0 → raise_cli-2.4.0}/src/raise_cli/graph/__init__.py +0 -0
  251. {raise_cli-2.3.0 → raise_cli-2.4.0}/src/raise_cli/graph/backends/__init__.py +0 -0
  252. {raise_cli-2.3.0 → raise_cli-2.4.0}/src/raise_cli/graph/backends/api.py +0 -0
  253. {raise_cli-2.3.0 → raise_cli-2.4.0}/src/raise_cli/graph/backends/dual.py +0 -0
  254. {raise_cli-2.3.0 → raise_cli-2.4.0}/src/raise_cli/graph/backends/pending.py +0 -0
  255. {raise_cli-2.3.0 → raise_cli-2.4.0}/src/raise_cli/handlers/__init__.py +0 -0
  256. {raise_cli-2.3.0 → raise_cli-2.4.0}/src/raise_cli/hooks/__init__.py +0 -0
  257. {raise_cli-2.3.0 → raise_cli-2.4.0}/src/raise_cli/hooks/builtin/__init__.py +0 -0
  258. {raise_cli-2.3.0 → raise_cli-2.4.0}/src/raise_cli/hooks/builtin/gate_bridge.py +0 -0
  259. {raise_cli-2.3.0 → raise_cli-2.4.0}/src/raise_cli/hooks/builtin/memory.py +0 -0
  260. {raise_cli-2.3.0 → raise_cli-2.4.0}/src/raise_cli/hooks/builtin/telemetry.py +0 -0
  261. {raise_cli-2.3.0 → raise_cli-2.4.0}/src/raise_cli/hooks/emitter.py +0 -0
  262. {raise_cli-2.3.0 → raise_cli-2.4.0}/src/raise_cli/hooks/protocol.py +0 -0
  263. {raise_cli-2.3.0 → raise_cli-2.4.0}/src/raise_cli/hooks/registry.py +0 -0
  264. {raise_cli-2.3.0 → raise_cli-2.4.0}/src/raise_cli/mcp/__init__.py +0 -0
  265. {raise_cli-2.3.0 → raise_cli-2.4.0}/src/raise_cli/mcp/bridge.py +0 -0
  266. {raise_cli-2.3.0 → raise_cli-2.4.0}/src/raise_cli/mcp/models.py +0 -0
  267. {raise_cli-2.3.0 → raise_cli-2.4.0}/src/raise_cli/mcp/registry.py +0 -0
  268. {raise_cli-2.3.0 → raise_cli-2.4.0}/src/raise_cli/mcp/schema.py +0 -0
  269. {raise_cli-2.3.0 → raise_cli-2.4.0}/src/raise_cli/memory/loader.py +0 -0
  270. {raise_cli-2.3.0 → raise_cli-2.4.0}/src/raise_cli/memory/migration.py +0 -0
  271. {raise_cli-2.3.0 → raise_cli-2.4.0}/src/raise_cli/onboarding/__init__.py +0 -0
  272. {raise_cli-2.3.0 → raise_cli-2.4.0}/src/raise_cli/onboarding/claudemd.py +0 -0
  273. {raise_cli-2.3.0 → raise_cli-2.4.0}/src/raise_cli/onboarding/conventions.py +0 -0
  274. {raise_cli-2.3.0 → raise_cli-2.4.0}/src/raise_cli/onboarding/detection.py +0 -0
  275. {raise_cli-2.3.0 → raise_cli-2.4.0}/src/raise_cli/onboarding/manifest.py +0 -0
  276. {raise_cli-2.3.0 → raise_cli-2.4.0}/src/raise_cli/onboarding/memory_md.py +0 -0
  277. {raise_cli-2.3.0 → raise_cli-2.4.0}/src/raise_cli/onboarding/migration.py +0 -0
  278. {raise_cli-2.3.0 → raise_cli-2.4.0}/src/raise_cli/onboarding/profile_portability.py +0 -0
  279. {raise_cli-2.3.0 → raise_cli-2.4.0}/src/raise_cli/onboarding/skill_conflict.py +0 -0
  280. {raise_cli-2.3.0 → raise_cli-2.4.0}/src/raise_cli/onboarding/skill_manifest.py +0 -0
  281. {raise_cli-2.3.0 → raise_cli-2.4.0}/src/raise_cli/onboarding/skills.py +0 -0
  282. {raise_cli-2.3.0 → raise_cli-2.4.0}/src/raise_cli/onboarding/workflows.py +0 -0
  283. {raise_cli-2.3.0 → raise_cli-2.4.0}/src/raise_cli/output/__init__.py +0 -0
  284. {raise_cli-2.3.0 → raise_cli-2.4.0}/src/raise_cli/output/console.py +0 -0
  285. {raise_cli-2.3.0 → raise_cli-2.4.0}/src/raise_cli/output/formatters/__init__.py +0 -0
  286. {raise_cli-2.3.0 → raise_cli-2.4.0}/src/raise_cli/output/formatters/adapters.py +0 -0
  287. {raise_cli-2.3.0 → raise_cli-2.4.0}/src/raise_cli/output/formatters/discover.py +0 -0
  288. {raise_cli-2.3.0 → raise_cli-2.4.0}/src/raise_cli/output/formatters/graph.py +0 -0
  289. {raise_cli-2.3.0 → raise_cli-2.4.0}/src/raise_cli/output/symbols.py +0 -0
  290. {raise_cli-2.3.0 → raise_cli-2.4.0}/src/raise_cli/publish/__init__.py +0 -0
  291. {raise_cli-2.3.0 → raise_cli-2.4.0}/src/raise_cli/publish/changelog.py +0 -0
  292. {raise_cli-2.3.0 → raise_cli-2.4.0}/src/raise_cli/publish/version.py +0 -0
  293. {raise_cli-2.3.0 → raise_cli-2.4.0}/src/raise_cli/rai_base/framework/__init__.py +0 -0
  294. {raise_cli-2.3.0 → raise_cli-2.4.0}/src/raise_cli/rai_base/framework/methodology.yaml +0 -0
  295. {raise_cli-2.3.0 → raise_cli-2.4.0}/src/raise_cli/rai_base/governance/__init__.py +0 -0
  296. {raise_cli-2.3.0 → raise_cli-2.4.0}/src/raise_cli/rai_base/governance/architecture/__init__.py +0 -0
  297. {raise_cli-2.3.0 → raise_cli-2.4.0}/src/raise_cli/rai_base/governance/architecture/domain-model.md +0 -0
  298. {raise_cli-2.3.0 → raise_cli-2.4.0}/src/raise_cli/rai_base/governance/architecture/domain-model.yaml +0 -0
  299. {raise_cli-2.3.0 → raise_cli-2.4.0}/src/raise_cli/rai_base/governance/architecture/system-context.md +0 -0
  300. {raise_cli-2.3.0 → raise_cli-2.4.0}/src/raise_cli/rai_base/governance/architecture/system-context.yaml +0 -0
  301. {raise_cli-2.3.0 → raise_cli-2.4.0}/src/raise_cli/rai_base/governance/architecture/system-design.md +0 -0
  302. {raise_cli-2.3.0 → raise_cli-2.4.0}/src/raise_cli/rai_base/governance/architecture/system-design.yaml +0 -0
  303. {raise_cli-2.3.0 → raise_cli-2.4.0}/src/raise_cli/rai_base/governance/backlog.md +0 -0
  304. {raise_cli-2.3.0 → raise_cli-2.4.0}/src/raise_cli/rai_base/governance/guardrails.md +0 -0
  305. {raise_cli-2.3.0 → raise_cli-2.4.0}/src/raise_cli/rai_base/governance/prd.md +0 -0
  306. {raise_cli-2.3.0 → raise_cli-2.4.0}/src/raise_cli/rai_base/governance/vision.md +0 -0
  307. {raise_cli-2.3.0 → raise_cli-2.4.0}/src/raise_cli/rai_base/identity/__init__.py +0 -0
  308. {raise_cli-2.3.0 → raise_cli-2.4.0}/src/raise_cli/rai_base/identity/core.md +0 -0
  309. {raise_cli-2.3.0 → raise_cli-2.4.0}/src/raise_cli/rai_base/identity/core.yaml +0 -0
  310. {raise_cli-2.3.0 → raise_cli-2.4.0}/src/raise_cli/rai_base/identity/perspective.md +0 -0
  311. {raise_cli-2.3.0 → raise_cli-2.4.0}/src/raise_cli/rai_base/memory/__init__.py +0 -0
  312. {raise_cli-2.3.0 → raise_cli-2.4.0}/src/raise_cli/rai_base/memory/patterns-base.jsonl +0 -0
  313. {raise_cli-2.3.0 → raise_cli-2.4.0}/src/raise_cli/schemas/__init__.py +0 -0
  314. {raise_cli-2.3.0 → raise_cli-2.4.0}/src/raise_cli/schemas/journal.py +0 -0
  315. {raise_cli-2.3.0 → raise_cli-2.4.0}/src/raise_cli/session/__init__.py +0 -0
  316. {raise_cli-2.3.0 → raise_cli-2.4.0}/src/raise_cli/session/bundle_data.py +0 -0
  317. {raise_cli-2.3.0 → raise_cli-2.4.0}/src/raise_cli/session/identity.py +0 -0
  318. {raise_cli-2.3.0 → raise_cli-2.4.0}/src/raise_cli/session/resolver.py +0 -0
  319. {raise_cli-2.3.0 → raise_cli-2.4.0}/src/raise_cli/skills/__init__.py +0 -0
  320. {raise_cli-2.3.0 → raise_cli-2.4.0}/src/raise_cli/skills/locator.py +0 -0
  321. {raise_cli-2.3.0 → raise_cli-2.4.0}/src/raise_cli/skills/name_checker.py +0 -0
  322. {raise_cli-2.3.0 → raise_cli-2.4.0}/src/raise_cli/skills/parser.py +0 -0
  323. {raise_cli-2.3.0 → raise_cli-2.4.0}/src/raise_cli/skills/scaffold.py +0 -0
  324. {raise_cli-2.3.0 → raise_cli-2.4.0}/src/raise_cli/skills/schema.py +0 -0
  325. {raise_cli-2.3.0 → raise_cli-2.4.0}/src/raise_cli/skills/skillsets.py +0 -0
  326. {raise_cli-2.3.0 → raise_cli-2.4.0}/src/raise_cli/skills/validator.py +0 -0
  327. {raise_cli-2.3.0 → raise_cli-2.4.0}/src/raise_cli/skills_base/contract-template.md +0 -0
  328. {raise_cli-2.3.0 → raise_cli-2.4.0}/src/raise_cli/skills_base/preamble.md +0 -0
  329. {raise_cli-2.3.0 → raise_cli-2.4.0}/src/raise_cli/skills_base/rai-epic-close/templates/retrospective.md +0 -0
  330. {raise_cli-2.3.0 → raise_cli-2.4.0}/src/raise_cli/skills_base/rai-epic-design/templates/design.md +0 -0
  331. {raise_cli-2.3.0 → raise_cli-2.4.0}/src/raise_cli/skills_base/rai-epic-design/templates/scope.md +0 -0
  332. {raise_cli-2.3.0 → raise_cli-2.4.0}/src/raise_cli/skills_base/rai-epic-plan/_references/sequencing-strategies.md +0 -0
  333. {raise_cli-2.3.0 → raise_cli-2.4.0}/src/raise_cli/skills_base/rai-epic-plan/templates/plan-section.md +0 -0
  334. {raise_cli-2.3.0 → raise_cli-2.4.0}/src/raise_cli/skills_base/rai-epic-start/templates/brief.md +0 -0
  335. {raise_cli-2.3.0 → raise_cli-2.4.0}/src/raise_cli/skills_base/rai-research/references/research-prompt-template.md +0 -0
  336. {raise_cli-2.3.0 → raise_cli-2.4.0}/src/raise_cli/skills_base/rai-story-design/references/tech-design-story-v2.md +0 -0
  337. {raise_cli-2.3.0 → raise_cli-2.4.0}/src/raise_cli/skills_base/rai-story-start/templates/story.md +0 -0
  338. {raise_cli-2.3.0 → raise_cli-2.4.0}/src/raise_cli/telemetry/__init__.py +0 -0
  339. {raise_cli-2.3.0 → raise_cli-2.4.0}/src/raise_cli/telemetry/schemas.py +0 -0
  340. {raise_cli-2.3.0 → raise_cli-2.4.0}/src/raise_cli/telemetry/writer.py +0 -0
  341. {raise_cli-2.3.0 → raise_cli-2.4.0}/src/raise_cli/tier/__init__.py +0 -0
  342. {raise_cli-2.3.0 → raise_cli-2.4.0}/src/raise_cli/tier/context.py +0 -0
  343. {raise_cli-2.3.0 → raise_cli-2.4.0}/src/raise_cli/viz/__init__.py +0 -0
  344. {raise_cli-2.3.0 → raise_cli-2.4.0}/src/raise_cli/viz/generator.py +0 -0
@@ -20,9 +20,13 @@ CLAUDE.local.md
20
20
  .raise/confluence-pages.yaml
21
21
  .raise/backlog/
22
22
 
23
- # RaiSE adapter configs (contain PII — use .example templates)
24
- .raise/jira.yaml
25
- .raise/confluence.yaml
23
+ # RaiSE adapter configs (declarative, PII-freeidentity in env vars)
24
+ # .raise/jira.yaml and .raise/confluence.yaml are tracked (shared config)
25
+ .raise/adapters/*.yaml
26
+ !.raise/adapters/*.yaml.example
27
+
28
+ # Dossier output (generated, not committed)
29
+ dev/output/
26
30
 
27
31
  # RaiSE derived artifacts (rebuild with `rai memory build`)
28
32
  .raise/rai/memory/index.json
@@ -95,12 +99,16 @@ dmypy.json
95
99
  # Legacy telemetry (should be in personal/, will migrate)
96
100
  .raise/rai/telemetry/
97
101
 
102
+ # Push tracking markers (per-environment, not shared)
103
+ .raise/rai/learnings/**/.pushed
104
+
98
105
  # MCP server config (contains API tokens)
99
106
  .mcp.json
100
107
 
101
108
  # Secrets & credentials
102
109
  .env
103
110
  .env.*
111
+ !.env.example
104
112
  *.pem
105
113
  *.key
106
114
  .pypirc
@@ -110,13 +118,8 @@ credentials.json
110
118
  .raise/mcp/
111
119
  !.raise/mcp/catalog.yaml
112
120
 
113
- # Website (Astro)
114
- site/node_modules/
115
- site/dist/
116
- site/.astro/
117
- site/.wrangler/
118
- docs/node_modules/
119
- docs/.astro/
121
+ # MkDocs build output
122
+ _site/
120
123
 
121
124
  # Issue analysis artifacts (PDFs, images — binary, no git value)
122
125
  dev/issues/**/*.pdf
@@ -127,3 +130,4 @@ dev/transcripts/
127
130
 
128
131
  # Prevent symlink artifacts from being tracked at root
129
132
  /es/
133
+ work/research/
@@ -0,0 +1,190 @@
1
+ Metadata-Version: 2.4
2
+ Name: raise-cli
3
+ Version: 2.4.0
4
+ Summary: RaiSE CLI - Reliable AI Software Engineering governance framework
5
+ Project-URL: Homepage, https://raiseframework.ai
6
+ Project-URL: Documentation, https://docs.raiseframework.ai
7
+ Project-URL: Repository, https://github.com/humansys/raise
8
+ Project-URL: Changelog, https://github.com/humansys/raise/blob/main/CHANGELOG.md
9
+ Author-email: Emilio Osorio <emilio@humansys.ai>
10
+ License: Apache-2.0
11
+ Keywords: ai,cli,governance,methodology,software-engineering
12
+ Classifier: Development Status :: 4 - Beta
13
+ Classifier: Intended Audience :: Developers
14
+ Classifier: License :: OSI Approved :: Apache Software License
15
+ Classifier: Programming Language :: Python :: 3
16
+ Classifier: Programming Language :: Python :: 3.12
17
+ Classifier: Programming Language :: Python :: 3.13
18
+ Classifier: Topic :: Software Development :: Libraries :: Application Frameworks
19
+ Classifier: Topic :: Software Development :: Quality Assurance
20
+ Requires-Python: >=3.12
21
+ Requires-Dist: logfire-api>=4.0
22
+ Requires-Dist: networkx>=3.6.1
23
+ Requires-Dist: pydantic-settings>=2.2.0
24
+ Requires-Dist: pydantic>=2.6.0
25
+ Requires-Dist: python-dotenv>=1.0.0
26
+ Requires-Dist: pyyaml>=6.0.1
27
+ Requires-Dist: raise-core
28
+ Requires-Dist: rich>=13.7.0
29
+ Requires-Dist: tree-sitter-javascript>=0.25.0
30
+ Requires-Dist: tree-sitter-language-pack>=0.13.0
31
+ Requires-Dist: tree-sitter-php>=0.24.1
32
+ Requires-Dist: tree-sitter-svelte>=1.0.2
33
+ Requires-Dist: tree-sitter-typescript>=0.23.2
34
+ Requires-Dist: tree-sitter>=0.25.2
35
+ Requires-Dist: typer>=0.12.0
36
+ Provides-Extra: atlassian
37
+ Requires-Dist: atlassian-python-api>=3.41.0; extra == 'atlassian'
38
+ Provides-Extra: confluence
39
+ Requires-Dist: atlassian-python-api>=3.41.0; extra == 'confluence'
40
+ Provides-Extra: csharp
41
+ Requires-Dist: tree-sitter-c-sharp>=0.23.1; extra == 'csharp'
42
+ Provides-Extra: jira
43
+ Requires-Dist: atlassian-python-api>=3.41.0; extra == 'jira'
44
+ Provides-Extra: mcp
45
+ Requires-Dist: mcp<2,>=1.26; extra == 'mcp'
46
+ Provides-Extra: observability
47
+ Requires-Dist: logfire>=4.0; extra == 'observability'
48
+ Description-Content-Type: text/markdown
49
+
50
+ # RaiSE CLI
51
+
52
+ **Reliable AI Software Engineering** — a lean methodology and deterministic CLI toolkit that turns AI coding assistants into disciplined collaborators.
53
+
54
+ [![PyPI](https://img.shields.io/pypi/v/raise-cli)](https://pypi.org/project/raise-cli/)
55
+ [![Python](https://img.shields.io/pypi/pyversions/raise-cli)](https://pypi.org/project/raise-cli/)
56
+ [![License](https://img.shields.io/pypi/l/raise-cli)](https://github.com/humansys/raise/blob/main/LICENSE)
57
+
58
+ ## What is RaiSE?
59
+
60
+ RaiSE provides **governance, memory, and structured workflows** for AI-assisted software engineering. You decide *what* to build. Rai (your AI partner) executes with accumulated memory and calibrated judgment. RaiSE provides the discipline that makes the collaboration reliable.
61
+
62
+ The result: AI that learns from your project, follows your rules, and compounds knowledge across sessions instead of starting fresh every time.
63
+
64
+ ## Install
65
+
66
+ ```bash
67
+ pip install raise-cli
68
+ ```
69
+
70
+ Optional integrations:
71
+
72
+ ```bash
73
+ # Jira + Confluence adapters
74
+ pip install "raise-cli[jira,confluence]"
75
+
76
+ # MCP server support
77
+ pip install "raise-cli[mcp]"
78
+
79
+ # All extras
80
+ pip install "raise-cli[jira,confluence,mcp,csharp,observability]"
81
+ ```
82
+
83
+ Requires Python 3.12 or 3.13.
84
+
85
+ ## Quick start
86
+
87
+ ```bash
88
+ # Initialize a project
89
+ rai init
90
+
91
+ # Start a session (loads context, memory, proposes work)
92
+ rai session start --project . --context
93
+
94
+ # Build the knowledge graph
95
+ rai graph build
96
+ ```
97
+
98
+ Then work through skills in your AI assistant (Claude Code, Cursor, Windsurf):
99
+
100
+ ```
101
+ /rai-session-start → Load context, propose focused work
102
+ /rai-story-start → Scope a piece of work
103
+ /rai-story-plan → Decompose into tasks
104
+ /rai-story-implement → TDD: test, code, verify, commit
105
+ /rai-story-review → Extract learnings
106
+ /rai-story-close → Merge and clean up
107
+ /rai-session-close → Capture session outcomes
108
+ ```
109
+
110
+ ## Key features
111
+
112
+ ### Structured workflows
113
+ 44 skills covering the full SDLC — epic, story, bugfix, discovery, session management, documentation, and release.
114
+
115
+ ### Knowledge graph
116
+ Project context, patterns, and cross-session memory — queryable and persistent.
117
+
118
+ ```bash
119
+ rai graph query "testing patterns" --types pattern --limit 5
120
+ ```
121
+
122
+ ### Backlog management
123
+ Built-in adapters for Jira and filesystem-backed backlogs.
124
+
125
+ ```bash
126
+ rai backlog search "project = MYPROJECT AND status = 'In Progress'"
127
+ rai backlog create "Fix pagination bug" -p MYPROJECT -t Bug
128
+ rai backlog transition MYPROJECT-123 done
129
+ ```
130
+
131
+ ### Documentation publishing
132
+ Publish to Confluence, local filesystem, or both (dual-write).
133
+
134
+ ```bash
135
+ rai docs publish adr --title "ADR-045: Auth Architecture"
136
+ ```
137
+
138
+ ### Quality gates
139
+ Automated checks before commits and releases.
140
+
141
+ ```bash
142
+ rai gate check --all # Run all gates
143
+ rai release check # 10-point release checklist
144
+ ```
145
+
146
+ ### Session continuity
147
+ Memory that compounds across sessions — patterns, calibration, coaching corrections.
148
+
149
+ ```bash
150
+ rai session start --context # Loads everything from prior sessions
151
+ rai pattern add "Always validate frontmatter before writing"
152
+ ```
153
+
154
+ ### Multi-language discovery
155
+ Scan codebases and build knowledge graphs from: Python, TypeScript, JavaScript, C#, PHP, Dart, Svelte.
156
+
157
+ ```bash
158
+ rai discover scan src/ --language python --output summary
159
+ ```
160
+
161
+ ## CLI commands
162
+
163
+ 72 subcommands across 17 groups:
164
+
165
+ | Group | Commands |
166
+ |-------|----------|
167
+ | `init` | Initialize project governance |
168
+ | `session` | start, close, context, journal, doctor |
169
+ | `graph` | build, query, context |
170
+ | `pattern` | add, query |
171
+ | `backlog` | create, get, search, transition, update, link, comment |
172
+ | `docs` | publish, get, search |
173
+ | `skill` | list, validate, check-name, scaffold |
174
+ | `discover` | scan |
175
+ | `adapter` | list, check, validate, status |
176
+ | `mcp` | list, health, tools, call, install, scaffold |
177
+ | `gate` | list, check |
178
+ | `doctor` | diagnostics with --fix auto-remediation |
179
+ | `release` | check, publish |
180
+
181
+ ## Documentation
182
+
183
+ - **[Getting Started](https://docs.raiseframework.ai/)** — Install and run your first session
184
+ - **[Guides](https://docs.raiseframework.ai/guides/first-story/)** — Your First Story, Configuring Integrations, Bugfix Lifecycle
185
+ - **[CLI Reference](https://docs.raiseframework.ai/cli/)** — Every command, flag, and option
186
+ - **[Concepts](https://docs.raiseframework.ai/concepts/)** — Memory, Skills, Governance, Knowledge Graph
187
+
188
+ ## License
189
+
190
+ Apache 2.0 — see [LICENSE](https://github.com/humansys/raise/blob/main/LICENSE).
@@ -0,0 +1,141 @@
1
+ # RaiSE CLI
2
+
3
+ **Reliable AI Software Engineering** — a lean methodology and deterministic CLI toolkit that turns AI coding assistants into disciplined collaborators.
4
+
5
+ [![PyPI](https://img.shields.io/pypi/v/raise-cli)](https://pypi.org/project/raise-cli/)
6
+ [![Python](https://img.shields.io/pypi/pyversions/raise-cli)](https://pypi.org/project/raise-cli/)
7
+ [![License](https://img.shields.io/pypi/l/raise-cli)](https://github.com/humansys/raise/blob/main/LICENSE)
8
+
9
+ ## What is RaiSE?
10
+
11
+ RaiSE provides **governance, memory, and structured workflows** for AI-assisted software engineering. You decide *what* to build. Rai (your AI partner) executes with accumulated memory and calibrated judgment. RaiSE provides the discipline that makes the collaboration reliable.
12
+
13
+ The result: AI that learns from your project, follows your rules, and compounds knowledge across sessions instead of starting fresh every time.
14
+
15
+ ## Install
16
+
17
+ ```bash
18
+ pip install raise-cli
19
+ ```
20
+
21
+ Optional integrations:
22
+
23
+ ```bash
24
+ # Jira + Confluence adapters
25
+ pip install "raise-cli[jira,confluence]"
26
+
27
+ # MCP server support
28
+ pip install "raise-cli[mcp]"
29
+
30
+ # All extras
31
+ pip install "raise-cli[jira,confluence,mcp,csharp,observability]"
32
+ ```
33
+
34
+ Requires Python 3.12 or 3.13.
35
+
36
+ ## Quick start
37
+
38
+ ```bash
39
+ # Initialize a project
40
+ rai init
41
+
42
+ # Start a session (loads context, memory, proposes work)
43
+ rai session start --project . --context
44
+
45
+ # Build the knowledge graph
46
+ rai graph build
47
+ ```
48
+
49
+ Then work through skills in your AI assistant (Claude Code, Cursor, Windsurf):
50
+
51
+ ```
52
+ /rai-session-start → Load context, propose focused work
53
+ /rai-story-start → Scope a piece of work
54
+ /rai-story-plan → Decompose into tasks
55
+ /rai-story-implement → TDD: test, code, verify, commit
56
+ /rai-story-review → Extract learnings
57
+ /rai-story-close → Merge and clean up
58
+ /rai-session-close → Capture session outcomes
59
+ ```
60
+
61
+ ## Key features
62
+
63
+ ### Structured workflows
64
+ 44 skills covering the full SDLC — epic, story, bugfix, discovery, session management, documentation, and release.
65
+
66
+ ### Knowledge graph
67
+ Project context, patterns, and cross-session memory — queryable and persistent.
68
+
69
+ ```bash
70
+ rai graph query "testing patterns" --types pattern --limit 5
71
+ ```
72
+
73
+ ### Backlog management
74
+ Built-in adapters for Jira and filesystem-backed backlogs.
75
+
76
+ ```bash
77
+ rai backlog search "project = MYPROJECT AND status = 'In Progress'"
78
+ rai backlog create "Fix pagination bug" -p MYPROJECT -t Bug
79
+ rai backlog transition MYPROJECT-123 done
80
+ ```
81
+
82
+ ### Documentation publishing
83
+ Publish to Confluence, local filesystem, or both (dual-write).
84
+
85
+ ```bash
86
+ rai docs publish adr --title "ADR-045: Auth Architecture"
87
+ ```
88
+
89
+ ### Quality gates
90
+ Automated checks before commits and releases.
91
+
92
+ ```bash
93
+ rai gate check --all # Run all gates
94
+ rai release check # 10-point release checklist
95
+ ```
96
+
97
+ ### Session continuity
98
+ Memory that compounds across sessions — patterns, calibration, coaching corrections.
99
+
100
+ ```bash
101
+ rai session start --context # Loads everything from prior sessions
102
+ rai pattern add "Always validate frontmatter before writing"
103
+ ```
104
+
105
+ ### Multi-language discovery
106
+ Scan codebases and build knowledge graphs from: Python, TypeScript, JavaScript, C#, PHP, Dart, Svelte.
107
+
108
+ ```bash
109
+ rai discover scan src/ --language python --output summary
110
+ ```
111
+
112
+ ## CLI commands
113
+
114
+ 72 subcommands across 17 groups:
115
+
116
+ | Group | Commands |
117
+ |-------|----------|
118
+ | `init` | Initialize project governance |
119
+ | `session` | start, close, context, journal, doctor |
120
+ | `graph` | build, query, context |
121
+ | `pattern` | add, query |
122
+ | `backlog` | create, get, search, transition, update, link, comment |
123
+ | `docs` | publish, get, search |
124
+ | `skill` | list, validate, check-name, scaffold |
125
+ | `discover` | scan |
126
+ | `adapter` | list, check, validate, status |
127
+ | `mcp` | list, health, tools, call, install, scaffold |
128
+ | `gate` | list, check |
129
+ | `doctor` | diagnostics with --fix auto-remediation |
130
+ | `release` | check, publish |
131
+
132
+ ## Documentation
133
+
134
+ - **[Getting Started](https://docs.raiseframework.ai/)** — Install and run your first session
135
+ - **[Guides](https://docs.raiseframework.ai/guides/first-story/)** — Your First Story, Configuring Integrations, Bugfix Lifecycle
136
+ - **[CLI Reference](https://docs.raiseframework.ai/cli/)** — Every command, flag, and option
137
+ - **[Concepts](https://docs.raiseframework.ai/concepts/)** — Memory, Skills, Governance, Knowledge Graph
138
+
139
+ ## License
140
+
141
+ Apache 2.0 — see [LICENSE](https://github.com/humansys/raise/blob/main/LICENSE).
@@ -0,0 +1,135 @@
1
+ [project]
2
+ name = "raise-cli"
3
+ version = "2.4.0"
4
+ description = "RaiSE CLI - Reliable AI Software Engineering governance framework"
5
+ authors = [
6
+ {name = "Emilio Osorio", email = "emilio@humansys.ai"}
7
+ ]
8
+ readme = "README.md"
9
+ license = {text = "Apache-2.0"}
10
+ requires-python = ">=3.12"
11
+ keywords = ["ai", "governance", "cli", "software-engineering", "methodology"]
12
+ classifiers = [
13
+ "Development Status :: 4 - Beta",
14
+ "Intended Audience :: Developers",
15
+ "License :: OSI Approved :: Apache Software License",
16
+ "Programming Language :: Python :: 3",
17
+ "Programming Language :: Python :: 3.12",
18
+ "Programming Language :: Python :: 3.13",
19
+ "Topic :: Software Development :: Quality Assurance",
20
+ "Topic :: Software Development :: Libraries :: Application Frameworks",
21
+ ]
22
+
23
+ dependencies = [
24
+ "raise-core",
25
+ "typer>=0.12.0",
26
+ "rich>=13.7.0",
27
+ "pydantic>=2.6.0",
28
+ "pydantic-settings>=2.2.0",
29
+ "python-dotenv>=1.0.0",
30
+ "pyyaml>=6.0.1",
31
+ "networkx>=3.6.1",
32
+ "tree-sitter>=0.25.2",
33
+ "tree-sitter-typescript>=0.23.2",
34
+ "tree-sitter-javascript>=0.25.0",
35
+ "tree-sitter-php>=0.24.1",
36
+ "tree-sitter-svelte>=1.0.2",
37
+ "tree-sitter-language-pack>=0.13.0",
38
+ "logfire-api>=4.0",
39
+ ]
40
+
41
+ [project.optional-dependencies]
42
+ mcp = [
43
+ "mcp>=1.26,<2",
44
+ ]
45
+ observability = [
46
+ "logfire>=4.0",
47
+ ]
48
+ csharp = [
49
+ "tree-sitter-c-sharp>=0.23.1",
50
+ ]
51
+ atlassian = [
52
+ "atlassian-python-api>=3.41.0",
53
+ ]
54
+ confluence = [
55
+ "atlassian-python-api>=3.41.0",
56
+ ]
57
+ jira = [
58
+ "atlassian-python-api>=3.41.0",
59
+ ]
60
+
61
+ [project.urls]
62
+ Homepage = "https://raiseframework.ai"
63
+ Documentation = "https://docs.raiseframework.ai"
64
+ Repository = "https://github.com/humansys/raise"
65
+ Changelog = "https://github.com/humansys/raise/blob/main/CHANGELOG.md"
66
+
67
+ [project.scripts]
68
+ rai = "raise_cli.cli.main:app"
69
+
70
+ [project.entry-points."rai.governance.parsers"]
71
+ prd = "raise_cli.governance.parsers.prd:PrdParser"
72
+ vision = "raise_cli.governance.parsers.vision:VisionParser"
73
+ constitution = "raise_cli.governance.parsers.constitution:ConstitutionParser"
74
+ roadmap = "raise_cli.governance.parsers.roadmap:RoadmapParser"
75
+ backlog = "raise_cli.governance.parsers.backlog:BacklogParser"
76
+ epic_scope = "raise_cli.governance.parsers.epic:EpicScopeParser"
77
+ adr = "raise_cli.governance.parsers.adr:AdrParser"
78
+ guardrails = "raise_cli.governance.parsers.guardrails:GuardrailsParser"
79
+ glossary = "raise_cli.governance.parsers.glossary:GlossaryParser"
80
+
81
+ [project.entry-points."rai.hooks"]
82
+ telemetry = "raise_cli.hooks.builtin.telemetry:TelemetryHook"
83
+ gate-bridge = "raise_cli.hooks.builtin.gate_bridge:GateBridgeHook"
84
+ memory-sync = "raise_cli.hooks.builtin.memory:MemoryMdSyncHook"
85
+
86
+ [project.entry-points."rai.gates"]
87
+ tests = "raise_cli.gates.builtin.tests:TestGate"
88
+ types = "raise_cli.gates.builtin.types:TypeGate"
89
+ lint = "raise_cli.gates.builtin.lint:LintGate"
90
+ coverage = "raise_cli.gates.builtin.coverage:CoverageGate"
91
+ format = "raise_cli.gates.builtin.format:FormatGate"
92
+
93
+ [project.entry-points."rai.doctor.checks"]
94
+ environment = "raise_cli.doctor.checks.environment:EnvironmentCheck"
95
+ project = "raise_cli.doctor.checks.project:ProjectCheck"
96
+ developer = "raise_cli.doctor.checks.developer:DeveloperCheck"
97
+ adapters = "raise_cli.doctor.checks.adapters:AdapterDoctorCheck"
98
+
99
+ [project.entry-points."rai.adapters.pm"]
100
+ filesystem = "raise_cli.adapters.filesystem:FilesystemPMAdapter"
101
+ jira = "raise_cli.adapters.jira_adapter:PythonApiJiraAdapter"
102
+
103
+ [project.entry-points."rai.docs.targets"]
104
+ filesystem = "raise_cli.adapters.filesystem_docs:FilesystemDocsTarget"
105
+ confluence = "raise_cli.adapters.confluence_adapter:PythonApiConfluenceAdapter"
106
+
107
+ [project.entry-points."rai.graph.backends"]
108
+ local = "raise_core.graph.backends.filesystem:FilesystemGraphBackend"
109
+
110
+ [project.entry-points."rai.session.state_deriver"]
111
+ git = "raise_cli.session.derive:GitStateDeriver"
112
+
113
+ [project.entry-points."rai.session.registry"]
114
+ local = "raise_cli.session.registry:LocalSessionRegistry"
115
+
116
+ [project.entry-points."rai.session.monitor"]
117
+ local = "raise_cli.session.monitor:LocalWorkstreamMonitor"
118
+
119
+ [tool.uv.sources]
120
+ raise-core = { workspace = true }
121
+
122
+ [build-system]
123
+ requires = ["hatchling"]
124
+ build-backend = "hatchling.build"
125
+
126
+ [tool.hatch.build.targets.wheel]
127
+ packages = ["src/raise_cli"]
128
+
129
+ [tool.hatch.build.targets.sdist]
130
+ include = [
131
+ "/src/raise_cli/",
132
+ "/LICENSE",
133
+ "/README.md",
134
+ "/pyproject.toml",
135
+ ]
@@ -5,6 +5,8 @@ A governance framework for AI-assisted software development.
5
5
 
6
6
  from __future__ import annotations
7
7
 
8
+ from importlib.metadata import version as _pkg_version
9
+
8
10
  from raise_cli.exceptions import (
9
11
  ArtifactNotFoundError,
10
12
  ConfigurationError,
@@ -17,7 +19,7 @@ from raise_cli.exceptions import (
17
19
  ValidationError,
18
20
  )
19
21
 
20
- __version__ = "2.3.0"
22
+ __version__ = _pkg_version("raise-cli")
21
23
  __author__ = "Emilio Osorio"
22
24
  __license__ = "MIT"
23
25
 
@@ -1,6 +1,6 @@
1
1
  """Adapter contracts and registry for raise-cli extensibility.
2
2
 
3
- Public API: 7 Protocols + 15 boundary models + 2 sync wrappers
3
+ Public API: 7 Protocols + 16 boundary models + 2 sync wrappers
4
4
  + 5 registry functions + 5 group constants.
5
5
  KnowledgeGraphBackend + BackendHealth moved to raise_core (E275).
6
6
 
@@ -22,6 +22,7 @@ from raise_cli.adapters.models import (
22
22
  PageContent,
23
23
  PageSummary,
24
24
  PublishResult,
25
+ SpaceInfo,
25
26
  )
26
27
  from raise_cli.adapters.protocols import (
27
28
  AsyncDocumentationTarget,
@@ -76,6 +77,7 @@ __all__ = [
76
77
  "PageContent",
77
78
  "PageSummary",
78
79
  "PublishResult",
80
+ "SpaceInfo",
79
81
  # Registry functions
80
82
  "get_doc_targets",
81
83
  "get_governance_parsers",
@@ -0,0 +1,92 @@
1
+ """Composite documentation target — delegates to multiple targets.
2
+
3
+ Publishes to ALL targets (e.g. filesystem + Confluence). Reads (get_page,
4
+ search, health) delegate to the remote target (last in list — typically Confluence).
5
+
6
+ Filesystem is first for durability: local copy always saved.
7
+ Result prefers last successful publish (remote URL over local path).
8
+ If remote fails, returns success with warning (local copy is the guarantee).
9
+
10
+ RAISE-1051 (S1051.7)
11
+ """
12
+
13
+ from __future__ import annotations
14
+
15
+ import logging
16
+ from typing import Any
17
+
18
+ from raise_cli.adapters.models.docs import PageContent, PageSummary, PublishResult
19
+ from raise_cli.adapters.models.health import AdapterHealth
20
+
21
+ logger = logging.getLogger(__name__)
22
+
23
+
24
+ class CompositeDocTarget:
25
+ """Delegates to multiple DocumentationTargets.
26
+
27
+ - publish: calls all targets; returns last successful result (remote preferred)
28
+ - get_page / search / health: delegate to remote (last) target
29
+ - Filesystem first for durability, Confluence last for the URL
30
+ """
31
+
32
+ def __init__(self, targets: list[Any]) -> None:
33
+ self._targets = targets
34
+ self._remote = targets[-1] # last target = remote (Confluence)
35
+
36
+ def can_publish(self, doc_type: str, metadata: dict[str, Any]) -> bool:
37
+ """True if any wrapped target can publish."""
38
+ return any(t.can_publish(doc_type, metadata) for t in self._targets)
39
+
40
+ def publish(
41
+ self, doc_type: str, content: str, metadata: dict[str, Any]
42
+ ) -> PublishResult:
43
+ """Publish to all accepting targets. Return best result.
44
+
45
+ Prefers last successful result (remote URL). If remote fails but
46
+ local succeeded, returns success with sync-pending warning.
47
+ """
48
+ results: list[PublishResult] = []
49
+ failures: list[str] = []
50
+
51
+ for target in self._targets:
52
+ if target.can_publish(doc_type, metadata):
53
+ try:
54
+ result: PublishResult = target.publish(doc_type, content, metadata)
55
+ results.append(result)
56
+ if not result.success:
57
+ failures.append(result.message)
58
+ except Exception as exc:
59
+ logger.warning("Composite publish failed on %s: %s", type(target).__name__, exc)
60
+ failures.append(str(exc))
61
+
62
+ if not results:
63
+ return PublishResult(
64
+ success=False, message="No target accepted this doc_type"
65
+ )
66
+
67
+ # Prefer last successful result (remote URL over local path)
68
+ successful = [r for r in results if r.success]
69
+ if successful:
70
+ best = successful[-1] # last success = remote if available
71
+ if failures:
72
+ return PublishResult(
73
+ success=True,
74
+ url=best.url,
75
+ message=f"{best.message} (sync pending: {'; '.join(failures)})",
76
+ )
77
+ return best
78
+
79
+ # All failed — return first failure
80
+ return results[0]
81
+
82
+ def get_page(self, identifier: str) -> PageContent:
83
+ """Delegate to remote (last) target."""
84
+ return self._remote.get_page(identifier)
85
+
86
+ def search(self, query: str, limit: int = 10) -> list[PageSummary]:
87
+ """Delegate to remote (last) target."""
88
+ return self._remote.search(query, limit=limit)
89
+
90
+ def health(self) -> AdapterHealth:
91
+ """Delegate to remote (last) target."""
92
+ return self._remote.health()