raise-cli 2.4.0a2__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.0a2 → raise_cli-3.0.0a1}/.gitignore +16 -2
  2. raise_cli-3.0.0a1/PKG-INFO +193 -0
  3. raise_cli-3.0.0a1/README.md +141 -0
  4. {raise_cli-2.4.0a2 → raise_cli-3.0.0a1}/pyproject.toml +15 -3
  5. {raise_cli-2.4.0a2 → raise_cli-3.0.0a1}/src/raise_cli/adapters/confluence_adapter.py +30 -21
  6. {raise_cli-2.4.0a2 → raise_cli-3.0.0a1}/src/raise_cli/adapters/confluence_client.py +50 -9
  7. raise_cli-3.0.0a1/src/raise_cli/adapters/confluence_config_gen.py +165 -0
  8. raise_cli-3.0.0a1/src/raise_cli/adapters/confluence_discovery.py +258 -0
  9. raise_cli-3.0.0a1/src/raise_cli/adapters/filesystem_adapter.py +98 -0
  10. {raise_cli-2.4.0a2 → raise_cli-3.0.0a1}/src/raise_cli/adapters/filesystem_docs.py +55 -0
  11. {raise_cli-2.4.0a2 → raise_cli-3.0.0a1}/src/raise_cli/adapters/jira_adapter.py +8 -1
  12. {raise_cli-2.4.0a2 → raise_cli-3.0.0a1}/src/raise_cli/adapters/jira_client.py +111 -7
  13. raise_cli-3.0.0a1/src/raise_cli/adapters/jira_config_gen.py +90 -0
  14. raise_cli-3.0.0a1/src/raise_cli/adapters/jira_discovery.py +103 -0
  15. {raise_cli-2.4.0a2 → raise_cli-3.0.0a1}/src/raise_cli/adapters/models/pm.py +51 -1
  16. {raise_cli-2.4.0a2 → raise_cli-3.0.0a1}/src/raise_cli/adapters/registry.py +23 -0
  17. {raise_cli-2.4.0a2 → raise_cli-3.0.0a1}/src/raise_cli/backlog/sync.py +3 -14
  18. {raise_cli-2.4.0a2 → raise_cli-3.0.0a1}/src/raise_cli/cli/commands/_resolve.py +9 -0
  19. {raise_cli-2.4.0a2 → raise_cli-3.0.0a1}/src/raise_cli/cli/commands/discover.py +18 -18
  20. {raise_cli-2.4.0a2 → raise_cli-3.0.0a1}/src/raise_cli/cli/commands/docs.py +18 -4
  21. {raise_cli-2.4.0a2 → raise_cli-3.0.0a1}/src/raise_cli/cli/commands/graph.py +18 -1
  22. {raise_cli-2.4.0a2 → raise_cli-3.0.0a1}/src/raise_cli/cli/commands/info.py +1 -1
  23. {raise_cli-2.4.0a2 → raise_cli-3.0.0a1}/src/raise_cli/cli/commands/init.py +49 -25
  24. raise_cli-3.0.0a1/src/raise_cli/cli/commands/learn.py +266 -0
  25. {raise_cli-2.4.0a2 → raise_cli-3.0.0a1}/src/raise_cli/cli/commands/mcp.py +16 -7
  26. {raise_cli-2.4.0a2 → raise_cli-3.0.0a1}/src/raise_cli/cli/commands/pattern.py +2 -2
  27. {raise_cli-2.4.0a2 → raise_cli-3.0.0a1}/src/raise_cli/cli/commands/profile.py +1 -1
  28. {raise_cli-2.4.0a2 → raise_cli-3.0.0a1}/src/raise_cli/cli/commands/release.py +20 -3
  29. {raise_cli-2.4.0a2 → raise_cli-3.0.0a1}/src/raise_cli/cli/commands/session.py +155 -19
  30. {raise_cli-2.4.0a2 → raise_cli-3.0.0a1}/src/raise_cli/cli/commands/signal.py +25 -20
  31. {raise_cli-2.4.0a2 → raise_cli-3.0.0a1}/src/raise_cli/cli/main.py +4 -0
  32. {raise_cli-2.4.0a2 → raise_cli-3.0.0a1}/src/raise_cli/context/analyzers/__init__.py +2 -1
  33. raise_cli-3.0.0a1/src/raise_cli/context/analyzers/signals.py +165 -0
  34. raise_cli-3.0.0a1/src/raise_cli/context/analyzers/typescript.py +469 -0
  35. {raise_cli-2.4.0a2 → raise_cli-3.0.0a1}/src/raise_cli/context/builder.py +24 -6
  36. {raise_cli-2.4.0a2 → raise_cli-3.0.0a1}/src/raise_cli/context/extractors/relationships.py +12 -3
  37. {raise_cli-2.4.0a2 → raise_cli-3.0.0a1}/src/raise_cli/core/files.py +19 -0
  38. {raise_cli-2.4.0a2 → raise_cli-3.0.0a1}/src/raise_cli/discovery/analyzer.py +1 -1
  39. raise_cli-3.0.0a1/src/raise_cli/doctor/checks/adapters.py +404 -0
  40. {raise_cli-2.4.0a2 → raise_cli-3.0.0a1}/src/raise_cli/governance/parsers/epic.py +2 -2
  41. {raise_cli-2.4.0a2 → raise_cli-3.0.0a1}/src/raise_cli/memory/__init__.py +1 -1
  42. raise_cli-3.0.0a1/src/raise_cli/memory/learning.py +122 -0
  43. {raise_cli-2.4.0a2 → raise_cli-3.0.0a1}/src/raise_cli/memory/models.py +4 -0
  44. raise_cli-3.0.0a1/src/raise_cli/memory/push.py +101 -0
  45. {raise_cli-2.4.0a2 → raise_cli-3.0.0a1}/src/raise_cli/memory/writer.py +9 -10
  46. {raise_cli-2.4.0a2 → raise_cli-3.0.0a1}/src/raise_cli/onboarding/bootstrap.py +1 -1
  47. {raise_cli-2.4.0a2 → raise_cli-3.0.0a1}/src/raise_cli/onboarding/governance.py +1 -1
  48. {raise_cli-2.4.0a2 → raise_cli-3.0.0a1}/src/raise_cli/onboarding/profile.py +7 -5
  49. {raise_cli-2.4.0a2 → raise_cli-3.0.0a1}/src/raise_cli/output/formatters/skill.py +1 -1
  50. raise_cli-3.0.0a1/src/raise_cli/pipeline/__init__.py +32 -0
  51. raise_cli-3.0.0a1/src/raise_cli/pipeline/_telemetry.py +61 -0
  52. raise_cli-3.0.0a1/src/raise_cli/pipeline/cli.py +352 -0
  53. raise_cli-3.0.0a1/src/raise_cli/pipeline/dispatch.py +307 -0
  54. raise_cli-3.0.0a1/src/raise_cli/pipeline/engine.py +372 -0
  55. raise_cli-3.0.0a1/src/raise_cli/pipeline/executor.py +237 -0
  56. raise_cli-3.0.0a1/src/raise_cli/pipeline/gates.py +178 -0
  57. raise_cli-3.0.0a1/src/raise_cli/pipeline/loader.py +143 -0
  58. raise_cli-3.0.0a1/src/raise_cli/pipeline/mcp_server.py +1132 -0
  59. raise_cli-3.0.0a1/src/raise_cli/pipeline/pipelines_base/bugfix.yaml +48 -0
  60. raise_cli-3.0.0a1/src/raise_cli/pipeline/pipelines_base/epic.yaml +42 -0
  61. raise_cli-3.0.0a1/src/raise_cli/pipeline/pipelines_base/hotfix.yaml +29 -0
  62. raise_cli-3.0.0a1/src/raise_cli/pipeline/pipelines_base/story.yaml +121 -0
  63. raise_cli-3.0.0a1/src/raise_cli/pipeline/prompt.py +193 -0
  64. raise_cli-3.0.0a1/src/raise_cli/pipeline/state.py +131 -0
  65. raise_cli-3.0.0a1/src/raise_cli/pipeline/templates/adversarial-ar.md +35 -0
  66. raise_cli-3.0.0a1/src/raise_cli/pipeline/templates/adversarial-qr.md +44 -0
  67. raise_cli-3.0.0a1/src/raise_cli/pipeline/worktree.py +118 -0
  68. {raise_cli-2.4.0a2 → raise_cli-3.0.0a1}/src/raise_cli/publish/check.py +14 -3
  69. {raise_cli-2.4.0a2 → raise_cli-3.0.0a1}/src/raise_cli/rai_base/__init__.py +1 -1
  70. {raise_cli-2.4.0a2 → raise_cli-3.0.0a1}/src/raise_cli/schemas/session_state.py +61 -1
  71. {raise_cli-2.4.0a2 → raise_cli-3.0.0a1}/src/raise_cli/session/bundle.py +38 -6
  72. {raise_cli-2.4.0a2 → raise_cli-3.0.0a1}/src/raise_cli/session/bundle_formatters.py +19 -6
  73. {raise_cli-2.4.0a2 → raise_cli-3.0.0a1}/src/raise_cli/session/close.py +28 -8
  74. raise_cli-3.0.0a1/src/raise_cli/session/derive.py +235 -0
  75. raise_cli-3.0.0a1/src/raise_cli/session/doctor.py +364 -0
  76. {raise_cli-2.4.0a2 → raise_cli-3.0.0a1}/src/raise_cli/session/index.py +9 -5
  77. {raise_cli-2.4.0a2 → raise_cli-3.0.0a1}/src/raise_cli/session/journal.py +3 -3
  78. raise_cli-3.0.0a1/src/raise_cli/session/monitor.py +162 -0
  79. {raise_cli-2.4.0a2 → raise_cli-3.0.0a1}/src/raise_cli/session/prefix.py +4 -3
  80. raise_cli-3.0.0a1/src/raise_cli/session/protocols.py +70 -0
  81. raise_cli-3.0.0a1/src/raise_cli/session/registry.py +197 -0
  82. {raise_cli-2.4.0a2 → raise_cli-3.0.0a1}/src/raise_cli/session/state.py +41 -5
  83. {raise_cli-2.4.0a2 → raise_cli-3.0.0a1}/src/raise_cli/skills_base/__init__.py +32 -10
  84. raise_cli-3.0.0a1/src/raise_cli/skills_base/rai-adapter-setup/SKILL.md +221 -0
  85. raise_cli-3.0.0a1/src/raise_cli/skills_base/rai-architecture-review/SKILL.md +168 -0
  86. raise_cli-3.0.0a1/src/raise_cli/skills_base/rai-bugfix-analyse/SKILL.md +136 -0
  87. raise_cli-3.0.0a1/src/raise_cli/skills_base/rai-bugfix-close/SKILL.md +143 -0
  88. raise_cli-3.0.0a1/src/raise_cli/skills_base/rai-bugfix-fix/SKILL.md +114 -0
  89. raise_cli-3.0.0a1/src/raise_cli/skills_base/rai-bugfix-plan/SKILL.md +119 -0
  90. raise_cli-3.0.0a1/src/raise_cli/skills_base/rai-bugfix-review/SKILL.md +150 -0
  91. raise_cli-3.0.0a1/src/raise_cli/skills_base/rai-bugfix-run/SKILL.md +304 -0
  92. raise_cli-3.0.0a1/src/raise_cli/skills_base/rai-bugfix-start/SKILL.md +121 -0
  93. raise_cli-3.0.0a1/src/raise_cli/skills_base/rai-bugfix-triage/SKILL.md +138 -0
  94. {raise_cli-2.4.0a2 → raise_cli-3.0.0a1}/src/raise_cli/skills_base/rai-debug/SKILL.md +9 -4
  95. {raise_cli-2.4.0a2 → raise_cli-3.0.0a1}/src/raise_cli/skills_base/rai-discover/SKILL.md +9 -3
  96. {raise_cli-2.4.0a2 → raise_cli-3.0.0a1}/src/raise_cli/skills_base/rai-docs-update/SKILL.md +9 -5
  97. {raise_cli-2.4.0a2 → raise_cli-3.0.0a1}/src/raise_cli/skills_base/rai-doctor/SKILL.md +6 -4
  98. {raise_cli-2.4.0a2 → raise_cli-3.0.0a1}/src/raise_cli/skills_base/rai-epic-close/SKILL.md +36 -13
  99. {raise_cli-2.4.0a2 → raise_cli-3.0.0a1}/src/raise_cli/skills_base/rai-epic-design/SKILL.md +82 -16
  100. {raise_cli-2.4.0a2 → raise_cli-3.0.0a1}/src/raise_cli/skills_base/rai-epic-docs/SKILL.md +9 -5
  101. {raise_cli-2.4.0a2 → raise_cli-3.0.0a1}/src/raise_cli/skills_base/rai-epic-plan/SKILL.md +33 -5
  102. {raise_cli-2.4.0a2 → raise_cli-3.0.0a1}/src/raise_cli/skills_base/rai-epic-run/SKILL.md +10 -6
  103. {raise_cli-2.4.0a2 → raise_cli-3.0.0a1}/src/raise_cli/skills_base/rai-epic-start/SKILL.md +31 -12
  104. {raise_cli-2.4.0a2 → raise_cli-3.0.0a1}/src/raise_cli/skills_base/rai-mcp-add/SKILL.md +9 -4
  105. {raise_cli-2.4.0a2 → raise_cli-3.0.0a1}/src/raise_cli/skills_base/rai-mcp-remove/SKILL.md +9 -3
  106. {raise_cli-2.4.0a2 → raise_cli-3.0.0a1}/src/raise_cli/skills_base/rai-mcp-status/SKILL.md +6 -5
  107. {raise_cli-2.4.0a2 → raise_cli-3.0.0a1}/src/raise_cli/skills_base/rai-problem-shape/SKILL.md +6 -4
  108. {raise_cli-2.4.0a2 → raise_cli-3.0.0a1}/src/raise_cli/skills_base/rai-project-create/SKILL.md +9 -4
  109. {raise_cli-2.4.0a2 → raise_cli-3.0.0a1}/src/raise_cli/skills_base/rai-project-onboard/SKILL.md +9 -5
  110. raise_cli-3.0.0a1/src/raise_cli/skills_base/rai-quality-review/SKILL.md +206 -0
  111. {raise_cli-2.4.0a2 → raise_cli-3.0.0a1}/src/raise_cli/skills_base/rai-research/SKILL.md +9 -5
  112. {raise_cli-2.4.0a2 → raise_cli-3.0.0a1}/src/raise_cli/skills_base/rai-session-close/SKILL.md +7 -3
  113. raise_cli-3.0.0a1/src/raise_cli/skills_base/rai-session-diary/SKILL.md +229 -0
  114. {raise_cli-2.4.0a2 → raise_cli-3.0.0a1}/src/raise_cli/skills_base/rai-session-start/SKILL.md +6 -3
  115. {raise_cli-2.4.0a2 → raise_cli-3.0.0a1}/src/raise_cli/skills_base/rai-story-close/SKILL.md +34 -8
  116. {raise_cli-2.4.0a2 → raise_cli-3.0.0a1}/src/raise_cli/skills_base/rai-story-design/SKILL.md +85 -17
  117. {raise_cli-2.4.0a2 → raise_cli-3.0.0a1}/src/raise_cli/skills_base/rai-story-implement/SKILL.md +49 -19
  118. {raise_cli-2.4.0a2 → raise_cli-3.0.0a1}/src/raise_cli/skills_base/rai-story-plan/SKILL.md +33 -5
  119. {raise_cli-2.4.0a2 → raise_cli-3.0.0a1}/src/raise_cli/skills_base/rai-story-review/SKILL.md +59 -22
  120. {raise_cli-2.4.0a2 → raise_cli-3.0.0a1}/src/raise_cli/skills_base/rai-story-run/SKILL.md +27 -7
  121. {raise_cli-2.4.0a2 → raise_cli-3.0.0a1}/src/raise_cli/skills_base/rai-story-start/SKILL.md +10 -5
  122. {raise_cli-2.4.0a2 → raise_cli-3.0.0a1}/src/raise_cli/skills_base/rai-welcome/SKILL.md +14 -8
  123. raise_cli-2.4.0a2/PKG-INFO +0 -47
  124. {raise_cli-2.4.0a2 → raise_cli-3.0.0a1}/src/raise_cli/__init__.py +2 -2
  125. {raise_cli-2.4.0a2 → raise_cli-3.0.0a1}/src/raise_cli/__main__.py +0 -0
  126. {raise_cli-2.4.0a2 → raise_cli-3.0.0a1}/src/raise_cli/adapters/__init__.py +0 -0
  127. {raise_cli-2.4.0a2 → raise_cli-3.0.0a1}/src/raise_cli/adapters/composite_docs.py +0 -0
  128. {raise_cli-2.4.0a2 → raise_cli-3.0.0a1}/src/raise_cli/adapters/confluence_config.py +0 -0
  129. {raise_cli-2.4.0a2 → raise_cli-3.0.0a1}/src/raise_cli/adapters/confluence_exceptions.py +0 -0
  130. {raise_cli-2.4.0a2 → raise_cli-3.0.0a1}/src/raise_cli/adapters/declarative/__init__.py +0 -0
  131. {raise_cli-2.4.0a2 → raise_cli-3.0.0a1}/src/raise_cli/adapters/declarative/adapter.py +0 -0
  132. {raise_cli-2.4.0a2 → raise_cli-3.0.0a1}/src/raise_cli/adapters/declarative/discovery.py +0 -0
  133. {raise_cli-2.4.0a2 → raise_cli-3.0.0a1}/src/raise_cli/adapters/declarative/expressions.py +0 -0
  134. {raise_cli-2.4.0a2 → raise_cli-3.0.0a1}/src/raise_cli/adapters/declarative/reference/__init__.py +0 -0
  135. {raise_cli-2.4.0a2 → raise_cli-3.0.0a1}/src/raise_cli/adapters/declarative/reference/github.yaml +0 -0
  136. {raise_cli-2.4.0a2 → raise_cli-3.0.0a1}/src/raise_cli/adapters/declarative/schema.py +0 -0
  137. {raise_cli-2.4.0a2 → raise_cli-3.0.0a1}/src/raise_cli/adapters/filesystem.py +0 -0
  138. {raise_cli-2.4.0a2 → raise_cli-3.0.0a1}/src/raise_cli/adapters/filesystem_models.py +0 -0
  139. {raise_cli-2.4.0a2 → raise_cli-3.0.0a1}/src/raise_cli/adapters/jira_config.py +0 -0
  140. {raise_cli-2.4.0a2 → raise_cli-3.0.0a1}/src/raise_cli/adapters/jira_exceptions.py +0 -0
  141. {raise_cli-2.4.0a2 → raise_cli-3.0.0a1}/src/raise_cli/adapters/mcp_bridge.py +0 -0
  142. {raise_cli-2.4.0a2 → raise_cli-3.0.0a1}/src/raise_cli/adapters/models/__init__.py +0 -0
  143. {raise_cli-2.4.0a2 → raise_cli-3.0.0a1}/src/raise_cli/adapters/models/docs.py +0 -0
  144. {raise_cli-2.4.0a2 → raise_cli-3.0.0a1}/src/raise_cli/adapters/models/governance.py +0 -0
  145. {raise_cli-2.4.0a2 → raise_cli-3.0.0a1}/src/raise_cli/adapters/models/health.py +0 -0
  146. {raise_cli-2.4.0a2 → raise_cli-3.0.0a1}/src/raise_cli/adapters/protocols.py +0 -0
  147. {raise_cli-2.4.0a2 → raise_cli-3.0.0a1}/src/raise_cli/adapters/sync.py +0 -0
  148. {raise_cli-2.4.0a2 → raise_cli-3.0.0a1}/src/raise_cli/agents/__init__.py +0 -0
  149. {raise_cli-2.4.0a2 → raise_cli-3.0.0a1}/src/raise_cli/agents/antigravity.yaml +0 -0
  150. {raise_cli-2.4.0a2 → raise_cli-3.0.0a1}/src/raise_cli/agents/claude.yaml +0 -0
  151. {raise_cli-2.4.0a2 → raise_cli-3.0.0a1}/src/raise_cli/agents/copilot.yaml +0 -0
  152. {raise_cli-2.4.0a2 → raise_cli-3.0.0a1}/src/raise_cli/agents/copilot_plugin.py +0 -0
  153. {raise_cli-2.4.0a2 → raise_cli-3.0.0a1}/src/raise_cli/agents/cursor.yaml +0 -0
  154. {raise_cli-2.4.0a2 → raise_cli-3.0.0a1}/src/raise_cli/agents/roo.yaml +0 -0
  155. {raise_cli-2.4.0a2 → raise_cli-3.0.0a1}/src/raise_cli/agents/windsurf.yaml +0 -0
  156. {raise_cli-2.4.0a2 → raise_cli-3.0.0a1}/src/raise_cli/artifacts/__init__.py +0 -0
  157. {raise_cli-2.4.0a2 → raise_cli-3.0.0a1}/src/raise_cli/artifacts/models.py +0 -0
  158. {raise_cli-2.4.0a2 → raise_cli-3.0.0a1}/src/raise_cli/artifacts/reader.py +0 -0
  159. {raise_cli-2.4.0a2 → raise_cli-3.0.0a1}/src/raise_cli/artifacts/renderer.py +0 -0
  160. {raise_cli-2.4.0a2 → raise_cli-3.0.0a1}/src/raise_cli/artifacts/story_design.py +0 -0
  161. {raise_cli-2.4.0a2 → raise_cli-3.0.0a1}/src/raise_cli/artifacts/writer.py +0 -0
  162. {raise_cli-2.4.0a2 → raise_cli-3.0.0a1}/src/raise_cli/backlog/__init__.py +0 -0
  163. {raise_cli-2.4.0a2 → raise_cli-3.0.0a1}/src/raise_cli/cli/__init__.py +0 -0
  164. {raise_cli-2.4.0a2 → raise_cli-3.0.0a1}/src/raise_cli/cli/commands/__init__.py +0 -0
  165. {raise_cli-2.4.0a2 → raise_cli-3.0.0a1}/src/raise_cli/cli/commands/adapters.py +0 -0
  166. {raise_cli-2.4.0a2 → raise_cli-3.0.0a1}/src/raise_cli/cli/commands/artifact.py +0 -0
  167. {raise_cli-2.4.0a2 → raise_cli-3.0.0a1}/src/raise_cli/cli/commands/backlog.py +0 -0
  168. {raise_cli-2.4.0a2 → raise_cli-3.0.0a1}/src/raise_cli/cli/commands/base.py +0 -0
  169. {raise_cli-2.4.0a2 → raise_cli-3.0.0a1}/src/raise_cli/cli/commands/doctor.py +0 -0
  170. {raise_cli-2.4.0a2 → raise_cli-3.0.0a1}/src/raise_cli/cli/commands/gate.py +0 -0
  171. {raise_cli-2.4.0a2 → raise_cli-3.0.0a1}/src/raise_cli/cli/commands/journal.py +0 -0
  172. {raise_cli-2.4.0a2 → raise_cli-3.0.0a1}/src/raise_cli/cli/commands/memory.py +0 -0
  173. {raise_cli-2.4.0a2 → raise_cli-3.0.0a1}/src/raise_cli/cli/commands/publish.py +0 -0
  174. {raise_cli-2.4.0a2 → raise_cli-3.0.0a1}/src/raise_cli/cli/commands/skill.py +0 -0
  175. {raise_cli-2.4.0a2 → raise_cli-3.0.0a1}/src/raise_cli/cli/commands/skill_set.py +0 -0
  176. {raise_cli-2.4.0a2 → raise_cli-3.0.0a1}/src/raise_cli/cli/error_handler.py +0 -0
  177. {raise_cli-2.4.0a2 → raise_cli-3.0.0a1}/src/raise_cli/cli/extensions.py +0 -0
  178. {raise_cli-2.4.0a2 → raise_cli-3.0.0a1}/src/raise_cli/compat.py +0 -0
  179. {raise_cli-2.4.0a2 → raise_cli-3.0.0a1}/src/raise_cli/compliance/__init__.py +0 -0
  180. {raise_cli-2.4.0a2 → raise_cli-3.0.0a1}/src/raise_cli/compliance/controls.yaml +0 -0
  181. {raise_cli-2.4.0a2 → raise_cli-3.0.0a1}/src/raise_cli/compliance/evidence.py +0 -0
  182. {raise_cli-2.4.0a2 → raise_cli-3.0.0a1}/src/raise_cli/compliance/extractors/__init__.py +0 -0
  183. {raise_cli-2.4.0a2 → raise_cli-3.0.0a1}/src/raise_cli/compliance/extractors/git.py +0 -0
  184. {raise_cli-2.4.0a2 → raise_cli-3.0.0a1}/src/raise_cli/compliance/loader.py +0 -0
  185. {raise_cli-2.4.0a2 → raise_cli-3.0.0a1}/src/raise_cli/compliance/models.py +0 -0
  186. {raise_cli-2.4.0a2 → raise_cli-3.0.0a1}/src/raise_cli/config/__init__.py +0 -0
  187. {raise_cli-2.4.0a2 → raise_cli-3.0.0a1}/src/raise_cli/config/agent_plugin.py +0 -0
  188. {raise_cli-2.4.0a2 → raise_cli-3.0.0a1}/src/raise_cli/config/agent_registry.py +0 -0
  189. {raise_cli-2.4.0a2 → raise_cli-3.0.0a1}/src/raise_cli/config/agents.py +0 -0
  190. {raise_cli-2.4.0a2 → raise_cli-3.0.0a1}/src/raise_cli/config/ide.py +0 -0
  191. {raise_cli-2.4.0a2 → raise_cli-3.0.0a1}/src/raise_cli/config/paths.py +0 -0
  192. {raise_cli-2.4.0a2 → raise_cli-3.0.0a1}/src/raise_cli/config/settings.py +0 -0
  193. {raise_cli-2.4.0a2 → raise_cli-3.0.0a1}/src/raise_cli/context/__init__.py +0 -0
  194. {raise_cli-2.4.0a2 → raise_cli-3.0.0a1}/src/raise_cli/context/analyzers/models.py +0 -0
  195. {raise_cli-2.4.0a2 → raise_cli-3.0.0a1}/src/raise_cli/context/analyzers/protocol.py +0 -0
  196. {raise_cli-2.4.0a2 → raise_cli-3.0.0a1}/src/raise_cli/context/analyzers/python.py +0 -0
  197. {raise_cli-2.4.0a2 → raise_cli-3.0.0a1}/src/raise_cli/context/diff.py +0 -0
  198. {raise_cli-2.4.0a2 → raise_cli-3.0.0a1}/src/raise_cli/context/extractors/__init__.py +0 -0
  199. {raise_cli-2.4.0a2 → raise_cli-3.0.0a1}/src/raise_cli/context/extractors/skills.py +0 -0
  200. {raise_cli-2.4.0a2 → raise_cli-3.0.0a1}/src/raise_cli/context/extractors/structure.py +0 -0
  201. {raise_cli-2.4.0a2 → raise_cli-3.0.0a1}/src/raise_cli/context/loaders/__init__.py +0 -0
  202. {raise_cli-2.4.0a2 → raise_cli-3.0.0a1}/src/raise_cli/context/loaders/architecture.py +0 -0
  203. {raise_cli-2.4.0a2 → raise_cli-3.0.0a1}/src/raise_cli/context/loaders/artifacts.py +0 -0
  204. {raise_cli-2.4.0a2 → raise_cli-3.0.0a1}/src/raise_cli/context/loaders/components.py +0 -0
  205. {raise_cli-2.4.0a2 → raise_cli-3.0.0a1}/src/raise_cli/context/loaders/identity.py +0 -0
  206. {raise_cli-2.4.0a2 → raise_cli-3.0.0a1}/src/raise_cli/context/loaders/memory.py +0 -0
  207. {raise_cli-2.4.0a2 → raise_cli-3.0.0a1}/src/raise_cli/core/__init__.py +0 -0
  208. {raise_cli-2.4.0a2 → raise_cli-3.0.0a1}/src/raise_cli/core/text.py +0 -0
  209. {raise_cli-2.4.0a2 → raise_cli-3.0.0a1}/src/raise_cli/core/tools.py +0 -0
  210. {raise_cli-2.4.0a2 → raise_cli-3.0.0a1}/src/raise_cli/discovery/__init__.py +0 -0
  211. {raise_cli-2.4.0a2 → raise_cli-3.0.0a1}/src/raise_cli/discovery/drift.py +0 -0
  212. {raise_cli-2.4.0a2 → raise_cli-3.0.0a1}/src/raise_cli/discovery/scanner.py +0 -0
  213. {raise_cli-2.4.0a2 → raise_cli-3.0.0a1}/src/raise_cli/doctor/__init__.py +0 -0
  214. {raise_cli-2.4.0a2 → raise_cli-3.0.0a1}/src/raise_cli/doctor/checks/__init__.py +0 -0
  215. {raise_cli-2.4.0a2 → raise_cli-3.0.0a1}/src/raise_cli/doctor/checks/developer.py +0 -0
  216. {raise_cli-2.4.0a2 → raise_cli-3.0.0a1}/src/raise_cli/doctor/checks/environment.py +0 -0
  217. {raise_cli-2.4.0a2 → raise_cli-3.0.0a1}/src/raise_cli/doctor/checks/project.py +0 -0
  218. {raise_cli-2.4.0a2 → raise_cli-3.0.0a1}/src/raise_cli/doctor/fix.py +0 -0
  219. {raise_cli-2.4.0a2 → raise_cli-3.0.0a1}/src/raise_cli/doctor/models.py +0 -0
  220. {raise_cli-2.4.0a2 → raise_cli-3.0.0a1}/src/raise_cli/doctor/protocol.py +0 -0
  221. {raise_cli-2.4.0a2 → raise_cli-3.0.0a1}/src/raise_cli/doctor/registry.py +0 -0
  222. {raise_cli-2.4.0a2 → raise_cli-3.0.0a1}/src/raise_cli/doctor/report.py +0 -0
  223. {raise_cli-2.4.0a2 → raise_cli-3.0.0a1}/src/raise_cli/doctor/runner.py +0 -0
  224. {raise_cli-2.4.0a2 → raise_cli-3.0.0a1}/src/raise_cli/engines/__init__.py +0 -0
  225. {raise_cli-2.4.0a2 → raise_cli-3.0.0a1}/src/raise_cli/exceptions.py +0 -0
  226. {raise_cli-2.4.0a2 → raise_cli-3.0.0a1}/src/raise_cli/gates/__init__.py +0 -0
  227. {raise_cli-2.4.0a2 → raise_cli-3.0.0a1}/src/raise_cli/gates/builtin/__init__.py +0 -0
  228. {raise_cli-2.4.0a2 → raise_cli-3.0.0a1}/src/raise_cli/gates/builtin/_runner.py +0 -0
  229. {raise_cli-2.4.0a2 → raise_cli-3.0.0a1}/src/raise_cli/gates/builtin/coverage.py +0 -0
  230. {raise_cli-2.4.0a2 → raise_cli-3.0.0a1}/src/raise_cli/gates/builtin/format.py +0 -0
  231. {raise_cli-2.4.0a2 → raise_cli-3.0.0a1}/src/raise_cli/gates/builtin/lint.py +0 -0
  232. {raise_cli-2.4.0a2 → raise_cli-3.0.0a1}/src/raise_cli/gates/builtin/tests.py +0 -0
  233. {raise_cli-2.4.0a2 → raise_cli-3.0.0a1}/src/raise_cli/gates/builtin/types.py +0 -0
  234. {raise_cli-2.4.0a2 → raise_cli-3.0.0a1}/src/raise_cli/gates/hook.py +0 -0
  235. {raise_cli-2.4.0a2 → raise_cli-3.0.0a1}/src/raise_cli/gates/models.py +0 -0
  236. {raise_cli-2.4.0a2 → raise_cli-3.0.0a1}/src/raise_cli/gates/protocol.py +0 -0
  237. {raise_cli-2.4.0a2 → raise_cli-3.0.0a1}/src/raise_cli/gates/registry.py +0 -0
  238. {raise_cli-2.4.0a2 → raise_cli-3.0.0a1}/src/raise_cli/governance/__init__.py +0 -0
  239. {raise_cli-2.4.0a2 → raise_cli-3.0.0a1}/src/raise_cli/governance/extractor.py +0 -0
  240. {raise_cli-2.4.0a2 → raise_cli-3.0.0a1}/src/raise_cli/governance/models.py +0 -0
  241. {raise_cli-2.4.0a2 → raise_cli-3.0.0a1}/src/raise_cli/governance/parsers/__init__.py +0 -0
  242. {raise_cli-2.4.0a2 → raise_cli-3.0.0a1}/src/raise_cli/governance/parsers/_convert.py +0 -0
  243. {raise_cli-2.4.0a2 → raise_cli-3.0.0a1}/src/raise_cli/governance/parsers/adr.py +0 -0
  244. {raise_cli-2.4.0a2 → raise_cli-3.0.0a1}/src/raise_cli/governance/parsers/backlog.py +0 -0
  245. {raise_cli-2.4.0a2 → raise_cli-3.0.0a1}/src/raise_cli/governance/parsers/constitution.py +0 -0
  246. {raise_cli-2.4.0a2 → raise_cli-3.0.0a1}/src/raise_cli/governance/parsers/glossary.py +0 -0
  247. {raise_cli-2.4.0a2 → raise_cli-3.0.0a1}/src/raise_cli/governance/parsers/guardrails.py +0 -0
  248. {raise_cli-2.4.0a2 → raise_cli-3.0.0a1}/src/raise_cli/governance/parsers/prd.py +0 -0
  249. {raise_cli-2.4.0a2 → raise_cli-3.0.0a1}/src/raise_cli/governance/parsers/roadmap.py +0 -0
  250. {raise_cli-2.4.0a2 → raise_cli-3.0.0a1}/src/raise_cli/governance/parsers/vision.py +0 -0
  251. {raise_cli-2.4.0a2 → raise_cli-3.0.0a1}/src/raise_cli/graph/__init__.py +0 -0
  252. {raise_cli-2.4.0a2 → raise_cli-3.0.0a1}/src/raise_cli/graph/backends/__init__.py +0 -0
  253. {raise_cli-2.4.0a2 → raise_cli-3.0.0a1}/src/raise_cli/graph/backends/api.py +0 -0
  254. {raise_cli-2.4.0a2 → raise_cli-3.0.0a1}/src/raise_cli/graph/backends/dual.py +0 -0
  255. {raise_cli-2.4.0a2 → raise_cli-3.0.0a1}/src/raise_cli/graph/backends/pending.py +0 -0
  256. {raise_cli-2.4.0a2 → raise_cli-3.0.0a1}/src/raise_cli/handlers/__init__.py +0 -0
  257. {raise_cli-2.4.0a2 → raise_cli-3.0.0a1}/src/raise_cli/hooks/__init__.py +0 -0
  258. {raise_cli-2.4.0a2 → raise_cli-3.0.0a1}/src/raise_cli/hooks/builtin/__init__.py +0 -0
  259. {raise_cli-2.4.0a2 → raise_cli-3.0.0a1}/src/raise_cli/hooks/builtin/gate_bridge.py +0 -0
  260. {raise_cli-2.4.0a2 → raise_cli-3.0.0a1}/src/raise_cli/hooks/builtin/memory.py +0 -0
  261. {raise_cli-2.4.0a2 → raise_cli-3.0.0a1}/src/raise_cli/hooks/builtin/telemetry.py +0 -0
  262. {raise_cli-2.4.0a2 → raise_cli-3.0.0a1}/src/raise_cli/hooks/emitter.py +0 -0
  263. {raise_cli-2.4.0a2 → raise_cli-3.0.0a1}/src/raise_cli/hooks/events.py +0 -0
  264. {raise_cli-2.4.0a2 → raise_cli-3.0.0a1}/src/raise_cli/hooks/protocol.py +0 -0
  265. {raise_cli-2.4.0a2 → raise_cli-3.0.0a1}/src/raise_cli/hooks/registry.py +0 -0
  266. {raise_cli-2.4.0a2 → raise_cli-3.0.0a1}/src/raise_cli/mcp/__init__.py +0 -0
  267. {raise_cli-2.4.0a2 → raise_cli-3.0.0a1}/src/raise_cli/mcp/bridge.py +0 -0
  268. {raise_cli-2.4.0a2 → raise_cli-3.0.0a1}/src/raise_cli/mcp/models.py +0 -0
  269. {raise_cli-2.4.0a2 → raise_cli-3.0.0a1}/src/raise_cli/mcp/registry.py +0 -0
  270. {raise_cli-2.4.0a2 → raise_cli-3.0.0a1}/src/raise_cli/mcp/schema.py +0 -0
  271. {raise_cli-2.4.0a2 → raise_cli-3.0.0a1}/src/raise_cli/memory/loader.py +0 -0
  272. {raise_cli-2.4.0a2 → raise_cli-3.0.0a1}/src/raise_cli/memory/migration.py +0 -0
  273. {raise_cli-2.4.0a2 → raise_cli-3.0.0a1}/src/raise_cli/onboarding/__init__.py +0 -0
  274. {raise_cli-2.4.0a2 → raise_cli-3.0.0a1}/src/raise_cli/onboarding/claudemd.py +0 -0
  275. {raise_cli-2.4.0a2 → raise_cli-3.0.0a1}/src/raise_cli/onboarding/conventions.py +0 -0
  276. {raise_cli-2.4.0a2 → raise_cli-3.0.0a1}/src/raise_cli/onboarding/detection.py +0 -0
  277. {raise_cli-2.4.0a2 → raise_cli-3.0.0a1}/src/raise_cli/onboarding/instructions.py +0 -0
  278. {raise_cli-2.4.0a2 → raise_cli-3.0.0a1}/src/raise_cli/onboarding/manifest.py +0 -0
  279. {raise_cli-2.4.0a2 → raise_cli-3.0.0a1}/src/raise_cli/onboarding/memory_md.py +0 -0
  280. {raise_cli-2.4.0a2 → raise_cli-3.0.0a1}/src/raise_cli/onboarding/migration.py +0 -0
  281. {raise_cli-2.4.0a2 → raise_cli-3.0.0a1}/src/raise_cli/onboarding/profile_portability.py +0 -0
  282. {raise_cli-2.4.0a2 → raise_cli-3.0.0a1}/src/raise_cli/onboarding/skill_conflict.py +0 -0
  283. {raise_cli-2.4.0a2 → raise_cli-3.0.0a1}/src/raise_cli/onboarding/skill_manifest.py +0 -0
  284. {raise_cli-2.4.0a2 → raise_cli-3.0.0a1}/src/raise_cli/onboarding/skills.py +0 -0
  285. {raise_cli-2.4.0a2 → raise_cli-3.0.0a1}/src/raise_cli/onboarding/workflows.py +0 -0
  286. {raise_cli-2.4.0a2 → raise_cli-3.0.0a1}/src/raise_cli/output/__init__.py +0 -0
  287. {raise_cli-2.4.0a2 → raise_cli-3.0.0a1}/src/raise_cli/output/console.py +0 -0
  288. {raise_cli-2.4.0a2 → raise_cli-3.0.0a1}/src/raise_cli/output/formatters/__init__.py +0 -0
  289. {raise_cli-2.4.0a2 → raise_cli-3.0.0a1}/src/raise_cli/output/formatters/adapters.py +0 -0
  290. {raise_cli-2.4.0a2 → raise_cli-3.0.0a1}/src/raise_cli/output/formatters/discover.py +0 -0
  291. {raise_cli-2.4.0a2 → raise_cli-3.0.0a1}/src/raise_cli/output/formatters/graph.py +0 -0
  292. {raise_cli-2.4.0a2 → raise_cli-3.0.0a1}/src/raise_cli/output/symbols.py +0 -0
  293. {raise_cli-2.4.0a2 → raise_cli-3.0.0a1}/src/raise_cli/publish/__init__.py +0 -0
  294. {raise_cli-2.4.0a2 → raise_cli-3.0.0a1}/src/raise_cli/publish/changelog.py +0 -0
  295. {raise_cli-2.4.0a2 → raise_cli-3.0.0a1}/src/raise_cli/publish/version.py +0 -0
  296. {raise_cli-2.4.0a2 → raise_cli-3.0.0a1}/src/raise_cli/rai_base/framework/__init__.py +0 -0
  297. {raise_cli-2.4.0a2 → raise_cli-3.0.0a1}/src/raise_cli/rai_base/framework/methodology.yaml +0 -0
  298. {raise_cli-2.4.0a2 → raise_cli-3.0.0a1}/src/raise_cli/rai_base/governance/__init__.py +0 -0
  299. {raise_cli-2.4.0a2 → raise_cli-3.0.0a1}/src/raise_cli/rai_base/governance/architecture/__init__.py +0 -0
  300. {raise_cli-2.4.0a2 → raise_cli-3.0.0a1}/src/raise_cli/rai_base/governance/architecture/domain-model.md +0 -0
  301. {raise_cli-2.4.0a2 → raise_cli-3.0.0a1}/src/raise_cli/rai_base/governance/architecture/domain-model.yaml +0 -0
  302. {raise_cli-2.4.0a2 → raise_cli-3.0.0a1}/src/raise_cli/rai_base/governance/architecture/system-context.md +0 -0
  303. {raise_cli-2.4.0a2 → raise_cli-3.0.0a1}/src/raise_cli/rai_base/governance/architecture/system-context.yaml +0 -0
  304. {raise_cli-2.4.0a2 → raise_cli-3.0.0a1}/src/raise_cli/rai_base/governance/architecture/system-design.md +0 -0
  305. {raise_cli-2.4.0a2 → raise_cli-3.0.0a1}/src/raise_cli/rai_base/governance/architecture/system-design.yaml +0 -0
  306. {raise_cli-2.4.0a2 → raise_cli-3.0.0a1}/src/raise_cli/rai_base/governance/backlog.md +0 -0
  307. {raise_cli-2.4.0a2 → raise_cli-3.0.0a1}/src/raise_cli/rai_base/governance/guardrails.md +0 -0
  308. {raise_cli-2.4.0a2 → raise_cli-3.0.0a1}/src/raise_cli/rai_base/governance/prd.md +0 -0
  309. {raise_cli-2.4.0a2 → raise_cli-3.0.0a1}/src/raise_cli/rai_base/governance/vision.md +0 -0
  310. {raise_cli-2.4.0a2 → raise_cli-3.0.0a1}/src/raise_cli/rai_base/identity/__init__.py +0 -0
  311. {raise_cli-2.4.0a2 → raise_cli-3.0.0a1}/src/raise_cli/rai_base/identity/core.md +0 -0
  312. {raise_cli-2.4.0a2 → raise_cli-3.0.0a1}/src/raise_cli/rai_base/identity/core.yaml +0 -0
  313. {raise_cli-2.4.0a2 → raise_cli-3.0.0a1}/src/raise_cli/rai_base/identity/perspective.md +0 -0
  314. {raise_cli-2.4.0a2 → raise_cli-3.0.0a1}/src/raise_cli/rai_base/memory/__init__.py +0 -0
  315. {raise_cli-2.4.0a2 → raise_cli-3.0.0a1}/src/raise_cli/rai_base/memory/patterns-base.jsonl +0 -0
  316. {raise_cli-2.4.0a2 → raise_cli-3.0.0a1}/src/raise_cli/schemas/__init__.py +0 -0
  317. {raise_cli-2.4.0a2 → raise_cli-3.0.0a1}/src/raise_cli/schemas/journal.py +0 -0
  318. {raise_cli-2.4.0a2 → raise_cli-3.0.0a1}/src/raise_cli/session/__init__.py +0 -0
  319. {raise_cli-2.4.0a2 → raise_cli-3.0.0a1}/src/raise_cli/session/bundle_data.py +0 -0
  320. {raise_cli-2.4.0a2 → raise_cli-3.0.0a1}/src/raise_cli/session/identity.py +0 -0
  321. {raise_cli-2.4.0a2 → raise_cli-3.0.0a1}/src/raise_cli/session/resolver.py +0 -0
  322. {raise_cli-2.4.0a2 → raise_cli-3.0.0a1}/src/raise_cli/skills/__init__.py +0 -0
  323. {raise_cli-2.4.0a2 → raise_cli-3.0.0a1}/src/raise_cli/skills/locator.py +0 -0
  324. {raise_cli-2.4.0a2 → raise_cli-3.0.0a1}/src/raise_cli/skills/name_checker.py +0 -0
  325. {raise_cli-2.4.0a2 → raise_cli-3.0.0a1}/src/raise_cli/skills/parser.py +0 -0
  326. {raise_cli-2.4.0a2 → raise_cli-3.0.0a1}/src/raise_cli/skills/scaffold.py +0 -0
  327. {raise_cli-2.4.0a2 → raise_cli-3.0.0a1}/src/raise_cli/skills/schema.py +0 -0
  328. {raise_cli-2.4.0a2 → raise_cli-3.0.0a1}/src/raise_cli/skills/skillsets.py +0 -0
  329. {raise_cli-2.4.0a2 → raise_cli-3.0.0a1}/src/raise_cli/skills/validator.py +0 -0
  330. {raise_cli-2.4.0a2 → raise_cli-3.0.0a1}/src/raise_cli/skills_base/contract-template.md +0 -0
  331. {raise_cli-2.4.0a2 → raise_cli-3.0.0a1}/src/raise_cli/skills_base/preamble.md +0 -0
  332. {raise_cli-2.4.0a2 → raise_cli-3.0.0a1}/src/raise_cli/skills_base/rai-epic-close/templates/retrospective.md +0 -0
  333. {raise_cli-2.4.0a2 → raise_cli-3.0.0a1}/src/raise_cli/skills_base/rai-epic-design/templates/design.md +0 -0
  334. {raise_cli-2.4.0a2 → raise_cli-3.0.0a1}/src/raise_cli/skills_base/rai-epic-design/templates/scope.md +0 -0
  335. {raise_cli-2.4.0a2 → raise_cli-3.0.0a1}/src/raise_cli/skills_base/rai-epic-plan/_references/sequencing-strategies.md +0 -0
  336. {raise_cli-2.4.0a2 → raise_cli-3.0.0a1}/src/raise_cli/skills_base/rai-epic-plan/templates/plan-section.md +0 -0
  337. {raise_cli-2.4.0a2 → raise_cli-3.0.0a1}/src/raise_cli/skills_base/rai-epic-start/templates/brief.md +0 -0
  338. {raise_cli-2.4.0a2 → raise_cli-3.0.0a1}/src/raise_cli/skills_base/rai-research/references/research-prompt-template.md +0 -0
  339. {raise_cli-2.4.0a2 → raise_cli-3.0.0a1}/src/raise_cli/skills_base/rai-story-design/references/tech-design-story-v2.md +0 -0
  340. {raise_cli-2.4.0a2 → raise_cli-3.0.0a1}/src/raise_cli/skills_base/rai-story-start/templates/story.md +0 -0
  341. {raise_cli-2.4.0a2 → raise_cli-3.0.0a1}/src/raise_cli/telemetry/__init__.py +0 -0
  342. {raise_cli-2.4.0a2 → raise_cli-3.0.0a1}/src/raise_cli/telemetry/schemas.py +0 -0
  343. {raise_cli-2.4.0a2 → raise_cli-3.0.0a1}/src/raise_cli/telemetry/writer.py +0 -0
  344. {raise_cli-2.4.0a2 → raise_cli-3.0.0a1}/src/raise_cli/tier/__init__.py +0 -0
  345. {raise_cli-2.4.0a2 → raise_cli-3.0.0a1}/src/raise_cli/tier/context.py +0 -0
  346. {raise_cli-2.4.0a2 → raise_cli-3.0.0a1}/src/raise_cli/viz/__init__.py +0 -0
  347. {raise_cli-2.4.0a2 → raise_cli-3.0.0a1}/src/raise_cli/viz/generator.py +0 -0
@@ -15,10 +15,19 @@ CLAUDE.local.md
15
15
  .claude/RAI-naming.md
16
16
  .claude/rai.archive/
17
17
 
18
+ # Daemon config (contains secrets — template committed as .example)
19
+ daemon-team.yaml
20
+ daemon.yaml
21
+ .env.fly
22
+
18
23
  # RaiSE generated/cache files
19
24
  .raise/cache/
20
25
  .raise/confluence-pages.yaml
21
26
  .raise/backlog/
27
+ .raise/artifacts/
28
+
29
+ # Pipeline state (environment-specific, PAT-E-594)
30
+ .rai-state/
22
31
 
23
32
  # RaiSE adapter configs (declarative, PII-free — identity in env vars)
24
33
  # .raise/jira.yaml and .raise/confluence.yaml are tracked (shared config)
@@ -28,8 +37,8 @@ CLAUDE.local.md
28
37
  # Dossier output (generated, not committed)
29
38
  dev/output/
30
39
 
31
- # RaiSE derived artifacts (rebuild with `rai memory build`)
32
- .raise/rai/memory/index.json
40
+ # RaiSE graph index — tracked (essential for skill PRIME/JIT queries in worktrees)
41
+ # Rebuild with: rai graph build
33
42
 
34
43
  # RaiSE personal directory (per-developer, not shared)
35
44
  .raise/rai/personal/
@@ -99,6 +108,9 @@ dmypy.json
99
108
  # Legacy telemetry (should be in personal/, will migrate)
100
109
  .raise/rai/telemetry/
101
110
 
111
+ # Push tracking markers (per-environment, not shared)
112
+ .raise/rai/learnings/**/.pushed
113
+
102
114
  # MCP server config (contains API tokens)
103
115
  .mcp.json
104
116
 
@@ -117,6 +129,7 @@ credentials.json
117
129
 
118
130
  # MkDocs build output
119
131
  _site/
132
+ .docs-build/
120
133
 
121
134
  # Issue analysis artifacts (PDFs, images — binary, no git value)
122
135
  dev/issues/**/*.pdf
@@ -127,3 +140,4 @@ dev/transcripts/
127
140
 
128
141
  # Prevent symlink artifacts from being tracked at root
129
142
  /es/
143
+ work/research/
@@ -0,0 +1,193 @@
1
+ Metadata-Version: 2.4
2
+ Name: raise-cli
3
+ Version: 3.0.0a1
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: httpx>=0.27.0
22
+ Requires-Dist: logfire-api>=4.0
23
+ Requires-Dist: networkx>=3.6.1
24
+ Requires-Dist: pydantic-settings>=2.2.0
25
+ Requires-Dist: pydantic>=2.6.0
26
+ Requires-Dist: python-dotenv>=1.0.0
27
+ Requires-Dist: pyyaml>=6.0.1
28
+ Requires-Dist: raise-core
29
+ Requires-Dist: rich>=13.7.0
30
+ Requires-Dist: tree-sitter-javascript>=0.25.0
31
+ Requires-Dist: tree-sitter-language-pack>=0.13.0
32
+ Requires-Dist: tree-sitter-php>=0.24.1
33
+ Requires-Dist: tree-sitter-svelte>=1.0.2
34
+ Requires-Dist: tree-sitter-typescript>=0.23.2
35
+ Requires-Dist: tree-sitter>=0.25.2
36
+ Requires-Dist: typer>=0.12.0
37
+ Provides-Extra: atlassian
38
+ Requires-Dist: atlassian-python-api>=3.41.0; extra == 'atlassian'
39
+ Provides-Extra: confluence
40
+ Requires-Dist: atlassian-python-api>=3.41.0; extra == 'confluence'
41
+ Provides-Extra: csharp
42
+ Requires-Dist: tree-sitter-c-sharp>=0.23.1; extra == 'csharp'
43
+ Provides-Extra: jira
44
+ Requires-Dist: atlassian-python-api>=3.41.0; extra == 'jira'
45
+ Provides-Extra: mcp
46
+ Requires-Dist: mcp<2,>=1.26; extra == 'mcp'
47
+ Provides-Extra: observability
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'
51
+ Description-Content-Type: text/markdown
52
+
53
+ # RaiSE CLI
54
+
55
+ **Reliable AI Software Engineering** — a lean methodology and deterministic CLI toolkit that turns AI coding assistants into disciplined collaborators.
56
+
57
+ [![PyPI](https://img.shields.io/pypi/v/raise-cli)](https://pypi.org/project/raise-cli/)
58
+ [![Python](https://img.shields.io/pypi/pyversions/raise-cli)](https://pypi.org/project/raise-cli/)
59
+ [![License](https://img.shields.io/pypi/l/raise-cli)](https://github.com/humansys/raise/blob/main/LICENSE)
60
+
61
+ ## What is RaiSE?
62
+
63
+ 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.
64
+
65
+ The result: AI that learns from your project, follows your rules, and compounds knowledge across sessions instead of starting fresh every time.
66
+
67
+ ## Install
68
+
69
+ ```bash
70
+ pip install raise-cli
71
+ ```
72
+
73
+ Optional integrations:
74
+
75
+ ```bash
76
+ # Jira + Confluence adapters
77
+ pip install "raise-cli[jira,confluence]"
78
+
79
+ # MCP server support
80
+ pip install "raise-cli[mcp]"
81
+
82
+ # All extras
83
+ pip install "raise-cli[jira,confluence,mcp,csharp,observability]"
84
+ ```
85
+
86
+ Requires Python 3.12 or 3.13.
87
+
88
+ ## Quick start
89
+
90
+ ```bash
91
+ # Initialize a project
92
+ rai init
93
+
94
+ # Start a session (loads context, memory, proposes work)
95
+ rai session start --project . --context
96
+
97
+ # Build the knowledge graph
98
+ rai graph build
99
+ ```
100
+
101
+ Then work through skills in your AI assistant (Claude Code, Cursor, Windsurf):
102
+
103
+ ```
104
+ /rai-session-start → Load context, propose focused work
105
+ /rai-story-start → Scope a piece of work
106
+ /rai-story-plan → Decompose into tasks
107
+ /rai-story-implement → TDD: test, code, verify, commit
108
+ /rai-story-review → Extract learnings
109
+ /rai-story-close → Merge and clean up
110
+ /rai-session-close → Capture session outcomes
111
+ ```
112
+
113
+ ## Key features
114
+
115
+ ### Structured workflows
116
+ 44 skills covering the full SDLC — epic, story, bugfix, discovery, session management, documentation, and release.
117
+
118
+ ### Knowledge graph
119
+ Project context, patterns, and cross-session memory — queryable and persistent.
120
+
121
+ ```bash
122
+ rai graph query "testing patterns" --types pattern --limit 5
123
+ ```
124
+
125
+ ### Backlog management
126
+ Built-in adapters for Jira and filesystem-backed backlogs.
127
+
128
+ ```bash
129
+ rai backlog search "project = MYPROJECT AND status = 'In Progress'"
130
+ rai backlog create "Fix pagination bug" -p MYPROJECT -t Bug
131
+ rai backlog transition MYPROJECT-123 done
132
+ ```
133
+
134
+ ### Documentation publishing
135
+ Publish to Confluence, local filesystem, or both (dual-write).
136
+
137
+ ```bash
138
+ rai docs publish adr --title "ADR-045: Auth Architecture"
139
+ ```
140
+
141
+ ### Quality gates
142
+ Automated checks before commits and releases.
143
+
144
+ ```bash
145
+ rai gate check --all # Run all gates
146
+ rai release check # 10-point release checklist
147
+ ```
148
+
149
+ ### Session continuity
150
+ Memory that compounds across sessions — patterns, calibration, coaching corrections.
151
+
152
+ ```bash
153
+ rai session start --context # Loads everything from prior sessions
154
+ rai pattern add "Always validate frontmatter before writing"
155
+ ```
156
+
157
+ ### Multi-language discovery
158
+ Scan codebases and build knowledge graphs from: Python, TypeScript, JavaScript, C#, PHP, Dart, Svelte.
159
+
160
+ ```bash
161
+ rai discover scan src/ --language python --output summary
162
+ ```
163
+
164
+ ## CLI commands
165
+
166
+ 72 subcommands across 17 groups:
167
+
168
+ | Group | Commands |
169
+ |-------|----------|
170
+ | `init` | Initialize project governance |
171
+ | `session` | start, close, context, journal, doctor |
172
+ | `graph` | build, query, context |
173
+ | `pattern` | add, query |
174
+ | `backlog` | create, get, search, transition, update, link, comment |
175
+ | `docs` | publish, get, search |
176
+ | `skill` | list, validate, check-name, scaffold |
177
+ | `discover` | scan |
178
+ | `adapter` | list, check, validate, status |
179
+ | `mcp` | list, health, tools, call, install, scaffold |
180
+ | `gate` | list, check |
181
+ | `doctor` | diagnostics with --fix auto-remediation |
182
+ | `release` | check, publish |
183
+
184
+ ## Documentation
185
+
186
+ - **[Getting Started](https://docs.raiseframework.ai/)** — Install and run your first session
187
+ - **[Guides](https://docs.raiseframework.ai/guides/first-story/)** — Your First Story, Configuring Integrations, Bugfix Lifecycle
188
+ - **[CLI Reference](https://docs.raiseframework.ai/cli/)** — Every command, flag, and option
189
+ - **[Concepts](https://docs.raiseframework.ai/concepts/)** — Memory, Skills, Governance, Knowledge Graph
190
+
191
+ ## License
192
+
193
+ 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).
@@ -1,12 +1,11 @@
1
1
  [project]
2
2
  name = "raise-cli"
3
- version = "2.4.0a2"
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"}
7
7
  ]
8
- # README.md is at repo root — referenced via sdist include, not readme field
9
- # (hatch resolves readme relative to build temp dir, not source dir)
8
+ readme = "README.md"
10
9
  license = {text = "Apache-2.0"}
11
10
  requires-python = ">=3.12"
12
11
  keywords = ["ai", "governance", "cli", "software-engineering", "methodology"]
@@ -37,6 +36,7 @@ dependencies = [
37
36
  "tree-sitter-svelte>=1.0.2",
38
37
  "tree-sitter-language-pack>=0.13.0",
39
38
  "logfire-api>=4.0",
39
+ "httpx>=0.27.0",
40
40
  ]
41
41
 
42
42
  [project.optional-dependencies]
@@ -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",
@@ -95,6 +97,7 @@ format = "raise_cli.gates.builtin.format:FormatGate"
95
97
  environment = "raise_cli.doctor.checks.environment:EnvironmentCheck"
96
98
  project = "raise_cli.doctor.checks.project:ProjectCheck"
97
99
  developer = "raise_cli.doctor.checks.developer:DeveloperCheck"
100
+ adapters = "raise_cli.doctor.checks.adapters:AdapterDoctorCheck"
98
101
 
99
102
  [project.entry-points."rai.adapters.pm"]
100
103
  filesystem = "raise_cli.adapters.filesystem:FilesystemPMAdapter"
@@ -107,6 +110,15 @@ confluence = "raise_cli.adapters.confluence_adapter:PythonApiConfluenceAdapter"
107
110
  [project.entry-points."rai.graph.backends"]
108
111
  local = "raise_core.graph.backends.filesystem:FilesystemGraphBackend"
109
112
 
113
+ [project.entry-points."rai.session.state_deriver"]
114
+ git = "raise_cli.session.derive:GitStateDeriver"
115
+
116
+ [project.entry-points."rai.session.registry"]
117
+ local = "raise_cli.session.registry:LocalSessionRegistry"
118
+
119
+ [project.entry-points."rai.session.monitor"]
120
+ local = "raise_cli.session.monitor:LocalWorkstreamMonitor"
121
+
110
122
  [tool.uv.sources]
111
123
  raise-core = { workspace = true }
112
124
 
@@ -42,7 +42,13 @@ class PythonApiConfluenceAdapter:
42
42
  def publish(
43
43
  self, doc_type: str, content: str, metadata: dict[str, Any]
44
44
  ) -> PublishResult:
45
- """Publish doc: resolve routing, find/create page, apply labels."""
45
+ """Publish doc: resolve parent and labels, find/create page.
46
+
47
+ Parent resolution priority (RAISE-605):
48
+ 1. metadata["parent_id"] — explicit override
49
+ 2. routing.parent_title — from config
50
+ 3. Error — no parent available
51
+ """
46
52
  title = metadata.get("title")
47
53
  if not title:
48
54
  return PublishResult(
@@ -51,26 +57,29 @@ class PythonApiConfluenceAdapter:
51
57
  )
52
58
 
53
59
  routing = self._config.resolve_routing(doc_type)
54
- if not routing:
55
- return PublishResult(
56
- success=False,
57
- message=f"No routing configured for doc_type '{doc_type}'",
58
- )
59
-
60
- labels = routing.labels
61
- parent_id: str | None = None
62
-
63
- # Resolve parent page fail if not found (reliability over convenience)
64
- parent_page = self._client.get_page_by_title(routing.parent_title)
65
- if not parent_page:
66
- return PublishResult(
67
- success=False,
68
- message=(
69
- f"Parent page '{routing.parent_title}' not found in Confluence. "
70
- "Create it first or fix routing config."
71
- ),
72
- )
73
- parent_id = parent_page.id
60
+ labels: list[str] = routing.labels if routing else []
61
+ parent_id: str | None = metadata.get("parent_id")
62
+
63
+ # Resolve parent: explicit > routing > error
64
+ if parent_id is None:
65
+ if not routing:
66
+ return PublishResult(
67
+ success=False,
68
+ message=(
69
+ f"No routing configured for doc_type '{doc_type}' "
70
+ "and no parent_id provided in metadata."
71
+ ),
72
+ )
73
+ parent_page = self._client.get_page_by_title(routing.parent_title)
74
+ if not parent_page:
75
+ return PublishResult(
76
+ success=False,
77
+ message=(
78
+ f"Parent page '{routing.parent_title}' not found in Confluence. "
79
+ "Create it first or fix routing config."
80
+ ),
81
+ )
82
+ parent_id = parent_page.id
74
83
 
75
84
  # Check if page already exists
76
85
  existing = self._client.get_page_by_title(title)
@@ -163,10 +163,38 @@ class ConfluenceClient:
163
163
 
164
164
  # ── Discovery ─────────────────────────────────────────────────────
165
165
 
166
+ def get_space_homepage_id(self, space_key: str) -> str | None:
167
+ """Get the homepage page ID for a space. Returns None if not found."""
168
+ try:
169
+ raw: Any = self._client.get_home_page_of_space(space_key) # type: ignore[no-untyped-call]
170
+ if isinstance(raw, dict) and "id" in raw:
171
+ return str(raw["id"]) # type: ignore[no-untyped-call]
172
+ return None
173
+ except ConfluenceError:
174
+ raise
175
+ except Exception as e:
176
+ raise self._map_error(e, f"get_space_homepage_id({space_key})") from e
177
+
166
178
  def get_spaces(self) -> list[SpaceInfo]:
167
- """List all accessible spaces."""
179
+ """List all accessible spaces.
180
+
181
+ Paginates through all results — ``get_all_spaces()`` returns only
182
+ one page (default limit=50), which misses spaces beyond that page.
183
+ RAISE-1187: discovered during S1130.4 dogfood.
184
+ """
168
185
  try:
169
- raw: dict[str, Any] = self._client.get_all_spaces() # type: ignore[no-untyped-call]
186
+ all_results: list[dict[str, Any]] = []
187
+ start = 0
188
+ limit = 100
189
+ while True:
190
+ raw: dict[str, Any] = self._client.get_all_spaces( # type: ignore[no-untyped-call]
191
+ start=start, limit=limit
192
+ )
193
+ results: list[dict[str, Any]] = raw.get("results", [])
194
+ all_results.extend(results)
195
+ if len(results) < limit:
196
+ break
197
+ start += limit
170
198
  return [
171
199
  SpaceInfo(
172
200
  key=s["key"],
@@ -174,7 +202,7 @@ class ConfluenceClient:
174
202
  url=s.get("_links", {}).get("webui", ""),
175
203
  type=s.get("type", "global"),
176
204
  )
177
- for s in raw.get("results", [])
205
+ for s in all_results
178
206
  ]
179
207
  except ConfluenceError:
180
208
  raise
@@ -201,10 +229,25 @@ class ConfluenceClient:
201
229
 
202
230
  # ── Search & Health ───────────────────────────────────────────────
203
231
 
232
+ @staticmethod
233
+ def _ensure_cql(query: str) -> str:
234
+ """Wrap plain text in CQL siteSearch if not already CQL.
235
+
236
+ CQL queries contain operators like ~, =, AND, OR, or known
237
+ predicates like type=, space=, text~. Plain text does not.
238
+ """
239
+ cql_indicators = ("~", "=", " AND ", " OR ", " ORDER BY ")
240
+ if any(op in query for op in cql_indicators):
241
+ return query
242
+ # Escape double quotes in user query
243
+ escaped = query.replace('"', '\\"')
244
+ return f'siteSearch ~ "{escaped}"'
245
+
204
246
  def search(self, cql: str, limit: int = 10) -> list[PageSummary]:
205
- """Search using CQL."""
247
+ """Search using CQL. Plain text queries are auto-wrapped."""
248
+ effective_cql = self._ensure_cql(cql)
206
249
  try:
207
- raw: dict[str, Any] = self._client.cql(cql, limit=limit) # type: ignore[no-untyped-call]
250
+ raw: dict[str, Any] = self._client.cql(effective_cql, limit=limit) # type: ignore[no-untyped-call]
208
251
  return [
209
252
  PageSummary(
210
253
  id=str(r["content"]["id"]),
@@ -217,7 +260,7 @@ class ConfluenceClient:
217
260
  except ConfluenceError:
218
261
  raise
219
262
  except Exception as e:
220
- raise self._map_error(e, f"search({cql!r})") from e
263
+ raise self._map_error(e, f"search({effective_cql!r})") from e
221
264
 
222
265
  def health(self) -> AdapterHealth:
223
266
  """Check connectivity by listing 1 space."""
@@ -225,9 +268,7 @@ class ConfluenceClient:
225
268
  self._client.get_all_spaces(limit=1) # type: ignore[no-untyped-call]
226
269
  return AdapterHealth(name="confluence", healthy=True)
227
270
  except Exception as e:
228
- return AdapterHealth(
229
- name="confluence", healthy=False, message=str(e)
230
- )
271
+ return AdapterHealth(name="confluence", healthy=False, message=str(e))
231
272
 
232
273
  # ── Internal ──────────────────────────────────────────────────────
233
274